モデルのしくみ 中級

過学習

Overfitting

学習に使ったデータには非常によく合う一方で、初めて見るデータには通用しなくなる状態です。問題を丸暗記してしまい、本質的なパターンを学べていないときに起こります。

例少数の例で何度も学習させたところ、学習データには完璧に答えるが、少し言い換えた質問には答えられなくなった。過学習の典型例だ。

詳しく

過学習(オーバーフィッティング)は、モデルが学習用データに合わせすぎて、そこにしか通用しない細かい癖や偶然の特徴まで覚えてしまう状態です。学習用データでは高い成績が出るのに、初めて見るデータでは成績が急に落ちるのが特徴です。

なぜ起こるか

モデルの表現力が高いほど、データの背後にある規則だけでなく、ノイズや偶然の一致まで写し取れてしまいます。次のような条件が重なると起こりやすくなります。

  • 学習データが少ない、または偏っている。
  • モデルが大きすぎる(パラメータが多すぎる)。
  • 同じデータで長く学習しすぎる。

具体例

試験勉強にたとえられます。過去問の答えを丸暗記した生徒は、過去問ではほぼ満点を取れます。しかし数字や言い回しを少し変えた新しい問題では解けません。解き方の原理を理解していないからです。過学習したモデルは、この丸暗記した生徒と同じです。

大規模言語モデルのファインチューニングでも起こります。少数の例で何度も学習させると、その例と同じ文面には完璧に答えるのに、少し違う質問ではぎこちない答えしか出せなくなります。学習データの文章をそのまま出力してしまう、という形で現れることもあります。

見つけ方

学習用データとは別に、検証用データを取り分けておきます。学習が進むにつれて、学習用データの損失は下がり続けるのに、検証用データの損失が下がらなくなる、または上がり始めたら過学習のサインです。最終的な性能は、さらに別のテスト用データで一度だけ確認するのが正式なやり方です。

対策

  • データを増やす・多様にする:最も確実な対策です。
  • 早期終了:検証用データの成績が悪化し始めたところで学習を止める。
  • 正則化・ドロップアウト:モデルが極端な値を取りにくくしたり、学習中にランダムに一部の接続を無効にしたりして、丸暗記を防ぐ。
  • モデルを小さくする:データの量に対して大きすぎるモデルを避ける。

よくある誤解

  • 学習用データでの高い成績は、実力の証拠にはなりません。必ず学習に使っていないデータで測ります。
  • 評価用データが学習データに混入していると、過学習に気づけません。
  • 近年の巨大モデルでは、パラメータが非常に多くても、データが十分に多様なら、一般化する場合があることも知られています。「大きいと必ず過学習する」とは限らない点にも注意が必要です。

関連する考え方

過学習の検出には損失関数の推移を使い、ファインチューニングや評価(eval)の設計でも重要な考え方です。逆に、学習が足りず訓練データにも合っていない状態は「未学習(アンダーフィッティング)」と呼ばれます。

あわせて知りたい言葉

「モデルのしくみ」の言葉をすべて見る