Underfitting
アンダーフィッティングとは、モデルが単純すぎるか学習不足で、データ内のパターンを捉えられず、学習データと新しいデータの両方で誤りが生じる状態です。兆候と解決策について解説します。
機械学習(ML)モデルが学習データのパターンを捉えられず、学習した例にも新しい例にも大きな誤差を出す状態を、アンダーフィッティングといいます。単純な線形回帰で曲線に沿った点を直線に当てはめるのが典型例です。傾きや切片をどのように選んでも、曲がり方を捉えられません。アンダーフィットしたモデルはバイアスが高く、入力と出力の実際の関係に対して仮定が制約されすぎており、学習セットとテストデータの両方で精度が低くなります。
アンダーフィッティングの兆候#
最も明確な兆候は、トレーニング損失が高止まりすることです。損失関数が許容水準を大きく上回って停滞し、検証データの損失もそれに近い場合、モデルは十分に学習できていません。両者の差が小さいことから、記憶が問題ではないと分かります。誤差をトレーニングセットのサイズに対してプロットする学習曲線にも別の兆候が現れます。両方の曲線が高い誤差のまま平坦になり、同種のデータを増やしてもほとんど改善しません。物体検出では、トレーニングに使った画像でさえ平均適合率(mAP)が低いモデルはアンダーフィッティングしています。これはUltralyticsのモデルテストガイドに記載された確認事項の1つです。両方の損失を比較すれば、アンダーフィッティングと過学習を区別できます。
よくある原因#
- モデル容量が小さすぎる: モデルファミリーがパターンを表現できません。たとえば、曲線状のデータに線形モデルを使う場合や、複雑なビジョンタスクに非常に小さなネットワークを使う場合です。
- エポック数が少なすぎる: 学習を早期に停止する、または利用できる時間内に進捗が出ないほど学習率を小さくすると、収束前にオプティマイザーが停止します。
- 正則化が強すぎる: 強い重み減衰、高いドロップアウト率、または過度に強い拡張によってモデルが制約され、信号に適合できなくなります。
- 情報量の少ない特徴: 変数の欠落や、小さな物体が消えるほど画像を縮小することにより、モデルに必要な情報が失われます。
- 勾配消失などの最適化の失敗: モデルに十分な容量があっても、深いネットワークの初期層が学習を停止します。
コードで見るアンダーフィッティング#
次の例では、scikit-learnを使って正弦曲線のノイズを含むサンプルに直線と3次多項式を当てはめ、学習点とテスト点の平均二乗誤差(MSE)を出力します。
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import PolynomialFeatures
# Noisy samples of a curved function
rng = np.random.default_rng(0)
x = rng.uniform(-3, 3, size=(200, 1))
y = np.sin(x).ravel() + rng.normal(0, 0.1, size=200)
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=0)
# A straight line underfits; a cubic polynomial has enough capacity for the curve
for degree in (1, 3):
model = make_pipeline(PolynomialFeatures(degree), LinearRegression()).fit(x_train, y_train)
train_mse = mean_squared_error(y_train, model.predict(x_train))
test_mse = mean_squared_error(y_test, model.predict(x_test))
print(f"degree {degree}: train MSE {train_mse:.3f}, test MSE {test_mse:.3f}")直線モデルの学習MSEは0.193、テストMSEは0.188で、どちらも高く、ほぼ同じです。これはアンダーフィッティングの典型的な特徴です。3次多項式では、それぞれ0.013と0.017まで下がり、データに加えたノイズによって定まる下限の0.010に近づきます。
アンダーフィッティングの解消#
原因に応じた対策には、より大規模または表現力の高いモデル、適切な学習率での長時間トレーニング、正則化の緩和やデータ拡張、画像解像度を高めるなどの豊富な入力があります。YOLO26には、1つのアーキテクチャの深さと幅を調整したn、s、m、l、xのサイズがあります。実行のresults.csvでトレーニング損失と検証損失の両方が高いままの場合、通常はyolo26n.ptから大きなサイズに変更するのが最初の対策です。コンピュータービジョンでは小物体がよくある問題です。低い入力解像度でドローン映像を見る検出器は、より大きな入力解像度なら保持できる小物体を見逃すことがあります。
未学習と過学習の比較#
アンダーフィッティングとオーバーフィッティングは、バイアス・バリアンスのトレードオフにおける2つの失敗モードです。アンダーフィットしたモデルはバイアスが高く、学習データと未知のデータで同様の誤りをします。一方、オーバーフィットしたモデルはバリアンスが高く、ノイズも含めて学習データに過度に適合するため、汎化性能が低くなります。従来の図では、テスト誤差がU字型の曲線を描き、左側がアンダーフィッティング、右側がオーバーフィッティングになります。大規模なニューラルネットワークでは、二重降下によってこの関係が複雑になります。モデルが学習データに完全に適合できるほど大きくなると、テスト誤差が再び下がることがあり、このパターンはモデルサイズと学習エポック数にわたって観察されています。










