ケラスでLSTMを構築して時系列予測を行っていますが、hereのようにモデルをミニバッチ(ウィンドウ)でトレーニングして予測をオンラインにします。これは、一度に1つのデータレコードでデータがストリーミングされるためです。たとえば、ウィンドウサイズが500の場合、タイムステップ500でモデルはステップ1〜500で訓練され、501、次に502,503などを予測しようとします。モデルは時間ステップ1000まで再トレーニングされません。this plotに示すように、結果は奇数であり、予測値は各トレーニングウィンドウとともに増加します。ここで何が間違っているかについてのアイデアはありますか?各トレーニングバッチでLSTMの予測が増加する
私は小さなアーキテクチャを有する:
layers = {'input': inputDims, 'hidden1': 35, 'hidden2': 35, 'output': 1}
model = Sequential()
model.add(LSTM(
input_length=self.sequenceLength,
input_dim=self.layers['input'],
output_dim=self.layers['hidden1'],
return_sequences=True)
model.add(Dropout(0.2))
model.add(LSTM(
self.layers['hidden2'],
return_sequences=False)
model.add(Dropout(0.2))
model.add(Dense(output_dim=self.layers['output']))
self.model.add(Activation('linear'))
model.compile(loss='mse', optimizer='rmsprop')
これは良い点です。ありがとうございます。モデルの状態をデータストリームのさまざまな場所でリセットしようとします。 Kerasを使ってstatefule LSTMモデルを構築することもできますが、ここでうまくいくかもしれません。 – BoltzmannBrain