過学習は、モデルがトレーニング データ内の基礎となるパターンだけでなく、その特定のデータセットに存在するノイズやランダム性も学習するときに発生します。その結果、モデルはトレーニング データでは非常にうまく機能しますが、新しいまだ見たことのないデータには一般化できません。
## 識別
-
トレーニング精度は高く、テスト精度は低い: 主な指標の 1 つは、モデルがトレーニング データでは非常に優れたパフォーマンスを発揮するが、テストまたは検証データではパフォーマンスが低下する場合です。
-
モデルの複雑さ: オーバーフィット モデルは過度に複雑になる傾向があり、基礎となるパターンではなくノイズを捕捉します。
-
視覚化: トレーニング セットと検証セットのパフォーマンスを示す学習曲線などのプロットでは、トレーニング パフォーマンスが向上し続ける一方で検証パフォーマンスが頭打ちまたは低下する場合、過学習が明らかになる可能性があります。
過剰学習を軽減するための予防と手法
-
相互検証: k 分割相互検証 のような手法は、データのさまざまなサブセットに対するモデルのパフォーマンスを評価し、モデルを適切に一般化するのに役立ちます。
-
トレーニング、検証、テストの分割: トレーニング、検証、テストのためにデータを個別のセットに分割することで、目に見えないデータに基づいてモデルが確実に評価されます。
-
特徴の選択: 最も関連性の高い特徴のみを使用してモデルをトレーニングし、情報量の少ない属性によるノイズを回避します。
-
正則化: L1 または L2 正則化のような手法では、モデルの損失関数にペナルティ項を追加し、過度に複雑なモデルを回避します。
-
早期停止: 検証セットでモデルのパフォーマンスを監視し、パフォーマンスが低下し始めたらトレーニングを停止し、トレーニング データに対する過剰な最適化を防ぎます。
-
アンサンブル手法: バギング、ブースティング、スタッキングなどの手法を使用すると、複数のモデルの予測を組み合わせることで過剰適合を軽減できます。
-
データ拡張: 特定のタイプのモデルでは、既存のデータに変換または摂動を適用して追加のトレーニング データを生成すると、過剰適合の防止に役立ちます。
モデルの複雑さ、データセットのサイズ、正則化手法のバランスをとることは、モデルが新しい未知のデータに対して適切に一般化されるようにしながら、過学習を防ぐために重要です。