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

Deep learning 深度学习模型测试精度不稳定,deep-learning,pytorch,Deep Learning,Pytorch,我正在尝试训练和测试一个pytorch GCN模型,该模型应该能够识别人。但是测试的准确度是非常不稳定的,就像它在23个历元时给出49%,然后在41个历元时下降到接近45%。因此,虽然损失似乎在每个时期都在减少,但它并不是一直在增加 我的问题不是关于实现错误,而是想知道为什么会发生这种情况。我不认为我的编码有什么问题,因为我看到SOTA架构也有这种行为。作者只是选择了最好的结果,并发表声明说他们的模型给出了这个结果 准确度是跳跃式的(上下)是正常的吗?我是不是只需要用最好的重量就能做到这一点?正

我正在尝试训练和测试一个pytorch GCN模型,该模型应该能够识别人。但是测试的准确度是非常不稳定的,就像它在23个历元时给出49%,然后在41个历元时下降到接近45%。因此,虽然损失似乎在每个时期都在减少,但它并不是一直在增加

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


准确度是跳跃式的(上下)是正常的吗?我是不是只需要用最好的重量就能做到这一点?

正如你所说,准确度自然更“跳跃”。就准确性而言,每个样本都有一个离散的结果——要么正确,要么错误。这使得结果波动,特别是当样本数相对较少时(因为样本方差较高)


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

我投票结束这个问题,因为它不是关于中定义的编程,而是关于ML理论和/或方法-请参阅机器学习中的简介和注释(也适用于深度学习).