このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
回帰学習器アプリを使用した回帰ニューラル ネットワークの学習
この例では、回帰学習器アプリを使用してさまざまな回帰ニューラル ネットワーク モデルを作成および比較する方法と、学習済みのモデルをワークスペースにエクスポートして新しいデータの予測を行う方法を示します。
MATLAB® コマンド ウィンドウで、
carbig
データ セットを読み込み、さまざまな変数が含まれている table を作成します。load carbig cartable = table(Acceleration,Cylinders,Displacement, ... Horsepower,Model_Year,Weight,Origin,MPG);
[アプリ] タブをクリックしてから、右にある [さらに表示] 矢印をクリックしてアプリ ギャラリーを開きます。[機械学習および深層学習] グループの [回帰学習器] をクリックします。
[回帰学習器] タブで、[ファイル] セクションの [新規セッション] をクリックし、[ワークスペースから] を選択します。
[ワークスペースからの新規セッション] ダイアログ ボックスで、[データセット変数] のリストから table
cartable
を選択します (必要な場合)。ダイアログ ボックスに示されているように、応答として
MPG
が、予測子として他の変数が選択されます。この例では、選択を変更しないでください。既定の検証方式をそのまま使用して続行するため、[セッションの開始] をクリックします。既定の検証オプションは 5 分割交差検証であるため、過適合が防止されます。
回帰学習器は、x 軸にレコード番号がある応答のプロットを作成します。
応答プロットを使用して、どの変数が応答の予測に有用であるかを調べます。異なる予測子と応答の間の関係を可視化するには、[X 軸] の [X] リストで異なる変数を選択します。どの変数が最も明確に応答と関連しているかに注意してください。
ニューラル ネットワーク モデルを選択して作成します。[回帰学習器] タブの [モデル タイプ] セクションで矢印をクリックしてギャラリーを開きます。[ニューラル ネットワーク] グループで、[すべてのニューラル ネットワーク] をクリックします。
[学習] セクションで [学習] をクリックします。ギャラリー内の各ニューラル ネットワーク オプションの学習が 1 つずつ行われます。[モデル] ペインに、最適なモデルの [RMSE (検証)] (平方根平均二乗誤差) の概要が表示されます。
ヒント
Parallel Computing Toolbox™ を使用している場合、[学習] セクションにある [並列の使用] ボタンを選択してから [学習] をクリックすることにより、すべてのモデル ([すべてのニューラル ネットワーク]) を同時に学習させることができます。[学習] をクリックすると [並列プールを開いています] ダイアログ ボックスが開いたままになります。同時に、ワーカーの並列プールが開きます。この間、ソフトウェアの対話的な操作はできません。プールが開いた後、モデルの学習が同時に行われます。
結果を表示するため、[モデル] ペインでモデルを選択します。[回帰学習器] タブの [プロット] セクションで矢印をクリックしてギャラリーを開き、[検証結果] グループの [応答] をクリックします。学習済みモデルの応答プロットを確認します。真の応答は青色、予測された応答は黄色です。
メモ
検証により、結果に無作為性が導入されます。実際のモデルの検証結果は、この例に示されている結果と異なる場合があります。
[X 軸] で
Horsepower
を選択し、応答プロットを確認します。真の応答と予測された応答の両方がプロットされます。[誤差] チェック ボックスを選択すると、予測された応答と真の応答の間の垂直線として予測誤差が表示されます。現在選択されているモデルの詳細については、[現在のモデルの概要] ペインを参照してください。決定係数、MAE (平均絶対誤差)、予測速度など、他のモデル特性をチェックおよび比較します。詳細については、モデルの統計量の表示と比較を参照してください。[現在のモデルの概要] ペインでは、モデルの学習に使用したオプションなど、現在選択されているモデル タイプの詳細を調べることもできます。
予測された応答と真の応答をプロットします。[回帰学習器] タブの [プロット] セクションで矢印をクリックしてギャラリーを開き、[検証結果] グループの [予測と実際 (検証)] をクリックします。このプロットを使用して、異なる応答値について回帰モデルがどの程度適切に予測を行うかを判定します。
完璧な回帰モデルでは、予測された応答が真の応答と等しくなるので、すべての点が対角線上に配置されます。この線から点までの垂直距離は、その点についての予測誤差です。優れたモデルは誤差が小さいので、予測は対角線の近くに配置されます。通常、優れたモデルでは点が対角線の近くでほぼ対称的に配置されます。プロットに明確なパターンがある場合、モデルを改善できる可能性があります。
他のモデルを [モデル] ペインで選択し、各モデルについて予測と実際のプロットを開いてから、結果を比較します。レイアウトの変更によるモデル プロットの比較を参照してください。
[モデル タイプ] ギャラリーで再度 [すべてのニューラル ネットワーク] を選択します。モデルを改善するため、異なる特徴量を含めます。予測力が低い特徴量を削除するとモデルを改善できるかどうか調べます。[回帰学習器] タブの [特徴量] セクションで [特徴選択] をクリックします。
予測子から除外するため、[特徴選択] ダイアログ ボックスで [Acceleration] と [Cylinders] のチェック ボックスをクリアし、[OK] をクリックします。
[学習] セクションの [学習] をクリックして、新しい予測子の設定を使用し、ニューラル ネットワーク モデルに学習をさせます。
[モデル] ペインで新しいモデルを確認します。これらのモデルは前と同じニューラル ネットワーク モデルですが、7 つの予測子のうち 5 つのみを学習に使用しています。モデルごとに、使用した予測子の数が表示されます。どの予測子が使用されたかをチェックするには、[モデル] ペインでモデルをクリックし、[現在のモデルの概要] ペインの [特徴選択] セクションを確認します。
2 つの特徴量を削除したモデルの性能は、すべての予測子を使用するモデルと同程度です。すべての予測子を使用した場合でも予測子のサブセットのみを使用した場合でも、モデルによる予測に変わりはありません。データの収集が高価または困難な場合、一部の予測子がなくても十分に機能するモデルが好ましい可能性があります。
最適なモデルを [モデル] ペインで選択し、残差プロットを表示します。[回帰学習器] タブの [プロット] セクションで矢印をクリックしてギャラリーを開き、[検証結果] グループの [残差 (検証)] をクリックします。残差プロットには、予測された応答と真の応答の差が表示されます。残差を線グラフとして表示するため、[スタイル] セクションの [ライン] を選択します。
x 軸にプロットする変数を [X 軸] で選択します。真の応答、予測された応答、レコード番号、またはいずれかの予測子を選択します。
通常、優れたモデルでは残差が 0 の近くでほぼ対称的に配置されます。残差に明確なパターンがある場合、モデルを改善できる可能性があります。
[モデル] ペインにある最適なモデルの詳細設定を変更して、さらに改善を試みることができます。[回帰学習器] タブの [モデル タイプ] セクションで [詳細設定] をクリックし、[詳細設定] を選択します。全結合層のサイズや正則化強度などの設定の変更を試して [OK] をクリックします。次に、[学習] をクリックして新しいモデルに学習をさせます。
ニューラル ネットワーク モデルの設定の詳細については、ニューラル ネットワークを参照してください。
学習済みのモデルの完全なバージョンまたはコンパクトなバージョンをワークスペースにエクスポートできます。[回帰学習器] タブの [エクスポート] セクションで [モデルのエクスポート] をクリックし、[モデルのエクスポート] または [コンパクト モデルのエクスポート] のどちらかを選択します。新しいデータによる予測のための回帰モデルのエクスポートを参照してください。
このモデルに学習をさせるためのコードを確認するため、[エクスポート] セクションで [関数の生成] をクリックします。
ヒント
同じワークフローを使用すると、回帰学習器で学習可能な他のタイプの回帰モデルを評価および比較できます。
選択したデータ セットに対して使用できる事前設定済みの最適化不可能な回帰モデルをすべて学習させるには、次のようにします。
[回帰学習器] タブの [モデル タイプ] セクションで矢印をクリックして回帰モデルのギャラリーを開きます。
[開始] グループで [すべて] をクリックします。次に、[学習] セクションで [学習] をクリックします。
他の回帰モデルのタイプについては、回帰学習器アプリにより回帰モデルに学習をさせるを参照してください。