Размер партии для данных панели для LSTM в Керасе - PullRequest
0 голосов
/ 02 мая 2018

Я повторил измерения на предметах, которые я структурировал как входные данные для модели LSTM в Керасе следующим образом:

batch_size = 1
model = Sequential()
model.add(LSTM(50, batch_input_shape=(batch_size, time_steps, features), return_sequences=True))

Где time_steps - это количество измерений по каждому объекту, а также число доступных функций для каждого измерения. Каждая строка данных - одна тема.

Мой вопрос касается размера партии с данным типом данных. Должен ли я использовать только размер партии 1 или размер партии может превышать 1 предмет?

В связи с этим, выиграю ли я от установки Stateful в True? Это означает, что обучение из одной партии будет информировать и другие партии. Поправь меня, если мое понимание об этом тоже неверно.

1 Ответ

0 голосов
/ 03 мая 2018

Отличный вопрос! Использование пакета с размером больше 1 возможно с такими данными и настройками, при условии, что ваши строки представляют собой отдельные эксперименты на предметах и ​​что ваши наблюдения для каждого предмета упорядочены последовательно во времени (например, понедельник наступает до вторника). Убедитесь, что ваши наблюдения между поездом и тестом не разбиты случайным образом и что ваши наблюдения упорядочены последовательно по субъектам в каждом, и вы можете применить пакетную обработку. Из-за этого установите для параметра shuffle значение false, если при использовании Keras в качестве Keras по умолчанию выполняется перемешивание наблюдений в пакетах.

Что касается установки состояния с истинным: в модели с состоянием все состояния распространяются на следующий пакет. Это означает, что состояние выборки, расположенной по индексу i, Xi, будет использовано при вычислении выборки Xi + bs в следующей партии. В случае временных рядов это обычно имеет смысл. Если вы считаете, что предметное измерение Si влияет на состояние следующего предметного измерения Si + 1, то попробуйте установить для stateful значение true. Возможно, стоит изучить возможность установки состояния с ложным значением, чтобы изучить и лучше понять, влияет ли предыдущее наблюдение во времени на следующее наблюдение для конкретного субъекта.

Надеюсь, это поможет!

...