Warum können RNNs mit LSTM-Einheiten auch unter explodierenden Gradienten leiden?

13

Ich habe Grundkenntnisse über die Funktionsweise von RNNs (und insbesondere von LSTMs). Ich habe eine bildliche Vorstellung von der Architektur einer LSTM-Einheit, dh einer Zelle und einiger Tore, die den Wertefluss regulieren.

Anscheinend habe ich jedoch nicht vollständig verstanden, wie LSTM das Problem des "Verschwindens und Explodierens von Gradienten" löst, das beim Trainieren eines herkömmlichen RNN unter Verwendung der Rückübertragung durch die Zeit auftritt. Ich hatte nicht die Gelegenheit, die Zeitungen zu lesen, um die Mathematik vollständig zu verstehen.

Diese Antwort gibt eine kurze Erklärung, wie RNNs mit LSTM-Einheiten das Problem der "verschwindenden Gradienten" lösen. Mathematisch scheint der Grund das Nichtvorhandensein eines Derivats zu sein, das nicht verschwindet, dh nicht gegen Null tendiert. Infolgedessen stellt der Autor fest, "dass es mindestens einen Pfad gibt, auf dem der Gradient nicht verschwindet". IMHO ist diese Erklärung ein bisschen vage.

In der Zwischenzeit las ich den Artikel Sequenz zu Sequenz Lernen mit neuronalen Netzen (von Ilya Sutskever, Oriol Vinyals, Quoc V. Le) und in diesem Artikel wird in Abschnitt "3.4 Trainingsdetails" darauf hingewiesen

Obwohl LSTMs dazu neigen, nicht unter dem Problem des verschwindenden Gradienten zu leiden, können sie explodierende Gradienten aufweisen.

Ich habe immer gedacht, dass RNNs mit LSTM-Einheiten sowohl das Problem des "Verschwindens" als auch des "Explodierens von Gradienten" lösen, aber anscheinend leiden RNNs mit LSTM-Einheiten auch unter "Explodieren von Gradienten".

Intuitiv, warum ist das so? Was sind mathematisch die Gründe?

nbro
quelle

Antworten:

12

Eine sehr kurze Antwort:

LSTM entkoppelt den Zellenzustand (normalerweise gekennzeichnet durch c) und die verborgene Schicht / Ausgabe (normalerweise gekennzeichnet durch h) und führt nur additive Aktualisierungen durch c, wodurch Speicher cstabiler werden. Dadurch cbleibt der durchfließende Gradient erhalten und ist schwer zu verschwinden (daher ist der Gesamtgradient schwer zu verschwinden). Andere Pfade können jedoch eine Gradientenexplosion verursachen.


Eine detailliertere Antwort mit mathematischer Erklärung:

tt+1dl/dctyhδct=+δct+1ft+1ft+1δct+1δct

ctct+1ytot+1yt+1δytRoTδot+1δyt+1RoTδot+2RoTRiT,RfT,RzT

Referenz:

K. Greff, RK Srivastava, J. Koutnık, BR Steunebrink und J. Schmidhuber. LSTM: Eine Odyssee im Suchraum. AdRR, abs / 1503.04069, 2015.

Einsamkeit
quelle
Könnten Sie ein vollständiges Zitat für diesen Aufsatz beifügen? Links neigen dazu, nicht mehr zu funktionieren.
mkt - Setzen Sie Monica am
2
@mkt Danke für deinen Rat. Tatsächlich ist dies ein sehr berühmtes Papier und der Link geht zu arXiv, daher ist es unwahrscheinlich, dass es stirbt, lol ~ Aber achten Sie darauf, Version v1 zu überprüfen (da die aktuelle Version v2 keinen Anhang enthält).
Soloice
Vielen Dank, dass Sie es trotzdem hinzugefügt haben, und die Details zum Anhang.
mkt - Setzen Sie Monica am
Tolle Antwort, ich kommentiere normalerweise nicht, um +1 zu setzen, aber das hat es verdient. Das Zeigen eines tatsächlichen Beispiels mit Matrixalgebra von möglicherweise instabilen Pfaden in einer LSTM-Zelle beantwortet das OP genau.
DeltaIV,
3

RNNs vor LSTM / GRU waren instabil, da sie im Wesentlichen den versteckten Zustand mit einigen Gewichten für jeden Zeitschritt multiplizierten, was bedeutet, dass es sich um eine exponentielle Operation handelt. Und wie wir wissen, ist die Potenzierung sehr instabil:

0,992000,134
1200=1
1,0120013
LSTM / GRU-Zellen lösen dieses Problem, indem sie die Multiplikation addieren. Sie haben einen Zellstatus und anstatt ihn zu multiplizieren, addieren oder subtrahieren Sie ihn.

Es gibt jedoch noch einige Wege, auf denen der Gradient instabil werden kann. Je größer das Netz ist, desto wahrscheinlicher ist es, dass Sie auf dieses Problem stoßen.

Lugi
quelle
3
Warum sollte das meine Frage beantworten? Ich würde gerne die Details erfahren.
nbro