训练损失随时间增加

机器算法验证 机器学习 神经网络 损失函数 循环神经网络 训练错误
2022-01-24 19:55:53

我正在训练一个模型(循环神经网络)来对 4 种类型的序列进行分类。当我进行训练时,我发现训练损失一直在下降,直到我正确分类了训练批次中超过 90% 的样本。然而,几个时期后,我注意到训练损失增加了,我的准确率下降了。这对我来说似乎很奇怪,因为我希望在训练集上性能应该随着时间的推移而提高而不是恶化。我正在使用交叉熵损失,我的学习率为 0.0002。

更新:原来学习率太高了。在足够低的学习率下,我没有观察到这种行为。但是我仍然觉得这很奇怪。欢迎任何好的解释来解释为什么会发生这种情况

损失先减少后增加

3个回答

我在训练 CNN 时也有类似的行为,这是因为我使用梯度下降和学习率衰减来计算误差。您是否显着增加了迭代次数并检查了这种行为是否会随着新的低学习率而出现得更晚?

随着学习率的提高,你会在与梯度相反的方向上移动太多,并且可能会远离局部最小值,这会增加损失。学习率调度和梯度裁剪可以提供帮助。

因为学习率太大,会发散,找不到损失函数的最小值。在某些时期后使用调度程序降低学习率将有助于解决问题