在机器学习模型中,如何解释损失和准确率?
0 947
0

当我使用Theano或Tensorflow训练我的神经网络时,它们每次迭代都会报告一个称为“损失”的变量。 我应该如何解释这个变量?更高的损失是好是坏,或者这对于我的神经网络的最终性能(准确性)意味着什么?

收藏
2021-01-30 11:53 更新 karry •  4494
共 1 个回答
高赞 时间
0

损失越低,模型越好(除非该模型已经过度拟合训练数据)。损失是通过训练和验证计算得出的,它的作用是衡量模型的这两组性能有多好。与准确性不同,损失不是百分比。它是对训练或验证集中每个示例所犯错误的总和。

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

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

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

例如,如果测试样本的数量为1000,并且模型正确分类了952个样本,则模型的准确性为95.2%。 在降低损失值的同时,还有些微妙之处。例如,你可能会遇到过拟合的问题,在该问题中,模型“记忆”了训练示例,并且对测试集无效。如果不使用正则化,模型非常复杂(可用参数W的数量很大)或数据点的数量N很低,也会发生过度拟合。

Via:https://stackoverflow.com/a/34519264/14964791

收藏
2021-01-30 13:40 更新 anna •  4982