我是机器学习的新手,目前正在尝试训练具有3个卷积层和1个完全连接层的卷积神经网络。我正在使用25%的辍学率和0.0001的学习率。我有6000个150x200的训练图像和13个输出类。我正在使用tensorflow。我注意到一种趋势,我的损失稳步下降,但我的准确度仅略有增加,然后又回落。我的训练图像是蓝线,而验证图像是橙色线。 x轴为步长。 python - 为什么在卷积神经网络中可能具有较低的损失,但准确性却很低?-LMLPHP

我想知道是否有我不了解的东西,或者可能是这种现象的可能原因?从我阅读的 Material 来看,我认为低损耗意味着高精度。
这是我的损失函数。

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y))

最佳答案

这是因为损失精度是两个完全不同的东西(至少在逻辑上是如此)!

考虑一个示例,其中您将loss定义为:

loss = (1-accuracy)

在这种情况下,当您尝试最小化loss时,accuracy自动增加。

现在考虑另一个示例,其中您将loss定义为:
loss = average(prediction_probabilities)

尽管没有任何意义,但从技术上讲,它仍然是有效的损失函数,并且为了最小化此类weights,仍对loss进行了调整。

但是正如您所看到的,在这种情况下,lossaccuracy之间没有关系,因此您不能期望两者同时增加/减少。

注意:Loss将始终最小化(因此,每次迭代后loss都会减少)!

PS:请使用您要最小化的loss函数更新您的问题。

关于python - 为什么在卷积神经网络中可能具有较低的损失,但准确性却很低?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38728895/

10-12 17:56