我使用 tanh 激活函数和 0.1 dropout 对 LSTM 网络进行监督学习进行时间序列预测。我的 loss='mean_squared_error',optimizer='adam'。预测的时间序列如下所示,其中 x 轴显示未来月份,y 轴显示以毫米为单位的降雨量。橙色线是预测的,蓝线是实际的。即使训练数据集的所有点的值 >=0,某些点仍被预测为低于 0(负)。我的训练数据集是 64 年(所有正数据),我预测 12 年(显示 144 个数据点)
使用 ReLU 激活的模型代码:
model = Sequential()
# LSTM model
model.add(LSTM(128, batch_input_shape=(batch_size, look_back, 1),activation='relu', stateful=True, return_sequences=False))
model.add(Dropout(0.1)) #for better regularization
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')