[英]Why does more epochs make my model worse?
我的大部分代码都基于本文,而我要问的问题在这里很明显,而且在我自己的测试中也很明显。 它是具有LSTM层的顺序模型。
这是对来自模型的真实数据的绘制预测,该模型使用一个时期用大约20个小数据集进行训练。
这是另一幅图,但是这次是使用模型训练了10个时期的更多数据。
是什么原因造成的,我该如何解决? 同样,我发送的第一个链接在底部显示了相同的结果-1个时期确实很棒,而3500个时期非常糟糕。
此外,当我为一个较高的数据计数但只有一个时期运行训练时,我得到的结果与第二个图相同。
是什么导致此问题?
几个问题:
确实,早期的图表似乎很有趣,但请仔细看一下:
我清楚地看到了预期的数据应该达到峰值的巨大预测谷
这真的更好吗? 听起来像是完全异相的随机波,这意味着直线确实比这更好。
看看“训练损失”,这肯定可以告诉您您的模型是否更好。
如果是这种情况,而您的模型没有达到所需的输出,那么您可能应该制作一个功能更强大的模型(更多的层,更多的单元,不同的方法等)。 但是请注意,无论模型多么出色,许多数据集都是太随机而无法学习。
如果您实际上有更好的训练损失。 好的,所以您的模型确实在变好。
如果您的“验证”损失越来越严重,则表明您的模型过度拟合。 它是在记忆训练数据,而不是一般地学习。 您需要功能较弱的模型,或大量的“辍学”模型。
通常,在最佳点上,验证损失会停止下降,而训练损失会持续下降。 如果您过度健身,这是停止训练的关键。 在keras文档中阅读有关EarlyStopping
回调的信息。
如果您的培训损失在增加,那么您就遇到了一个真正的问题,要么是错误,要么是使用自定义图层的地方某个计算准备不好,或者仅仅是学习率太大 。
降低学习率(将其除以10或100),创建并编译“新”模型,然后重新开始训练。
然后,您需要适当地详细说明您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.