gpt4 book ai didi

machine-learning - LSTM 预测的初始部分中的摆动

转载 作者:行者123 更新时间:2023-11-30 09:59:54 25 4
gpt4 key购买 nike

我致力于使用 LSTM 和 GRU 进行时间序列预测。在大多数情况下,预测都相当不错。

但是,在预测稳定之前似乎有一个摆动(或先上后下),类似于 this figure 的左侧。来自another question .

就我而言,它也导致了轻微的偏移。有谁知道为什么会出现这种情况?下面是训练集和测试集的形状,以及当前的网络结构。我尝试过将序列长度从 60 个时间步减少,在 LSTM 和 GRU 之间切换,并且输入和输出稍微重叠,但都无济于事。添加 dropout 似乎也没有帮助。摆动不会消失!

目前,我的序列长度为 60 个输入和 60 个输出。

Xtrain: (920, 60, 2)
Ytrain: (920, 60, 2)
Xtest: (920, 60, 2)
Ytest: (920, 60, 2)

def define_model():
model = Sequential()
model.add(LSTM(64, return_sequences=True, input_shape=(None, 2)))
model.add(LSTM(64, return_sequences=True))
model.add(LSTM(64, return_sequences=True))
model.add(TimeDistributed(Dense(2)))
model.add(Activation('linear'))
model.summary()
return model

最佳答案

由于它们是“循环”网络,因此它们有一个方向。第一步根本没有内存,而最初的步骤却有一些内存。

内存只有在几步之后才能建立,只有这样才能理解序列是如何演变的。

通常的解决方案是使用双向包装器,因此您有x个单元从头到尾工作,还有另一个x个单元从头到尾工作。

model.add(Bidirectional(LSTM(32, return_sequences = True), input_shape=...))

至于偏移量,这可能与数据预处理有关。

关于machine-learning - LSTM 预测的初始部分中的摆动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59459808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com