Perché anche gli RNN con unità LSTM possono soffrire di "gradienti esplosivi"?


13

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?

Risposte:


12

Una risposta molto breve:

LSTM disaccoppia lo stato delle celle (in genere indicato da c) e lo strato / output nascosto (in genere indicato da h) e esegue solo aggiornamenti additivi per crendere le memorie cpiù stabili. Pertanto, il gradiente scorre attraverso di esso cè mantenuto e difficile da eliminare (pertanto il gradiente complessivo è difficile da eliminare). Tuttavia, altri percorsi possono causare un'esplosione gradiente.


Una risposta più dettagliata con spiegazione matematica:

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

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

Riferimento:

K. Greff, RK Srivastava, J. Koutn´ık, BR Steunebrink e J.Schmidhuber. LSTM: un'odissea nello spazio di ricerca. CoRR, abs / 1503.04069, 2015.


Potresti includere una citazione completa per quel documento? I collegamenti tendono a morire.
mkt - Ripristina Monica il

2
@mkt Grazie per il tuo consiglio. In realtà questo è un documento molto famoso e il collegamento va ad arXiv, quindi non è probabile che muoia, lol ~ Ma assicurati di controllare la versione v1 (Perché l'attuale versione v2 non include un'appendice).
soloice,

Grazie per averlo aggiunto e per i dettagli sull'appendice.
mkt - Ripristina Monica il

Ottima risposta, di solito non commento per mettere +1, ma questo lo merita. Mostrando un esempio reale con l'algebra matriciale di percorsi forse instabili in una cella LSTM risponde esattamente all'OP.
DeltaIV,

3

0.992000.134
1200=1
1.0120013

Tuttavia ci sono ancora alcuni percorsi attraverso i quali il gradiente potrebbe diventare instabile, e più grande è la rete, più è probabile che incontrerai questo problema.


3
Perché questo dovrebbe rispondere alla mia domanda? Mi piacerebbe conoscere i dettagli.
nbro,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.