Answers:
在降低损耗,更好的模型(除非该模型已经过度拟合训练数据)。损失是通过训练和验证计算得出的,其互操作性是模型在这两套模型上的表现。与准确性不同,损失不是百分比。它是对训练或验证集中每个示例所犯错误的总和。
在神经网络的情况下,损失通常分别是负对数似然度和分别用于分类和回归的残差平方和。那么自然地,学习模型的主要目标是通过通过不同的优化方法(例如神经网络的反向传播)来更改权重向量值,从而相对于模型的参数来减少(最小化)损失函数的值。
损失值表示在每次优化迭代后某个模型的表现好坏。理想情况下,可以期望每次(或多次)迭代后损失减少。
通常在学习并固定了模型参数并且没有进行学习之后,才能确定模型的准确性。然后,在与真实目标进行比较之后,将测试样本输入模型,并记录模型产生的错误数量(零一损失)。然后计算错误分类的百分比。
例如,如果测试样本的数量为1000,并且模型正确分类了952个样本,则模型的准确性为95.2%。
在降低损失值的同时,还有些微妙之处。例如,您可能会遇到过拟合的问题,在该问题中,模型“记忆”了训练示例,从而使测试集变得无效。如果不使用正则化,模型非常复杂(可用参数W
的数量很大)或数据点的数量N
非常少,也会发生过度拟合。
它们是两个不同的指标,用于评估通常在不同阶段中使用的模型的性能。
损失通常在训练过程中使用,以找到模型的“最佳”参数值(例如,神经网络中的权重)。您尝试通过更新权重来优化训练。
从应用的角度来看,准确性更高。一旦找到上面的优化参数,就可以使用该指标来评估将模型的预测与真实数据进行比较的准确性。
让我们使用一个玩具分类示例。您想根据自己的体重和身高预测性别。您有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。