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