Сколько ячеек 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? Как я понимаю, это должно дать общее количество параметров, которое должно быть меньше количества обучающих примеров.

rnn  machine-learning  r  predictive-modeling  random-forest  python  language-model  sentiment-analysis  encoding  machine-learning  deep-learning  neural-network  dataset  caffe  classification  xgboost  multiclass-classification  unbalanced-classes  time-series  descriptive-statistics  python  r  clustering  machine-learning  python  deep-learning  tensorflow  machine-learning  python  predictive-modeling  probability  scikit-learn  svm  machine-learning  python  classification  gradient-descent  regression  research  python  neural-network  deep-learning  convnet  keras  python  tensorflow  machine-learning  deep-learning  tensorflow  python  r  bigdata  visualization  rstudio  pandas  pyspark  dataset  time-series  multilabel-classification  machine-learning  neural-network  ensemble-modeling  kaggle  machine-learning  linear-regression  cnn  convnet  machine-learning  tensorflow  association-rules  machine-learning  predictive-modeling  training  model-selection  neural-network  keras  deep-learning  deep-learning  convnet  image-classification  predictive-modeling  prediction  machine-learning  python  classification  predictive-modeling  scikit-learn  machine-learning  python  random-forest  sampling  training  recommender-system  books  python  neural-network  nlp  deep-learning  tensorflow  python  matlab  information-retrieval  search  search-engine  deep-learning  convnet  keras  machine-learning  python  cross-validation  sampling  machine-learning 

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

Ответы:


4

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

4(nm+n2)

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.