過去問は満点、本番は散々
過去問だけを丸暗記して試験に臨むと、見たことのある問題には強くても、少しひねられただけで手が止まります。AIモデルにも、これと同じことが起こります。
過学習は、モデルが学習データの細かいパターンや偏りまで覚えすぎてしまい、実際に使う場面のデータではうまく動かなくなる状態です。学習データの上では点数が高いので、そこだけを見ていると見逃します。反対に、学習していない入力にもきちんと対応できる性質は汎化と呼ばれます。
なぜ覚えすぎるのか
モデルは、学習データの中でなるべく正解に近い答えを出そうとします。データが少なかったり、学習を続けすぎたりすると、本質的なパターンではなく、そのデータにたまたま含まれていたノイズや偶然の傾向まで学んでしまいます。
起きやすいのは、次のようなときです。
- 学習データの量が少ない
- ファインチューニングで学習を続けすぎた
- 学習データが、実際に使う場面と大きくずれている
- モデルの複雑さに対して、データが少なすぎる
学習に使わなかったデータで見分ける
学習用のデータとは別に、検証用のデータを取り分けておき、そちらでも精度を測ります。学習が進むにつれて学習データでの点数は上がり続けているのに、検証用データでの点数が下がり始めたら、それが過学習のサインです。
対処としては、データを増やすか、学習を早めに止めます。そして最終的な評価は、学習データではなく、本番に近いデータで行います。この仕組みは、あとから足すより、最初から組み込んでおくほうが確実です。