验证集loss上升,准确率却上升

验证集loss上升,acc也上升这种现象很常见,原因是过拟合或者训练验证数据分布不一致导致,即在训练后期,预测的结果趋向于极端,使少数预测错的样本主导了loss,但同时少数样本不影响整体的验证acc情况。ICML2020发表了一篇文章:《kid丶:【论文】一行代码发一篇ICML?
 
validation loss 和 accuracy 不匹配的问题(尤其是cross entropy)已经有些工作专门去研究,代表作
 
这个情况在实际项目中其实挺常见的,说白了loss也好, accuracy也好,都是很片面且脆弱的评估指标。与模型结构与数据分布都有很大关系。 具体如何选择模型应该与应用场景强相关
 
 
在我把所有分类信息打印出来之后发现是模型过于极端导致的,即模型会出现在正确分类上给出0.00..x的概率值,导致loss异常的高,超过20,因此极大的提高了平均loss,导致出现了loss升高,acc也升高的奇怪现象。
 

loss和准确率本身就不是完全正比的关系,loss只是方便优化的一种近似。假设题主代码写对的情况下,一种可能的原因是,那些大量正确分类的easy samples的损失之和,大于少数错误分类的样本,因此优化loss反而会降低准确率,或者反过来,loss上升准确率也上升。

 

说了多少次了,不要看loss,loss波动很正常,loss设的不够好导致部分上升占主导,掩盖了另一部分的下降也很正常。

看acc,看参数统计量,这才是有效的。

 

REF

链接:https://www.zhihu.com/question/318399418/answer/1420848079
https://www.zhihu.com/question/291369144