Comment LSTM empêche-t-il le problème du gradient de disparition?

35

Le LSTM a été inventé spécifiquement pour éviter le problème du gradient disparaissant. Il est supposé faire cela avec le carrousel à erreur constante (CEC), qui sur le diagramme ci-dessous (de Greff et al. ) Correspond à la boucle autour de la cellule .

LSTM
(source: deeplearning4j.org )

Et je comprends que cette partie peut être vue comme une sorte de fonction d'identité, donc la dérivée est une et le gradient reste constant.

Ce que je ne comprends pas, c'est comment cela ne disparaît pas à cause des autres fonctions d'activation. Les portes d’entrée, de sortie et d’oubli utilisent un sigmoïde, dont la dérivée est au plus égale à 0,25, et g et h étaient traditionnellement tanh . Comment la rétro-propagation à travers ceux-ci ne fait-elle pas disparaître le gradient?

TheWalkingCube
la source
2
Le LSTM est un modèle de réseau de neurones récurrent très efficace pour se souvenir des dépendances à long terme et qui n'est pas vulnérable au problème du gradient en voie de disparition. Je ne sais pas quel genre d'explication vous recherchez
TheWalkingCube
LSTM: Mémoire à court terme. (Ref: Hochreiter, S. et Schmidhuber, J. (1997). Mémoire à long terme et à court terme. Calcul neural 9 (8): 1735-1780 · Décembre 1997)
horaceT
Les gradients dans les LSTM disparaissent plus lentement que dans les RNN vanilles, ce qui leur permet d'attraper des dépendances plus lointaines. Eviter le problème de la disparition des gradients est toujours un domaine de recherche actif.
Artem Sobolev
1
Envie de faire disparaître le plus lent avec une référence?
Bayerj
connexes: quora.com/…
Pinocchio le

Réponses:

22

Le gradient de fuite est mieux expliqué dans le cas unidimensionnel. La multidimensionnelle est plus compliquée mais essentiellement analogue. Vous pouvez le lire dans cet excellent article [1].

Supposons que nous ayons un état caché au pas de temps t . Si nous simplifions les choses et supprimons les biais et les entrées, nous avons h t = σ ( w h t - 1 ) . Ensuite, vous pouvez montrer quehtt

ht=σ(wht-1).

Le facteur factorisé marqué par !!! est le crucial. Si le poids n'est pas égal à 1, il tombera à zéro de manière exponentielle rapide danst'-tou augmentera de manière exponentielle.

htht=Πk=1t-twσ(wht-k)=wt-t!!!Πk=1t-tσ(wht-k)
t-t

Dans les LSTM, vous avez l'état de la cellule . Le dérivé y est de la forme s t 'st Icivtest l’entrée de la porte d’oubli. Comme vous pouvez le constater, aucun facteur de décroissance rapide n’est impliqué de manière exponentielle. Par conséquent, il existe au moins un chemin où le gradient ne disparaît pas. Pour la dérivation complète, voir [2].

stst=Πk=1t-tσ(vt+k).
vt

[1] Pascanu, Razvan, Tomas Mikolov et Yoshua Bengio. "Sur la difficulté de former des réseaux de neurones récurrents." ICML (3) 28 (2013): 1310-1318.

[2] Bayer, Justin Simon. Représentation des séquences d'apprentissage. Diss. München, Technische Universität München, Diss., 2015, 2015.

Bayerj
la source
3
Pour lstm, h_t ne dépend-il pas également de h_ {t-1}? Que voulez-vous dire dans votre document lorsque vous dites que ds_t / d_s {t-1} "est la seule partie où les gradients traversent le temps"?
user3243135
@ user3243135 h_t dépend de h_ {t-1}. Cependant, supposons que ds_t / d_s {t-1} soit conservé, même si d'autres flux de gradient disparaissent, tout le flux de gradient ne disparaît pas. Cela résout la disparition du gradient.
soloice
Πt-tσ(wht-k)
σ(z)σ(X)=σ(z)(1-σ(z))qui est <1 à coup sûr). N’est-ce pas pour cela que les ReLU sont devenues acceptées dans les CNN? C’est une chose qui m’a toujours troublé par la différence entre la manière dont le gradient de disparition a été traité, dans les modèles à feed-back et les modèles récurrents. Des éclaircissements pour cela?
Pinocchio le
Le gradient du sigmoïde pourrait également devenir un problème, en supposant une distribution d’entrées avec une variance importante et / ou une moyenne éloignée de 0. Cependant, même si vous utilisez des ReLU, le problème principal persiste: en multipliant de manière répétée par une matrice de pondérations (généralement petites). ) provoque des gradients qui disparaissent ou, dans certains cas, une régularisation insuffisante, des gradients explosifs.
Ataxias
3

L'image du bloc LSTM de Greff et al. (2015) décrit une variante que les auteurs appellent vanilla LSTM . C'est un peu différent de la définition originale de Hochreiter et Schmidhuber (1997). La définition initiale n'incluait pas la connexion oubliée et les connexions de judas.

Le terme carrousel d'erreur constante a été utilisé dans le document d'origine pour désigner la connexion récurrente de l'état de la cellule. Considérons la définition d'origine dans laquelle l'état de la cellule est modifié uniquement par addition, lorsque la porte d'entrée s'ouvre. Le gradient de l'état de la cellule par rapport à l'état de la cellule à un pas de temps antérieur est égal à zéro.

Une erreur peut toujours entrer dans le CEC par la porte de sortie et la fonction d'activation. La fonction d'activation réduit un peu l'ampleur de l'erreur avant son ajout au CEC. CEC est le seul endroit où l’erreur peut circuler sans changement. De nouveau, lorsque la porte d'entrée s'ouvre, l'erreur se produit par la porte d'entrée, la fonction d'activation et la transformation affine, réduisant ainsi l'amplitude de l'erreur.

Ainsi, l’erreur est réduite lorsqu’elle est rétablie par une couche LSTM, mais uniquement lorsqu’elle entre dans le CEC et en sort. L'important est que cela ne change pas dans la CEC, quelle que soit la distance parcourue. Cela résout le problème du RNN de base, à savoir que chaque pas de temps applique une transformation affine et une non-linéarité, ce qui signifie que plus la distance entre l'entrée et la sortie est grande, plus l'erreur est petite.

Seppo Enarvi
la source
2

http://www.felixgers.de/papers/phd.pdf Veuillez vous référer à la section 2.2 et 3.2.2 où la partie d'erreur tronquée est expliquée. Ils ne propagent pas l'erreur en cas de fuite hors de la mémoire de la cellule (c'est-à-dire s'il y a une porte d'entrée fermée / activée), mais ils mettent à jour les poids de la porte en fonction de l'erreur uniquement pour cet instant. Plus tard, il est mis à zéro lors d'une propagation ultérieure. C'est une sorte de bidouille mais la raison en est que l'erreur coule de toute façon le long des portes, elle décroît de toute façon avec le temps.

Suresh
la source
7
Pourriez-vous développer un peu sur ce sujet? Pour le moment, la réponse n'aura aucune valeur si l'emplacement du lien change ou si le document est mis hors ligne. À tout le moins, il serait utile de donner une citation complète (référence) qui permettra de retrouver le document si le lien cesse de fonctionner, mais un bref résumé rendant cette réponse autonome serait préférable.
Silverfish
2

J'aimerais ajouter quelques détails à la réponse acceptée, parce que je pense qu'elle est un peu plus nuancée et que la nuance peut ne pas être évidente pour quelqu'un qui commence par se renseigner sur les RNN.

htht=Πk=1t-twσ(wht-k)

stst=Πk=1t-tσ(vt+k)

  • t-t
  • La réponse est oui , ce qui explique pourquoi le LSTM souffrira également de la disparition progressive des gradients, mais pas autant que le RNN vanille.

wσ()σ()

σ()1
vt+k=wXwXw

X=1w=dix vt+k=dixσ()=0,99995

(0,99995)t-t

wσ(wht-k)1

Par exemple, dans le cas 1D, supposons que ht-k=1wσ(w*1)0,224w=1,5434

(0,224)t-t

Kevin
la source