繁体   English   中英

为什么更多的时期会使我的模型变得更糟?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM