深度学习中准确率和损失之间有什么关系?

数据挖掘 神经网络 深度学习 喀拉斯 张量流 公制
2021-09-14 23:15:48

我使用深度学习为多类分类创建了三个不同的模型,每个模型都给了我不同的准确率和损失值。模型测试结果如下:

  • 第一个模型:准确度:98.1% 损失:0.1882

  • 第二个模型:准确度:98.5% 损失:0.0997

  • 第三个模型:准确度:99.1% 损失:0.2544

我的问题是:

  • 损失值和准确率值之间有什么关系?

  • 为什么第三个模型的损失越大,即使准确率越高?

3个回答

这两个指标之间没有关系。
损失可以看作是问题的真实值与模型预测的值之间的距离。损失越大,你在数据上犯的错误就越大。

准确性可以看作是您在数据上犯的错误数量。

这意味着:

  • 低准确率和巨大损失意味着您在大量数据上犯了巨大错误
  • 低准确率但低损失意味着您在大量数据上犯的错误很少
  • 高准确度和低损失意味着您在一些数据上的错误率很低(最好的情况)
  • 您的情况:准确性很高但损失很大,这意味着您在一些数据上犯了巨大的错误。

对于您的情况,第三个模型可以正确预测更多示例,但在错误的示例上,它会产生更多错误(真实值和预测值之间的距离更大)。

笔记:

不要忘记,低或巨大的损失是一个主观指标,这取决于问题和数据。它是预测的真实值与模型做出的预测之间的距离。这也取决于您使用的损失。

思考:

  • 如果你的数据在 0 到 1 之间,0.5 的损失是巨大的,但是如果你的数据在 0 到 255 之间,0.5 的误差是很低的。
  • 也许想想癌症检测,以及检测癌症的概率。对于这个问题,0.1 的误差可能很大,而图像分类的误差 f 0.1 很好。

实际上,准确率是一个只能应用于分类任务的指标。它描述了正确分类的测试数据的百分比。例如,您有二元分类猫或非猫。如果 100 个测试样本中有 95 个被正确分类(即正确确定图片上是否有猫),那么您的准确率为 95%。顺便说一句,混淆矩阵比准确性更好地描述了您的模型。

损失取决于您如何预测分类问题的类别。例如,您的模型使用概率来预测介于 1 和 0 之间的二元类猫或非猫。因此,如果猫的概率为 0.6,则非猫的概率为 0.4。在这种情况下,图片被分类为猫。损失将是测试图片的真实类别的预测概率与1之间的差值之和。实际上对数损失用于二进制分类,我只是给出了损失的概念。

其他答案很好地定义了准确性和损失。要回答您的第二个问题,请考虑以下示例:

我们有一个问题,将来自平衡数据集的图像分类为包含猫或狗。分类器 1 在 80/100 的情况下给出了正确的答案,而分类器 2 在 95/100 的情况下给出了正确的答案。在这里,分类器 2 显然具有更高的准确度。

然而,在 80 个图像分类器 1 正确时,它非常自信(例如,当它认为图像是一只猫时,它 100% 肯定是这种情况),而在 20 个错误中它完全没有自信(例如,当它说猫图像包含狗时,只有 51% 的人对此有把握)。相比之下,分类器 2 对其 5 个错误答案非常有信心(它 100% 确信实际上显示狗的图像是猫),并且对它正确的 95 个不太有信心。在这种情况下,分类器 2 的损失会更严重。