Ile komórek LSTM powinienem użyć?


12

Czy istnieją jakieś praktyczne zasady (lub rzeczywiste zasady) dotyczące minimalnej, maksymalnej i „rozsądnej” liczby komórek LSTM, których powinienem użyć? W szczególności odnoszę się do BasicLSTMCell z TensorFlow i num_unitswłasności.

Załóżmy, że mam problem z klasyfikacją zdefiniowany przez:

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

Czy na przykład prawdą jest, że liczba przykładów szkoleń powinna być większa niż:

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

gdzie cjest liczba komórek? Oparłem to na tym: jak obliczyć liczbę parametrów sieci LSTM? Jak rozumiem, powinno to dać całkowitą liczbę parametrów, która powinna być mniejsza niż liczba przykładów treningowych.

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
Sprawdziłbym ten artykuł, który ładnie porusza temat porównywania modeli głębokiego uczenia sekwencyjnego, a także strojenia hiperparametrów: arxiv.org/pdf/1503.04069.pdf Podsumowując, sugerują oczywiste, że zwiększenie liczby bloków LSTM na ukryty warstwa poprawia wydajność, ale zmniejsza zwroty i wydłuża czas treningu.
CubeBot88

Odpowiedzi:


4

Minimalna liczba przykładów treningowych to, co tam masz:

4(nm+n2))

Aby uzyskać więcej informacji, zapoznaj się z tym artykułem: Jeśli potrzebujesz pomocy wizualnej, skorzystaj z tego łącza: Liczba parametrów w modelu LSTM

Liczba jednostek w każdej warstwie stosu może się różnić. Na przykład w translate.py z Tensorflow można go skonfigurować na 1024, 512 lub praktycznie dowolną liczbę. Najlepszy zakres można znaleźć poprzez weryfikację krzyżową. Ale widziałem zarówno 1000, jak i 500 jednostek w każdej warstwie stosu. Osobiście testowałem również z mniejszymi liczbami.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.