Разрабатываю нейросеть RNN(LSTM слои) для прогнозирования численного значения временного ряда, использую tensorflow. Модель совсем не обучается
У моей модели выходят значения в одном диапазоне(практически одинаковые), что совсем не соответствует реальным данным. В качестве входных данных использую временной ряд с размерностью (None, 20, 28) - на входе у LSTM слоя. Данные у меня в виде тензоров разбитых на батчи. Также на входе есть слой нормализации данных, который перед этим я обучил.
Архитектура модели:
model = keras.Sequential()
model.add(normalizer)
model.add(layers.LSTM(256,
return_sequences = True,
input_shape=x_train_multi.shape[-2:],
#activation=keras.activations.relu,
#activity_regularizer=keras.regularizers.L1(0.001)
))
model.add(layers.LSTM(256,
return_sequences = True,
#activation=keras.activations.relu,
#activity_regularizer=keras.regularizers.L2(0.001)
))
model.add(layers.Dropout(0.002))
model.add(layers.Dense(256, activation=keras.activations.relu))
model.add(layers.Dense(128, activation=keras.activations.relu))
model.add(layers.Dense(64, activation=keras.activations.relu))
model.add(layers.Dense(1, activation=keras.activations.relu))
model.compile(optimizer = keras.optimizers.Adam(learning_rate=0.001),
loss=keras.losses.MeanSquaredError(),
metrics=['mae', 'mse']
)
Я пробовал обучать обычную полносвязную модель, без слоев LSTM и результат был лучше.
Подскажите, пожалуйста, с чем может быть связано такое поведение.