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.

Gemeinschaft
quelle
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.

Ali
quelle