過学習とは、機械学習モデルが訓練データに過剰に適合し、未知のデータへの予測性能が下がる現象です。本記事では、モデルの複雑さやデータ不足といった原因、交差検証による見分け方、正則化やドロップアウトなどの対策、よくある誤解を解説します。基礎から順に整理して紹介します。
過学習(Overfitting)とは、機械学習モデルが訓練データに対して過剰に適合してしまい、未知のデータに対する予測性能が低下する現象です。このページでは、原因、見分け方、対策、よくある誤解を解説します。
過学習とは、機械学習モデルが訓練データに対して過剰に適合してしまい、未知のデータに対する予測性能が低下する現象を指します。モデルが訓練データに含まれるノイズや異常値まで学習してしまうことが原因で、汎化能力が失われることが問題となります。
| 原因 | 内容 |
|---|---|
| モデルが複雑すぎる | ニューラルネットワークの層が深すぎたり、決定木の分岐が細かすぎたりして、訓練データ特有のパターンを過剰に学習する |
| 訓練データが不足している | データ量が少ないと、より一般的なパターンを学べない |
| 訓練データに偏りがある | 特定のクラスのデータが極端に少ないと、偏った学習になる |
データの量や質が関わる問題については学習用データ、モデル側の複雑さはハイパーパラメータの記事もあわせてご覧ください。
訓練データに対する性能は高いのに、検証データに対する性能が低い場合は、過学習が発生している可能性が高いと判断できます。交差検証では、データを複数のグループに分割し、一部を訓練データ、残りを検証データとして使用します。このプロセスを繰り返すことで、モデルの汎化性能をより正確に評価できます。また、学習の進行を学習曲線で観察することも有効です。
関連する手法としてドロップアウトやデータ拡張も広く用いられます。詳しい内容はドロップアウトの記事もあわせてご覧ください。
正則化は、モデルのパラメーターに制約を加えることで、複雑なモデルを抑制し、汎化性能を高める効果があります。
機械学習の目的は、学習に使ったデータだけでなく、未知のデータに対しても正しく予測できることです。この能力を汎化性能と呼びます。過学習はこの汎化性能を損なうため、モデルの見た目の精度が高くても、実運用では役に立たないという事態につながります。
過学習かどうかは、訓練データと検証データの性能差で判断するのが基本です。訓練では高精度なのに検証で精度が伸びないなら、モデルが訓練データの細部を覚えてしまっている可能性があります。
過学習とは逆に、モデルが単純すぎて訓練データにさえ十分に適合できない状態をアンダーフィッティングと呼びます。両者は表裏の関係にあり、モデルの複雑さを適切な水準に保つことが求められます。
実際は:訓練データでの精度が高くても、未知のデータで性能が低ければ過学習です。検証データでの評価が重要です。
実際は:データ量の確保は有効ですが、モデルの複雑さの調整や正則化など、あわせた対策が必要な場合があります。
実際は:モデルの複雑さ、データの量や偏りなど、複数の要因が重なって起こります。
A. 過学習は訓練データに適合しすぎる状態、アンダーフィッティングは訓練データにも十分適合できていない状態です。
A. 学習曲線を観察し、訓練データと検証データの性能差を継続的に確認します。
A. 正則化やドロップアウトの導入、データ量の確保、モデルの複雑さの抑制が代表的です。
用語の一覧はAI用語辞典トップからたどれます。実際のツール比較はAIツール一覧をご覧ください。
本記事にはアフィリエイトリンクを含む場合があります。経由での申し込み時に当サイトが報酬を受け取ることがありますが、掲載内容・評価は報酬の有無に左右されません。記載情報は公開時点のものであり、最新情報は各公式サイトをご確認ください。
編集部の評価方法論を見る →