過学習(オーバーフィッティング)とは?原因と対策を徹底解説

AIを知りたい
機械学習のモデルが「過学習している」とよく聞くのですが、どういう状態のことですか?

AIエンジニア
過学習とは、訓練データに対しては高い精度を出すのに、未知のデータには全然当たらないという状態です。モデルがデータの本質的なパターンではなく、ノイズや偶然のパターンまで覚えてしまっているんです。

AIを知りたい
テストで満点なのに実力テストで点が取れない、みたいな感じですか?

AIエンジニア
まさにその通りです!過去問を丸暗記して模試では高得点だけど、初見の問題が解けないのと同じ状態です。機械学習ではこの「初見の問題に対応できる力」を「汎化性能」と呼びます。
過学習(オーバーフィッティング)とは、モデルが訓練データのノイズや細部まで学習してしまい、未知のデータに対する予測性能が低下する現象です。
訓練誤差は低いのにテスト誤差が高い状態で発生します。適切なモデルの複雑さの制御と正則化が対策の基本です。反対に、モデルが単純すぎて訓練データすら正しく学習できない状態を「未学習(アンダーフィッティング)」と呼びます。
過学習が起きる原因

AIを知りたい
なぜ過学習が起きてしまうのですか?

AIエンジニア
主な原因は3つあります。1つ目はモデルが複雑すぎること。パラメータ数がデータ量に対して多すぎると、ノイズまで覚えてしまいます。2つ目は訓練データが少ないこと。サンプルが少ないと偏ったパターンを学習しやすくなります。3つ目は学習回数が多すぎることです。

AIを知りたい
どうやって過学習が起きていると判断するんですか?

AIエンジニア
学習曲線(Learning Curve)を見るのが一番わかりやすいです。エポックが進むにつれて訓練損失は下がり続けるのにバリデーション損失が上がり始めたら、それが過学習の兆候です。訓練精度とテスト精度の差が大きい場合も過学習を疑います。
| 状態 | 訓練精度 | テスト精度 | 原因 |
|---|---|---|---|
| 未学習 | 低い | 低い | モデルが単純すぎる |
| 適切な学習 | 高い | 高い | バランスが取れている |
| 過学習 | 非常に高い | 低い | モデルが複雑すぎる |
過学習を防ぐ手法

AIを知りたい
過学習を防ぐにはどうすればいいですか?

AIエンジニア
対策は大きく分けて4つのアプローチがあります。データを増やす(データ拡張含む)、モデルを単純化する(層やパラメータを減らす)、正則化を使う(L1/L2正則化、ドロップアウト)、早期停止(Early Stopping)で最適なタイミングで学習を止める方法です。

AIを知りたい
ドロップアウトって何ですか?

AIエンジニア
ドロップアウトは学習時にランダムにニューロンを無効化する手法です。例えばドロップアウト率0.5なら、各学習ステップで半分のニューロンがランダムに使われません。これにより特定のニューロンへの依存を防ぎ、汎化性能が向上します。ディープラーニングでは必須のテクニックです。
| 対策 | 方法 | 適用場面 |
|---|---|---|
| データ拡張 | 回転・反転・ノイズ追加等 | 画像分類など |
| L1正則化(Lasso) | 重みの絶対値にペナルティ | 特徴選択が必要な場合 |
| L2正則化(Ridge) | 重みの二乗にペナルティ | 一般的な過学習防止 |
| ドロップアウト | ニューロンのランダム無効化 | ニューラルネットワーク |
| Early Stopping | 検証誤差が上昇したら停止 | 反復学習全般 |
| 交差検証 | 複数の分割で評価 | モデル選択・評価 |
バイアスとバリアンスのトレードオフ

AIを知りたい
過学習の話と関連して「バイアス-バリアンストレードオフ」という言葉を見たのですが?

AIエンジニア
これは機械学習の根本的な概念です。バイアスはモデルの予測が平均的にどれだけずれているか、バリアンスはデータが変わったときに予測がどれだけブレるかを表します。単純なモデルはバイアスが高くバリアンスが低い、複雑なモデルはその逆です。

AIを知りたい
結局、ちょうどいい複雑さを見つけることが大切なんですね。

AIエンジニア
その通りです。バイアスとバリアンスの合計が最小になるスイートスポットを見つけることが、良いモデルを作る本質です。交差検証でテスト精度を確認しながら、正則化の強さやモデルの複雑さを調整していきましょう。
まとめ
過学習は機械学習において最も注意すべき問題の一つです。訓練データへの過剰な適合を防ぐために、正則化、ドロップアウト、早期停止、データ拡張など複数の対策を組み合わせましょう。バイアスとバリアンスのトレードオフを理解し、交差検証で汎化性能を確認しながらモデルを調整することが、信頼性の高い予測を実現する鍵です。
