Сколько ячеек LSTM я должен использовать?

12

Существуют ли какие-либо практические правила (или фактические правила), касающиеся минимального, максимального и «разумного» количества ячеек LSTM, которые я должен использовать? В частности, я имею в виду BasicLSTMCell из TensorFlow и num_unitsсвойства.

Пожалуйста, предположите, что у меня есть проблема классификации, определяемая как:

t - number of time steps
n - length of input vector in each time step
m - length of output vector (number of classes)
i - number of training examples

Например, верно ли, что количество обучающих примеров должно быть больше, чем:

4*((n+1)*m + m*m)*c

где cколичество клеток? Я основал это на этом: Как рассчитать количество параметров сети LSTM? Как я понимаю, это должно дать общее количество параметров, которое должно быть меньше количества обучающих примеров.

Сообщество
источник
1
Я бы ознакомился с этой статьей, в которой подробно рассматривается тема сравнения последовательных моделей глубокого обучения, а также настройки гиперпараметров: arxiv.org/pdf/1503.04069.pdf. В заключение они предлагают очевидное то, что увеличение количества блоков LSTM на скрытый Слой улучшает производительность, но снижает отдачу и увеличивает время обучения.
CubeBot88

Ответы:

4

Минимальное количество обучающих примеров - это то, что у вас есть:

4(nm+n2)

Для получения дополнительной информации обратитесь к этой статье: Обратитесь по этой ссылке, если вам нужна визуальная помощь: Количество параметров в модели LSTM

Количество юнитов в каждом слое стека может варьироваться. Например, в translate.py от Tensorflow его можно настроить на 1024, 512 или практически любое число. Лучший диапазон может быть найден через перекрестную проверку. Но я видел как 1000, так и 500 единиц в каждом слое стека. Я лично проверил с меньшими числами также.

Али
источник