過学習(オーバーフィッティング)とは、モデルが訓練データに過剰に適合しすぎてしまい、新しいデータに対して予測精度が著しく低下する現象です。これを防ぐには、データの増強、正則化、ドロップアウト、交差検証などの手法が有効です。
🧩 過学習とは
定義: モデルが訓練データの特徴だけでなくノイズや偶然的なパターンまで学習してしまい、汎化性能(未知データへの適応力)が低下する状態。
典型的な症状:
訓練データでは高精度だが、テストデータでは精度が低い。
学習曲線で「訓練精度は上昇し続けるが、検証精度が頭打ちになる」。
原因:
モデルが複雑すぎる(パラメータ過多、深すぎるネットワークなど)。
訓練データが少ない、または偏っている。
データにノイズが多い。
学習時間が長すぎて細部まで暗記してしまう。
🔧 過学習の解消・防止方法
以下は代表的なアプローチです。
1. データ関連
データ量を増やす: 新しいデータ収集やデータ拡張(画像回転・反転、テキストの言い換えなど)。
データの質を改善: ノイズ除去やラベルの見直し。
2. モデル構造・学習方法
モデルの簡略化: 不要に複雑なモデルを避け、適切なパラメータ数に調整。
早期終了(Early Stopping): 検証データの精度が向上しなくなった時点で学習を止める。
3. 正則化(Regularization)
L1正則化(Lasso): 不要な特徴量をゼロにしてスパース化。
L2正則化(Ridge): 重みを小さく抑えて過剰適合を防ぐ。
Dropout: ニューラルネットワークの学習時にランダムにノードを無効化し、特定の特徴に依存しすぎないようにする。
4. 評価手法
交差検証(Cross Validation): データを複数分割して検証を繰り返し、汎化性能を安定的に評価。
学習曲線の確認: 訓練データと検証データの精度差を可視化して過学習を早期発見。
5. アンサンブル学習
Bagging(例: Random Forest)やBoosting(例: XGBoost, LightGBM)を用いて複数モデルを組み合わせ、過学習リスクを低減。
✅ まとめ
過学習 = 訓練データに過剰適合 → 新規データで性能低下。
解消法 = データ増強・正則化・モデル簡略化・早期終了・交差検証・アンサンブル。