過学習とは、モデルが訓練データの細部やノイズまで覚え込んでしまい、練習問題では高得点でも、見たことのない新しいデータでは明らかに精度が落ちる現象です。モデルを評価するときは、訓練した問題での出来ではなく、新しい問題に規則を応用できるかどうかが重要です。過学習したモデルは規則を学んだのではなく、答えを暗記しただけです。
訓練スコアと実力がずれていく理由
訓練とはデータの中から規則を探す作業ですが、データには本物の規則とノイズ(入力ミス、偶然、そのバッチでだけ成り立つ癖)が混ざっています。訓練を重ね、パラメータが多いほど、モデルはノイズまで吸収できます。典型的なサインは、訓練データの誤りが減り続け、検証データの誤りが下がってから上がり始めることです。二つの曲線が離れ始めた点が、暗記への転換点です。
反対の失敗が学習不足で、基本的な規則すら掴めず新旧どちらの問題もできません。ちょうどよいモデルはその中間にいます。もう一つ注意すべきがデータリークです。本来テスト時に初めて現れるはずの情報が訓練に混入すると、テスト成績まで良く見えるため、通常の過学習より見抜きにくくなります。
起きやすい場面
データが少なくモデルが強すぎる場合、記憶力の良い生徒に練習問題を十問だけやらせるようなもので、数字を変えられると解けなくなります。同じデータを何度も回すと同じ例には滑らかでも、少し違う入力に硬くなります。ノイズの多い未整形データは、誤ったラベルまで規則として学ばれます。大規模モデルの微調整でも同じで、少量の業務例を繰り返すと、例の言い回しは覚えても課題の論理は覚えません。
よくある三つの誤解
一つ目、訓練スコアが高いほど強いモデルだという誤解。訓練スコアはそのデータへの適合の強さでしかなく、ある点を超えると汎化性能はむしろ下がります。だからこそ比較は訓練に参加していないテストデータで行います。
二つ目、小さいモデルだけが過学習するという誤解。実際は逆で、パラメータが多いほど暗記容量も大きくなります。事前学習では大量データが問題を薄めますが、少量データの微調整では過学習こそ最初に防ぐべきものです。
三つ目、データを増やせば解決するという誤解。同じ内容の複製や書き換えばかり増やし、重複除去が甘いと、実質的に何度も余分に訓練したことになります。大事なのはファイルの量ではなく情報量です。
暗記しているかどうかを見分けるには
問いを少し変えてみてください。数字、名前、順序を変える、あるいは一つの問いを二段階に分ける。元の問いには滑らかでも、小さな変更で崩れるなら、推論ではなく復唱です。未知の領域で無理にテンプレートを当てはめず、適切に不確かさを示すかも目安になります。ランキングでは高いのに日常利用でよく失敗するモデルは、テストと訓練の重なりが大きい可能性があります。
モデル選定や微調整をする人向けの対策は地味ですが確実です。訓練に使わないデータを最終確認用に残す、検証曲線を見て早めに止める、データの重複除去と清掃を徹底する。規則を学んだのか答えを覚えたのか、その境界線が訓練室を出た後の実力を決めます。