【かがくしゅう】

過学習 とは?

最終更新:
💡 練習問題に合わせすぎて、初めての問題に弱くなる

モデルが訓練データに適合しすぎて、未知のデータへの予測がうまくいかなくなる現象。訓練データ固有の揺らぎや偏りまで学び、他のデータに通用する傾向を捉えられないことがある。

📌 このページのポイント
訓練への適合と、未知のデータへの予測 傾向を捉える例 揺らぎにも適合 訓練データの点と予測の線(例) 学習中の損失の推移(例) 大 小 学習回数 → 訓練の損失 検証の損失 検証が悪化しても、訓練は改善する場合 曲線の形や差だけで一律に判定しない
上段は同じ訓練点への適合例。下段の損失は小さいほどよい。検証指標を見て調整し、最終評価用のテストデータは分ける。実測値ではない。
ひよこ ひよこ
過学習ってどうやったらわかるの?
ペンギン先生 ペンギン先生
訓練データでの成績が改善しても、検証データでは改善が止まったり悪くなったりするのが兆候だよ。小さな差があるだけでは異常とは限らないので、同じ指標で推移を見る。図は損失が小さいほどよい場合の説明例だよ。
ひよこ ひよこ
なんで起こるの?
ペンギン先生 ペンギン先生
訓練データ固有の揺らぎまで拾うと、新しいデータに通用しにくいんだ。データに対してモデルの容量が大きい場合や、学習を続けすぎた場合に起こり得る。ただしモデルの大きさや学習時間だけで決まるわけではないよ。
ひよこ ひよこ
どうやって防ぐの?
ペンギン先生 ペンギン先生
想定する入力を広く含むデータを用意し、モデルの容量を調整する。重みへのペナルティなどの正則化や、学習中の出力の一部を無作為にゼロにするドロップアウトも方法だよ。早期終了では検証指標の改善が止まったかを一定期間見て、停止を判断するんだ。
ひよこ ひよこ
テストデータを見ながら調整していい?
ペンギン先生 ペンギン先生
繰り返し見て設定を選ぶと、そのテストデータに合わせてしまうよ。設定や停止時点の調整には検証データを使い、最終評価用のテストデータは分けておく。データを増やす場合も、同じような例だけでなく、実際に扱う入力をカバーできるかが大事なんだ。
ひよこ ひよこ
「二重降下」って何?
ペンギン先生 ペンギン先生
モデルの規模などを増やすと、テスト誤差が一度悪くなった後に再び改善する現象だよ。2019年のDeep Double Descentでは、規模だけでなく学習回数についても報告された。特定の実験条件での結果なので、大きくすれば必ずよくなるという保証にはならないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「過学習」って出てきたら「訓練データに合わせすぎて、未知のデータへの予測が弱くなる現象」と思えばだいたいOK!
📖 おまけ:英語の意味
「Overfitting」 = 過剰な適合
💬 overは過度に、fittingは適合すること。モデルを大きくすること自体が、必ず過学習になるという意味ではないよ。

参考資料

← 用語集にもどる