LSTM с состоянием и усеченным временем обратного распространения - PullRequest
0 голосов
/ 05 сентября 2018

Допустим, у меня есть 3 последовательности одинаковой длины, и для каждой последовательности я применяю TBPTT, используя рекуррентную сеть с ячейками lstm. Во время обучения я хочу, чтобы последняя ячейка lstm для каждой подпоследовательности сохраняла скрытое состояние и состояние ячейки, поэтому я тренирую свою модель с сохранением состояния lstm. Обновляя параметры, я применяю стохастический градиентный спуск после каждой подпоследовательности, используя в качестве mini_batch длину подпоследовательностей. У меня есть вопрос.

  • Я знаю, что во время стохастического градиентного спуска я должен перетасовывать для каждой эпохи свои данные, но в этом случае, если данные связаны, что я могу сделать? Должен ли я перетасовать 3 последовательности, а не шаг каждой последовательности, или мне вообще не следует перетасовывать?

  • в случае без сохранения состояния я должен перетасовать подпоследовательности, а не каждый шаг?

В обоих случаях, на этапе тестирования для случая с состоянием я не должен использовать усеченные последовательности, а для случая без состояния мне следует использовать усеченные последовательности?

Я бы хотел узнать больше о деле с состоянием, а не о нем.

Решено: реализация keras для Stateful lstm не тасует данные, в любом случае, я думаю, что более полезно тасовать длинные последовательности после каждой эпохи

...