【问题标题】:SGD optimiser graphSGD 优化器图
【发布时间】:2020-01-08 17:26:24
【问题描述】:

我只是想问一个简单的问题。我知道 val_loss 和 train_loss 不足以判断模型是否过拟合。但是,我希望通过监视 val_loss 是否增加来将其用作粗略衡量标准。当我使用 SGD 优化器时,根据平滑值,我似乎有 2 种不同的趋势。我应该使用哪个?蓝色是 val_loss,橙色是 train_loss。

从平滑 = 0.999 开始,两者似乎都在减少,但从平滑 = 0.927 开始,val_loss 似乎在增加。感谢您的阅读!

另外,什么时候是降低学习率的好时机?是直接在模型过拟合之前吗?

Smoothing = 0.999

Smoothing = 0.927

【问题讨论】:

    标签: python tensorboard yolo darkflow sgd


    【解决方案1】:

    根据我将深度学习应用于 CNN 的经验,过度拟合更多地与训练/验证准确度/损失的差异相关,而不仅仅是其中一个。在您的图表中,很明显,随着时间的推移,损失的差异正在增加,这表明您的模型不能很好地泛化到数据集,因此显示出过度拟合的迹象。如果可能的话,它还有助于您跟踪 train 和 val 数据集的分类准确性——这将向您显示泛化错误,它充当类似的指标,但可能会显示出更明显的效果。

    一旦损失开始平衡并且开始过度拟合,就降低学习率是个好主意;但是,如果您首先调整网络的复杂性以更好地拟合数据集,您可能会发现更好的泛化效果。对于这种过度拟合,适度降低复杂性可能会有所帮助——使用训练/验证损失和准确性的差异来确认。

    【讨论】:

    • 感谢您的解释!我对此很陌生。您能否解释一下我将如何降低复杂性?
    • @BrandonSpeedsterLoo 删除一些层或通道。这取决于您的网络结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2020-01-20
    相关资源
    最近更新 更多