
156
|
第
4
章
图
4
-
9
:通常,训练损失会随着训练次数增多而下降,但是一旦过拟合开始,验证数据集上
的验证误差就会开始上升。
如果在每个批次结束都设置检查点,我们也许能够捕捉到真正的最小值。这
个最小值点可能在某个轮次边界之前或之后一点。有关更频繁设置检查点的
方法,请参阅本节中有关虚拟轮次的讨论。
如果早停对验证误差中的小扰动不过于敏感,那么我们频繁设置检查点就会
有帮助。相反,我们可以在超过
N
个检查点的验证误差都没有改善时,采取
早停措施。
检查点选择。
尽管可以通过在验证误差开始增加时,立即停止训练来实现早停。但
我们建议延长训练时间并选择最佳训练结果,用作后处理。我们建议将训练进行到
第三阶段(有关训练循环的三个阶段,请参见前面的“为什么有效”这一节)。这
样做的原因是,验证误差稍微增加后,又开始下降的情况并不少见。这通常是因为
训练最初专注于更常见的场景(第一阶段),然后开始处理罕见的情况(第二阶段)。
由于在训练数据集和验证数据集中,难以完美地采样到罕见情况,因此在第二阶段中,
训练期间的验证误差偶尔会增加。此外,在大型模型中可能会出现深度学习二次下
降(
https://oreil.ly/Kya8h
),为以防万一,必须进行更长时间的训练。
在示例中,在训练结束时,我们没有导出模型,而是加载第
4
个检查点并将其作为