验证集loss下降,准确率却上升的问题

在做李宏毅的2022机器学习课程HW3时遇到了这个问题。

网上一搜,发现有很多人都遇到了这个问题。甚至有人在github专门开了一个LossUpAccUp项目讨论这一问题。

LossUpAccUp项目还讨论了一些解决方法:

标准化。如果权重或者Logit标准化,可能不会出现这一问题。

Guo等人[2]认为这是一个错误的校准问题,即神经网络对其错误分类的输入变得过度自信。

Takashi Ishida等人提出了一个新的损失函数,来避免出现这一问题。(关键代码只有一行就能发顶会就很厉害。)

设原来的损失函数是$\mathcal{L}(\theta)$,现在改为$ \tilde{\mathcal{L}}(\theta)=|\mathcal{L}(\theta)-b|+b$。其中b为预先设定的阈值。从而能使损失函数二次下降。

参考资料:

1.LossUpAccUp

2.On Calibration of Modern Neural Networks

3.Do We Need Zero Training Loss After Achieving Zero Training Error?

4.我们真的需要把训练集的损失降低到零吗?


验证集loss下降,准确率却上升的问题
https://lijianxiong.work/2022/20220328/
作者
LJX
发布于
2022年3月28日
许可协议