time-series - 使用 Keras 预测 future 时间序列值的 lstm

标签 time-series keras prediction lstm recurrent-neural-network

我想预测多变量时间序列的 future 值。我使用此代码作为模板,但将输出激活修改为线性

https://gist.github.com/karpathy/587454dc0146a6ae21fc

输入数据是一个 8 维 double 向量序列。输出是比输入序列早一个时间段的相同 8 维向量。这就是选择线性激活的原因。

model = Sequential()
model.add(LSTM(512, input_dim=len(chars),return_sequences=True)) #minesh witout specifying the input_length
model.add(LSTM(512, return_sequences=True)) #- original
model.add(Dropout(0.2))
model.add(TimeDistributed(Dense(len(chars))))
model.add(Activation('linear'))
model.compile(loss='mean_squared_error', optimizer='rmsprop')

我是 Keras 和 RNN 的新手。有人可以确认这个设计吗?

最佳答案

您在每个样本中有 8x2 个输入,对于这 8 个时间步长中的每一个,您都编码了 512 个您跟踪的特征。话又说回来,512个值……参数的数量一定很大吧?我希望你有足够的数据和模式的多样性来使用大量的参数,否则你会过拟合。

我还建议您像这样对 LSTM 使用 dropout:

model.add(LSTM(512, return_sequences=True, dropout_W = 0.2)) #- original

还有 dropout_U 功能,但我不会使用它。如您所知,LSTM 有多个门,每个门都是密集层,因此您可以选择要在哪个门上应用 dropout。最佳做法是将其应用于输入门 (dropout_W) 而不是循环门 (dropout_U)。

否则整体架构是有意义的。

关于time-series - 使用 Keras 预测 future 时间序列值的 lstm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42603459/

相关文章:

r - 二项式数据的预测栅格范围超出 0-1(包 'raster')

r - x轴为日期(即时间序列数据)时使用abline()

tensorflow - 我们在YOLO的输出层使用哪个激活函数?

r - UNIX 中的预测分析(时间序列模型)

scikit-learn - 使用多个GPU的GridSearchCV中 "n_jobs == 1"的含义

python-3.4 - Keras 不使用多核

java - Spark 管道上的 Deeplearning4j : What are the arguments to the org. apache.spark.ml.PredictionModel.predict 方法

python - 如何更改 ARMAX.predict 的 maxlag?

r - 如何将 15 分钟的数据转换为日期时间格式的时间序列,以便我可以使用 quantmod 绘制它?

time-series - InfluxDB - 什么是分片组持续时间