Ho una conoscenza di base di come funzionano gli RNN (e, in particolare, con le unità LSTM). Ho un'idea pittorica dell'architettura di un'unità LSTM, ovvero una cella e alcune porte, che regolano il flusso di valori.
Tuttavia, a quanto pare, non ho compreso appieno come LSTM risolva il problema dei "gradienti che svaniscono ed esplodono", che si verifica durante l'allenamento, usando la retro-propagazione nel tempo, un RNN convenzionale. Non ho avuto l'opportunità di leggere i giornali per comprendere appieno la matematica.
Questa risposta fornisce una breve spiegazione di come gli RNN con unità LSTM risolvono il problema dei "gradienti di fuga". Matematicamente, la ragione sembra essere l'inesistenza di un derivato che non svanisce, cioè non tende a zero. Di conseguenza, l'autore afferma che "esiste almeno un percorso in cui il gradiente non svanisce". IMHO, questa spiegazione è un po 'vaga.
Nel frattempo, stavo leggendo l'articolo Sequence to Sequence Learning with Neural Networks (di Ilya Sutskever, Oriol Vinyals, Quoc V. Le) e, in quell'articolo, la sezione "3.4 Dettagli dell'allenamento", si afferma
Sebbene gli LSTM tendano a non soffrire del problema del gradiente in via di estinzione, possono avere gradienti che esplodono.
Ho sempre pensato che gli RNN con unità LSTM risolvessero sia i problemi "in via di estinzione" che "gradienti che esplodono", ma, a quanto pare, anche gli RNN con unità LSTM soffrono di "gradienti in esplosione".
Intuitivamente, perché? Matematicamente, quali sono le ragioni?