如何解释机器学习模型中的“损失”和“准确性”
0 685
1

当使用Theano或Tensorflow训练我的神经网络时,它们在每个时期将报告一个称为“损失”的变量。

我应该如何解释这个变量? 更高的损失是好是坏,这对于我的神经网络的最终性能(准确性)意味着什么?

收藏
2020-12-31 14:15 更新 🍊小桔子 •  1922
共 1 个回答
高赞 时间
1

损失越小,模型越好(除非模型与训练数据拟合过度)。损失是在训练和验证的基础上计算出来的,它解释的是模型对这两组数据的处理好外。与准确度不同,损失不是一个百分比。它是训练集或验证集中每个例子的错误总和。

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

损失值意味着某个模型在每次迭代优化后表现的好坏。理想情况下,人们期望在每次或多次迭代之后减少损失。

一个模型的精度通常是在模型参数被学习和固定之后确定的,并且不进行任何学习。然后将测试样本输入到模型中,在与真实目标进行比较后,记录模型所犯错误的数量(零1损失)。然后计算错误分类的百分比。

例如,如果测试样本数为1000,并且模型正确地分类了其中的952个,那么模型的准确率为95.2%。
img

在降低损失价值的同时,也有一些微妙之处。例如,你可能会遇到过度拟合的问题,在这个问题中,模型“记住”了训练示例,并对测试集无效。如果不采用正则化、模型非常复杂(自由参数W的数量很大)或数据点N的数量非常少,也会发生过度拟合。

收藏
2020-12-31 15:10 更新 Lisa •  1296