提示頂いた URL 先の例題ですと
options = trainingOptions('sgdm',...
'MiniBatchSize',miniBatchSize,...
'MaxEpochs',4,...
'InitialLearnRate',1e-4,...
'Verbose',false,...
'Plots','training-progress',...
'ValidationData',validationImages,...
'ValidationFrequency',numIterationsPerEpoch);
でオプション設定を行っています。
'ValidationPatience' (デフォルトで 5) で指定される検証回数だけ、検証セットでの損失に改善がみられなかった場合に学習は終了します。この条件で学習が終了した場合に "検証基準に適合" と表示されます。
- ②のエポックで最大エポック未満で学習が終了している理由
上の理由から、学習を指定されたエポック数行う前に終了しています。最大エポック数は 'MaxEpochs' で指定します。何も指定しない場合は 30 に設定されます。
反復とは、勾配降下法アルゴリズムでミニバッチを使用して損失関数の最小化を目指して実行される 1 ステップのことです。エポックとは、学習セット全体に対して学習アルゴリズムの実行することを表します。
1エポック中に何回反復が発生するかですので、学習に使用される画像数とミニバッチによって決定されます。ミニバッチは 'MiniBatchSize' で指定し、デフォルトで 128 に設定されています。
'ValidationData' で指定されたデータに対して、検証を行う頻度で 'ValidationFrequency' で指定します。デフォルトで 50 と設定されています。
'ValidationPatience' で指定する値です。①に関連します。
'LearnRateSchedule' — 学習中に学習率を下げるオプション の設定を表示しています。
- ⑨の精度と損失それぞれの検証でそれらの結果が求められるときの画像がどのようにして選ばれているかについての方法
'ValidationData' で明示的に指定しているはずです。