验证集loss下降,准确率却上升的问题
在做李宏毅的2022机器学习课程HW3时遇到了这个问题。
网上一搜,发现有很多人都遇到了这个问题。甚至有人在github专门开了一个LossUpAccUp项目讨论这一问题。
LossUpAccUp项目还讨论了一些解决方法:
标准化。如果权重或者Logit标准化,可能不会出现这一问题。
Guo等人[2]认为这是一个错误的校准问题,即神经网络对其错误分类的输入变得过度自信。
Takashi Ishida等人提出了一个新的损失函数,来避免出现这一问题。(关键代码只有一行就能发顶会就很厉害。)
设原来的损失函数是$\mathcal{L}(\theta)$,现在改为$ \tilde{\mathcal{L}}(\theta)=|\mathcal{L}(\theta)-b|+b$。其中b为预先设定的阈值。从而能使损失函数二次下降。
参考资料:
2.On Calibration of Modern Neural Networks
3.Do We Need Zero Training Loss After Achieving Zero Training Error?
验证集loss下降,准确率却上升的问题
https://lijianxiong.work/2022/20220328/