Pourquoi les RNN avec des unités LSTM peuvent-ils également souffrir de «gradients explosifs»?

13

J'ai une connaissance de base du fonctionnement des RNN (et en particulier des unités LSTM). J'ai une idée picturale de l'architecture d'une unité LSTM, c'est-à-dire une cellule et quelques portes, qui régulent le flux de valeurs.

Cependant, apparemment, je n'ai pas complètement compris comment LSTM résout le problème des "gradients de fuite et d'explosion", qui se produit lors de la formation, en utilisant la rétropropagation dans le temps, un RNN conventionnel. Je n'ai pas eu l'occasion de lire les articles pour bien comprendre les mathématiques.

Cette réponse donne une brève explication de la façon dont les RNN avec des unités LSTM résolvent le problème des «gradients de fuite». Mathématiquement, la raison semble être l'inexistence d'un dérivé qui ne disparaît pas, c'est-à-dire qui n'a pas tendance à zéro. En conséquence, l'auteur déclare "qu'il existe au moins un chemin où le gradient ne disparaît pas". À mon humble avis, cette explication est un peu vague.

Pendant ce temps, je lisais le document Sequence to Sequence Learning with Neural Networks (par Ilya Sutskever, Oriol Vinyals, Quoc V. Le), et, dans ce document, la section "3.4 Training details", il est dit

Bien que les LSTM aient tendance à ne pas souffrir du problème du gradient de fuite, ils peuvent avoir des gradients explosifs.

J'ai toujours pensé que les RNN avec des unités LSTM résolvent à la fois les problèmes de "disparition" et de "gradients explosifs", mais, apparemment, les RNN avec des unités LSTM souffrent également de "gradients explosifs".

Intuitivement, pourquoi ça? Mathématiquement, quelles en sont les raisons?

nbro
la source

Réponses:

12

Une réponse très courte:

LSTM découple l'état des cellules (généralement désigné par c) et la couche / sortie cachée (généralement indiquée par h), et ne fait que des mises à jour additives c, ce qui rend les mémoires cplus stables. Ainsi, le gradient qui s'écoule cest maintenu et difficile à disparaître (donc le gradient global est difficile à disparaître). Cependant, d'autres chemins peuvent provoquer une explosion de gradient.


Une réponse plus détaillée avec explication mathématique:

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

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

Référence:

K. Greff, RK Srivastava, J. Koutn´ık, BR Steunebrink et J.Schmidhuber. LSTM: Une odyssée de l'espace de recherche. CoRR, abs / 1503.04069, 2015.

soloice
la source
Pourriez-vous inclure une citation complète pour ce document? Les liens ont tendance à disparaître.
mkt
2
@mkt Merci pour vos conseils. En fait, c'est un papier très célèbre et le lien va à arXiv, donc il est peu probable qu'il meure, lol ~ Mais assurez-vous de vérifier la version v1 (car la version actuelle v2 ne comprend pas d'annexe).
soloice
Merci de l'avoir ajouté de toute façon et des détails sur l'annexe.
mkt
Excellente réponse, je ne commente généralement pas mettre +1, mais cela le mérite. Montrer un exemple réel avec une algèbre matricielle de chemins potentiellement instables dans une cellule LSTM répond exactement à l'OP.
DeltaIV
3

0.992000.134
1200=1
1.0120013

Cependant, il existe encore des chemins par lesquels le gradient peut devenir instable, et plus le filet est grand, plus il est probable que vous rencontrerez ce problème.

Lugi
la source
3
Pourquoi cela répondrait-il à ma question? J'aimerais connaître les détails.
nbro