Tengo un conocimiento básico de cómo funcionan los RNN (y, en particular, con las unidades LSTM). Tengo una idea pictórica de la arquitectura de una unidad LSTM, que es una celda y algunas puertas, que regulan el flujo de valores.
Sin embargo, al parecer, no he entendido completamente cómo LSTM resuelve el problema de "gradientes que desaparecen y explotan", que ocurre durante el entrenamiento, utilizando la propagación inversa a través del tiempo, un RNN convencional. No he tenido la oportunidad de leer los periódicos para comprender completamente las matemáticas.
Esta respuesta da una breve explicación de cómo los RNN con unidades LSTM resuelven el problema de "gradientes de fuga". Matemáticamente, la razón parece ser la inexistencia de una derivada que no se desvanece, es decir, no tiende a cero. En consecuencia, el autor afirma que "hay al menos un camino donde el gradiente no se desvanece". En mi humilde opinión, esta explicación es un poco vaga.
Mientras tanto, estaba leyendo el artículo Sequence to Sequence Learning with Neural Networks (por Ilya Sutskever, Oriol Vinyals, Quoc V. Le) y, en ese artículo, la sección "3.4 Detalles del entrenamiento", se afirma
Aunque los LSTM tienden a no sufrir el problema del gradiente de fuga, pueden tener gradientes explosivos.
Siempre he pensado que los RNN con unidades LSTM resuelven los problemas de "gradiente de fuga" y de "gradientes explosivos", pero, aparentemente, los RNN con unidades LSTM también sufren "gradientes explosivos".
Intuitivamente, ¿por qué es eso? Matemáticamente, ¿cuáles son las razones?