时间序列多步提前预测一个序列到序列的问题吗?

数据挖掘 时间序列 喀拉斯
2021-10-11 12:18:34

我正在使用 keras 包来训练 LSTM 用于数字(浮点)类型的单变量时间序列。执行提前 1 步预测是微不足道的,但我不确定如何执行,比如说,提前 10 步预测。两个问题:

1)我阅读了关于序列到序列 NN 的信息,但在时间序列预测的上下文中几乎找不到任何内容。我是否正确假设提前超过 1 个时间步长的预测是一个 seq2seq 问题?这对我来说很有意义,因为每个预测都取决于其前身。

2) 没有 seq2seq 的直观解决方案是:执行 1 步提前预测,然后将此预测附加到序列并使用它来获取下一个预测,依此类推。这与 seq2seq 方法有何不同?

1个回答

Seq2Seq 架构绝对可以用于时间序列问题。唯一的转折是您需要在解码器顶部有一个线性层,以将输出投影到所需的大小(例如,1 表示单变量)。

逐步预测方法可用于短序列,但由于使用这种方法会加剧任何偏差,因此不适用于较长的序列。

例如,如果您有一个序列,其中每个时间步的值都是恒定的X一世+1=X一世,但你的模型学会了做X一世+1=1.01X一世相反(这很可能是梯度下降算法)。为了=10, 目标值为150=1,但是您的模型将预测1.0150=1.64.

因此,1% 的单步误差会导致 50 步的差异为 64%。