【发布时间】:2021-10-02 01:34:41
【问题描述】:
我在 Python 中使用 Keras 来创建用于深度学习的回归模型。 通过 k=5 的交叉验证进行验证后,经过 5 次试验,train_loss 平均约为 0.10,validation_loss 平均约为 0.12。
我认为由于数据中的异常值(或刚好处于上限或下限的值),validation_loss 会变大是很自然的。
但是,我不知道 validation_loss 应该偏离 train_loss 多少才能被视为过度拟合。
如果您对确定是否存在过度学习的标准有任何想法,我还应该检查什么,或者我的思维方式是否存在根本差异,请告诉我。
【问题讨论】:
-
在你的图表中,看看验证损失是如何开始上升的,尽管训练损失仍在下降?这表明过拟合。学习率可能是帮助调整它的最简单的参数,但它通常是数据/#parameters 问题
-
明确地说,我认为它非常微妙,验证损失(如果有的话)上升得非常缓慢。但我认为很明显它并没有减少,你同意吗?
-
感谢您的建议。你认为当 epoch=200 时,train loss 在减少,另一方面,test loss 在增加,所以这个模型是过拟合的,不是吗?我正在自学机器学习,所以我不知道真正的标准。我理解你的想法。非常感谢。
-
没问题!是的,过度拟合总是很难诊断,但一般来说,如果训练损失在减少而测试损失没有减少,那么你只是在“记忆训练集”,而不是学习更深层次的表面。如果你还没有这样做,随机化你的训练/测试分割会有所帮助。获取更多数据是经典(尽管有时不切实际)的建议。否则,您可以尝试选择更小的模型,使用某种“正则化”工具,或调整学习率等超参数
标签: python validation keras deep-learning data-science