Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

Réseau neuronal récurrent (RNN)

Découvrez comment les réseaux neuronaux récurrents (RNN) traitent les données séquentielles à l'aide de la mémoire. Découvrez les architectures RNN, les applications NLP et PyTorch .

Un réseau neuronal récurrent (RNN) est un type de réseau neuronal artificiel spécialement conçu pour reconnaître des modèles dans des séquences de données, telles que du texte, des génomes, de l'écriture manuscrite ou des mots prononcés. Contrairement aux réseaux feedforward traditionnels qui supposent que toutes les entrées (et sorties) sont indépendantes les unes des autres, les RNN conservent une forme de mémoire. Cette mémoire interne leur permet de traiter les entrées en tenant compte des informations précédentes, ce qui les rend particulièrement adaptés aux tâches où le contexte et l'ordre temporel sont essentiels. Cette architecture imite la façon dont les humains traitent les informations : lire une phrase, par exemple, nécessite de se souvenir des mots précédents pour comprendre le mot actuel.

Comment fonctionnent les RNN

La principale innovation d'un RNN réside dans sa structure en boucle. Dans un réseau feedforward standard, les informations circulent dans une seule direction : de l'entrée vers la sortie. En revanche, un RNN dispose d'une boucle de rétroaction qui permet aux informations de persister. Lorsque le réseau traite une séquence, il conserve un « état caché », un vecteur qui agit comme la mémoire à court terme du réseau. À chaque étape temporelle, le RNN prend l'entrée actuelle et l'état caché précédent pour produire une sortie et mettre à jour l'état caché pour l'étape suivante.

Cette capacité de traitement séquentiel est essentielle pour le traitement du langage naturel (NLP) et l'analyse des séries chronologiques. Cependant, les RNN standard ont souvent du mal à traiter les séquences longues en raison du problème de gradient disparaissant, qui fait que le réseau oublie les entrées antérieures à mesure que la séquence s'allonge. Cette limitation a conduit au développement de variantes plus avancées telles que les réseaux à mémoire à court terme (LSTM) et les unités récurrentes à porte (GRU), qui introduisent des mécanismes permettant de mieux réguler le flux d'informations sur des périodes plus longues.

Applications concrètes

Les réseaux neuronaux récurrents ont transformé de nombreux secteurs en permettant aux machines de comprendre les données séquentielles. Voici deux exemples marquants :

  1. Traduction automatique: les services tels que Google s'appuyaient à l'origine largement sur des architectures basées sur les RNN (en particulier les modèles séquence-à-séquence) pour convertir du texte d'une langue à une autre. Le réseau lit l'intégralité de la phrase d'entrée (par exemple en English) et construit un vecteur de contexte, qu'il utilise ensuite pour générer la sortie traduite (par exemple en français) mot par mot, en garantissant la cohérence grammaticale.
  2. Saisie prédictive et correction automatique: lorsque vous tapez sur un smartphone, le clavier suggère le mot suivant le plus probable. Cette fonctionnalité est souvent alimentée par un modèle linguistique entraîné avec des RNN. Le modèle analyse la séquence de mots que vous avez déjà tapés pour prédire le mot suivant le plus probable, améliorant ainsi la vitesse et la précision de l'utilisateur. Une logique similaire s'applique aux systèmes de reconnaissance vocale qui transcrivent l'audio parlé en texte.

RNN vs CNN et Transformers

Il est utile de distinguer les RNN des autres architectures principales. Un réseau neuronal convolutif (CNN) est principalement conçu pour les données spatiales, telles que les images, traitant des grilles de pixels afin d'identifier des formes et des objets. Par exemple, Ultralytics utilise une puissante structure CNN pour la détection d'objets en temps réel. Alors qu'un CNN excelle dans la réponse à la question « qu'y a-t-il dans cette image ? », un RNN excelle dans la réponse à la question « que se passe-t-il ensuite dans cette vidéo ? ».

Plus récemment, l'architecture Transformer a largement remplacé les RNN pour de nombreuses tâches complexes de NLP. Les Transformers utilisent un mécanisme d'attention pour traiter des séquences entières en parallèle plutôt que séquentiellement. Cependant, les RNN restent très efficaces pour certaines applications de streaming à faible latence et aux ressources limitées, et sont plus simples à déployer sur des appareils périphériques pour des prévisions simples de séries chronologiques .

Exemple PyTorch

Alors que les tâches modernes de vision par ordinateur s'appuient souvent sur les CNN, les modèles hybrides peuvent utiliser les RNN pour analyser les caractéristiques temporelles extraites des images vidéo. Vous trouverez ci-dessous un exemple simple et exécutable utilisant PyTorch pour créer une couche RNN de base qui traite une séquence de données.

import torch
import torch.nn as nn

# Define a basic RNN layer
# input_size: number of features in the input (e.g., 10 features per time step)
# hidden_size: number of features in the hidden state (memory)
# batch_first: input shape will be (batch, seq, feature)
rnn = nn.RNN(input_size=10, hidden_size=20, num_layers=1, batch_first=True)

# Create a dummy input: Batch size 1, Sequence length 5, Features 10
input_seq = torch.randn(1, 5, 10)

# Forward pass through the RNN
# output contains the hidden state for every time step
# hn contains the final hidden state
output, hn = rnn(input_seq)

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

Défis et perspectives d'avenir

Malgré leur utilité, les RNN se heurtent à des obstacles informatiques. Le traitement séquentiel empêche la parallélisation, ce qui ralentit l' apprentissage par rapport aux Transformers sur GPU. De plus, la gestion du problème de l'explosion du gradient nécessite un réglage minutieux des hyperparamètres et des techniques telles que le clipping du gradient.

Néanmoins, les RNN restent un concept fondamental dans le Deep Learning (DL). Ils sont essentiels pour comprendre l'évolution de l' intelligence artificielle (IA) et sont encore largement utilisés dans les systèmes simples de détection d'anomalies pour les capteurs IoT. Pour les développeurs qui construisent des pipelines complexes, tels que la combinaison de modèles de vision avec des prédicteurs de séquences, la gestion des ensembles de données et des workflows de formation est cruciale. Ultralytics simplifie ce processus en proposant des outils permettant de gérer efficacement les données et de déployer des modèles dans divers environnements.

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant