Проблема Keras LSTM, как правильно настроить нейронную сеть для временных рядов? - PullRequest
1 голос
/ 23 мая 2019

Я пытаюсь понять, как работает lstm для прогнозирования временных рядов с Керасом.Вот мой пример.Я использую акселерометр и у меня 128.000 временных рядов.Я подумал взять: n_steps_in = 10.000 n_steps_out = 5.000 для прогнозирования.

Я разделил большой ряд на 114 выборок, 10.000 временных рядов и 1 особенность X = [114, 10.000, 1] y = [114, 5.000]

Я пытаюсь понять, сколько скрытых слоев использовать, сколько нейронов.Будучи регрессом, я подумал использовать

activation=ReLU, 
loss = mse
optimizer=adam

Проблема в том, что много раз я получал убытки равные нан, и я не могу понять, почему.

Это пример моего кода

model1 = Sequential()
model1.add(LSTM(200, activation='relu', input_shape=(n_steps_in, n_features)))
model1.add(Dense(n_steps_out))
model1.compile(optimizer='adam', loss='mse')

Буду надеяться, что кто-то получил несколько советов, спасибо !!

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Хотя LSTM широко используется для последовательного представления данных, среди классификаторов без углубленного изучения XGBoost достиг наилучших результатов

0 голосов
/ 23 мая 2019

Во-первых, попробуйте исправить это, добавив функцию активации в свой выходной слой:

model.add(Dense(n_steps_out, activation='linear'))

Однако

Получение нан при обучении обычно означает Exploding Gradient.

В глубоких сетях или периодических нейронных сетях градиенты ошибок могут накапливаться во время обновления и приводить к очень большим градиентам.Это, в свою очередь, приводит к большим обновлениям веса сети и, в свою очередь, к нестабильной сети.В крайнем случае значения весов могут стать настолько большими, что могут переполниться и привести к значениям NaN.

Проверьте этот пост в мастерстве машинного обучения.Это даст вам очень хороший обзор того, в чем заключается проблема, и несколько потенциальных решений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...