18.17. Rétropropagation et formation des réseaux de neurones : réseaux de neurones récurrents (RNN) et rétropropagation dans le temps (BPTT)

Les réseaux de neurones récurrents (RNN) sont une classe de réseaux de neurones particulièrement efficaces pour traiter des séquences de données, telles que des séries temporelles, le langage naturel ou tout type de données pour lesquelles l'ordre temporel est pertinent. Contrairement aux réseaux neuronaux à action directe, où les informations circulent dans une seule direction, les RNN ont des connexions qui forment des cycles, permettant aux informations d'être « conservées » dans le réseau pendant un certain temps. Ceci est crucial pour les tâches où le contexte et l'ordre des données sont importants.

Pour former les RNN, nous utilisons une technique connue sous le nom de Backpropagation Through Time (BPTT). BPTT est une généralisation de l'algorithme de rétropropagation pour les réseaux à cycles. Explorons comment fonctionne le BPTT et comment il est appliqué à la formation des RNN.

Comment fonctionnent les RNN

Dans un RNN, chaque neurone ou unité a une connexion récurrente avec lui-même. Cela permet au neurone de conserver l'état précédent comme une sorte de « mémoire », qui influence la sortie actuelle en fonction non seulement de l'entrée actuelle, mais également des entrées précédentes. Mathématiquement, cela est exprimé par la formule suivante, où ht est l'état caché au temps t, xt est l'entrée au temps t, et W et U sont des poids qui doivent être appris : p> ht = f(W * ht-1 + U * xt + b)

La fonction f est généralement une fonction d'activation non linéaire, comme tanh ou ReLU. Le vecteur d'état caché ht est mis à jour à chaque pas de temps, capturant des informations sur la séquence jusqu'au moment actuel.

Rétropropagation dans le temps (BPTT)

BPTT est un processus qui adapte l'algorithme de rétropropagation standard pour les réseaux avec des connexions récurrentes. Le principe de base est de déployer le RNN dans le temps, en le transformant en un réseau à action prospective profonde, chaque « couche » correspondant à un pas de temps dans la séquence d’entrée. Cela permet de calculer des gradients pour chaque pas de temps, en tenant compte des dépendances temporelles.

Pour effectuer le BPTT, nous suivons les étapes suivantes :

  1. Propagation vers l'avant : l'entrée est traitée de manière séquentielle, chaque état caché étant calculé en fonction de l'état précédent et de l'entrée actuelle.
  2. Calcul de l'erreur : après propagation vers l'avant, l'erreur est calculée à la sortie finale de la séquence ou à chaque pas de temps, selon la tâche.
  3. Propagation vers l'arrière : l'erreur se propage à travers le réseau déplié, en calculant les gradients pour chaque pas de temps.
  4. Mise à jour des pondérations : les pondérations sont mises à jour en fonction des gradients calculés, généralement à l'aide d'un optimiseur tel que SGD, Adam, entre autres.

L'une des difficultés du BPTT est que le réseau déplié peut devenir très profond pour de longues séquences, ce qui peut entraîner des problèmes tels que la disparition ou l'explosion des gradients. Des gradients qui disparaissent se produisent lorsque le gradient devient si petit que l'entraînement ne progresse pas, tandis que des gradients explosifs peuvent rendre les poids trop grands et instables.

Variantes RNN et solutions aux problèmes BPTT

Pour résoudre ces problèmes, des variantes de RNN telles que la mémoire à long terme (LSTM) et les unités récurrentes fermées (GRU) ont été développées. Ces architectures incluent des mécanismes de porte qui contrôlent le flux d'informations, permettant au réseau d'apprendre quand « se souvenir » ou « oublier » les informations passées, ce qui contribue à atténuer le problème de la disparition des gradients.

De plus, des techniques telles que l'écrêtage des dégradés sont utilisées pour empêcher les dégradés d'exploser en coupant les dégradés lorsqu'ils dépassent une certaine valeur.

Conclusion

L'entraînement des RNN avec BPTT est une technique puissante pour apprendre les dépendances temporelles dans les données séquentielles. Bien que difficiles en raison de problèmes tels que la disparition et l'explosion des gradients, les progrès des architectures RNN et des techniques d'optimisation continuent d'améliorer l'efficacité des RNN dans une grande variété de tâches, de la reconnaissance vocale à la génération de texte. Comprendre et appliquer BPTT est essentiel pour quiconque souhaite travailler avec l'apprentissage automatique et l'apprentissage profond pour les données de séquence.

Répondez maintenant à l’exercice sur le contenu :

Laquelle des affirmations suivantes décrit le mieux le processus de rétropropagation dans le temps (BPTT) utilisé dans la formation des réseaux neuronaux récurrents (RNN) ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Rétropropagation et formation des réseaux de neurones : mémoire à long terme (LSTM) et unité récurrente fermée (GRU)

Page suivante de lebook gratuit :

64Rétropropagation et formation des réseaux de neurones : mémoire à long terme (LSTM) et unité récurrente fermée (GRU)

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte