【问题标题】:Deep learning model test accuracy unstable深度学习模型测试精度不稳定
【发布时间】:2021-07-16 05:36:24
【问题描述】:

我正在尝试训练和测试一个应该识别人的 pytorch GCN 模型。但是测试准确率非常不稳定,比如它在 23 个 epoch 时给出了 49%,然后在 41 个 epoch 时低于 45%。因此,尽管损失似乎在每个时期都在减少,但它并没有一直在增加。

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

准确度出现跳跃(上下)是否正常,我是否只是采取了产生这种情况的最佳权重?

【问题讨论】:

  • 我投票结束这个问题,因为它与 help center 中定义的编程无关,而是关于 ML 理论和/或方法 - 请参阅 machine-learning @ 中的介绍和注意事项987654322@(也适用于deep-learning)。

标签: deep-learning pytorch


【解决方案1】:

正如您所说,准确性自然会更加“跳跃”。就准确性而言,您对每个样本都有一个离散的结果——您要么正确,要么错误。这会导致结果波动,尤其是在样本数量相对较少的情况下(因为样本方差较高)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-27
    • 2018-10-27
    • 2019-10-20
    • 2018-09-16
    • 2017-10-22
    • 2018-02-03
    • 1970-01-01
    • 2018-09-06
    相关资源
    最近更新 更多