Qu’est-ce qu’un RNN ?

Un réseau neuronal récurrent (RNN) est un modèle de deep learning qui est entraîné pour traiter et convertir une entrée de données séquentielle en une sortie de données séquentielle spécifique. Les données séquentielles sont des données, telles que des mots, des phrases ou des données de séries temporelles, dans lesquelles les composants séquentiels sont interconnectés en fonction de règles de sémantique et de syntaxe complexes. Un RNN est un système logiciel composé de nombreux composants interconnectés qui imitent la façon dont les humains effectuent des conversions de données séquentielles, telles que la traduction de texte d’une langue à une autre. Les RNN sont largement remplacés par l’intelligence artificielle (IA) basée sur des transformateurs et les grands modèles de langage (LLM), qui sont beaucoup plus efficaces dans le traitement séquentiel des données.

En savoir plus sur les réseaux neuronaux

En savoir plus sur le deep learning

En savoir plus sur les transformateurs dans le domaine de l’intelligence artificielle

En savoir plus sur les grands modèles de langage

Comment fonctionne un réseau neuronal récurrent ?

L’image suivante montre un schéma d’un RNN.

Les RNN sont constitués de neurones : des nœuds de traitement de données qui travaillent ensemble pour effectuer des tâches complexes. Les neurones sont organisés en couches d’entrée, de sortie et cachées. La couche d’entrée reçoit les informations à traiter et la couche de sortie fournit le résultat. Le traitement, l’analyse et la prévision des données ont lieu dans la couche cachée. 

Couche cachée

Les RNN fonctionnent en transmettant les données séquentielles qu’ils reçoivent aux couches cachées étape par étape. Cependant, ils disposent également d’un flux de travail en boucle automatique ou récurrent : la couche cachée peut mémoriser et utiliser les entrées précédentes pour les prévisions futures dans un composant de mémoire à court terme. Elle utilise l’entrée actuelle et la mémoire stockée pour prédire la séquence suivante. 

Par exemple, considérez la séquence : La pomme est rouge. Vous voulez que le RNN prédise le rouge lorsqu’il reçoit la séquence d’entrée pomme est. Lorsque la couche cachée traite le mot pomme, elle en stocke une copie dans sa mémoire. Ensuite, lorsqu’elle voit le mot est, il rappelle pomme de sa mémoire et comprend la séquence complète : pomme est pour le contexte. Il peut ensuite prédire rouge pour une meilleure précision. Cela rend les RNN utiles pour la reconnaissance vocale, la traduction automatique et d’autres tâches de modélisation linguistique.

En savoir plus sur la traduction automatique

Formation

Les ingénieurs en machine learning (ML) entraînent des réseaux neuronaux profonds tels que les RNN en alimentant le modèle avec des données d’entraînement et en affinant ses performances. Dans le ML, les poids du neurone sont des signaux qui permettent de déterminer l’influence des informations apprises pendant l’entraînement sur la prédiction de la sortie. Chaque couche d’un RNN partage le même poids. 

Les ingénieurs ML ajustent les poids pour améliorer la précision des prévisions. Ils utilisent une technique appelée rétropropagation dans le temps (backpropagation through time, BPTT) pour calculer l’erreur du modèle et ajuster son poids en conséquence. La BPTT ramène la sortie à l’intervalle de temps précédent et recalcule le taux d’erreur. De cette façon, elle peut identifier quel état caché de la séquence est à l’origine d’une erreur significative et réajuster le poids pour réduire la marge d’erreur.

En savoir plus sur le machine learning

Quels sont les types de réseaux neuronaux récurrents ?

Les RNN sont souvent caractérisés par une architecture biunivoque : une séquence d’entrée est associée à une sortie. Cependant, vous pouvez les ajuster de manière flexible dans différentes configurations à des fins spécifiques. Voici plusieurs types de RNN courants.

Un à plusieurs

Ce type RNN canalise une entrée vers plusieurs sorties. Il permet des applications linguistiques telles que le sous-titrage d’images en générant une phrase à partir d’un seul mot clé.

Plusieurs à plusieurs

Le modèle utilise plusieurs entrées pour prévoir plusieurs sorties. Par exemple, vous pouvez créer un traducteur de langue avec un RNN, qui analyse une phrase et structure correctement les mots dans une autre langue. 

Plusieurs à un

Plusieurs entrées sont mappées vers une sortie. Cela est utile dans des applications telles que l’analyse des sentiments, où le modèle prédit les sentiments positifs, négatifs et neutres des clients à partir des témoignages entrants.

Comment les réseaux neuronaux récurrents se comparent-ils aux autres réseaux de deep learning ?

Les RNN sont l’une des nombreuses architectures de réseaux neuronaux.

Réseau neuronal récurrent vs réseau de neurones à propagation avant

Comme les RNN, les réseaux neuronaux à propagation avant sont des réseaux neuronaux artificiels qui transmettent des informations d’un bout à l’autre de l’architecture. Un réseau de neurones à propagation avant peut effectuer des tâches simples de classification, de régression ou de reconnaissance, mais il ne se souvient pas de l’entrée précédente qu’il a traitée. Par exemple, il oublie Apple au moment où son neurone traite le mot is. Le RNN surmonte cette limitation de mémoire en incluant un état de mémoire caché dans le neurone.

Réseau neuronal récurrent vs réseaux neuronaux convolutifs

Les réseaux neuronaux convolutifs sont des réseaux neuronaux artificiels conçus pour traiter des données temporelles. Vous pouvez utiliser des réseaux neuronaux convolutifs pour extraire des informations spatiales de vidéos et d’images en les faisant passer par une série de couches convolutives et mutualisées du réseau neuronal. Les RNN sont conçus pour capturer les dépendances à long terme dans les données séquentielles.

Quelles sont les limites des réseaux neuronaux récurrents ?

Depuis l’introduction du RNN, les ingénieurs ML ont réalisé des progrès significatifs dans les applications de traitement du langage naturel (NLP) avec les RNN et leurs variantes. Cependant, la famille de modèles RNN présente plusieurs limites.

En savoir plus sur le traitement du langage naturel

Gradient explosif

Un RNN peut prédire à tort le résultat de la formation initiale. Vous avez besoin de plusieurs itérations pour ajuster les paramètres du modèle afin de réduire le taux d’erreur. Vous pouvez décrire la sensibilité du taux d’erreur correspondant au paramètre du modèle sous la forme d’un gradient. Un gradient peut être assimilé à une pente que l’on emprunte pour descendre d’une colline. Un gradient plus prononcé permet au modèle d’apprendre plus rapidement, et un gradient peu élevé réduit le taux d’apprentissage.

L’explosion du gradient se produit lorsque le gradient augmente de façon exponentielle jusqu’à ce que le RNN devienne instable. Lorsque les pentes deviennent infiniment grandes, le RNN se comporte de manière erratique, ce qui entraîne des problèmes de performance tels qu’un surajustement. Le surajustement est un phénomène dans lequel le modèle peut prédire avec précision à l’aide de données d’entraînement, mais ne peut pas faire de même avec des données réelles. 

Disparition du gradient

Le problème de la disparition du gradient est une condition dans laquelle le gradient du modèle est proche de zéro lors de l’entraînement. Lorsque le gradient disparaît, le RNN n’apprend pas efficacement à partir des données d’entraînement, ce qui entraîne un sous-ajustement. Un modèle sous-adapté ne peut pas fonctionner correctement dans des applications réelles, car ses poids n’ont pas été ajustés de manière appropriée. Les RNN risquent de connaître des problèmes de disparition et d’explosion du gradient lorsqu’ils traitent de longues séquences de données. 

Temps d’entraînement lent

Un RNN traite les données de manière séquentielle, ce qui limite sa capacité à traiter efficacement un grand nombre de textes. Par exemple, un modèle RNN peut analyser le sentiment d’un acheteur à partir de quelques phrases. Cependant, résumer une page d’un essai nécessite une puissance de calcul, un espace mémoire et un temps considérables. 

Quelles sont les variantes de l’architecture des réseaux neuronaux récurrents ?

L’architecture RNN a jeté les bases permettant aux modèles ML de disposer de capacités de traitement du langage. Plusieurs variantes sont apparues qui partagent son principe de rétention de la mémoire et améliorent ses fonctionnalités d’origine. Voici quelques exemples.

Réseaux neuronaux récurrents bidirectionnels

Un réseau neuronal récurrent bidirectionnel (BRNN) traite des séquences de données avec des couches avant et arrière de nœuds cachés. La couche avant fonctionne de la même manière que le RNN, qui stocke l’entrée précédente à l’état masqué et l’utilise pour prédire la sortie suivante. Pendant ce temps, la couche arrière fonctionne dans la direction opposée en utilisant à la fois l’entrée actuelle et l’état caché futur pour mettre à jour l’état caché actuel. La combinaison des deux couches permet au BRNN d’améliorer la précision des prévisions en tenant compte des contextes passés et futurs. Par exemple, vous pouvez utiliser le BRNN pour prédire le mot trees dans la phrase Apple trees are tall

Mémoire à long terme

La mémoire à long terme (LSTM) est une variante RNN qui permet au modèle d’étendre sa capacité de mémoire pour s’adapter à une chronologie plus longue. Un RNN ne peut se souvenir que des données immédiatement antérieures. Il ne peut pas utiliser les entrées de plusieurs séquences précédentes pour améliorer sa prédiction. 

Réfléchissez aux phrases suivantes : Tom est un chat . La nourriture préférée de Tom est le poisson. Lorsque vous utilisez un RNN, le modèle ne se souvient pas que Tom est un chat. Il peut générer divers aliments lorsqu’il prédit le dernier mot. Les réseaux LSTM ajoutent un bloc de mémoire spécial appelé cellules dans la couche cachée. Chaque cellule est contrôlée par une porte d’entrée, une porte de sortie et une porte d’oubli, ce qui permet à la couche de mémoriser des informations utiles. Par exemple, la cellule mémorise les mots Tom et chat, ce qui permet au modèle de prédire le mot poisson

Unités récurrentes fermées

Une unité récurrente fermée (GRU) est un RNN qui permet une rétention sélective de la mémoire. Le modèle ajoute une mise à jour et oublie la porte de sa couche cachée, qui peut stocker ou supprimer des informations dans la mémoire. 

Comment les transformateurs surmontent-ils les limites des réseaux neuronaux récurrents ?

Les transformateurs sont des modèles de deep learning qui utilisent des mécanismes d’autoattention dans un réseau neuronal à action directe encodeur-décodeur. Ils peuvent traiter les données séquentielles de la même manière que les RNN. 

Autoattention

Les transformateurs n’utilisent pas d’états cachés pour capturer les interdépendances des séquences de données. Au lieu de cela, ils utilisent une tête d’autoattention pour traiter des séquences de données en parallèle. Cela permet aux transformateurs d’entraîner et de traiter des séquences plus longues en moins de temps qu’un RNN. Grâce au mécanisme d’autoattention, les transformateurs surmontent les limites de la mémoire et les interdépendances de séquences auxquelles sont confrontés les RNN. Les transformateurs peuvent traiter des séquences de données en parallèle et utiliser le codage positionnel pour mémoriser la relation entre chaque entrée et les autres. 

Parallélisme

Les transformateurs résolvent les problèmes de gradient auxquels sont confrontés les RNN en permettant le parallélisme pendant l’entraînement. En traitant simultanément toutes les séquences d’entrée, un transformateur n’est pas soumis à des restrictions de rétropropagation, car les gradients peuvent circuler librement vers tous les poids. Ils sont également optimisés pour le calcul parallèle, que les unités de traitement graphique (GPU) proposent pour les développements d’IA générative. Le parallélisme permet aux transformateurs de mettre à l’échelle massivement et de gérer des tâches NLP complexes en créant des modèles plus grands. 

Comment AWS peut-il répondre à vos besoins en matière de RNN ?

L’IA générative sur Amazon Web Services (AWS) fournit des services, des outils et des ressources que vous pouvez utiliser pour créer, gérer et mettre à l’échelle des applications d’IA traditionnelles à l’aide d’une technologie avancée basée sur des transformateurs. Exemples :

  • Amazon SageMaker est un service entièrement géré qui permet de préparer les données et de construire, d’entraîner et de déployer des modèles de ML pour n’importe quel cas d’utilisation. Il dispose d’une infrastructure, d’outils et de flux de travail entièrement gérés.
  • Amazon Bedrock simplifie le développement de l’IA générative en permettant la personnalisation et le déploiement de système d’IA à usage général (FM) de pointe de manière sécurisée et efficace.
  • AWS Trainium est un accélérateur ML que vous pouvez utiliser pour entraîner et mettre à l’échelle des modèles de deep learning à moindre coût dans le cloud. 

Commencez à utiliser l’IA générative sur AWS en créant un compte dès aujourd’hui.

Prochaines étapes sur AWS

Créer gratuitement un compte

Obtenez un accès instantané à l'offre gratuite AWS.

S'inscrire 
Commencez à créer sur la console

Démarrez la création dans la console de gestion AWS.

Se connecter