35

我已经使用 tensorflow 运行了深度学习模型(CNN)。在这个时代,我多次观察到损失和准确性都增加了,或者两者都减少了。我的理解是两者总是成反比的。可能是同时增加或减少的情况。

4

5 回答 5

55

损失随着训练过程的进行而减少,除了小批量梯度下降和/或正则化技术(如 dropout 引入随机噪声)引入的一些波动。

如果损失减少,则训练过程进展顺利。

相反,(我想是验证)准确性是衡量模型预测有多好的指标。

如果模型正在学习,则准确性会提高。相反,如果模型过度拟合,准确度就会停止增加,甚至会开始下降。

如果损失减少并且准确性降低,则您的模型过度拟合。

如果损失增加并且准确度也增加,是因为您的正则化技术运行良好并且您正在解决过度拟合问题。只有当损失开始减少而准确度继续增加时,这才是正确的。否则,如果损失继续增长,您的模型会发散,您应该寻找原因(通常您使用的学习率值太高)。

于 2016-12-01T13:13:41.500 回答
22

我认为评分最高的答案是不正确的。

我假设您在谈论交叉熵损失,可以将其视为“惊喜”的衡量标准。

训练数据上的损失和准确性同时增加/减少不会告诉您模型是否过度拟合。这只能通过比较验证与训练数据的损失/准确性来确定。

如果损失和准确率都在下降,这意味着您的模型对其正确预测变得更有信心,或者对其不正确预测的信心降低,或两者兼而有之,因此损失减少。但是,它总体上也做出了更多不正确的预测,因此准确性下降。反之亦然,如果两者都在增加。这就是我们所能说的。

于 2019-07-22T20:45:52.140 回答
3

我想在这里为所有正在努力进行模型训练的人添加一个可能的选项。

如果您的验证数据有点脏,您可能会在训练开始时体验到验证损失和准确度一样低,并且您训练网络越多,准确度会随着损失的增加而增加。之所以会发生,是因为它发现了你的脏数据可能的异常值,并在那里获得了超高的损失。因此,你的准确率会随着它猜对更多数据而增加,但损失也会随之增加。

于 2020-06-05T09:14:31.810 回答
2

这正是我认为基于损失和准确性背后的数学,

笔记 :-

我希望您的数据是分类的

您的模型输出:-

[0.1,0.9,0.9009,0.8](用于计算损失)

最大输出:-

[0,0,1,0](用于计算 acc )

预期输出:-

[0,1,0,0]

让我们澄清一下 loss 和 acc 计算的内容:

损失:- y 和 ypred 的总体误差

Acc :- 只要 y 和 maxed(ypred) 相等

所以总的来说,我们的模型几乎做到了,损失很低。

但是在最大输出中,没有看到它们应该完全匹配,

如果它们完全匹配:-

1

别的:

0

从而导致精度也很低

尝试检查模型的mae

去除正则化

检查您是否使用正确的损失

于 2021-03-20T11:33:00.203 回答
1

您应该在培训过程中检查您的班级指数(培训和有效)。它可能以不同的方式排序。我在colab中有这个问题。

于 2021-11-15T05:12:19.263 回答