提前停止
早期停止是一种正则化技术,当保留的验证数据的性能停止改善时,该技术会停止模型训练。
概述
It prevents wasted compute and overfitting in one simple rule.
深入探讨
当你训练神经网络时,训练集误差不断下降,但在某个时刻,模型开始记住噪声而不是学习模式。验证误差遵循 U 形:它下降,达到最小值,然后随着过度拟合的出现而攀升。提前停止在每个 epoch 后观察验证指标(损失、准确度、F1),并在一定数量的 epoch 内无法改进时停止,称为耐心。至关重要的是,您保留最好时期的权重,而不是最后时期的权重。它是最便宜的正则化形式之一,因为它不需要额外的惩罚项,并且有效地限制了权重偏离其初始化的距离,其本质类似于 L2 正则化。
技术洞察
实施跟踪最佳验证分数和计数器。每个时期,如果指标改善超过 min_delta 阈值,则保存检查点并重置计数器;否则你就增加它。当计数器达到耐心极限时,训练停止并恢复最佳检查点。耐心以鲁棒性与总训练时间的噪声验证曲线为代价,并且通常与学习率和批量大小一起调整。
战略影响
更清晰的判决
它可以帮助您将清晰的技术声明与营销语言分开。
成本与预算
在花费金钱或时间之前,您可以提出更好的实施问题。
团队与工作流程
具有共同理解的团队可以做出更好的产品、政策和学习决策。
提前停止的未来
提前停止仍然是几乎所有训练流程中的默认设置,但其角色正在发生变化。通过在大规模语料库上针对单个时期训练非常大的模型,经典的基于时期的停止被对代币预算和学习率计划的监控所取代。预计与自动超参数搜索、多指标标准和预算感知调度程序的更紧密集成,这些调度程序决定何时继续训练不再证明其计算和碳成本是合理的。
现实世界的实施
Keras EarlyStopping 回调,耐心 = 10 监视图像分类器上的 val_loss 和 Restore_best_weights = True
当验证 AUC 平稳时停止梯度增强树 (XGBoost Early_stopping_rounds) 以避免添加无用的树
一旦验证 F1 停止上升,就停止对 BERT 情绪模型进行微调,从而节省 GPU 时间
Kaggle 竞争对手使用验证折叠提前停止并选择日志损失最低的检查点
风险与防护栏
不同的团队可能会以不同的方式使用同一术语,因此请尽早定义范围。
基准测试可能看起来很强大,但实际性能却参差不齐。
忽视数据质量和评估计划通常会产生脆弱的结果。
实施路线图
从您需要的结果的简单语言定义开始。
在测试之前选择一种成功指标和一种失败条件。
使用代表性数据运行小型试点,而不是完善的演示集。
记录早期停止在哪些方面有帮助以及哪些更简单的方法更好。
不断探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Early Stopping quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常见问题
What is Early Stopping?
早期停止是一种正则化技术,当保留的验证数据的性能停止改善时,该技术会停止模型训练。它可以通过一个简单的规则来防止计算浪费和过度拟合。
提前停车主要监测什么信号来决定何时停车?
提前停止会观察持续的验证指标,因为即使模型过度拟合,训练损失也会持续下降。
“耐心”参数控制什么?
耐心是指在训练停止之前允许没有改进的时期数,平滑嘈杂的验证曲线。
提早停止触发后,您通常应该保持哪些重量?
您从具有最佳验证分数的纪元(而不是最后一个纪元)恢复检查点,后者可能已经过拟合。
为什么早期停止被视为一种正规化形式?
提前停止可以使权重更接近其初始化,这具有与权重衰减相当的正则化效果。
“min_delta”阈值通常指定什么?
min_delta 设置了重置耐心计数器所需的改进幅度,防止微小的波动看起来像是真正的进步。