最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
この例では、Experiment Managerを使用して回帰用の深層学習ネットワークに学習させる方法を説明します。この例では、回帰モデルを使用して手書きの数字の回転角度を予測します。カスタム メトリクス関数によって、真の角度から許容誤差限界内にある予測角度の割合が判定されます。回帰モデルの使用の詳細については、回帰用の畳み込みニューラル ネットワークの学習を参照してください。
まず、例を開きます。実験マネージャーによって、検証と実行が可能な事前構成済みの実験を含むプロジェクトが読み込まれます。実験を開くには、[実験ブラウザー] で実験の名前 (RegressionExperiment
) をダブルクリックします。
実験の定義は、説明、ハイパーパラメーター テーブル、セットアップ関数、および、実験結果を評価するためのメトリクス関数の集合で構成されます。詳細については、Configure Deep Learning Experimentを参照してください。
[説明] ボックスには、実験を説明するテキストが表示されます。この例の説明は次のようになります。
Regression model to predict angles of rotation of digits, using hyperparameters to specify: - the number of filters used by the convolution layers - the probability of the dropout layer in the network
[ハイパーパラメーター テーブル] には、実験で使用するハイパーパラメーターの名前と値が表示されます。実験を実行すると、実験マネージャーによってハイパーパラメーター値がスイープされ、ネットワークの学習が複数回実行されます。試行ごとに、テーブルで指定されたハイパーパラメーター値の異なる組み合わせが使用されます。この例では、以下の 2 つのハイパーパラメーターを使用します。
Probability
は、ニューラル ネットワークのドロップアウト層の確率を設定します。既定では、このハイパーパラメーターの値は [0.1 0.2]
として指定されます。
Filters
は、ニューラル ネットワークの最初の畳み込み層で使用されるフィルターの数を表します。それ以降の畳み込み層では、フィルターの数はこの値の倍数になります。既定では、このハイパーパラメーターの値は [4 6 8]
として指定されます。
[セットアップ関数] は、実験用の学習データ、ネットワーク アーキテクチャ、および学習オプションを構成します。セットアップ関数を検査するには、[セットアップ関数] で [編集] をクリックします。MATLAB エディターでセットアップ関数が開きます。
この例では、セットアップ関数への入力は、ハイパーパラメーター テーブルのフィールドをもつ struct
です。このセットアップ関数は、イメージ回帰問題用のネットワークに学習させるために使用する 4 つの出力を返します。このセットアップ関数には 3 つのセクションがあります。
イメージ データの読み込みでは、実験用の学習データと検証データを 4 次元配列として定義します。学習データセットと検証データセットには、それぞれ 0 ~ 9 の数字から成る 5000 個のイメージが格納されています。回帰値は、数字の回転角度に対応しています。
ネットワーク アーキテクチャの定義では、回帰用の畳み込みニューラル ネットワークのアーキテクチャを定義します。
学習オプションの指定では、実験用の
オブジェクトを定義します。この例では、ネットワークの学習を 30 エポック行います。最初の学習率は 0.001 であり、20 エポック後に 0.1 の係数で学習率を下げます。ソフトウェアは、学習データでネットワークに学習させ、学習中に一定の間隔で検証データに対して平方根平均二乗誤差 (RMSE) と損失を計算します。検証データは、ネットワークの重みの更新には使用されません。trainingOptions
[メトリクス] セクションは、実験結果を評価するオプションの関数を指定します。ネットワークの学習が完了するたびに、実験マネージャーによってこれらの関数が評価されます。メトリクス関数を検査するには、メトリクス関数の名前を選択して [編集] をクリックします。MATLAB エディターでメトリクス関数が開きます。
この例には、真の角度から許容誤差限界内にある予測角度の割合を判定するメトリクス関数 Accuracy
が含まれています。既定では、この関数は 10 度のしきい値を使用します。
[実験マネージャー] タブで、[実行] をクリックします。実験マネージャーによって、セットアップ関数で定義されたネットワークの学習が 6 回実行されます。試行ごとに、ハイパーパラメーターの異なる組み合わせが使用されます。結果テーブルに、各試行の RMSE と損失が表示されます。この表には、カスタム メトリクス関数 Accuracy
によって判定された試行の精度も表示されます。
実験の実行中に [学習プロット] をクリックすると、学習プロットが表示され、各試行の進行状況を追跡できます。
実験で得られた最良の結果を見つけるには、精度の順に結果テーブルを並べ替えます。
[精度] 列をポイントします。
三角形のアイコンをクリックします。
[降順に並べ替え] を選択します。
精度の最も高い試行が、結果テーブルの 1 番上に表示されます。
各試行の性能をテストするには、学習済みネットワークをエクスポートし、各数字クラスの残差を表す箱ひげ図を表示します。
精度が最も高い試行を選択します。
[実験マネージャー] タブで、[エクスポート] をクリックします。
ダイアログ ウィンドウで、エクスポートしたネットワークのワークスペース変数の名前を入力します。既定の名前は trainedNetwork
です。
関数 plotResiduals
を呼び出して、残差の箱ひげ図を作成します。エクスポートしたネットワークをこの関数への入力として使用します。たとえば、MATLAB コマンド ウィンドウで plotResiduals(trainedNetwork)
と入力します。
[実験ブラウザー] でプロジェクトの名前を右クリックし、[プロジェクトを閉じる] を選択します。実験マネージャーによって結果が保存され、プロジェクトに含まれるすべての実験が閉じられます。
trainingOptions
| trainNetwork
| 実験マネージャー