GRU 学习小尺度特征,但错过了大尺度特征

数据挖掘 rnn 格鲁
2022-03-11 03:12:12

使用天气数据,我建立了一个带有一层 GRU 的简单 RNN。根据过去 5 天的天气数据(每天间隔 1 小时),训练它以恢复第二天的温度。

我觉得奇怪的是,在训练了几个 epoch 之后,结果是有很多数据的小规模特征,但缺乏大规模的结构。通常,预测和数据之间似乎只有一个偏移量,例如在下面的 x=900 处。另一方面,非常陡峭的山峰也没有很好地拟合。

这是模型的代码:

model = keras.Sequential()
model.add(keras.layers.GRU(units=120,
                         activation='relu',
                         dropout=0.1,
                         recurrent_dropout=0.4,
                         return_sequences=False,
                         input_shape=(120, 14)))
model.add(keras.layers.Dense(1))
model.compile(optimizer=keras.optimizers.RMSprop(),loss='mse')

训练集有 120 个(=5 天)天气数据,每个时间点有 15 个变量。例如,这些是第一个训练集中 120 个向量中的前 2 个:

print (training_x[0,0:2,:])
[[ 0.87422976 -2.0740129  -2.12744145 -2.05861548  1.04950092 -1.32397418
  -1.53525603 -0.78058659 -1.53697269 -1.53946235  2.29360559 -0.01027133
  -0.01893096 -0.25892163 -1.72366227]
 [ 0.87183698 -2.02652589 -2.07923146 -1.96947126  1.14054157 -1.30976048
  -1.49940654 -0.78875511 -1.49932401 -1.50404649  2.24182343 -0.02325901
  -0.03515888 -0.09510368 -1.72366227]]

他们事先被标准化。

(我应该注意到它是基于

我试图弄清楚这是否是一个众所周知的现象和/或我应该在哪个方向改变我的模型以进行补偿。我使用了 120 个 GRU“单元”,然后是一个单元密集层。

示例数据

0个回答
没有发现任何回复~