過学習とは? - 「勉強しすぎ」のワナ
過学習(Overfitting)は、機械学習モデルを訓練する際に発生する最も一般的な問題の一つです。これは、モデルが訓練データに「適応しすぎて」、そのデータの細かいノイズや偶然のパターンまで学習してしまった状態を指します。その結果、訓練データに対しては非常に高い精度を出しますが、未知の新しいデータに対しては全く役に立たない「応用力のないモデル」になってしまいます。
このデモで観察するポイント
-
訓練データ (青い点): モデルが学習するために使う、ノイズを含んだ観測データです。
-
真の関数 (緑の線): 本来データが従うべき、ノイズのない理想的な関係性です。現実世界ではこの線は見えませんが、ここではモデルの性能を評価するために表示しています。
-
予測モデル (赤い線): 訓練データを元に学習して作られた予測線です。
このモデルは多項式回帰という手法で作られており、スライダーで調整している「多項式の次数」が、モデルの表現力を決定します。
- 次数 1 (
y = ax + b
): 単純な直線しか表現できません。
- 次数 2 (
y = ax² + bx + c
): 一度だけ曲がる放物線を表現できます。
- 次数 3 (
y = ax³ + ...
): S字のような、より複雑な曲線を表現できます。
このように、次数を上げるほど、モデルはよりグニャグニャと複雑な線を引けるようになります。これが「モデルの複雑さ」の正体です。
スライダーを動かして体験しよう!
-
モデルの複雑さが低い時 (次数: 1〜3) - 学習不足 (Underfitting)
赤い線は訓練データの全体的な傾向を捉えられていません。訓練誤差も真の誤差も両方高い状態です。これはモデルが単純すぎて、データの特徴を十分に学習できていないことを意味します。
-
モデルの複雑さが適切な時 (次数: 4〜6あたり) - ちょうど良い学習
赤い線が、緑の「真の関数」に非常に近くなります。このとき、真の誤差が最も小さくなります。これが、未知のデータに対しても高い性能を発揮できる、汎用性の高い「良いモデル」です。
-
モデルの複雑さが高すぎる時 (次数: 7以上) - 過学習 (Overfitting)
赤い線は、全ての青い点を無理やり通ろうとして、グニャグニャと不自然に曲がり始めます。その結果、訓練誤差はどんどん小さくなりますが、緑の「真の関数」からは大きく外れてしまい、真の誤差は逆に増大していきます。これが典型的な過学習です。このモデルは、訓練データには完璧にフィットしていますが、新しいデータが来ても全く正しい予測はできません。
AI開発者は、この「訓練誤差」と「真の誤差(実際には検証データ誤差で代用)」のバランスを常に見ながら、モデルが過学習に陥らないように、モデルの複雑さを調整したり、正則化などのテクニックを使ったりしています。