我目前正在尝试测试LSTM RNN和GRU RNN在预测时间序列(如果时间序列上升或下降,则分类为1/0)方面的行为差异。我使用fitçu生成器方法(如Keras François Chollet的书)
我把30个点反馈给网络,下一个点必须分类为向上或向下。训练集样本被重新洗牌,而验证样本当然不是。你知道吗
如果我不改变学习率的默认值(对于adam算法是10-3),那么通常的情况是,训练集在一定次数的epoch之后往往会过度拟合,无论是LSTM还是GRU单元。你知道吗
请注意,我的绘图是用10个模拟平均的(这样我就摆脱了特定权重的随机初始化)
如果我选择较低的学习率,培训和验证的准确性见下文不同学习率的影响,在我看来,培训集不再能够过度拟合(???)你知道吗
learning rate impact on GRU network
当我比较LSTM和GRU时,更糟糕的是,在LSTM的情况下,验证集比训练集的精度更高。对于GRU的情况,曲线很接近,但训练集仍然较高
请注意,对于1层LSTM,这一点不太强调
我已经测试了1或2层和一个不同的验证集,但结果是相似的。你知道吗
我的代码摘录如下:
modelLSTM_2a = Sequential()
modelLSTM_2a.add(LSTM(units=32, input_shape=(None, data.shape[-1]),return_sequences=True))
modelLSTM_2a.add(LSTM(units=32, input_shape=(None, data.shape[-1]),return_sequences=False))
modelLSTM_2a.add(Dense(2))
modelLSTM_2a.add(Activation('softmax'))
adam = keras.optimizers.Adam(lr=1e-5, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
modelLSTM_2a.compile(optimizer= adam, loss='categorical_crossentropy', metrics=['accuracy'])
有人知道会发生什么吗?你知道吗
我真的对这种行为感到困惑,特别是在LSTM的案例中学习率的影响
目前没有回答
相关问题 更多 >
编程相关推荐