過学習とは、AIモデルが訓練データに過剰に適合してしまい、新しい未知のデータに対する予測精度である汎化性能が低下する現象のことです。学習用データの特徴やノイズを過度に学習してルールを複雑化しすぎることで発生します。モデルが実用的な予測を行うための柔軟性を失った状態であり、機械学習における主要な課題の一つです。
過学習とは
過学習(オーバーフィッティング)とは、AIや機械学習モデルが訓練データを「丸暗記」したような状態になり、本質的なルールではなくデータの雑音(ノイズ)まで学習してしまう現象です。これにより、学習に使っていない新しいデータに対する予測性能である汎化性能が著しく低下してしまいます。
詳しく解説
機械学習の目的は、限られたデータから未知のデータにも対応できる一般的な規則を導き出すことです。しかし、モデルの表現力がデータ量に対して高すぎる場合、訓練データの細かな誤差や偏りまで完璧に再現しようとしてしまいます。その結果、学習に用いた訓練データに対してはほぼ100%の正解率を出すものの、実用段階で新しいデータを入力すると予測を誤るようになります。過学習の主な要因には、訓練データの不足、モデルのパラメータ数が多すぎること(過剰な複雑さ)、学習回数が多すぎることなどが挙げられます。
具体例・使われ方
例えば、特定の10枚のイヌの画像だけを何千回も繰り返し学習させた場合を考えます。モデルは「画像の背景に映っている特定の芝生の色」や「写真の明るさ」といった、イヌという本質的な特徴とは無関係な要素まで学習してしまいます。この過学習を起こしたモデルに、背景が異なる一般的なイヌの画像を見せると、正しく「イヌ」と判別できなくなってしまいます。
似た用語との違い
過学習と混同されやすい概念に未学習(アンダーフィッティング)があります。過学習が「データを学習しすぎて融通が利かなくなった状態」であるのに対し、未学習はモデルの表現力が低すぎる、または学習回数が足りないために、訓練データの基本的なパターンすら十分に学習できていない状態を指します。開発時には、過学習と未学習の双方を回避し、適切なバランス(汎化性能が最大になる状態)を目指す必要があります。
注意点
過学習を防ぐためには、学習中のモデル評価が極めて重要です。訓練データでの性能は高い一方で、テストデータでの性能が著しく低い場合に過学習を検出できます。対策として、モデルの複雑さにペナルティを課す正則化の導入や、学習を途中で止める早期終了、訓練データを増やすデータ拡張などの手法を適切に組み合わせる必要があります。