Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Early Stopping

当验证性能停滞时,提前停止会结束训练,从而减少不必要的计算并避免过拟合,同时保留模型表现最佳的检查点。

提前停止是一种训练技术:当受监控的性能指标不再改善时,它会结束一次迭代式机器学习运行。它让验证性能决定学习持续的时长,从而减少不必要的计算并限制过拟合。直观地说,当继续训练不再提升模型处理留出样本的能力时,训练就会停止。在机器学习之外,“提前停止”只是指在计划完成之前结束一项活动。

提前停止的工作原理#

训练期间,优化器会使用训练数据更新模型。模型会定期使用单独的验证数据进行评估。训练损失可能持续下降,而验证性能却逐渐变差:这表明出现了过拟合,也就是模型越来越贴合训练样本特有的细节。提前停止会根据留出数据上的性能选择停止点,以限制这一过程。

典型实现会跟踪最佳验证分数,保存对应的模型权重,并统计连续多少次检查没有达到足够的提升。一旦有提升,计数器就会重置;达到配置的耐心值后,训练就会结束。恢复最佳检查点可以保留观测到的最佳验证结果,而这个结果可能出现在最后一个训练步骤之前。

Nelson Morgan 和 Hervé Bourlard 在他们1989 年关于泛化与参数估计的研究中,为前馈神经网络引入了基于验证的停止方法。他们的实验包括语音分类,并展示了如何通过监控独立数据来选择训练时长。

指标、耐心值与最佳权重#

停止规则取决于几个设置:

  • 监控指标:验证损失衡量预测误差,目标是最小化;验证准确率衡量预测正确的比例,目标是最大化。
  • 耐心值与训练时长:耐心值指定训练最多容忍多少次未成功的检查。一个周期是对训练数据集的一次完整遍历。
  • 提升阈值:Keras 将其称为 min_delta,即被视为进步的最小绝对变化量。它的 restore_best_weights=True 设置会恢复与监控值最佳时对应的权重。
  • 验证检查频率:PyTorch Lightning 按验证检查次数计算耐心值。每十个周期检查一次、耐心值设为三,意味着在最佳检查之后的三十个周期内,最多允许三次未成功的检查。

耐心值和提升阈值属于超参数:在权重更新过程之外选择的设置。较小的耐心值会更早结束停滞的训练;较大的耐心值则允许更长时间的暂时停滞。预热期会延迟监控,让初始学习趋于稳定。这些设置会与学习率相互作用,学习率决定优化更新的幅度。

应用场景与可运行示例#

提前停止适用于神经网络和梯度提升树。在使用scikit-learn 进行梯度提升时,每个阶段都会添加一棵树,而基于验证的停止方法会控制阶段数。加利福尼亚房价示例使用 validation_fraction 留出数据,并使用 n_iter_no_change 在验证进展停滞后停止。

以下示例使用 scikit-learn 内置的糖尿病数据集,并输出实际拟合的提升阶段数:

from sklearn.datasets import load_diabetes
from sklearn.ensemble import GradientBoostingRegressor

X, y = load_diabetes(return_X_y=True)

# Reserve an internal validation split and monitor progress.
model = GradientBoostingRegressor(
    n_estimators=1000,
    validation_fraction=0.2,
    n_iter_no_change=10,
    random_state=42,
)
model.fit(X, y)

print(f"Boosting stages fitted: {model.n_estimators_}/1000")

拟合阶段数显示停止条件在 1,000 个阶段的上限内何处结束了树的构建。

Ultralytics YOLO 在模型训练期间应用提前停止,包括YOLO26,通过 patience 参数统计验证适应度没有提升的周期数。对于目标检测,适应度使用 mAP50–95;训练器会将最佳检查点保存为 best.pt。

提前停止是一种控制训练时长的正则化方法。权重衰减会惩罚较大的权重,而 dropout 会在训练期间随机禁用单元。这些机制可以同时使用。过早停止会导致欠拟合,使模型无法学到有用的模式。

检查点保存模型状态;提前停止则决定何时结束优化。交叉验证会轮换留出分区来评估模型选择,而单独的测试数据则用于最终评估。由于停止决策会根据验证结果选择模型,因此所选检查点的验证分数也是模型选择的一部分。

在 Keras 中,restore_best_weights 默认为 False,因此仅启用提前停止会使模型保留最后一步的权重。

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来