Gradients qui s'annulent ou 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 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$, et ainsi de suite !

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 connues :

Gradients explosifs

  • Tronquage / mise à l'échelle du gradient

Gradients qui s'annulent

  • Mieux initialiser la matrice W
  • Utiliser la régularisation
  • Utiliser ReLU plutôt que 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...