Keras 训练LSTM时KERA的验证损失和LSTM的稳定性

Keras 训练LSTM时KERA的验证损失和LSTM的稳定性,keras,lstm,activation-function,Keras,Lstm,Activation Function,我现在使用Keras来训练我的LSTM模型,以解决时间序列问题。我的激活函数是线性的,优化器是Rmsprop。 然而,我观察到,随着时间的推移,训练损失逐渐减少,并在一个较小的值附近波动,而验证损失则随着较大的方差而上下波动 因此,我提出两个问题: 1.验证丢失是否会影响培训过程?算法是否会考虑验证损失,并在其波动较大的情况下降低学习速度? 2.如何使模型更稳定,以便返回更稳定的验证损失值 谢谢 验证丢失是否会影响培训过程 不是。验证损失只是培训过程中排除的一小部分数据样本。它在一个时代结束时通

我现在使用Keras来训练我的LSTM模型,以解决时间序列问题。我的激活函数是线性的,优化器是Rmsprop。 然而,我观察到,随着时间的推移,训练损失逐渐减少,并在一个较小的值附近波动,而验证损失则随着较大的方差而上下波动

因此,我提出两个问题: 1.验证丢失是否会影响培训过程?算法是否会考虑验证损失,并在其波动较大的情况下降低学习速度? 2.如何使模型更稳定,以便返回更稳定的验证损失值

谢谢

  • 验证丢失是否会影响培训过程
  • 不是。验证损失只是培训过程中排除的一小部分数据样本。它在一个时代结束时通过网络运行,以测试训练进行得如何,以便您可以检查模型是否过拟合(即训练损失远远小于验证损失)

  • 验证损失的波动
  • 如果没有网络或数据,回答这个问题会有点困难。这可能只是意味着您的模型没有很好地收敛到看不见的数据,这意味着它没有看到从训练数据到验证数据的足够相似的趋势,并且每次调整权重以更好地适应训练数据时,模型对于验证集的准确度就会降低。你可能会降低学习率,但如果你的训练损失正在缓慢减少,那么学习率可能会很好。我认为在这种情况下,你必须问自己几个问题。我有足够的数据吗?我的数据中是否存在真实的时间序列趋势?我是否正确地规范化了数据?对于我拥有的数据,我的网络是否过大

  • 验证丢失是否会影响培训过程
  • 不是。验证损失只是培训过程中排除的一小部分数据样本。它在一个时代结束时通过网络运行,以测试训练进行得如何,以便您可以检查模型是否过拟合(即训练损失远远小于验证损失)

  • 验证损失的波动
  • 如果没有网络或数据,回答这个问题会有点困难。这可能只是意味着您的模型没有很好地收敛到看不见的数据,这意味着它没有看到从训练数据到验证数据的足够相似的趋势,并且每次调整权重以更好地适应训练数据时,模型对于验证集的准确度就会降低。你可能会降低学习率,但如果你的训练损失正在缓慢减少,那么学习率可能会很好。我认为在这种情况下,你必须问自己几个问题。我有足够的数据吗?我的数据中是否存在真实的时间序列趋势?我是否正确地规范化了数据?就我拥有的数据而言,我的网络是否过大?

    可能的原因:
  • 与通常发生的培训集相比,您的验证集非常小。权重的微小变化使验证损失的波动比训练损失大得多。这可能并不一定意味着你的型号太合适了。只要验证损失的总体趋势持续下降

  • 可能您的培训和验证数据来自不同的来源,它们可能具有不同的分布。当您的数据是时间序列,并且您按特定的时间戳分割了培训/验证数据时,可能会发生这种情况

  • 验证丢失是否会影响培训过程? 不,验证(向前传球一次)和培训(向前和向后)是不同的过程。因此,一个forword通行证不会改变你下一步的训练方式

    算法是否会考虑验证损失,并在其波动较大的情况下降低学习速度? 不,但我想你可以实现自己的方法来实现。然而,需要注意的是,该模型试图学习成本函数的最佳解决方案,而成本函数仅由训练数据提供,因此通过观察验证损失来改变学习率没有太大意义

    如何使模型更稳定,以便返回更稳定的验证损失值? 上述原因已说明。如果是第一种情况,放大验证集将使您的损失看起来更稳定,但这并不意味着它更适合。我的建议是,只要您确信您的模型没有过度拟合(列车损失和验证损失之间的差距不太大),您就可以保存验证损失最低的模型

    如果是第二种情况,则可以根据您的情况进行复杂处理。您可以尝试排除训练集中与验证集“不相似”的样本,或者如果您有足够的数据,可以扩大模型的容量。或者可能会添加更多指标来监控培训效果。

    可能的原因:
  • 与通常发生的培训集相比,您的验证集非常小。权重的微小变化使验证损失的波动比训练损失大得多。这可能并不一定意味着你的型号太合适了。只要验证损失的总体趋势持续下降

  • 可能您的培训和验证数据来自不同的来源,它们可能具有不同的分布。当您的数据是时间序列,并且您按特定的时间戳分割了培训/验证数据时,可能会发生这种情况

  • 验证丢失是否会影响培训过程? 不,验证(向前传球一次)和培训(向前和向后)是不同的过程。因此,一个forword通行证不会改变你下一步的训练方式

    算法是否会考虑验证损失,并在其波动较大的情况下降低学习速度? 不,但我想你可以实现自己的方法来实现。然而,有一件事需要注意,该模型试图学习成本函数的最佳解决方案,而成本函数是由