Wie verhindert LSTM das Problem des Fluchtgradienten?

35

LSTM wurde speziell erfunden, um das Problem des verschwindenden Gradienten zu vermeiden. Dies soll mit dem Constant Error Carousel (CEC) geschehen, das in der folgenden Abbildung (von Greff et al. ) Der Schleife um die Zelle entspricht .

LSTM
(Quelle: deeplearning4j.org )

Und ich verstehe, dass dieser Teil als eine Art Identitätsfunktion angesehen werden kann, also ist die Ableitung eine und der Gradient bleibt konstant.

Was ich nicht verstehe ist, wie es aufgrund der anderen Aktivierungsfunktionen nicht verschwindet? Die Eingabe-, Ausgabe- und Vergessen-Gatter verwenden ein Sigmoid, dessen Ableitung höchstens 0,25 beträgt, und g und h waren traditionell tanh . Wie verschwindet das Zurückpropagieren durch diese, ohne dass der Gradient verschwindet?

TheWalkingCube
quelle
2
LSTM ist ein wiederkehrendes neuronales Netzwerkmodell, das sich sehr effizient an langfristige Abhängigkeiten erinnert und nicht für das Problem des verschwindenden Gradienten anfällig ist. Ich bin nicht sicher, welche Art von Erklärung Sie suchen
TheWalkingCube
LSTM: Langes Kurzzeitgedächtnis. (Ref: Hochreiter, S. und Schmidhuber, J. (1997). Langes Kurzzeitgedächtnis. Neuronale Berechnung 9 (8): 1735-80 · Dezember 1997)
HoraceT
Gradienten in LSTMs verschwinden, nur langsamer als in Vanille-RNNs, wodurch sie weiter entfernte Abhängigkeiten erkennen können. Das Problem des Verschwindens von Gradienten zu vermeiden, ist immer noch ein Bereich aktiver Forschung.
Artem Sobolev
1
Möchtest du den Langsameren, der verschwindet, mit einer Referenz unterstützen?
Bayerj
verwandt: quora.com/
Pinocchio

Antworten:

22

Der Fluchtgradient lässt sich am besten im eindimensionalen Fall erklären. Das Mehrdimensionale ist komplizierter, aber im Wesentlichen analog. Sie können es in diesem ausgezeichneten Artikel [1] nachlesen.

Angenommen , wir einen versteckten Zustand haben zum Zeitschritt t . Wenn wir die Dinge einfach machen und Vorurteile und Eingaben entfernen, haben wir h t = σ ( w h t - 1 ) . Dann kannst du das zeigenhtt

ht=σ(wht1).

Der Faktor ist mit !!! markiert. ist das Entscheidende. Wenn das Gewicht ungleich 1 ist, fällt es entweder exponentiell schnell auf Null ab

htht=k=1ttwσ(whtk)=wtt!!!k=1ttσ(whtk)
oder exponentiell schnell wachsentt.

In LSTMs haben Sie den Zellstatus . Die Ableitung dort hat die Form st Hier istvtder Eingang zum Vergessungsgatter. Wie Sie sehen, handelt es sich nicht um einen exponentiell schnell abklingenden Faktor. Folglich gibt es mindestens einen Pfad, auf dem der Gradient nicht verschwindet. Zur vollständigen Herleitung siehe [2].

stst=k=1ttσ(vt+k).
vt

[1] Pascanu, Rasvan, Tomas Mikolov und Yoshua Bengio. "Über die Schwierigkeit, immer wiederkehrende neuronale Netze zu trainieren." ICML (3) 28 (2013): 1310 & ndash; 1318.

[2] Bayer, Justin Simon. Sequenzdarstellungen lernen. Diss. München, Technische Universität München, Diss., 2015, 2015.

bayerj
quelle
3
Hängt h_t für lstm nicht auch von h_ {t-1} ab? Was meinen Sie in Ihrer Arbeit, wenn Sie sagen, dass ds_t / d_s {t-1} "der einzige Teil ist, in dem die Farbverläufe durch die Zeit fließen"?
user3243135
@ user3243135 h_t hängt von h_ {t-1} ab. Angenommen, ds_t / d_s {t-1} wird beibehalten, auch wenn andere Gradientenflüsse verschwinden, verschwindet der gesamte Gradientenfluss nicht. Dies löst das Verschwinden des Gradienten.
Soloice
ttσ(whtk)
σ(z)σ(x)=σ(z)(1σ(z))das ist sicher <1). Ist das nicht der Grund, warum ReLUs in CNNs akzeptiert wurden? Dies ist eine Sache, die mich immer wieder verwirrt hat, wie unterschiedlich der Gradient bei Feed-Forward-Modellen und bei wiederkehrenden Modellen behandelt wurde. Irgendwelche Erläuterungen dazu?
Pinocchio
Der Gradient des Sigmoid kann auch zu einem Problem werden, wenn eine Verteilung der Eingaben mit großer Varianz und / oder einem Mittelwert von 0 vorausgesetzt wird. Selbst wenn Sie ReLUs verwenden, besteht das Hauptproblem weiterhin darin, dass Sie wiederholt mit einer Gewichtungsmatrix multiplizieren (normalerweise klein) ) verursacht verschwindende Gradienten oder in einigen Fällen, in denen die Regularisierung nicht ausreichend war, explodierende Gradienten.
Ataxias
3

Das Bild des LSTM-Blocks von Greff et al. (2015) beschreibt eine Variante, die die Autoren Vanilla LSTM nennen . Es ist ein bisschen anders als die ursprüngliche Definition von Hochreiter & Schmidhuber (1997). Die ursprüngliche Definition enthielt weder das Vergessenstor noch die Gucklochverbindungen.

Der Begriff Konstantes Fehlerkarussell wurde in der Originalarbeit verwendet, um die wiederkehrende Verbindung des Zellenzustands zu kennzeichnen. Betrachten Sie die ursprüngliche Definition, bei der der Zellenzustand nur durch Hinzufügen geändert wird, wenn sich das Eingangsgatter öffnet. Der Gradient des Zellzustandes gegenüber dem Zellzustand zu einem früheren Zeitpunkt ist Null.

Ein Fehler kann immer noch durch das Ausgangstor und die Aktivierungsfunktion in die CEC gelangen. Die Aktivierungsfunktion verringert die Größe des Fehlers ein wenig, bevor er zur CEC hinzugefügt wird. CEC ist der einzige Ort, an dem der Fehler unverändert auftreten kann. Wenn sich das Eingangsgatter wieder öffnet, tritt der Fehler durch das Eingangsgatter, die Aktivierungsfunktion und die affine Transformation aus, wodurch die Größe des Fehlers verringert wird.

Somit wird der Fehler reduziert, wenn er durch eine LSTM-Schicht zurückverbreitet wird, jedoch nur, wenn er in die CEC eintritt und diese verlässt. Wichtig ist, dass es sich in der CEC nicht ändert, egal wie lange es unterwegs ist. Dies löst das Problem in der grundlegenden RNN, dass jeder Zeitschritt eine affine Transformation und Nichtlinearität anwendet, was bedeutet, dass der Fehler umso kleiner wird, je länger der Zeitabstand zwischen dem Eingang und dem Ausgang ist.

Seppo Enarvi
quelle
2

http://www.felixgers.de/papers/phd.pdf Please refer to section 2.2 and 3.2.2 where the truncated error part is explained. They don't propagate the error if it leaks out of the cell memory (i.e. if there is a closed/activated input gate), but they update the weights of the gate based on the error only for that time instant. Later it is made zero during further back propagation. This is kind of hack but the reason to do is that the error flow along the gates anyway decay over time.

Suresh
quelle
7
Could you expand a little on this? At the moment, the answer will have no value if the link location changes or the paper is taken offline. At the very least it would help to give a full citation (reference) that will allow the paper to be found again if the link stops working, but a short summary that makes this answer self-contained would be best.
Silverfish
2

I'd like to add some detail to the accepted answer, because I think it's a bit more nuanced and the nuance may not be obvious to someone first learning about RNNs.

For the vanilla RNN,

htht=k=1ttwσ(whtk)
.

For the LSTM,

stst=k=1ttσ(vt+k)

  • a natural question to ask is, don't both the product-sums have a sigmoid term that when multiplied together tt times can vanish?
  • the answer is yes, which is why LSTM will suffer from vanishing gradients as well, but not nearly as much as the vanilla RNN

The difference is for the vanilla RNN, the gradient decays with wσ() while for the LSTM the gradient decays with σ().

For the LSTM, there's is a set of weights which can be learned such that

σ()1
Suppose vt+k=wx for some weight w and input x. Then the neural network can learn a large w to prevent gradients from vanishing.

e.g. In the 1D case if x=1, w=10 vt+k=10 then the decay factor σ()=0.99995, or the gradient dies as:

(0.99995)tt

For the vanilla RNN, there is no set of weights which can be learned such that

wσ(whtk)1

e.g. In the 1D case, suppose htk=1. The function wσ(w1) achieves a maximum of 0.224 at w=1.5434. This means the gradient will decay as,

(0.224)tt

Kevin
quelle