为什么我的验证损失增加了,而我的验证准确率也上升了?

数据挖掘 深度学习 张量流
2022-02-04 11:58:59

场景:我一直在为 cifar10 数据集训练 CNN。我正在使用tensorflow和一个在 softmax 密集层之前有 12 个卷积层和 1 个密集层的 CNN。我正在使用数据增强以及批量标准化

在几百个 epoch 之后,我在验证集上获得了最高 92.73% 的准确率。

我的问题:

  • 随着我训练的更多,验证损失略有上升。
  • 在验证损失增加的同时,验证准确度也在增加。

例子:

  • 一个 epoch 给了我 0.295 的损失,验证准确率为 90.5%。我在验证准确率方面的最佳时期给了我 92.73% 的验证损失为 0.33。

问题:

  • 为什么我的验证准确率在增加,而我的验证损失却在增加?
  • 我应该使用与 cross_entropy 不同的损失度量吗?
1个回答

准确度和交叉熵可能同时增加。例如,对于一个正样本,您的预测概率可能会从 0.4 变为 0.1(仍然是错误的,但会增加熵损失),而对于另一个正样本,您的预测概率可能会从 0.49 变为 0.51(从错误变为正确以提高准确性)。第一种情况会增加熵损失,而第二种情况会在不显着改变熵损失的情况下提高准确性。

在不知道任何细节的情况下,很难说交叉熵是否不是您的案例的好指标。但很可能你会因为几个原因而坚持下去。例如,交叉熵提供了更好的概率估计,并且具有很好的梯度下降训练特性(平滑梯度,训练不会因为sigmoid 激活中的log偏移量等而停止大值)。exp