这是我一遍又一遍遇到的问题。没有意义的损失(在这种情况下为交叉熵)和准确度图。这是一个示例:
在这里,我正在 CIFAR10 上训练 ReNet18。优化器是 SGD,学习率为 0.1,Nesterov 动量为 0.9,权重衰减为 1e-4。在 epoch 60、120、160 时,学习率降低到 1/5。
- 最初的曲线都很漂亮,花花公子;这意味着训练和验证损失正在减少,准确性正在提高。
- 在 epoch 65~70 左右,你会看到过度拟合的迹象;作为 val。损失开始增加和 val。准确性开始下降(红色框)。这里仍然没有什么奇怪的。
现在有两件事对我来说没有意义:
在 epoch 120 之后(LR 减小)val。损失和准确性在几个时期(绿色框)开始提高。为什么降低学习率会突然提高已经过拟合的模型的验证性能?!我预计 LR 的下降实际上会加速过度拟合。
在 epoch ~125(蓝色框)之后,损失开始上升,但准确性不断提高。我知道在准确性保持不变的情况下,损失可能会增加(通过模型对其错误预测更有信心或对其正确预测的信心降低)。但我不明白在损失增加的情况下如何提高准确性。