训练过程中验证准确率突然下降

3
在训练神经网络时,在第8个epoch期间,验证准确率突然下降了,这是什么意思?

共训练了10个epoch,每个epoch包含281个步骤进行训练,24个步骤进行验证。

第1个epoch的训练结果为:loss=1.5758,accuracy=0.8089;验证结果为:val_loss=1.8909,val_accuracy=0.4766。

第2个epoch的训练结果为:loss=1.5057,accuracy=0.8715;验证结果为:val_loss=1.7364,val_accuracy=0.6276。

第3个epoch的训练结果为:loss=1.4829,accuracy=0.8929;验证结果为:val_loss=1.5347,val_accuracy=0.8398。

第4个epoch的训练结果为:loss=1.4445,accuracy=0.9301;验证结果为:val_loss=1.5551,val_accuracy=0.8047。

第5个epoch的训练结果为:loss=1.4331,accuracy=0.9412;验证结果为:val_loss=1.5043,val_accuracy=0.8659。

第6个epoch的训练结果为:loss=1.4100,accuracy=0.9639;验证结果为:val_loss=1.5562,val_accuracy=0.8151。

第7个epoch的训练结果为:loss=1.4140,accuracy=0.9585;验证结果为:val_loss=1.4935,val_accuracy=0.8737。

第8个epoch的训练结果为:loss=1.4173,accuracy=0.9567;验证结果为:val_loss=1.7569,val_accuracy=0.6055。

第9个epoch的训练结果为:loss=1.4241,accuracy=0.9490;验证结果为:val_loss=1.4756,val_accuracy=0.9023。

第10个epoch的训练结果为:loss=1.4067,accuracy=0.9662;验证结果为:val_loss=1.4167,val_accuracy=0.9648。

1个回答

5
由于批量训练,导致验证损失和训练损失突然下降;本质上,只有在使用整个数据集而不是批处理进行训练时,收敛才会平稳。因此,看到这样的下降(无论是训练还是验证)是正常的。
验证损失仅增加了0.26,但这会导致准确度下降了27%。这是因为模型在做出预测时不确定(至少在训练的这个阶段是如此)。
想象一下你有一个二元分类模型(区分苹果和橙子)。在每次预测时,当真实情况是苹果时,网络有51%的把握认为图像是苹果。我们有真实情况下的苹果,并且像Keras在幕后所做的那样,50%是默认的置信度阈值。然后所有的预测都是好的,你有很高的准确度。
然而,现在来到“问题”的时期。由于神经网络的权重在经过另一个时期的训练后发生了变化,当你在验证数据集上进行预测时,你得到的每个真实苹果的置信度为48-49%,再次出现较差的准确度,因为阈值为50%。
正如你现在可以从前面的解释中推断出来的那样,你正在经历的特定情况并不会对损失产生太大影响,但是会对准确度产生影响。在反向传播期间,置信预测在49%和51%之间的差异对于总体损失来说并不是非常明显的差异(就像你看到的那样,在你的情况下仅为0.26%)。最终,在“先前的时期”,当模型正确地预测出苹果时,神经网络并没有非常自信,只给了苹果51%的置信度,而不是例如95%。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接