深度学习模型测试精度不稳定

时间:2021-04-22 02:05:54

标签: deep-learning pytorch

我正在尝试训练和测试一个可以识别人的 pytorch GCN 模型。但是测试准确率非常不稳定,就像它在 23 epoch 时给出 49% 然后在 41 epoch 时低于接近 45%。所以虽然损失似乎在每个时期都在减少,但它并不是一直在增加。

我的问题不是关于实现错误,而是我想知道为什么会发生这种情况。我不认为我的编码有什么问题,因为我看到 SOTA 架构也有这种类型的行为。作者只是挑选了最好的结果并发表说他们的模型给出了这个结果。

准确度跳动(上下)是否正常,我是否只是采用有史以来最好的重量来产生这种效果?

1 个答案:

答案 0 :(得分:0)

准确度自然更“跳跃”,正如你所说。在准确性方面,您对每个样本都有一个离散的结果 - 您要么正确要么错误。这会导致结果波动,尤其是当您的样本数量相对较少时(因为您有较高的抽样方差)。

另一方面,损失函数应该更平滑地变化。它基于在您的 softmax 层计算的每个类的概率,这意味着它们会不断变化。如果学习率足够小,损失函数应该是单调变化的。您看到的任何颠簸都是由于优化算法采取了离散步骤,假设损失函数在当前点附近大致呈线性。