为什么不用最佳权重继续下一个 epoch

数据挖掘 神经网络 喀拉斯 训练
2022-02-27 15:38:26

我在我们的培训中看到了以下情况:(数字是转述的)

  • 纪元 10 - val 损失 0.0500 - 损失 0.0450
  • 时期 11 - val 损失 0.0400 - 损失 0.0400
  • 纪元 12 - val 损失 0.0420 - 损失 0.0410

现在显然 11 纪元优于 12 纪元。我假设 13 纪元将从 11 纪元的权重开始,但被告知他们没有。

在我看来,最糟糕的是,我们的训练管道设置了 ReduceLROnPlateau,在 4 个没有改进的 epoch 后降低了学习权重。现在假设 epoch 15 的验证损失为 0.0415,损失为 0.0405,我们可以更好地使用 epoch 11 的权重进行训练。

为什么新的 epoch 不以前一个最佳 epoch 的权重开始?

2个回答

一个新的 epoch 以与前一个 epoch相同的权重开始,但具有不同的 mini-batch 数据由于这个原因,模型性能在小批量中会有小的波动。

始终以最佳整体权重开始每个时期可能会导致保持局部最优。梯度下降已经倾向于停留在局部最优中,代价是找到更好的最优。鼓励继续探索权重是训练的目标之一。

训练和验证损失总是有可能下降。训练性能变差是可以的,训练没有必要单调提升。

在训练结束时,您应该选择具有最低验证损失的权重。

因为你可能会得到类似的结果。请记住,上一个结果(0.0420 的有效损失)也是从您获得更好结果(0.0400 的有效损失)的点开始的,最终变得更糟。从“良好的检查点”随机重新启动可能会给您同样的情况。

看来你在这里有一个过度拟合的问题。有一些技术可以解决这类问题,例如正则化或提前停止。