本页讲解 Early stopping(早停)——在验证 loss 不再改善时停止训练,等价于隐式限制模型复杂度。
段末注释:早停(early stopping)在验证指标连续 $P$ 个 epoch 无提升时终止训练并回滚至最佳 checkpoint;可看作对训练迭代次数的正则化。
系列入口:00.系列规划 | 前置:01 总论、Math-04/05 学习率
1. 机制(D2–D3)

1 | for epoch in 1..T: |
| 超参 | 含义 |
|---|---|
| patience $P$ | 容忍验证不改善的 epoch 数 |
| min_delta | 最小改善幅度才算「更好」 |
2. 与正则的关系(D6)
早停限制有效训练步数 → 参数未走到完全拟合训练噪声的位置 → 降 Variance(02 偏差方差)。
与 L2、Dropout 可叠加;小数据深度学习中常必备。
3. 跨领域实践(D7)

| 领域 | 监控指标 | 典型 patience |
|---|---|---|
| 图像分类微调 | val accuracy | 5–15 epoch |
| 语言模型微调 | val perplexity | 1–3 epoch(易过拟合) |
| 表格 XGBoost | val AUC,early_stopping_rounds |
20–50 轮 |
| 时间序列预测 | val MAE(注意时间顺序划分) | 视序列长 |
| 蛋白性质回归 | val RMSE,小样本 | 小 patience + 强正则 |
| 强化学习 | eval 回报(非纯 loss) | 任务相关 |
4. 验证集设计(D7)
- 与训练同分布、互斥
- 大小足够稳定估计(通常 $\ge$ 几千样本或 CV 代替)
- 勿用测试集做早停
5. 局限(D8)

| 问题 | 说明 |
|---|---|
| val 噪声大 | 误早停 → 增大 val 或 CV |
| warmup 阶段 | 前几个 epoch 忽略 |
| 与 cosine 调度耦合 | 可能未训满就停 |
| 只存最后一轮 | 应存 best checkpoint |
6. PyTorch 思路(D12)
1 | best_val, patience, P = float("inf"), 0, 10 |
7. 小结
验证集是早停与调参的唯一依据(测试集封存)。下一篇:06 交叉验证。
系列导航:04 Dropout | 10 诊断