Gradients qui s'annulent et qui explosent

Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

David Cecchini

Data Scientist

Entraîner des modèles RNN

Version déroulée du modèle RNN, montrant la propagation avant d'un mot d'entrée au suivant jusqu'à la fin de la phrase, et la rétropropagation mettant à jour les poids dans le temps

Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Affiche la phase de propagation avant avec la définition mathématique des variables en jeu

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

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

Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Montre la phase de rétropropagation avec les définitions mathématiques

Rappelez-vous :

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

$a_T$ dépend aussi de $a_{T-1}$, qui dépend de $a_{T-2}$ et de $W_a$, etc. !

Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Suite de la BPTT

Calculer les dérivées donne

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

  • $(W_a)^{t-1}$ peut converger vers 0

  • ou diverger vers $+\infty$ !

Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Solutions aux problèmes de gradient

Quelques solutions sont connues :

Gradients explosifs

  • Clipping / mise à l'échelle du gradient

Gradients qui s'annulent

  • Mieux initialiser la matrice W
  • Utiliser une régularisation
  • Utiliser ReLU au lieu de tanh / sigmoid / softmax
  • Utiliser des cellules LSTM ou GRU !
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Passons à la pratique !

Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Preparing Video For Download...