验证准确率提高,但验证损失也在增加

Posted

技术标签:

【中文标题】验证准确率提高,但验证损失也在增加【英文标题】:Validation accuracy increasing but validation loss is also increasing 【发布时间】:2018-12-21 15:22:00 【问题描述】:

我正在使用 CNN 网络将图像分为 5 类。我的数据集大小约为 370K。我正在使用学习率为 0.0001 和批量大小为 32 的 Adam 优化器。令人惊讶的是,我在各个时期的验证准确性都得到了提高,但验证损失却在不断增长。

我假设模型对验证集的不确定性越来越低,但准确性更高,因为 softmax 输出的值大于阈值。

这背后的原因是什么?在这方面的任何帮助将不胜感激。

【问题讨论】:

这是一个过拟合的案例研究。随着训练损失的下降,验证损失正在增加 是的,但在过度拟合的情况下,验证准确度也应该下降,对吧? 没那么简单 - 请参阅 Loss & accuracy - Are these reasonable learning curves? 了解损失和准确率之间的微妙关系(尽管潜在的问题有所不同,但我认为您可能会发现答案很有帮助) 【参考方案1】:

正如之前的 cmets 指出的那样,我认为这是一种过度拟合的情况。过度拟合可能是数据集中高方差的结果。当你训练 CNN 时,它显示出一个很好的减少训练误差的比例,产生了一个更复杂的模型。更复杂的模型会产生过拟合,当验证误差趋于增加时可以注意到。

Adam 优化器负责模型的学习率、指数衰减和总体优化,但不会对过度拟合采取任何措施。如果你想减少它(过度拟合),你需要添加一种正则化技术,它会惩罚模型中权重的大值。

您可以在深度学习书籍中阅读更多详细信息:http://www.deeplearningbook.org/contents/regularization.html

【讨论】:

以上是关于验证准确率提高,但验证损失也在增加的主要内容,如果未能解决你的问题,请参考以下文章

验证损失在 3 个 epoch 后增加,但验证准确度不断增加

训练准确性提高但验证准确性保持不变

Tensorflow keras fit - 准确性和损失都急剧增加

如何解释损失和准确性的增加

验证损失达到最小值然后增加

火车损失正在减少,但准确度保持不变