過学習とは
Overfitting
モデルが学習データの細部やノイズまで過剰に適合し、未知のデータに対する予測性能が低下する現象
ひとことで言うと
AIが練習問題を丸暗記しすぎて、初めて見る問題にはうまく答えられなくなってしまう状態。
概要
過学習(オーバーフィッティング)は、モデルが訓練データに含まれる本質的なパターンだけでなくノイズや偶然の特徴まで学習してしまい、訓練データへの当てはまりは良い一方で未知のテストデータへの予測性能(汎化性能)が低下してしまう現象。 モデルの表現力(パラメータ数)が学習データの量や多様性を上回るほど大きい場合や、学習を必要以上長く続けた場合に起こりやすい。 訓練データでの損失は下がり続けるのに、検証データでの損失がある時点から悪化し始めるという挙動で観測されることが多い。 対策として、ドロップアウトや正則化によるモデルの表現力の抑制、データ拡張による学習データの多様化、早期終了(Early Stopping)による学習の打ち切りなどが広く使われる。
背景
モデルの表現力を上げるほど訓練データへの当てはまりは向上するが、それが本当に汎用的なパターンなのか、単なる訓練データ固有のノイズなのかを見分けることは難しい。 過学習は、この汎化性能とモデル複雑度のトレードオフの一端として理解される。
歴史
統計学における「バイアスと分散のトレードオフ」の議論を起源とし、機械学習全般で古くから知られる基本的な課題。 2012年のAlexNet以降、深層学習でも意図的に過学習に注意しつつモデルを大規模化する流れが加速し、ドロップアウトなど深層学習向けの正則化手法が発展した。
欠点
- 訓練データでの評価指標だけを見ていると、実運用での性能低下に気づきにくい
- モデルが小さなノイズにも反応するようになり、入力のわずかな変化で出力が不安定になることがある
- 対策(正則化やデータ拡張)の調整には試行錯誤とハイパーパラメータ探索の手間がかかる
比較
関連用語
よくある質問
過学習が起きているかはどう判断する?
訓練データでの損失・精度は改善し続けるのに、検証データでの損失がある時点から悪化し始める場合、過学習が起きているサインとされる。