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?
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.
la source