Wie viele LSTM-Zellen soll ich verwenden?


12

Gibt es Faustregeln (oder tatsächliche Regeln) für die minimale, maximale und "angemessene" Anzahl von LSTM-Zellen, die ich verwenden sollte? Insbesondere beziehe ich mich auf BasicLSTMCell von TensorFlow und num_unitsEigenschaft.

Bitte nehmen Sie an, dass ich ein Klassifizierungsproblem habe, das definiert ist durch:

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

Stimmt es zum Beispiel, dass die Anzahl der Trainingsbeispiele größer sein sollte als:

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

Wo cist die Anzahl der Zellen? Ich habe dies auf folgendem Grund aufgebaut : Wie berechnet man die Anzahl der Parameter eines LSTM-Netzwerks? Soweit ich weiß, sollte dies die Gesamtzahl der Parameter ergeben, die geringer sein sollte als die Anzahl der Trainingsbeispiele.

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
Ich würde dieses Papier lesen, das sich gut mit dem Thema des Vergleichs von sequentiellen Deep-Learning-Modellen sowie der Optimierung von Hyperparametern befasst: arxiv.org/pdf/1503.04069.pdf Zusammenfassend lässt sich sagen, dass es offensichtlich ist, dass die Anzahl der LSTM-Blöcke pro versteckt erhöht wird Schicht verbessert die Leistung, hat aber abnehmende Renditen und verlängert die Trainingszeit.
CubeBot88

Antworten:


4

Die Mindestanzahl an Trainingsbeispielen ist die, die Sie dort oben haben:

4(nm+n2)

Weitere Informationen finden Sie in diesem Artikel: Wenn Sie visuelle Hilfe benötigen, lesen Sie diesen Link: Anzahl der Parameter in einem LSTM-Modell

Die Anzahl der Einheiten in jeder Schicht des Stapels kann variieren. Zum Beispiel kann in translate.py von Tensorflow auf 1024, 512 oder praktisch jede Zahl konfiguriert werden. Der beste Bereich kann durch Kreuzvalidierung ermittelt werden. Aber ich habe sowohl 1000 als auch 500 Einheiten in jeder Schicht des Stapels gesehen. Ich persönlich habe auch mit kleineren Zahlen getestet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.