基础知识指南

提前停止

早期停止是一种正则化技术,当保留的验证数据的性能停止改善时,该技术会停止模型训练。

概述

早期停止是一种正则化技术,当保留的验证数据的性能停止改善时,该技术会停止模型训练。它可以通过一个简单的规则来防止计算浪费和过度拟合。

Early Stopping 位于核心人工智能工具包中。当你理解它时,其他人工智能主题就变得更容易评估和比较。

深入探讨

当你训练神经网络时,训练集误差不断下降,但在某个时刻,模型开始记住噪声而不是学习模式。验证误差遵循 U 形:它下降,达到最小值,然后随着过度拟合的出现而攀升。提前停止在每个 epoch 后观察验证指标(损失、准确度、F1),并在一定数量的 epoch 内无法改进时停止,称为耐心。至关重要的是,您保留最好时期的权重,而不是最后时期的权重。它是最便宜的正则化形式之一,因为它不需要额外的惩罚项,并且有效地限制了权重偏离其初始化的距离,其本质类似于 L2 正则化。

技术洞察

实施跟踪最佳验证分数和计数器。每个时期,如果指标改善超过 min_delta 阈值,则保存检查点并重置计数器;否则你就增加它。当计数器达到耐心极限时,训练停止并恢复最佳检查点。耐心以鲁棒性与总训练时间的噪声验证曲线为代价,并且通常与学习率和批量大小一起调整。

掌握提前停止

早期停止是一种正则化技术,当保留的验证数据的性能停止改善时,该技术会停止模型训练。它可以通过一个简单的规则来防止计算浪费和过度拟合。 Early Stopping 位于核心人工智能工具包中。当你理解它时,其他人工智能主题就变得更容易评估和比较。为了建立深入的理解,请将提前停止视为一种操作模型,而不是单一功能:定义期望的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

在实践中,使用提前停止的强大团队首先构建强大的概念模型,然后将这些模型映射到实际的生产约束。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

它可以帮助您将清晰的技术声明与营销语言分开。同时,不同的团队可能会以不同的方式使用同一术语,因此请尽早定义范围。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

它可以帮助您将清晰的技术声明与营销语言分开。

它可以帮助您将清晰的技术声明与营销语言分开。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

在花费金钱或时间之前,您可以提出更好的实施问题。

在花费金钱或时间之前,您可以提出更好的实施问题。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

具有共同理解的团队可以做出更好的产品、政策和学习决策。

具有共同理解的团队可以做出更好的产品、政策和学习决策。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

提前停止的未来

提前停止仍然是几乎所有训练流程中的默认设置,但其角色正在发生变化。通过在大规模语料库上针对单个时期训练非常大的模型,经典的基于时期的停止被对代币预算和学习率计划的监控所取代。预计与自动超参数搜索、多指标标准和预算感知调度程序的更紧密集成,这些调度程序决定何时继续训练不再证明其计算和碳成本是合理的。

现实世界的实施

Keras EarlyStopping 回调,耐心 = 10 监视图像分类器上的 val_loss 和 Restore_best_weights = True

当验证 AUC 平稳时停止梯度增强树 (XGBoost Early_stopping_rounds) 以避免添加无用的树

一旦验证 F1 停止上升,就停止对 BERT 情绪模型进行微调,从而节省 GPU 时间

Kaggle 竞争对手使用验证折叠提前停止并选择日志损失最低的检查点

实施模式

提前停止的实践

Keras EarlyStopping 回调,其中 Patient=10 监视图像分类器上的 val_loss 和 Restore_best_weights=True。

Keras EarlyStopping 回调,在图像分类器上使用 Patient=10 监控 val_loss 和 Restore_best_weights=True 团队在预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

提前停止的实践

当验证 AUC 平稳时停止梯度增强树 (XGBoost Early_stopping_rounds) 以避免添加无用的树。

当验证 AUC 达到稳定状态时停止梯度提升树 (XGBoost Early_stopping_rounds),以避免添加无用的树 当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

提前停止的实践

一旦验证 F1 停止上升,就停止对 BERT 情绪模型进行微调,从而节省 GPU 时间。

一旦验证 F1 停止上升,就停止对 BERT 情绪模型进行微调,从而节省 GPU 时间 当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

提前停止的实践

Kaggle 竞争对手使用验证折叠提前停止并选择日志损失最低的检查点。

Kaggle 竞争对手使用验证折叠来提早停止并选择日志损失最低的检查点。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力增益和错误成本时,通常会获得更好的结果。

风险与防护栏

!

不同的团队可能会以不同的方式使用同一术语,因此请尽早定义范围。

!

基准测试可能看起来很强大,但实际性能却参差不齐。

!

忽视数据质量和评估计划通常会产生脆弱的结果。

实施路线图

1

从您需要的结果的简单语言定义开始。

从您需要的结果的简单语言定义开始。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

在测试之前选择一种成功指标和一种失败条件。

在测试之前选择一种成功指标和一种失败条件。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

使用代表性数据运行小型试点,而不是完善的演示集。

使用代表性数据运行小型试点,而不是完善的演示集。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

记录早期停止在哪些方面有帮助以及哪些更简单的方法更好。

记录早期停止在哪些方面有帮助以及哪些更简单的方法更好。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索