我有一些关于在训练期间跟踪损失的基本问题。
- 如果我使用的是小批量训练,我应该在每次批量更新之后还是在查看整个数据集之后进行验证?
- 停止训练以防止过拟合的条件应该是什么?你当时保存模型吗?
- 如果我使用小批量训练损失波动很大,这取决于训练数据的随机选择,有时验证损失小于训练损失。这是正常的吗?我认为我对这一点的困惑将在 1 中得到解答。
我有一些关于在训练期间跟踪损失的基本问题。
这两种方法都可以完成:我建议在您刚刚使用梯度方法时在每批之后进行验证,看看验证准确度是上升还是下降,并弄清楚一切进展如何。
在这种情况下,您可以采用early stop,尽管有很多方法可以防止过拟合。提前停止在一个 epoch 结束时检查您的验证准确性,并保存模型(如果它是迄今为止最好的)。如果在接下来的验证准确性没有增加时代(在这里是您可以决定的参数),然后您保留上次保存的模型并停止渐变方法。
验证损失可能低于训练损失,这种情况有时会发生。在这种情况下,您可以声明您没有过度拟合。