Que sont les réseaux de neurones récurrents ?
Découvrez comment les réseaux de neurones récurrents utilisent des données séquentielles pour résoudre les problèmes temporels courants observés dans la traduction et la reconnaissance vocale
Arrière-plan noir et bleu
Que sont les réseaux de neurones récurrents ?

Un réseau de neurones récurrent (RNN) est un type de réseau de neurones artificiel qui utilise des données séquentielles ou des données de séries temporelles. Ces algorithmes d'apprentissage en profondeur sont couramment utilisés pour des problèmes ordinaux ou temporels, tels que la traduction linguistique, le traitement du langage naturel, la reconnaissance vocale et le sous-titrage d'images ; ils sont incorporés dans des applications populaires telles que Siri, la recherche vocale et Google Translate. Comme les réseaux de neurones convolutifs (CNN) à propagation avant, les réseaux de neurones récurrents utilisent des données d'entraînement pour apprendre. Ils se distinguent par leur « mémoire » car ils prennent des informations d'entrées antérieures pour influencer l'entrée et la sortie en cours. Alors que les réseaux de neurones profonds traditionnels supposent que les entrées et les sorties sont indépendantes les unes des autres, la sortie des réseaux de neurones récurrents dépend des éléments antérieurs au sein de la séquence. Alors que les événements futurs seraient également utiles pour déterminer la sortie d'une séquence donnée, les réseaux de neurones récurrents unidirectionnels ne peuvent pas rendre compte de ces événements dans leurs prédictions.

Pour nous aider à expliquer les RNN, prenons une expression idiomatique, telle que « ne pas être dans son assiette », qui est couramment utilisée lorsque quelqu'un est malade. Pour que cette expression ait du sens, il faut qu'elle soit exprimée dans cet ordre spécifique. Les réseaux récurrents ont donc besoin de justifier la position de chaque mot dans l'expression et ils utilisent ces informations pour prévoir le prochain mot dans la séquence.

Une autre caractéristique distinctive des réseaux récurrents est qu'ils partagent des paramètres à travers chaque couche du réseau. Alors que les réseaux à propagation avant ont des poids différents à travers chaque nœud, les réseaux de neurones récurrents partagent les mêmes paramètres de poids dans chaque couche du réseau. Cela dit, ces poids sont toujours ajustés au travers des processus de rétropropagation et de descente de gradient afin de faciliter l'apprentissage par renforcement.

Les réseaux de neurones récurrents optimisent la rétropropagation à travers l'algorithme de temps (BPTT) pour déterminer les gradients, ce qui est légèrement différent de la rétropropagation traditionnelle car elle est caractéristique de la séquence de données. Les principes du BPTT sont les mêmes que ceux de la rétropropagation traditionnelle, où le modèle s'entraîne en calculant les erreurs de sa couche de sortie à sa couche d'entrée. Ces calculs nous permettent de régler et d'ajuster les paramètres du modèle de manière appropriée. Le BPTT diffère de l'approche traditionnelle car il additionne les erreurs à chaque étape alors que les réseaux à propagation avant n'en ont pas besoin car ils ne partagent pas les paramètres à travers chaque couche.

Grâce à ce processus, les RNN ont tendance à trouver deux problèmes, appelés explosion des gradients et fuite des gradients. Ces problèmes sont définis par la taille du gradient, qui est la pente de la fonction de perte le long de la courbe d'erreur. Lorsque le gradient est trop petit, il continue de diminuer, mettant à jour les paramètres de poids jusqu'à ce qu'ils deviennent insignifiants, c'est-à-dire 0. Lorsque cela se produit, l'algorithme n'apprend plus. L'explosion des gradients se produit lorsque le gradient est trop important, créant un modèle instable. Dans ce cas, les poids du modèle deviennent trop importants et finissent par être représentés par NaN. Une solution à ces problèmes est de réduire le nombre de couches cachées dans le réseau de neurones pour éliminer une partie de la complexité dans le modèle RNN.

Produits à la une

Watson Studio

Watson Machine Learning Accelerator

Types de réseaux de neurones récurrents

Les réseaux à propagation avant orientent une entrée vers une sortie, et bien que nous ayons visualisé les réseaux de neurones récurrents de cette manière dans les diagrammes ci-dessus, ils n'ont pas réellement cette contrainte. Au lieu de cela, leurs entrées et sorties peuvent varier dans la durée, et différents types de RNN sont utilisés pour différentes utilisations, par exemple la génération de musique, la classification des sentiments et la traduction automatique.

Fonctions d'activation communes

Comme discuté dans l'article Apprendre sur les réseaux de neurones, une fonction d'activation détermine si un neurone doit être activé. Les fonctions non linéaires convertissent généralement la sortie d'un neurone donné en une valeur comprise entre 0 et 1 ou -1 et 1. 

Différentes architectures de RNN

Réseaux de neurones récurrents bidirectionnels (BRNN) : Il s'agit d'une variante d'architecture de réseau des RNN. Alors que les RNN unidirectionnels ne peuvent s'appuyer que sur les précédentes entrées pour réaliser des prédictions à propos de l'état en cours, les RNN bidirectionnels puisent dans les données futures pour en améliorer l'exactitude. Si nous revenons à l'exemple de « ne pas se sentir dans son assiette » plus haut dans cet article, le modèle peut mieux prévoir que le second mot de cette phrase est « pas » s'il savait que le dernier mot de la séquence est « assiette ».

Mémoire longue à courte terme (LSTM) : Il s'agit d'une architecture RNN populaire, qui a été introduite par Sepp Hochreiter et Juergen Schmidhuber comme une solution au problème de disparition du gradient. Dans leur article (PDF de 388 Ko) (lien externe à IBM), ils travaillent à traiter le problème des dépendances de longue durée. C'est-à-dire que si l'état précédent qui influence la prévision en cours n'est pas dans un passé récent, le modèle RNN peut ne pas être en mesure de prévoir avec précision l'état en cours. À titre d'exemple, disons que nous voulions prévoir les mots en italique dans la phrase suivante, « Alice est allergique aux fruits secs. Elle ne peut pas manger de beurre de cacahuète. » Le contexte d'une allergie aux fruits secs peut aider à anticiper que les aliments qui ne peuvent pas être consommés contiennent des fruits secs. Cependant, si ce contexte se trouve quelques phrases avant, cela rend difficile, voire impossible, pour le RNN de connecter les informations. Pour remédier à cela, les LSTM possèdent des « cellules » dans les couches cachées du réseau de neurones qui ont trois portes – une porte d'entrée, une porte de sortie et une porte d'oubli. Ces portes contrôlent le flux d'informations nécessaires pour prévoir la sortie dans le réseau. Par exemple, si les pronoms de genre, comme « elle », ont été répétés plusieurs fois dans les phrases précédentes, vous pouvez les exclure de l'état de la cellule.

Unités récurrentes fermées (GRU) : Cette variante de RNN est similaire aux LSTM car elle permet également de traiter le problème de mémoire à court terme des modèles RNN. Au lieu d'utiliser des informations régulées « d'état de cellule », elle utilise des états cachés, et au lieu de trois portes, il en a deux : une porte de réinitialisation et une porte de mise à jour. Comme pour les portes des LSTM, les portes de réinitialisation et de mise à jour contrôlent la quantité et le type d'informations à conserver.

Réseaux de neurones récurrents et IBM Cloud

Depuis des décennies, IBM est un pionnier dans le développement des technologies d'IA et des réseaux de neurones, comme en témoigne le développement et l'évolution d'IBM Watson. Watson est désormais une solution fiable pour les entreprises qui cherchent à appliquer des techniques avancées de traitement du langage naturel et d'apprentissage en profondeur à leurs systèmes en utilisant une approche par étapes éprouvée pour l'adoption et la mise en œuvre de l'IA.

Les produits IBM, comme IBM Watson Machine Learning, prennent aussi en charge les librairies Python populaires, telles que TensorFlow, Keras et PyTorch, qui sont couramment utilisées dans les réseaux de neurones récurrents. Avec des outils comme IBM Watson Studio et Watson Machine Learning, votre entreprise peut mettre en production de façon transparente vos projets d'IA open source tout en déployant et exécutant vos modèles sur un cloud.

Pour savoir comment faire vos premiers pas avec la technologie de l'intelligence artificielle, explorez IBM Watson Studio.

S'inscrire pour obtenir un IBMid et créer votre compte IBM Cloud
Solutions connexes
Watson Studio

Créez et développez une IA fiable dans n'importe quel cloud. Automatisez le cycle de vie de l'IA pour ModelOps.

Explorer IBM Watson Studio
Cloud Paks

Logiciel cloud hybride optimisé par l'IA.

Explorer IBM Cloud Paks
Solutions IBM Cloud

Hybride. Ouvert. Résilient. Votre plateforme et partenaire pour la transformation numérique.

Explorer les solutions cloud
Ressources Watson Studio

Créez et développez une IA fiable dans n'importe quel cloud. Automatisez le cycle de vie de l'IA pour ModelOps.

Watson Machine Learning Accelerator

Accélérez votre charge de travail d'apprentissage en profondeur. Accélérez votre retour sur investissement grâce à l'entraînement et à l'inférence de modèles d'IA.

Pour aller plus loin

Découvrez comment IBM Watson est désormais une solution de confiance pour les entreprises qui cherchent à appliquer des techniques avancées de traitement automatique du langage naturel et d'apprentissage en profondeur à leurs systèmes.

Accélérer le jeu