Val_Acc> Training_Acc,但Val_Loss <Training_Loss –说明吗?

时间:2019-06-20 10:27:47

标签: python machine-learning keras neural-network classification

我正在训练具有一个隐藏层的神经网络,并且总是出现这种奇怪的行为:Val_Accuracy大于Training_Acc,而Val_Loss小于{{1} }。我不明白,这可能表示什么。

我正在对5类目标进行分类,将Training_Loss作为损失,并将sparse_categorical_crossentropy作为附加指标。 (是的,我的目标是一个整数,不是一个整数,“稀疏”是正确的。)

我尝试了许多超参数调整;尤其是LR和节点数量。

由于我使用的是Dropout,因此我知道测试准确性/损失可能比训练更好。问题在于这两个指标的差异。

sparse_categorical_accuracy

仅是阐明我的意思的众多示例之一:

  

损耗:1.1345-sparse_categorical_accuracy:0.5586-val_loss:1.0571-val_sparse_categorical_accuracy:0.6028

2 个答案:

答案 0 :(得分:1)

我认为您有一个概念上的误解,即如果损失是在训练过程中将损失减到最小的想法,因为损失越小越好,但准确度反而会提高准确性。

训练的动态性是,随着损失的减少,准确性通常会提高,因此您看到的行为是正确的,完全可以预期。

答案 1 :(得分:0)

好吧,损失和准确性成反比。 “损失”是对模型造成的错误的度量,而准确性是对模型执行情况的度量。由于验证误差/损失小于训练误差,因此只有在这样的意义上才能证明验证准确性优于训练准确性。