1行定義
早期終了とは、学習中に検証データの誤差を監視し、誤差が改善しなくなった時点で学習を打ち切って過学習を防ぐ方法のことです。
くわしく
早期終了は、学習をやりすぎる前に止めることで、過学習を防ぐ方法です。
仕組み
ニューラルネットワークは、学習データ全体を何周も繰り返して学習します。1周をエポックと呼びます。学習データに対する誤差は、エポックを重ねるほど下がり続けます。一方、学習に使っていない検証データの誤差は、ある時点までは下がり、その後は上がり始めることがよくあります。これは、モデルが学習データのノイズまで覚え込み、汎化性能が落ちてきたサインです。早期終了では、検証データの誤差が最も小さかった時点のパラメータを残し、そこで学習を打ち切ります。
試験勉強にたとえると、模試の点が伸びなくなった時点で、同じ問題集の周回をやめる判断に当たります。
実際の使い方
検証データの誤差は小刻みに上下します。1回悪化しただけで止めると、早すぎることがあります。そこで「一定回数続けて改善しなければ止める」という猶予を設けるのが一般的です。この回数をpatience(忍耐)と呼びます。止めた後は、最良だった時点のパラメータに戻して使います。
正則化としての位置づけ
早期終了は、正則化の一種として扱われます。L2正則化のように誤差関数に罰則項を加える必要がなく、モデルの構造も変えません。学習の手順にほとんど手を加えずに使えるのが利点です。学習の回数を、検証データで決めるハイパーパラメータの1つとみなす見方もあります。二乗誤差で学習する線形モデルなど限られた条件のもとでは、L2正則化と同じ効果をもつことが示されています。
注意点
2019年の研究では、学習を続けると、検証データの誤差がいったん上がった後に再び下がる場合があると報告されました。これは二重降下現象の一種で、エポック数に対して起きるものです。最初に誤差が上がった時点で止めると、その先の改善を逃すこともあります。
覚え方
「検証データの誤差が底を打ったら止める」と覚えます。
G検定での出題
出題のされ方
学習曲線のグラフから学習を止めるべき時点を選ぶ形や、ドロップアウト・正則化と並ぶ過学習の対策として選ばせる形で出題されます。二重降下現象との関係も問われます。
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
早期終了では、学習データの誤差ではなく、学習に使っていない検証データの誤差を見て学習を止める時点を決める。
答えを見る
答え ◯ 正しい
学習データの誤差は学習を続けるほど下がり続けるので、止めどきの判断には使えません。検証データの誤差が上がり始めたら過学習のサインです。
-
早期終了は、誤差関数に罰則項を加えてパラメータの値を小さく保つ手法である。
答えを見る
答え × 誤り
罰則項を加えるのはL1正則化やL2正則化です。早期終了は誤差関数を変えず、学習を打ち切る時点を決めることで過学習を抑えます。
-
早期終了では、検証データの誤差が一度でも前回より悪化したら、その時点で必ず学習を止めなければならない。
答えを見る
答え × 誤り
検証データの誤差は小刻みに上下します。一定回数続けて改善しなければ止める、という猶予(patience)を設けるのが一般的です。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目16 最適化手法)
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press (2016) (7.8 Early Stopping)
- Lutz Prechelt, Early Stopping - But When?, Neural Networks: Tricks of the Trade, Lecture Notes in Computer Science 1524, Springer (1998)
- Preetum Nakkiran et al., Deep Double Descent: Where Bigger Models and More Data Hurt (arXiv:1912.02292)