早期終了Early Stopping

成績が悪くなり始めたら学習を止めること

ポイント
  • 早期終了は、決めておいた周回数を全部こなさず、成績が悪くなり始める地点で学習を止める方法です。
  • 判断の基準は学習に使ったデータではなく、取り分けておいたデータの成績です。学習データの成績は最後まで良くなり続けるからです。
  • 一回悪くなったからといってすぐには止めません。もう少し様子を見て、それでも戻らなければそこで終えます。
  • 止めたあとは最後の状態ではなく、一番良かった地点の状態に戻して使います。
  • 手を加えることがほとんどないのに過学習を大きく減らしてくれるので、たいていの学習に既定で組み込みます。
目次

1たとえで理解する

コーヒー豆を挽きながら、挽き目を少しずつ細かく変えてコーヒーを淹れてみます。最初は粒が粗くて水がそのまま通り抜けてしまい、味が薄いです。もう少し細かく挽くと味が出てきて、さらに細かくすると香りが濃くなります。ここまでは、挽くほど良くなります。

ところがある細かさを過ぎると状況が逆転します。粉はますます細かくなるのに、味はかえって重くて苦くなります。細かく挽くほど良くなると思ってそのまま続けると、飲めないコーヒーになってしまいます。

そこで一杯ずつ味を確かめながら、一番おいしかった挽き目を書き留めておきます。味が落ち始めたら手を止めて、書いておいた挽き目にダイヤルを戻します。早期終了はこの「手を止める」ことです。細かさはずっと上がり続けますが、味はある地点で折れることを知っているので、その地点を見つけて止めます。

2くわしく

二つの成績が別々に動く

学習中は、成績を二か所で測ります。一つは学習に使ったデータ、もう一つは学習に使わず取り分けておいたデータです。学習データの成績は、周を重ねるほどほぼ常に良くなります。モデルがそのデータをだんだん覚えていくからです。

取り分けたデータの成績は違う動き方をします。最初は一緒に良くなっていきますが、ある地点を過ぎるとそれ以上良くならず、じわじわ悪くなっていきます。モデルが、データに含まれる規則の代わりに、そのデータだけにある雑音までなぞり始めた瞬間です。

二本の線が開き始める地点が、止める場所です。この地点を目で確かめるには、周ごとに両方の成績を測って並べて書き留めておく必要があります。

取り分けたデータは学習に絶対使いません。一度でも学習に混ざると、そのデータの成績も一緒に良くなってしまい、折れる地点が見えなくなるからです。早期終了がきちんと働くには、まずこのデータをきれいに守っておくことが前提です。この前提が崩れると、早期終了は動いていても実際には何も見張っていないのと同じになります。

すぐには止めません

取り分けたデータの成績は少しずつ揺れます。データのまとまりが毎回違う組み方をされるので、一、二周悪くなってからまた良くなることはよくあります。最初の悪化ですぐ止めると、まだ下げられたはずの学習を早く打ち切ってしまいます。

そこで何周様子を見るかをあらかじめ決めておきます。最高記録が出たあとその分だけ周が過ぎても記録が破られなければ、そこで止めます。この猶予を短く取ると性急に切られ、長く取ると要らない学習を長く引きずります。

一番良かった地点に戻す

止めた時点の状態をそのまま使うと損です。最高記録が出たあと数周さらに回っているので、最後の状態はすでに少し悪くなった状態だからです。

そこで学習の途中、記録が更新されるたびにその時点の値を別に保存しておきます。止めたあとは、保存しておいた中で一番良かった状態を取り出して使います。コーヒーでいえば、味が折れたあとにダイヤルを一番良かった挽き目に戻すのと同じです。

保存は記録が更新されたときだけすればよく、毎周すべて残しておくと保存容量がすぐいっぱいになります。モデルが大きいほど一回の保存にかかる容量が大きいので、何をいつ残すかを決めておくことが学習設定の一部になります。

なぜこの方法が広く使われるのか

早期終了は、手を加えることがほとんどありません。見守る周回数を一つ決めれば終わりで、モデルの構造には触れません。それでも過学習を目に見えて減らしてくれます。値が大きくなる時間を与えないという点で、罰点を与える方式と似た効果を生みます。

学習時間を節約できることも大きな利点です。周回数を余裕を持って書いておき早期終了を掛けておけば、実際に必要な分だけ回って自動で終わります。値が大きくなりすぎないよう罰点を与える方式や、一部を無作為に休ませる方式と一緒に掛けておくのが普通です。

3もう少し正確に

早期終了は、検証データの指標が決めておいた周回数のあいだ良くならなければ学習を終え、最高記録の時点の値に戻して使う方法です。見守る指標は誤差のこともあれば、正解率のような別の指標のこともあります。指標によって良くなる方向が逆なので、設定を誤ると見当違いの地点で止まります。

一つ注意すべき点があります。止める地点を検証データで選んだなら、そのデータはすでに学習の過程に関わったことになります。最終成績は一度も使っていない別のデータで測ってはじめて、水増しされずに済みます。

たとえがずれる点もあります。コーヒーは味を人が舌で測りますが、学習ではあらかじめ決めた計算で成績を測ります。そしてグラインダーは戻しても豆はそのままですが、学習は戻すために以前の値をあらかじめ保存しておく必要があります。保存しておかなければ、悪くなった状態のまま終わってしまいます。

4やってみる

5よくある誤解

  • 学習を長く回すほどモデルが良くなると思われがちですが、実際にはある地点を過ぎると初めて見るデータへの成績がかえって落ちます。

  • 成績が一回悪くなったらすぐ止めるべきだと考えられがちですが、実際には揺れであることもあるので、数周様子を見てから決めます。

  • 早期終了は学習データの成績を見て判断すると思われがちですが、実際には学習に使っていないデータの成績だけで判断します。

7ひとこと要約

つまり早期終了は味が折れる地点で手を止めることに当たり、データを覚え始める直前の一番良い状態を拾い上げます。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02