概述
耐心规则可以容忍暂时的停滞或噪声,同时保留最佳检查点;其对泛化的影响取决于指标、数据和训练设置。
深入探讨
训练损失可能持续下降,而验证性能趋于平稳或恶化,这可能表明过拟合。早停规则监控选定的验证指标,并在配置的检查次数内未出现合格提升时停止。耐心设置允许暂时的停滞;min_delta 可指定计为提升的最小变化。实现方式在检查时机以及是否自动恢复最佳权重上有所不同,需验证回调行为并保存或恢复所需的检查点。验证曲线通常——但并非必然——显示初始提升后出现平台期或下降。早停可通过限制优化时间起到正则化作用,但并不保证更低的测试误差;验证数据应与最终测试评估分离。
现实世界的实施
Keras EarlyStopping 回调,耐心 = 10 监视图像分类器上的 val_loss 和 Restore_best_weights = True
当验证 AUC 平稳时停止梯度增强树 (XGBoost Early_stopping_rounds) 以避免添加无用的树
一旦验证 F1 停止上升,就停止对 BERT 情绪模型进行微调,从而节省 GPU 时间
Kaggle 竞争对手使用验证折叠提前停止并选择日志损失最低的检查点
提前停止的未来
提前停止仍然是几乎所有训练流程中的默认设置,但其角色正在发生变化。通过在大规模语料库上针对单个时期训练非常大的模型,经典的基于时期的停止被对代币预算和学习率计划的监控所取代。预计与自动超参数搜索、多指标标准和预算感知调度程序的更紧密集成,这些调度程序决定何时继续训练不再证明其计算和碳成本是合理的。
付诸实践
为什么这很重要
- 更清晰的判决. 它可以帮助您将清晰的技术声明与营销语言分开。
- 成本与预算. 在花费金钱或时间之前,您可以提出更好的实施问题。
- 团队与工作流程. 具有共同理解的团队可以做出更好的产品、政策和学习决策。
留意
- 不同的团队可能会以不同的方式使用同一术语,因此请尽早定义范围。
- 基准测试可能看起来很强大,但实际性能却参差不齐。
- 忽视数据质量和评估计划通常会产生脆弱的结果。
后续步骤
- 从您需要的结果的简单语言定义开始。
- 在测试之前选择一种成功指标和一种失败条件。
- 使用代表性数据运行小型试点,而不是完善的演示集。
- 记录早期停止在哪些方面有帮助以及哪些更简单的方法更好。
不断探索
常见问题
什么是 Early Stopping?
早停使用验证指标决定何时停止训练运行。耐心规则可以容忍暂时的停滞或噪声,同时保留最佳检查点;其对泛化的影响取决于指标、数据和训练设置。
提前停车主要监测什么信号来决定何时停车?
提前停止会观察持续的验证指标,因为即使模型过度拟合,训练损失也会持续下降。
“耐心”参数控制什么?
耐心是指在训练停止之前允许没有改进的时期数,平滑嘈杂的验证曲线。
提早停止触发后,您通常应该保持哪些重量?
您从具有最佳验证分数的纪元(而不是最后一个纪元)恢复检查点,后者可能已经过拟合。
为什么早停可以作为一种正则化形式?
基于验证行为的停止可以限制持续拟合,但它并不等同于添加 L2 惩罚,也不能保证提升测试性能。
“min_delta”阈值通常指定什么?
min_delta 设置了重置耐心计数器所需的改进幅度,防止微小的波动看起来像是真正的进步。