Gradienti che svaniscono ed esplodono

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

David Cecchini

Data Scientist

Addestrare modelli RNN

Versione srotolata del modello RNN, con la fase di forward propagation da una parola di input alla successiva fino a fine frase, e la back-propagation che aggiorna i pesi nel tempo

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Mostra la fase di forward propagation con la definizione matematica delle variabili coinvolte

Esempio: $$a_2 = f(W_a, a_1, x_2)$$

$$= f(W_a, f(W_a, a_0, x_1), x_2)$$

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Mostra la fase di back-propagation con le definizioni matematiche

Ricorda che:

$$ a_T = f(W_a, a_{T-1}, x_T) $$

$a_T$ dipende anche da $a_{T-1}$ che dipende da $a_{T-2}$ e da $W_a$, e così via!

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

BPTT (continua)

Calcolare le derivate porta a

$$ \frac{\partial a_t}{\partial W_a} = (W_a)^{t-1}g(X) $$

  • $(W_a)^{t-1}$ può convergere a 0

  • oppure divergere a $+\infty$!

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Soluzioni ai problemi di gradiente

Alcune soluzioni note:

Gradienti esplodenti

  • Clipping / scaling del gradiente

Gradienti che svaniscono

  • Inizializzare meglio la matrice W
  • Usare la regolarizzazione
  • Usare ReLU invece di tanh / sigmoid / softmax
  • Usare celle LSTM o GRU!
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Passiamo alla pratica !

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Preparing Video For Download...