验证损失也可能增加,同时验证准确性也会增加


27

我正在CIFAR10数据集中训练一个简单的神经网络。一段时间后,验证损失开始增加,而验证准确性也在增加。测试损失和测试准确性不断提高。

这怎么可能?看来,如果验证损失增加,准确性就会降低。

PS有几个类似的问题,但是没有人解释那里发生了什么。在此处输入图片说明


2
您可以在此处查看一些提示以了解我的答案:stats.stackexchange.com/questions/258166/…–
ahstat

@ahstat我了解这在技术上是可行的,但我不了解它在这里如何发生。
康斯坦丁·索洛玛托夫'17

我和您所经历的“插图2”是一种过拟合。对于我的特殊问题,改组后缓解了。
ahstat

@ahstat有很多方法可以解决过度拟合问题。例如,我可能使用辍学。我最感兴趣的是什么呢?即为什么它如此缓慢地增加并且仅增加。
康斯坦丁·索洛玛托夫

Answers:


11

基于Ankur的回答及其下方的评论,我认为以下情况是可能的,尽管我没有证据。可能同时发生两种现象:

  1. 一些带有边界预测的示例得到了更好的预测,因此它们的输出类别也发生了变化(例如,以0.4预测为猫,以0.6预测为马的猫图像变成了预测为0.4代表马,0.6预测为猫)。因此,精度提高,而损耗减少。

  2. 一些具有非常差的预测的示例会变得越来越差(例如,预测为0.8的猫图像变成一匹马,变成预测为0.9的图像是马匹)AND / OR(更有可能,尤其是对于多类动物而言)。预测会变得更糟(例如,以0.9预测为猫的猫图像变为以0.8预测为猫的猫图像)。由于这种现象,损失增加而精度保持不变。

因此,如果现象2在某些示例(例如,由于某种原因而无法很好理解的特定类别)的某个时刻开始出现,并且/或者损失增加了stonger,而损失减少了您从1得到的损失,那么您可能在场景中找到自己。
再一次,也许这不是正在发生的事情,但是我认为能够提出这样的情况必须使我们想起(交叉熵)损失和准确性之间有时很滑的关系。


15

一组的准确性仅通过交叉检查最高softmax输出和正确的标记类别来评估,而不取决于softmax输出的高度。为了更加清楚,这里有一些数字。

假设有3类-狗,猫和马。对于我们的情况,正确的类别是horse。现在,softmax的输出为[0.9,0.1]。对于此损失〜0.37。分类器将预测这是一匹马。再以softmax输出为[0.6,0.4]的情况为例。损失约0.6。分类器仍会预测这是一匹马。但可以肯定的是,损失增加了。因此,这全部与输出分布有关。


4
观察:在您的示例中,准确性没有改变。仍然是100%。您是否有一个损失减少而精度也下降的示例?
休·帕金斯

1

从安库的回答来看,在我看来:

准确性衡量预测的正确性百分比,即correctclassestotalclasses

损失实际上跟踪预测的逆置信度(因为缺少更好的词)。高损耗的分数表明,即使在模型制作好预测,它是肯定它正在预测的...反之亦然。less

所以...

高验证准确性 + 高损失分数高培训准确性 + 低损失分数表明该模型可能与训练数据过度拟合。


0

许多答案都集中在数学计算上,解释了这是怎么可能的。但是他们没有解释为什么会这样。他们无法建议如何进一步挖掘以更加清晰。

我有3个假设。并提出一些实验来验证它们。希望它可以帮助解释这个问题。

  1. 标签很吵。比较val_loss最小和val_acc最大之间的错误预测。检查这些样品是否正确标记。
  2. [可能性很小]模型没有足够的信息来确定。试用更多更大的隐藏层。
  3. [一个非常疯狂的猜测]在这种情况下,模型对某些事物的不确定性会随着训练时间的延长而降低。这种情况也发生在人类身上。当某人开始学习一项技术时,会准确地告诉他什么是好是坏,什么是确定的(高确定性)。当他研究更多的案例和示例时,他意识到有时某些边界可能是模糊的(不确定性更高,损失更大),即使他可以做出更好的决策(准确性更高)。经过大量的样本和大量的试验和错误(更多的培训数据)后,他成为大师后最终可能会更加确定。因此,在这种情况下,我建议尝试在训练数据(而非标签)中添加更多噪声可能会有所帮助。

如果您不同意这些假设,请不要为此争论。进行实验来验证它们,而不是证明它们或证明它们是错误的,将更具意义。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.