過学習 (G検定)

過学習

1. 定義と概要

過学習(オーバーフィッティング、過剰適合とも呼ばれます)とは、機械学習モデルが訓練データ(モデルの学習に使うデータ)に過剰に適合してしまう状態です。その結果、未知のデータに対する性能である汎化性能(学習していない新しいデータにもうまく対応できる力)が低下します。

学習の進み具合を測る指標に、訓練誤差と汎化誤差があります。訓練誤差とは、モデルが学習に使ったデータに対してどれだけ間違えたかを表す指標です。一方、汎化誤差とは、モデルが未知のデータに対してどれだけ間違えたかを表す指標です。過学習が起きると、訓練誤差は小さくなり続ける一方で、汎化誤差は学習の途中から悪化に転じます。

例えば、データに含まれるノイズ(本質的でない誤差やばらつき)まで忠実に学習してしまうと、分類の境界線である決定境界(データをグループ分けする際の分かれ目となる線や面)が過度に複雑になります。その結果、訓練データにしか通用しないモデルができあがります。実務においても、学習時の指標だけを見て精度を判断すると、この過学習に気づかないことがあります。

モデルの学習が進むと、訓練誤差・汎化誤差はともに低下していきます。しかし、ある時点を境に訓練誤差は下がり続ける一方で、汎化誤差は増加に転じます。この分岐点以降の状態が過学習にあたります。

ディープラーニング(多層のニューラルネットワークを用いる機械学習の手法)はパラメータ(モデル内部で学習によって調整される数値)の数が非常に多く、モデルの表現力(モデルが表現できるパターンの複雑さの度合い)が高い構造です。そのため、訓練データが少ない場合や偏っている場合に過学習が起きやすいという文脈で語られます。

2. 試験対策ポイント

訓練誤差と汎化誤差の推移の違いから過学習を見分ける考え方は、試験で重要な論点です。学習が進むにつれて訓練誤差は下がり続けますが、汎化誤差がどこかで反転して悪化し始めた場合、そのモデルは過学習を起こしているとみなされます。

訓練誤差そのものが小さいかどうかも、後述する未学習(モデルが単純すぎて訓練データのパターンも十分にとらえられない状態)との切り分けにおいて手がかりになります。この判定の考え方は、モデルの性能を評価するあらゆる場面で使われる基本的な視点です。

過学習の主な原因としては、モデルの複雑さに対して訓練データの量が少ないことと、訓練データに含まれるノイズまで学習してしまうことの2つが挙げられます。モデルの表現力が高いほど、少ないデータからでも細かな特徴を拾いすぎてしまいます。本質的でない特徴まで覚え込む結果になります。

対策手法としては、いくつかの手法が概観として挙げられます。正則化(モデルが複雑になりすぎないよう罰則を与えて調整する手法)と、データ拡張(手持ちのデータに変化を加えて水増しする手法)は、その代表格です。これに加えて、アンサンブル学習(複数のモデルの予測を組み合わせて精度を高める手法)も挙げられます。

ドロップアウト(学習の際に一部のニューロンを無効にしてモデルを鍛える手法)も、代表的な手法の一つです。さらに、早期終了(検証データの性能が悪化し始めた時点で学習を打ち切る手法)も、これらと並ぶ代表的な手法です。

これら5つは、過学習と合わせて整理しておきたい関連用語の束です。名前だけを覚えるより、それぞれが何をしている手法なのかまで結び付けておくと取り違えにくくなります。各手法の詳しい仕組みは、個別のテーマとして扱われます。

3. 関連概念との比較・相違点

未学習(アンダーフィッティング)との最大の違いは、モデルが複雑すぎるか単純すぎるかという点にあります。過学習はモデルが複雑すぎて訓練データに過剰適合し、訓練誤差は小さいものの汎化性能が低い状態です。これに対して未学習は、モデルが単純すぎて訓練データに含まれるパターンすら十分にとらえられず、訓練誤差・汎化誤差の両方が大きいままの状態を指します。

訓練誤差そのものが小さければ過学習を、訓練誤差そのものが大きければ未学習を疑うという切り分け方が、試験でも実務でも使われます。両者を観点ごとに並べると、違いがはっきりします。

観点 過学習 未学習(アンダーフィッティング)
モデルの複雑さ 訓練データに対して複雑すぎる 訓練データに対して単純すぎる
訓練誤差 小さい 大きいまま
汎化誤差 大きい(汎化性能が低い) 大きいまま

両者を分けるもう一つの軸が、モデルの表現力です。表現力が高すぎると、モデルは訓練データの細部やノイズまで覚え込んでしまい、過学習に傾きます。逆に表現力が低すぎると、モデルはデータの背後にある本質的な関係すら学習しきれず、未学習に傾きます。表現力とデータの量・質のバランスが取れているかどうかが、過学習と未学習の分かれ目になっています。

正則化・データ拡張・アンサンブル学習・ドロップアウト・早期終了といった代表的な対策手法は、過学習という状態そのものとは異なる位置づけにあります。これらの手法は、モデルの複雑さを抑える方向、または実質的な訓練データの多様性を増やす方向のいずれかに働くという共通点があります。

過学習が「起きている状態」を指す言葉であるのに対し、これらの手法は「その状態を防ぐ手立て」にあたる点が、混同しやすいポイントです。この違いは、モデルの学習状況を評価する際の基本的な視点になります。

4. ビジネス・実務での活用シナリオ

画像認識の分野では、少量の訓練画像で学習した分類モデル(画像などのデータをカテゴリに振り分けるモデル)が、画像の背景や撮影条件といった本質的でない特徴まで学習してしまうことがあります。実際の運用で撮影された新しい画像に対しては精度が落ち、モデルが実務で使える水準に届かない事態を招きます。そのため、実運用を想定した多様な条件のデータをそろえることが、精度を保つうえでの課題になります。

金融の与信スコアリングでも、過学習は無視できない問題です。過去の顧客データに過剰適合したスコアリングモデルは、新規の顧客層に対して予測を誤りやすくなります。その結果、貸し倒れリスクを見落としたり、逆に過度に厳しい審査によって本来は取引できたはずの顧客を逃す機会損失につながったりします。与信の判断ミスは金融機関の収益や社会的信用に直接影響するため、汎化性能の確認が欠かせない領域です。

小売の需要予測の現場では、特定期間のセールスデータのノイズまで学習した予測モデルが、季節性の変化や新しい消費傾向に対応できなくなる場合があります。発注量の見積もりを誤ると、欠品による販売機会の損失や、過剰在庫によるコスト増加という形で経営に直接影響します。季節変動を織り込んだ検証データで定期的にモデルの精度を確認することが、需要予測の実務では重要になります。

5. 要点まとめ

  • 過学習とは、モデルが訓練データに過剰に適合し、訓練誤差は小さいまま未知のデータへの性能(汎化性能)が下がる状態を指します。
  • モデルが単純すぎて訓練誤差・汎化誤差ともに大きくなる未学習と対比され、モデルの表現力とデータ量のバランスが両者を分ける軸になります。
  • 対策としては正則化・データ拡張・アンサンブル学習・ドロップアウト・早期終了などが挙げられ、いずれもモデルの複雑さを抑える方向、または実質的なデータの多様性を増やす方向に働きます。

6. 確認問題

問1過学習は、訓練データに対する誤差(訓練誤差)は小さいにもかかわらず、未知のデータに対する誤差(汎化誤差)が大きくなる状態を指す。

解答・解説をみる

○ 正しい

過学習の定義そのものにあたります。訓練誤差は小さく保たれる一方で、汎化誤差が学習の途中から悪化に転じる点が特徴です。

問2未学習(アンダーフィッティング)は、モデルが単純すぎるために訓練データに対する誤差(訓練誤差)も大きくなる状態である。

解答・解説をみる

○ 正しい

未学習では、訓練誤差・汎化誤差の両方が大きいままです。訓練データに対する誤差そのものが小さいか大きいかが、過学習と未学習を見分ける手がかりになります。

問3過学習を防ぐには、モデルの表現力(複雑さ)をできる限り高めることが有効である。

解答・解説をみる

× 誤り

正しくは逆で、モデルの表現力を高めすぎることは過学習を助長する要因になります。過学習を抑えるには、正則化などでモデルの複雑さを適切に制御することが有効です。