如何为机器学习模型解释“损失”和“准确性”


Answers:


284

在降低损耗,更好的模型(除非该模型已经过度拟合训练数据)。损失是通过训练验证计算得出的,其互操作性是模型在这两套模型上的表现。与准确性不同,损失不是百分比。它是对训练或验证集中每个示例所犯错误的总和。

在神经网络的情况下,损失通常分别是负对数似然度和分别用于分类和回归的残差平方和。那么自然地,学习模型的主要目标是通过通过不同的优化方法(例如神经网络的反向传播)来更改权重向量值,从而相对于模型的参数来减少(最小化)损失函数的值。

损失值表示在每次优化迭代后某个模型的表现好坏。理想情况下,可以期望每次(或多次)迭代后损失减少。

通常在学习并固定了模型参数并且没有进行学习之后,才能确定模型的准确性。然后,在与真实目标进行比较之后,将测试样本输入模型,并记录模型产生的错误数量(零一损失)。然后计算错误分类的百分比。

例如,如果测试样本的数量为1000,并且模型正确分类了952个样本,则模型的准确性为95.2%。

在此处输入图片说明

在降低损失值的同时,还有些微妙之处。例如,您可能会遇到过拟合的问题,该问题中,模型“记忆”了训练示例,从而使测试集变得无效。如果不使用正则化,模型非常复杂(可用参数W的数量很大)或数据点的数量N非常少,也会发生过度拟合。


2
嗨,@阿米尔(Amir),谢谢您的详细解释。但是,我有一个问题:在我的神经网络中,训练后(历时增加时)损耗总是减少的,但是准确性并没有提高。
mamatv

8
@mamatv只要成本在降低,您应该就可以开始了。尽管成本和精度通常成反比例关系,但是您可能会注意到精度是零一误差的总和,而成本是浮点数的总和。因此,成本降低0.001%并不一定意味着精度提高0.001%。如果成本的降低是无形的,那么提高准确性就变得更加困难(成本非常接近当地的最低水平)
Amir

2
@mamatv我应该说过,只要培训和验证的成本都在降低,那么您应该就可以了。您还可以检查每个时期的验证准确性。如果开始上升,则表明您的模型可能已开始过度拟合,您应该停止对其进行训练。
阿米尔

1
为什么不训练模型以提高准确性而不是最小化损失呢?
bikashg

2
@bikashg的精度是无法区分的,因此您不能对其进行反向传播。
DharmaTurtle '19

23

它们是两个不同的指标,用于评估通常在不同阶段中使用的模型的性能。

损失通常在训练过程中使用,以找到模型的“最佳”参数值(例如,神经网络中的权重)。您尝试通过更新权重来优化训练。

从应用的角度来看,准确性更高。一旦找到上面的优化参数,就可以使用该指标来评估将模型的预测与真实数据进行比较的准确性。

让我们使用一个玩具分类示例。您想根据自己的体重和身高预测性别。您有3个数据,它们如下:(0代表男性,1代表女性)

y1 = 0,x1_w = 50kg,x2_h = 160cm;

y2 = 0,x2_w = 60kg,x2_h = 170cm;

y3 = 1,x3_w = 55kg,x3_h = 175cm;

您使用一个简单的逻辑回归模型,该模型为y = 1 /(1 + exp-(b1 * x_w + b2 * x_h))

您如何找到b1和b2?您首先定义一个损耗,然后使用优化方法通过更新b1和b2以迭代的方式将损耗最小化。

在我们的示例中,此二进制分类问题的典型损失可能是:(应在加号之前添加减号)

我们不知道b1和b2应该是什么。让我们随机猜测说b1 = 0.1和b2 = -0.03。那我们现在的损失是什么?

所以损失是

然后,您学习算法(例如梯度下降)将找到一种更新b1和b2的方法以减少损失。

如果b1 = 0.1且b2 = -0.03是最终的b1和b2(来自梯度下降的输出)怎么办,现在的精度是多少?

假设y_hat> = 0.5,我们确定我们的预测是female(1)。否则它将为0。因此,我们的算法预测y1 = 1,y2 = 1且y3 =1。我们的精度是多少?我们对y1和y2做出错误的预测,并对y3做出正确的预测。所以现在我们的精度是1/3 = 33.33%

PS:在Amir的回答中,反向传播被称为NN中的一种优化方法。我认为将其视为在NN中查找权重梯度的一种方法。NN中常见的优化方法是GradientDescent和Adam。


谢谢你的数学。它有助于阐明概念。
Finn Frotscher

6

@Aadnan只是为了澄清训练/验证/测试数据集:训练集用于执行模型的初始训练,初始化神经网络的权重。

在训练神经网络之后使用验证集。它用于调整网络的超参数,并比较对它们的更改如何影响模型的预测准确性。可以将训练集视为用于构建神经网络的门权重,而验证集可以对神经网络模型的参数或体系结构进行微调。它非常有用,因为它允许将这些不同的参数/体系结构与相同的数据和网络权重进行可重复比较,以观察参数/体系结构的变化如何影响网络的预测能力。

然后,在使用训练和验证数据集进行训练以及参数/体系结构选择之后,测试集仅用于测试先前看不见的数据对训练后的神经网络的预测准确性。

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.