【みがくしゅう】
未学習(アンダーフィッティング) とは?
最終更新:
💡 データの傾向を、十分に捉えられていない
モデルがデータの傾向を十分に捉えられていない適合不足の状態。過学習との違い、訓練・検証の評価、モデルや特徴量を見直す方法を解説します。
📌 このページのポイント
- 未学習は、学習済みでもデータへの適合が不十分な状態を指す
- 訓練と検証の両方で結果が悪いことが、判断の手掛かり
- 単純すぎるモデル、特徴量、正則化等を確認する
- 原因に応じて調整し、検証データで改善を確かめる
未学習は、まだ学習を始めていないこと?
ここではunderfitting、適合が不十分な状態だよ。学習を実施していても、データの傾向を捉えられないことがある。たとえば曲線の傾向を直線だけで表そうとすると、訓練に使った点にも合いにくいんだ。
過学習との違いは?
訓練も検証も悪ければ、すぐ断定できる?
未学習の手掛かりにはなるけれど、評価の基準やデータも確認しよう。比較する基準のモデル、特徴量やラベル、評価の計算が適切かも関係する。結果の悪さだけを見て、必ず学習回数が足りないと決めないことが大切なんだ。
どう改善する?
原因に合わせて、モデルの表現力、使う特徴量、正則化の強さなどを見直すよ。たとえば直線だけでは表せないなら、曲線を表せる特徴を用いる方法がある。複雑にすれば必ずよいわけではないので、検証の結果を比べよう。
学習時間を増やしたり、データを追加したりする?
学習が収束していないなら、学習の設定や回数を確認する価値はあるよ。でも表現できない形を、同じモデルで長く学習するだけでは直せない場合がある。学習曲線を見て、追加データで改善しそうかも判断するんだ。
もっと詳しく知りたい人へ
訓練と検証の差が小さければ、よいモデル?
両方の結果が悪いまま近付く場合もあります。差だけでなく、用途に必要な水準や基準のモデルとの比較で判断します。調整に使った検証データだけで最終性能を評価せず、別のテストデータで確かめます。
学習曲線の横軸は、必ず学習回数?
何を変えたグラフか確認します。scikit-learnのlearning_curveは訓練サンプル数を変え、validation_curveはハイパーパラメーターを変えて評価します。エポック数や時間に対する損失のグラフとは横軸が異なり、原因や対策の読み取り方も変わります。
まとめ:ざっくりこれだけ覚えればOK!
「未学習」って出てきたら「モデルが、データの傾向を十分に捉えられていない状態」と思えばだいたいOK!
📖 おまけ:英語の意味
「Underfitting」 = 適合不足・過少適合
💬 Underは不十分、fittingは適合です。この文脈の未学習は、一度も学習していないという意味ではなく、学習しても適合が足りない状態を指します。