早期終了(Early Stopping)とは、検証データの損失が改善しなくなった時点で学習を自動的に打ち切る正則化手法です。過学習を防ぎながら最適なエポック数を自動で決定でき、実務で非常に頻繁に使用されます。
仕組み
各エポックの終了時に検証損失を確認し、連続して一定回数(patience)改善しなかった場合に学習を停止します。最も検証損失が低かった時点のモデルを最終モデルとして採用します。
| ひとことで言うと | 検証データの成績が良くならなくなった時点で、学習を自動的に打ち切る方法。 |
|---|---|
| 何がうれしいか | 過学習を防げるうえ、無駄な学習時間も節約できる。 |
| 注意点 | たまたま一時的に悪化することもある。数エポック様子を見る「猶予」を設ける。 |
patience(忍耐度)の設定
patienceが小さすぎると学習が早期に打ち切られ、大きすぎると過学習した後も無駄に学習を続けます。一般的に5〜20程度の値が使われますが、タスクやモデルに応じて調整が必要です。
1毎エポック評価検証データの損失を測る
▶
2最良を記録一番良い状態を保存
▶
3悪化を検知数回連続で改善なし
▶
4学習を停止最良の状態に戻す
他の正則化との関係
早期終了はL2正則化と数学的に類似した効果を持つことが知られています。ドロップアウトやL2正則化と併用されることも多く、追加の計算コストなしで過学習を抑制できる実用的な手法です。