这是 Seq2Seq 模型的问题吗?

数据挖掘 机器学习 rnn lstm 顺序 序列到序列
2021-10-06 19:28:05

我正在努力寻找一个教程/示例,其中涵盖使用 seq2seq 模型进行除文本/翻译之外的顺序输入。

我有一个多元数据集,其中包含 n 个输入变量,每个输入变量由序列组成,以及一个与任何输入变量无关的输出序列(例如,使用每周风速和湿度来预测温度)。

我已经将特征和标签转换为具有固定时间步长和 n 维的批次,但是我很困惑应该使用哪个模型。理想情况下,输出应该是一个序列(例如年温度),但是哪个模型可以实现这一点?这是 LSTM 可以实现的,还是 seq2seq 模型的问题?

任何建议/有见地将不胜感激。

2个回答

要使用 seq2seq 神经网络进行时间序列回归(而不是预测,就像每个人似乎都在做的那样),一个简单的 Keras 模型可以是

inputs = Input(shape=(n_timesteps, n_features))
x = LSTM(n_units, return_sequences = True)(inputs)
outputs = Dense(1, activation="linear")(x)

您在最后一层输出单个值,具有线性激活,因此不应用缩放。然后一个常见的选择是使用您最喜欢的优化器来最小化 MSE - 通常是 RMSprop 用于时间序列。

然后,如果您添加卷积和池化层,请务必设置padding = "same", 以保持整个层的序列长度,或修复下采样时间步长RepeatVector以匹配输入序列长度。层的具体选择可能取决于问题。

您的问题类型是时间序列回归处理此类问题的常用方法是使用带有输入(控制向量)的 ARMA 模型和卡尔曼滤波器。看看这个链接:

https://www.sas.upenn.edu/~fdiebold/Teaching104/Ch14_slides.pdf

https://en.m.wikipedia.org/wiki/Kalman_filter

对于使用 LSTM 的时间序列回归,请 从此链接检查Multivariate LSTM Forecast Model部分:

https://machinelearningmastery.com/multivariate-time-series-forecasting-lstms-keras