Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Réseau neuronal récurrent (RNN)

Découvrez la puissance des réseaux neuronaux récurrents (RNN) pour les données séquentielles, du TAL au séries temporelles. Apprenez les concepts clés et les applications dès aujourd'hui !

Un réseau neuronal récurrent (RNN) est une catégorie spécialisée de de réseaux neuronaux (RN) spécialement conçus pour pour traiter des données séquentielles, où l'ordre des entrées dicte la signification de l'ensemble. Contrairement aux réseaux feedforward traditionnels qui traitent chaque entrée de manière indépendante, les RNN traitent chaque entrée de manière indépendante. traditionnels qui traitent chaque entrée de manière indépendante, les RNN possèdent une mémoire interne qui leur permet de conserver les informations des étapes précédentes d'une séquence. les informations des étapes précédentes d'une séquence. Cette architecture unique les rend indispensables aux applications d'apprentissage profond (DL) impliquant des modèles temporels temporelles ou séquentielles, telles que le traitement du langage naturel (NLP) la synthèse vocale et l'analyse de séries temporelles. En En maintenant un "état caché" qui évolue au fur et à mesure que de nouvelles données sont traitées, les RNN peuvent saisir le contexte, ce qui leur permet de prédire le prochain mot d'une phrase ou la valeur future d'un cours boursier. prédire le prochain mot d'une phrase ou la valeur future du cours d'une action.

Fonctionnement des réseaux neuronaux récurrents

La caractéristique principale d'un RNN est son mécanisme de boucle. Dans un réseau neuronal standard, les données circulent dans une seule direction : de l'entrée à la sortie. l'entrée vers la sortie. Dans un RNN, la sortie d'un neurone est réinjectée en tant qu'entrée pour le pas de temps suivant. Ce processus Ce processus est souvent visualisé comme un "déroulement" du réseau dans le temps, où le réseau transmet son état interne - contenant des informations sur ce qu'il a fait - à un autre neurone. état interne - contenant des informations sur ce qu'il a vu jusqu'à présent - à l'étape suivante de la séquence.

Au cours du processus de formation, les RNN utilisent un algorithme appelé Backpropagation Through Time (BPTT). Il s'agit d'une extension de la standard qui calcule les gradients en dépliant le réseau en déployant le réseau à travers les étapes temporelles de la séquence. La BPTT permet au réseau d'apprendre comment les entrées antérieures les entrées antérieures influencent les sorties ultérieures, en ajustant efficacement les poids du modèle afin de minimiser l'erreur. les poids du modèle afin de minimiser l'erreur. Des explications Ce processus est expliqué en détail dans des ressources éducatives telles que le cours le cours CS224n NLP de Stanford.

Applications concrètes

Les RNN sont particulièrement efficaces dans les scénarios où le contexte est nécessaire pour interpréter correctement les données.

  1. Modélisation linguistique et traduction: Dans la traduction automatique, le sens d'un mot dépend souvent des mots qui le précèdent. Les RNN sont utilisés pour ingérer une phrase dans une langue (par exemple, l'English) et générer une phrase correspondante dans une autre langue (par exemple, l'espagnol). générer une phrase correspondante dans une autre langue (par exemple, l'espagnol). Les premières versions de Google Translate s'appuyaient fortement sur ces architectures de séquence à séquence pour atteindre la fluidité. pour atteindre la fluidité.
  2. Maintenance prédictive: Dans le secteur industriel, les RNN analysent les données de séries temporelles provenant de capteurs de machines. En apprenant En apprenant les schémas séquentiels des relevés de vibrations ou de température, ces modèles peuvent prévoir les anomalies et prédire les pannes avant qu'elles ne se produisent. prédire les défaillances avant qu'elles ne se produisent. Cette application recoupe celle de l l 'IA dans la fabrication, en aidant à optimiser l'efficacité l'efficacité opérationnelle.

Défis et architectures connexes

Bien que puissants, les RNN standard souffrent du problème du gradient du problème du gradient de disparition, où le réseau réseau a du mal à retenir les informations sur de longues séquences. Lorsque les gradients se propagent vers l'arrière à travers de nombreux pas de temps, ils peuvent devenir infiniment petits, ce qui fait que le réseau "oublie" les premières entrées. devenir infiniment petits, ce qui fait que le réseau "oublie" les premières entrées.

Pour y remédier, les chercheurs ont mis au point des variantes avancées :

  • Mémoire à long terme (LSTM): Les LSTM introduisent des "portes" qui régulent le flux d'informations, permettant au réseau de choisir ce qu'il faut retenir ou rejeter sur de longues durées. de ce qu'il faut retenir ou rejeter sur de longues périodes. Cette architecture est décrite en détail dans le blog de Christopher Olah sur les LSTM. le blog de Christopher Olah sur les LSTM.
  • Gated Recurrent Unit (GRU): Alternative simplifiée aux LSTM, les GRU offrent des performances similaires avec une plus grande efficacité de calcul en simplifiant le mécanisme de gating. en simplifiant le mécanisme de gating.

Il est également important de distinguer les RNN des réseaux neuronaux convolutifs (CNN). Alors que les RNN excellent dans les séquences temporelles (basées sur le temps), les CNN sont conçus pour les données spatiales (basées sur la grille) comme les images. Par exemple, les RNN sont conçus pour les données spatiales (en grille) comme les images, Ultralytics YOLO11 utilise une architecture basée sur pour la détection d'objets en temps réel, alors qu'un RNN serait mieux adapté au sous-titrage des images vidéo traitées par YOLO .

Implémentation d'un RNN avec PyTorch

Les frameworks modernes tels que PyTorch permettent d'implémenter de mettre en œuvre des couches récurrentes. Alors que les modèles Ultralytics comme YOLO11 sont principalement basés sur des CNN, les utilisateurs qui tireront parti de la future plateforme Ultralytics Platform pour des solutions personnalisées peuvent rencontrer des RNN lorsqu'ils traitent des données multimodales. multimodales.

Voici un exemple concis de définition d'une couche RNN de base dans PyTorch:

import torch
import torch.nn as nn

# Define an RNN layer: Input size 10, Hidden state size 20, 2 stacked layers
rnn = nn.RNN(input_size=10, hidden_size=20, num_layers=2)

# Create a dummy input sequence: (sequence_length=5, batch_size=1, input_features=10)
input_seq = torch.randn(5, 1, 10)

# Forward pass: Returns the output for each step and the final hidden state
output, hidden = rnn(input_seq)

print(f"Output shape: {output.shape}")  # torch.Size([5, 1, 20])

Pour une modélisation plus avancée des séquences, de nombreuses applications modernes adoptent les architectures suivantes architectures Transformer, qui parallélisent le traitement à l'aide d'un mécanisme d'attention. Cependant, les RNN restent un concept essentiel pour comprendre l'évolution de l'intelligence l'évolution de l'intelligence artificielle (IA) et sont sont toujours efficaces pour des tâches spécifiques de streaming à faible latence.

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant