核心要点

  • 监控验证集 loss/指标,而非训练 loss——后者会持续下降掩盖过拟合

  • patience:验证指标连续 N 个 epoch 不改善才停,容忍正常波动

  • 保存并回退到验证集表现最佳的 checkpoint,而非最后一个 epoch

  • 本质是隐式正则:限制有效训练时长,把模型停在泛化最好的点

标准回答

原理

训练过程中,训练 loss 一般单调下降,但验证集 loss 会先降后升:拐点之前模型在学习通用规律,拐点之后开始记忆训练集噪声即过拟合。早停就是在验证指标停止改善时及时终止训练,把模型固定在泛化最优附近。

关键机制

  • 监控指标:用独立验证集的 loss 或准确率等,不能用训练集指标
  • patience(耐心值):允许验证指标连续 N 个 epoch 没有提升才真正停止,避免被短期噪声误触发。
  • 回退最优:记录验证指标最好时的权重,停训后恢复该 checkpoint,而不是用最后一个 epoch 的权重。
  • min_delta:只有改善超过某阈值才算"有提升",进一步抗噪。

为什么算正则化

它限制了优化的有效迭代次数,等效于约束模型复杂度的增长,故被视为一种隐式正则化,常与 Dropout权重衰减等显式正则手段并用。

常见误区

⚠️ 常见踩坑

用训练集或测试集来触发早停都是错的——前者无法反映过拟合,后者会造成信息泄露;patience 太小易被噪声误停,太大则失去早停意义。

追问

追问 1早停和 L2 正则、Dropout 有什么关系?

三者都是正则化手段、可叠加使用。早停是隐式正则(限制训练时长);L2/权重衰减直接惩罚大权重;Dropout 通过随机失活逼近模型集成。早停几乎零成本,常作为默认配置之一。

追问 2patience 一般怎么设置?

没有定值,取决于验证曲线的噪声程度与训练成本:曲线波动大、单 epoch 便宜则设大一些(如 10–20);训练昂贵或曲线平滑则可小一些。通常配合学习率衰减一起调,作为超参数验证。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。