【问题标题】:Why does loss decrease but accuracy decreases too (Pytorch, LSTM)?为什么损失减少但准确性也降低(Pytorch,LSTM)?
【发布时间】:2020-04-20 14:51:36
【问题描述】:

我已经使用 LSTM - Pytorch 中的线性模块构建了一个模型,用于分类问题(10 类)。我正在训练模型,并且对于每个 epoch,我都会在 training set 中输出 lossaccuracy。输出如下:

纪元:0 开始!
损失:2.301875352859497
账号:0.11388888888888889
纪元:1 开始!
损失:2.2759320735931396
累积:0.29
纪元:2 开始!
损失:2.2510263919830322
账号:0.4872222222222222
纪元:3 开始!
损失:2.225804567337036
账号:0.6066666666666667
纪元:4 开始!
损失:2.199286699295044
账号:0.6511111111111111
纪元:5 开始!
损失:2.1704766750335693
累计:0.6855555555555556
纪元:6 开始!
损失:2.1381614208221436
账号:0.7038888888888889
纪元:7 开始!
损失:2.1007182598114014
账号:0.7194444444444444
纪元:8 开始!
损失:2.0557992458343506
账号:0.7283333333333334
纪元:9 开始!
损失:1.9998993873596191
账号:0.7427777777777778
纪元:10 开始!
损失:1.9277743101119995
账号:0.7527777777777778
纪元:11 开始!
损失:1.8325848579406738
账号:0.7483333333333333
纪元:12 开始!
损失:1.712520718574524
账号:0.7077777777777777
纪元:13 开始!
损失:1.6056485176086426
账号:0.6305555555555555
纪元:14 开始!
损失:1.5910680294036865
账号:0.4938888888888889
纪元:15 开始!
损失:1.6259561777114868
累计:0.41555555555555557
纪元:16 开始!
损失:1.892195224761963
账号:0.3655555555555556
纪元:17 开始!
损失:1.4949012994766235
帐号:0.47944444444444445
纪元:18 开始!
损失:1.4332982301712036
账号:0.48833333333333334

对于损失函数,我使用了 nn.CrossEntropyLoss 和 Adam Optimizer。
尽管损失在不断减少,但准确度会一直提高到 epoch 10,然后由于某种原因开始下降。

为什么会这样?

即使我的模型是过拟合的,那不是说准确率应该很高吗?? (总是说在训练集而不是验证集上测量的准确性和损失)

【问题讨论】:

    标签: neural-network pytorch lstm loss-function cross-entropy


    【解决方案1】:

    减少损失并不意味着总是提高准确性。 我将尝试解决交叉熵损失的问题。

    CE-loss= sum (-log p(y=i))

    请注意,如果正确分类的概率增加,损失会减少,如果正确分类的概率减少,损失会增加。现在,当您计算平均损失时,您正在对所有样本进行平均,一些概率可能会增加,而其中一些可能会减少,从而使整体损失更小,但准确性也会下降。

    【讨论】:

      猜你喜欢
      • 2021-02-28
      • 2022-01-22
      • 2020-03-15
      • 2017-12-24
      • 2021-07-25
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 2016-12-08
      相关资源
      最近更新 更多