25. Réseaux de neurones récurrents (RNN) et LSTM

Les réseaux de neurones récurrents (RNN) sont une classe de réseaux de neurones puissants pour modéliser des séquences de données, telles que des séries chronologiques ou le langage naturel. Ils sont appelés « récurrents » car ils effectuent la même tâche pour chaque élément d’une séquence, le résultat dépendant des calculs précédents. En d'autres termes, les RNN ont une « mémoire » qui capture les informations sur ce qui a été calculé jusqu'à présent.

Que sont les RNN ?

Dans un RNN traditionnel, les informations passent par des boucles. Cela permet aux informations de persister. En termes d'architecture de réseau, cela signifie que les RNN ont des connexions cycliques, ce qui constitue une distinction fondamentale par rapport aux réseaux neuronaux à action directe, où les informations ne se déplacent que dans une seule direction, de l'entrée à la sortie.

L'idée centrale est que le résultat d'une étape est utilisé comme entrée pour l'étape suivante. Ceci est particulièrement utile lorsque nous devons non seulement traiter une séquence de données, mais également apprendre de cette séquence pour faire des prédictions ou comprendre le contexte.

Problèmes des RNN traditionnels

Bien qu'ils soient théoriquement capables de traiter des séquences de n'importe quelle longueur, les RNN sont confrontés en pratique à d'importantes difficultés. L’un d’eux est le problème de la disparition ou de l’explosion des gradients. Lors de l'entraînement, lors du calcul des dérivées de la fonction de perte par rapport aux paramètres du réseau, les gradients peuvent devenir trop petits (disparaître) ou trop importants (exploser), rendant l'entraînement inefficace.

Ce problème est particulièrement prononcé lorsqu'il s'agit d'apprendre les dépendances à long terme. Dans les séquences très longues, le RNN peut oublier les informations initiales, ce qui rend difficile pour le réseau de capturer les dépendances longue distance au sein de la séquence.

Mémoire longue à court terme (LSTM)

Pour surmonter ces limitations, une variante spéciale de RNN appelée Long Short-Term Memory (LSTM) a été introduite. Les LSTM sont conçus pour éviter le problème de disparition du gradient et sont capables d'apprendre des dépendances à long terme. Ils ont été largement utilisés pour des tâches telles que la reconnaissance vocale, la traduction automatique et la génération de texte.

Un LSTM a une structure plus complexe qu'un RNN traditionnel, avec quatre couches interagissant de manière très particulière. Au lieu d'avoir une seule couche neuronale, comme c'est le cas des RNN, les LSTM en ont quatre, interagissant de manière très particulière :

  • Forgetting Gate : décide quelles informations seront supprimées de l'état de la cellule.
  • Input Gate : décide quelles valeurs seront mises à jour avec de nouvelles informations.
  • Porte de sortie : décide quelle sera la prochaine sortie cachée.
  • État de la cellule : ligne de transmission pour les informations qui peuvent être ajoutées ou supprimées via des portes.

Ces composants permettent au LSTM d'ajouter ou de supprimer des informations sur l'état de la cellule, qui est une sorte de « support » d'informations tout au long de la séquence d'opérations. Grâce à des portes, le LSTM peut apprendre ce qu'il est important de conserver ou de supprimer au fil du temps, lui permettant ainsi de conserver les informations à long terme.

Implémenter des RNN et des LSTM avec Python

Python est un langage de programmation devenu un standard de facto dans la communauté du machine learning en raison de sa syntaxe simple et de sa vaste collection de bibliothèques scientifiques et de machine learning. Des frameworks tels que TensorFlow et PyTorch fournissent des implémentations optimisées de RNN et de LSTM, facilitant ainsi le développement de modèles d'apprentissage profond complexes.

Pour implémenter un RNN ou un LSTM en Python, vous aurez besoin de connaissances de base des bibliothèques telles que NumPy et pandas pour la manipulation des données, ainsi que d'une familiarité avec la bibliothèque d'apprentissage automatique que vous choisissez. La mise en œuvre implique généralement les étapes suivantes :

  1. Préparation des données : implique la conversion des données brutes dans un format adapté à l'entraînement du réseau, tel que des vecteurs de caractéristiques et des étiquettes.
  2. Construction du modèle : définir l'architecture réseau avec des couches récurrentes ou LSTM, selon le problème.
  3. Entraînement du modèle : ajustement des pondérations du réseau via un processus d'optimisation, généralement à l'aide de l'algorithme de rétropropagation.
  4. Évaluation du modèle : testez le modèle entraîné sur des données invisibles pour évaluer ses performances.

Les RNN et les LSTM sont des outils puissants pour traiter des données séquentielles et ont été appliqués avec succès à diverses tâches complexes. Avec l'augmentation continue des données disponibles et les progrès des techniques d'apprentissage automatique, l'importance de ces réseaux ne fera que croître.

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

Laquelle des affirmations suivantes concernant les réseaux neuronaux récurrents (RNN) et la mémoire à long terme (LSTM) est correcte ?

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

Vous avez raté! Essayer à nouveau.

Image de l'article Introduction à l'apprentissage par renforcement

Page suivante de lebook gratuit :

103Introduction à l'apprentissage par renforcement

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