【问题标题】:Looking for your valuable suggestions on my Loss /accuracy vs epoch curve寻找您对我的损失/准确性与时代曲线的宝贵建议
【发布时间】:2020-03-18 03:25:43
【问题描述】:

我的 Keras-Tensorflow 模型的行为如下图所示。我可以看到训练和验证损失表现良好,但训练和验证准确性非常不正常。我认为验证数据集可能比训练集容易。因此,我得到了很高的验证准确性。我期待着您的建议。

【问题讨论】:

    标签: python-3.x tensorflow machine-learning keras deep-learning


    【解决方案1】:

    从训练期间的指标和损失的角度来看,您在此处显示的图看起来很正常。

    通常会看到小的峰值,因为我们使用的是 batch_training。此外,当您看到这些损失峰值(损失增加)时,准确度也会降低。

    因此,剧情本身无需担心。

    但是,您对验证准确性的观察确实是明智的:大多数情况下,发生这种情况是因为验证数据集更容易。

    处理此问题的一种方法是使用交叉验证,以查看此现象是否仍然存在。

    交叉验证是一种模型验证技术,其中,在每次迭代/折叠中,数据集的不同部分都会保留用于训练和验证。下图总结了我刚刚写的内容。

    发生这种现象的另一个原因是由于称为 Dropout 的正则化技术。您可能知道,在训练阶段,在某一层应用的 dropout 意味着一定百分比的神经元的随机关闭/停用。这反过来会惩罚训练集的性能,但同时也降低了过度拟合的风险。因此,很多时候在训练过程中使用 Dropout 时,可能会出现验证准确率较大的情况,因为在验证预测过程中,Dropout 是没有开启的。

    【讨论】:

      猜你喜欢
      • 2021-11-03
      • 2020-08-08
      • 2018-05-28
      • 2021-09-07
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 2015-11-29
      相关资源
      最近更新 更多