了解如何识别、预防和解决机器学习中的过拟合问题。 探索提高模型泛化能力和实际性能的技术。
在机器学习中,当模型过度学习训练数据时就会发生过拟合,它捕捉到的往往是噪声和随机波动,而非数据的内在分布规律。 过度拟合的模型并非学习适用于新数据的通用模式,而是机械地记忆训练集中的具体样本。这导致模型在训练数据上表现优异,却无法推广到真实场景。这种现象常被描述为"高方差"——即模型预测结果会因训练数据集的具体差异而产生显著波动。
过拟合的主要原因是模型复杂度相对于可用数据量过高。若神经网络规模过大——即层数或参数过多——则极易死记硬背训练样本。其他诱因包括:
区分过拟合与欠拟合至关重要。过拟合指模型学习了过多细节(包括噪声),而欠拟合则发生在模型过于简单以至于完全无法捕捉数据的内在结构时。欠拟合模型在训练数据和新数据上表现均不佳,往往导致高偏差。平衡这两种极端现象被称为偏差-方差权衡。
工程师采用多种技术来缓解过拟合并提高模型鲁棒性:
在生产环境中部署人工智能时,过拟合可能带来严重后果:
Ultralytics 或本地训练脚本时,可通过设置提前终止阈值来防止过拟合。当验证集适应度在设定次数的迭代周期内未见提升时,系统将终止训练。
from ultralytics import YOLO
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Train with early stopping enabled (patience=50 epochs)
# If validation metrics don't improve for 50 epochs, training stops.
results = model.train(data="coco8.yaml", epochs=100, patience=50)