Eu tenho um conhecimento básico de como as RNNs (e, em particular, com as unidades LSTMs) funcionam. Tenho uma idéia pictórica da arquitetura de uma unidade LSTM, que é uma célula e alguns portões, que regulam o fluxo de valores.
No entanto, aparentemente, eu não entendi completamente como o LSTM resolve o problema dos "gradientes que desaparecem e explodem", que ocorre durante o treinamento, usando a retropropagação ao longo do tempo, uma RNN convencional. Não tive a oportunidade de ler os jornais para entender completamente a matemática.
Esta resposta fornece uma breve explicação de como os RNNs com unidades LSTM resolvem o problema dos "gradientes de fuga". Matematicamente, a razão parece ser a inexistência de um derivado que não desaparece, ou seja, não tende a zero. Consequentemente, o autor afirma: "existe pelo menos um caminho em que o gradiente não desaparece". IMHO, essa explicação é um pouco vaga.
Enquanto isso, eu estava lendo o artigo Sequence to Sequence Learning with Neural Networks (de Ilya Sutskever, Oriol Vinyals, Quoc V. Le) e, nesse artigo, a seção "3.4 Detalhes do treinamento", afirma-se
Embora os LSTMs tendam a não sofrer com o problema do gradiente de fuga, eles podem ter gradientes explosivos.
Eu sempre pensei que RNNs com unidades LSTM resolvem os problemas de "desaparecimento" e "gradientes explosivos", mas, aparentemente, RNNs com unidades LSTM também sofrem com "gradientes explosivos".
Intuitivamente, por que isso? Matematicamente, quais são as razões?
No entanto, ainda existem alguns caminhos pelos quais o gradiente pode se tornar instável, e quanto maior a rede, maior a probabilidade de você encontrar esse problema.
fonte