過学習(Overfitting)と未学習(Underfitting)とは何ですか?それらを回避するにはどうすればよいですか?

秀梅 蒋
秀梅 蒋

はい、承知いたしました。機械学習で特によく見られる2つの概念について、分かりやすくお話ししましょう。


想像してみてください。あなたはロボットの生徒(これが「モデル」です)に猫の識別方法を教えています。あなたは生徒にたくさんの猫の写真(これらが「訓練データ」です)を見せ、学習後には新しい写真(「テストデータ」)を見ても、それが猫かどうか正確に判断できるようになることを期待しています。

アンダーフィッティングとは?

アンダーフィッティングとは、簡単に言えば**「学習不足で、基本ができていない」**状態です。

このロボットの生徒は「頭が悪すぎる」か、あなたの教え方が「適当すぎる」かのどちらかです。写真をいくら見ても、基本的な法則すら掴めていません。例えば、「毛があるものは猫だ」としか学ばず、犬やウサギ、さらには毛皮のコートまで猫だと判断してしまうかもしれません。

  • 特徴: 新しい写真(テストデータ)に対しては全く間違った判断をするだけでなく、以前教えた古い写真(訓練データ)ですら、全てを認識できません。まさに「両方とも成績が悪い生徒」と言えるでしょう。
  • 原因: 通常、モデルが単純すぎて、データ内の複雑な法則を捉えきれていないためです。小学生に微積分を解かせようとするようなもので、適切なツールがありません。

(上の図では、モデル(青線)が単純すぎて、データの傾向を全く捉えられていません)

アンダーフィッティングを避けるには?

生徒を教えるのと同じように、「もっと力を入れる」必要があります。

  1. モデルの複雑さを増やす: もっと「賢い」生徒に変えましょう。例えば、単純な線形モデルから複雑なニューラルネットワークに切り替えるなどです。
  2. 特徴量を増やす: 生徒にもっと詳細を教えましょう。「毛があるかどうか」だけでなく、「目の形」や「耳の形」、「ひげ」なども見るように指示します。
  3. 正則化を減らす: (これは少し専門的ですが)「束縛を緩める」と理解できます。生徒が「考えすぎる」(オーバーフィッティング)のを防ぐために、私たちは彼にいくつかの制限(正則化)を課すことがあります。もし彼が「頭が悪すぎる」と分かったら、これらの制限を少し緩める必要があります。
  4. 訓練時間を長くする: もっと学習時間を与え、繰り返し見せ、繰り返し学ばせましょう。

オーバーフィッティングとは?

オーバーフィッティングは、その逆で、**「学習しすぎて、本質を見失う」**状態です。

このロボットの生徒は「優等生」ですが、少し「ガリ勉」気質です。猫の一般的な特徴を学ぶのではなく、あなたが与えた写真のあらゆる細部を丸暗記してしまいました。

例えば、「写真Aの左上隅にピクセルがある黒猫は猫だ」、「写真Bの右下隅に花瓶がある白猫は猫だ」といった具合に記憶してしまいます。

  • 特徴: あなたが与えた古い写真(訓練データ)では、答えを全て暗記しているため、ほぼ100%の精度を達成できます。しかし、草むらにいる猫のような新しい写真を与えると、その写真の背景やピクセルを「暗記していない」ため、途方に暮れてしまいます。これが、いわゆる**「汎化能力の低さ」**です。
  • 原因: 通常、モデルが複雑すぎるか、訓練データが少なすぎるためです。モデルが強力すぎて、本質的な法則を学ぶのではなく、全てのノイズや偶然の特性を記憶してしまいます。

(上の図では、モデル(緑線)が複雑すぎて、個々のデータ点に合わせるために異常に歪んでいます)

オーバーフィッティングを避けるには?

「ガリ勉」を治すには、彼に多くの経験をさせ、一点に固執させないようにする必要があります。

  1. データ量を増やす: これが最も効果的な方法です!数えきれないほどの、様々な種類の猫の写真を見せましょう。データが多ければ多いほど、彼は全ての細部を記憶することができなくなり、猫の共通の特徴を学ぶことを強いられます。
  2. データ拡張 (Data Augmentation): そんなに多くの新しい写真がない場合は、「作り出す」ことができます。既存の写真を回転、拡大縮小、切り抜き、色変更などを行い、「見た目は違うが本質は同じ」新しいデータを作成します。
  3. モデルの複雑さを下げる: そんなに「賢い」生徒を使うのはやめて、もう少し「普通」の生徒に変えましょう。そうすれば、彼はそんなに多くの細部を記憶する能力がなくなります。
  4. 正則化 (Regularization) を使用する: 生徒の学習過程に「罰則」を加えましょう。もし彼が派手で複雑な記憶をしようとするなら、彼の点数を減点します。これにより、彼はより単純で汎用的な法則を学ぶことを強いられます。
  5. ドロップアウト (Dropout) を使用する: (ニューラルネットワークでよく使われます)授業中に一部の生徒がランダムに「サボる」と理解できます。訓練中に、一部のニューロンをランダムに機能させなくすることで、モデルが少数のニューロンに過度に依存するのを強制的に防ぎ、ネットワーク全体がより「頑健」に学習するようにします。
  6. 早期停止 (Early Stopping): 訓練中に、彼に教えながら、新しい写真でテストします。新しい写真でのスコアが下がり始めたら(彼が丸暗記し始めたことを示しています)、すぐに訓練を停止します。

まとめ

特徴アンダーフィッティング (Underfitting)オーバーフィッティング (Overfitting)理想的なモデル (Good Fit)
例え落ちこぼれ、理解不足ガリ勉、丸暗記優等生、応用力がある
訓練データでの性能悪い非常に良い良い
テストデータでの性能悪い悪い良い

私たちの最終目標は、汎化能力が高い理想的なモデルを訓練することです。それは落ちこぼれでもガリ勉でもなく、応用力があり、新しい問題でも優れた性能を発揮できる良い生徒のようなものです。実際の運用では、常にアンダーフィッティングとオーバーフィッティングの間の完璧なバランス点を見つけることになります。