带有 return_sequences 的 LSTM - “同时在多个时间步上训练模型”

数据挖掘 深度学习 lstm 顺序
2022-02-24 05:16:14

所以我正在关注 Tensorflow 的LSTM/时间序列教程,但有些东西我不明白。我确实理解开/关会发生什么return_sequences,但是,据说,return_sequences在你允许的情况下

同时在多个时间步上训练模型

我不太明白这是什么意思。如果保持关闭,输入将经过所有先前的时间步长,并进行预测。你的损失将是这个预测与实际的误差。你仍然在所有时间步上训练,对吧(虽然我猜不是同时?)。

现在,如果它打开,它会在每个时间步上进行预测——在这种情况下,损失是什么?它是序列中每个预测的平均误差吗?为什么最好打开return_sequences,就像教程中所做的那样?在这种情况下,模型学习得更多还是更快?它如何影响学习?

还指出,

使用return_sequences=True该模型可以一次对 24 小时的数据进行训练。

不还是这样return_sequences=False吗?在示例中,他们仍在教模型根据前 24 个时间步预测 1 个时间步。

1个回答

设置return_sequencesTrueFalse完全取决于哪一个适合您在推理时如何进行预测:

  • 如果您希望您的模型仅在将整个序列作为输入时才进行预测,那么您可以使用return_sequences=False,以便您的损失仅基于摄取整个序列后的输出。
  • 如果您希望您的模型能够在任意数量的时间步后进行预测,您可以设置return_sequences=True并设置所有时间步输出的损失。当我们处理时间序列时,适当的损失可能是所有时间步输出的平均平方误差。

关于“使用return_sequences=True模型可以一次训练 24 小时数据”的说法,我认为这意味着您正在为每个 24 小时时间步训练模型,而不是使用return_sequences=false.