首页 > 其他分享 >深度学习相关问题的记录:验证集loss上升,准确率却上升

深度学习相关问题的记录:验证集loss上升,准确率却上升

时间:2023-11-01 16:02:49浏览次数:43  
标签:acc loss 验证 模型 准确率 上升

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

验证集loss上升,acc也上升这种现象很常见,原因是过拟合或者训练验证数据分布不一致导致,即在训练后期,预测的结果趋向于极端,使少数预测错的样本主导了loss,但同时少数样本不影响整体的验证acc情况。ICML2020发表了一篇文章:《Do We Need Zero Training Loss After Achieving Zero Training Error?》,描述了上述现象出现的原因,同时提出了一种flooding策略,通过超参数b控制训练loss不要过小,阻止进一步过拟合,在此情况下,使model"random walk"至一个泛化能力更好的结果,亲测flooding策略可以在部分情况下缓解上述问题。以下是关于这篇文章的介绍以及一下讨论,会帮助理解。kid丶:【论文】一行代码发一篇ICML?

 

validation loss 和 accuracy 不匹配的问题(尤其是cross entropy)已经有些工作专门去研究,代表作 Guo, Chuan, et al. "On calibration of modern neural networks." ICML 2017.

 

这个情况在实际项目中其实挺常见的,说白了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

 

 

 

 

 



标签:acc,loss,验证,模型,准确率,上升
From: https://blog.51cto.com/emanlee/8129036

相关文章

  • P4309 [TJOI2013] 最长上升子序列题解
    P4309[TJOI2013]最长上升子序列题解正文单调队列?单调锤子队列!!本题的操作可以省略成:单点修改区间查询好极了,此时我们有两种选择:线段树和树状数组,(平衡树,真不会,下一位因为不需要其他操作,所以我们还是选择更小巧更可爱的树状数组吧。关于vectorvector的insert操作支......
  • Soil and Water Loss in Southern Jiangxi
      Ganzhou, a typical red soil hilly area in Jiangxi province, is a pilot area for high-quality development of soil and water conservation in China. Through a series of following innovative initiatives, soil erosion in Gan......
  • 最长上升子序列
    importjava.util.*;publicclassSolution{/***代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可**给定数组的最长严格上升子序列的长度。*@paramarrint整型一维数组给定的数组*@returnint整型*/......
  • RuntimeError: “nll_loss_forward_reduce_cuda_kernel_2d_index“ not implemented f
    RuntimeError:"nll_loss_forward_reduce_cuda_kernel_2d_index"notimplementedfor'Int'Traceback(mostrecentcalllast):File"E:/MyWorkspace/EEG/Pytorch/Train.py",line79,in<module>opti='Adam')......
  • Acwing 最长上升子序列
    题目给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数N。第二行包含N个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤1000−10^9≤数列中的数≤10^9输入样例:73121856输出样例:4题解......
  • 论文阅读 Generalized Focal Loss: Learning Qualified and Distributed Bounding Box
    原始题目:GeneralizedFocalLoss:LearningQualifiedandDistributedBoundingBoxesforDenseObjectDetection中文翻译:GeneralizedFocalLoss:学习用于密集目标检测的QualifiedandDistributedBoundingBoxes发表时间:2020年6月8日平台:arxiv来源:南京理工-李翔文章......
  • 最长上升子序列
    引入以下记\(s\)的长度为\(n\),\(t\)的长度为\(m\)。一些问题:什么是子序列?称\(t\)是\(s\)的子序列,即是\(s\)删掉一些元素(可以什么都不删)后可以得到\(t\)。什么是上升子序列?称\(t\)是上升子序列,仅当\(s\)的子序列\(t\)满足\(\foralli\in[1,m),t_i<t_{......
  • n log n 的求最长上升子序列
    \(O(n\logn)\)的求最长上升子序列法一:二分intLIS(){intb[MAXN],top=0,a[MAXN];b[0]=-1;for(inti=1;i<=n;i++){if(a[i]>b[top]){top++,b[top]=a[i];}else{intl=1,r=top;w......
  • [刷题笔记] CSP-J 2022 T4 上升点列
    Description在一个二维平面内,给定\(n\)个整数点\((x_i,y_i)\),此外你还可以自由添加\(k\)个整数点。你在自由添加\(k\)个点后,还需要从\(n+k\)个点中选出若干个整数点并组成一个序列,使得序列中任意相邻两点间的欧几里得距离恰好为\(1\)而且横坐标、纵坐标值均单调不......
  • Perceptual Losses 风格迁移论文复现小记
    看了一篇李飞飞组的论文PerceptualLossesforReal-TimeStyleTransferandSuper-Resolution。论文地址为:https://arxiv.org/pdf/1603.08155.pdf))想去找找代码复现一下。原文没有提供代码,就只有找找别人按照论文细节实现的代码。不过但是论文是2016年的,距离现在2023年已经......