Underfitting
欠拟合是指模型过于简单或训练不足,无法捕捉数据中的模式,因此在训练数据和新数据上都会出错。了解其迹象和解决方法。
当机器学习(ML)模型无法捕捉训练数据中的模式时,就会发生欠拟合;因此,模型不仅在学过的样本上会出现较大误差,在新样本上也会如此。一个经典例子是用直线拟合沿曲线分布的点,就像简单的线性回归那样:无论如何选择斜率和截距,都无法跟随曲线的弯曲变化。欠拟合模型具有较高的偏差,这意味着模型的假设对输入与输出之间的真实关系限制过多,因此模型在训练集和测试数据上的准确率都很低。
欠拟合的迹象#
最明显的信号是训练损失一直居高不下。当损失函数在远高于可接受水平的位置趋于平稳,而验证数据损失接近训练损失时,说明模型学习不足;两者之间的差距很小,则表明问题并非模型记住了数据。学习曲线会绘制误差随训练集大小的变化,显示出第二个信号:两条曲线都在高误差处趋于平稳,因此增加同类型数据几乎没有帮助。在目标检测中,如果模型在自己训练过的图像上平均精度均值 (mAP)仍然很低,就说明模型欠拟合;这是 Ultralytics 模型测试指南中的一项检查。比较两种损失可以区分欠拟合与过拟合:
常见原因#
- 模型容量过小:模型系列无法表示数据中的模式,例如在曲线数据上使用线性模型,或在复杂视觉任务中使用非常小的网络。
- 训练轮数太少:过早停止训练,或使用过小的学习率,导致模型无法在可用时间内取得进展,都会使优化器在收敛前停止。
- 正则化过强:权重衰减过大、Dropout 比例过高或数据增强过于激进,都会过度限制模型,使其无法拟合数据中的有效信号。
- 特征缺乏信息:缺少变量,或将图像缩小到小目标消失,都会移除模型所需的信息。
- 梯度消失及其他优化失败:即使模型容量足够,深层网络的早期层也可能停止学习。
代码中的欠拟合#
下面的示例使用 scikit-learn 分别用直线和三次多项式拟合正弦曲线的含噪样本,然后报告训练点和测试点上的均方误差(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;两者都很高且几乎相同,这是欠拟合的典型表现。三次多项式将两者分别降至 0.013 和 0.017,接近数据所加噪声决定的 0.010 下限。
如何解决欠拟合#
修复方法应针对问题根源:使用更大或表达能力更强的模型;以合适的学习率延长训练;减弱正则化或数据增强;以及使用更高图像分辨率等更丰富的输入。YOLO26提供n、s、m、l 和 x 尺寸,通过缩放同一架构的深度和宽度来区分模型大小;如果某次运行的 results.csv 中训练和验证损失都很高,通常会先从 yolo26n.pt 切换到更大的尺寸。在计算机视觉中,小目标是常见问题:使用较低输入尺寸处理无人机视频的检测器会漏掉小目标,而更高的输入尺寸可以保留这些目标。
欠拟合与过拟合#
欠拟合和过拟合是偏差-方差权衡的两种失败模式。欠拟合模型偏差较高,在训练数据和新数据上都会出现类似错误;过拟合模型方差较高,会紧密拟合训练数据(包括噪声),但泛化能力较差。经典示意图是一条呈 U 形的测试误差曲线,左侧是欠拟合,右侧是过拟合。大型神经网络使这个问题更加复杂,因为存在双下降现象:模型规模足以精确拟合训练数据后,测试误差可能再次下降;这种现象已在不同模型规模和训练轮数下观察到。










