Residual Networks (ResNet)
Explore la puissance des réseaux résiduels (ResNet). Apprends comment les connexions sautées (skip connections) résolvent le problème de la disparition du gradient pour permettre l'apprentissage profond en vision par ordinateur.
Les réseaux résiduels, largement connus sous le nom de ResNets, sont un type spécifique d'architecture de réseau de neurones artificiels (ANN) conçue pour permettre l'entraînement de réseaux extrêmement profonds. Introduit par des chercheurs de Microsoft en 2015, ResNet a résolu un goulot d'étranglement critique en deep learning connu sous le nom de problème de disparition du gradient. Dans les réseaux traditionnels, l'empilement de couches supplémentaires entraînait souvent une saturation ou une dégradation des performances car le signal nécessaire pour mettre à jour les poids du modèle s'estompait à mesure qu'il se propageait vers l'arrière à travers les couches. ResNet a introduit des « connexions sautées » (ou connexions résiduelles), qui permettent aux données de contourner une ou plusieurs couches et de circuler directement vers les étapes de traitement suivantes. Cette innovation a prouvé que des réseaux plus profonds pouvaient être entraînés efficacement, menant à des percées significatives en vision par ordinateur (CV) et devenant un concept fondamental pour les architectures modernes.
Link to this sectionLe concept clé : l'apprentissage résiduel#
La caractéristique déterminante d'un ResNet est le « bloc résiduel ». Dans un réseau de neurones convolutif (CNN) standard, chaque couche tente d'apprendre une correspondance directe de l'entrée vers la sortie. À mesure que les réseaux deviennent plus profonds, l'apprentissage de cette correspondance directe devient de plus en plus difficile.
ResNet change cette approche en formulant l'objectif d'apprentissage différemment. Au lieu d'espérer que chaque pile de couches apprenne toute la correspondance sous-jacente, le bloc résiduel force les couches à apprendre le « résidu » — ou la différence — entre l'entrée et la sortie souhaitée. L'entrée originale est ensuite ajoutée au résidu appris via une connexion sautée. Ce changement structurel implique que si une correspondance d'identité (passer l'entrée inchangée) est optimale, le réseau peut facilement apprendre à pousser les résidus vers zéro. Cela rend les modèles de deep learning (DL) beaucoup plus faciles à optimiser, leur permettant de passer de quelques dizaines à des centaines, voire des milliers de couches.
Link to this sectionVariantes d'architecture clés#
Depuis sa création, plusieurs variations de ResNet sont devenues des références standard dans la communauté IA.
- ResNet-50 : Une version à 50 couches qui utilise une conception en « goulot d'étranglement ». Cette conception utilise des convolutions 1x1 pour réduire puis restaurer les dimensions, rendant le réseau efficace sur le plan computationnel tout en maintenant une précision élevée.
- ResNet-101 et ResNet-152 : Des variantes plus profondes avec respectivement 101 et 152 couches. Elles sont souvent utilisées lorsque les ressources computationnelles permettent une plus grande complexité pour capturer des cartes de caractéristiques plus complexes.
- ResNeXt : Une évolution de ResNet qui introduit une dimension de « cardinalité », divisant le bloc résiduel en plusieurs chemins parallèles, ce qui améliore l'efficacité et les performances.
Link to this sectionApplications concrètes#
La robustesse des architectures ResNet en a fait un choix incontournable pour un large éventail de tâches visuelles.
- Analyse d'images médicales : Dans le domaine de la santé, l'identification d'anomalies subtiles dans les scans haute résolution est critique. Les modèles basés sur ResNet sont fréquemment utilisés pour détecter des conditions telles que la détection de tumeurs dans l'imagerie médicale, où la profondeur du réseau aide à distinguer les modèles fins dans les données IRM ou CT.
- Véhicules autonomes : Les voitures autonomes nécessitent une extraction fiable des caractéristiques à partir des flux de caméras pour identifier les piétons, les panneaux et les obstacles. Les ResNets servent souvent de backbone pour les systèmes de détection d'objets dans les applications d'IA dans l'automobile, fournissant les caractéristiques visuelles riches nécessaires à une navigation sûre.
Link to this sectionResNet vs. autres architectures#
Il est utile de distinguer ResNet d'autres architectures populaires pour comprendre son utilité spécifique.
- ResNet vs. VGG : Les réseaux VGG (Visual Geometry Group) sont également des CNN profonds mais manquent de connexions résiduelles. Par conséquent, ils sont beaucoup plus difficiles à entraîner à des profondeurs comparables à ResNet et sont généralement plus coûteux en termes de calcul en raison de leurs grandes couches entièrement connectées.
- ResNet vs. Inception : Les réseaux Inception se concentrent sur la largeur, en utilisant des filtres de tailles multiples au sein de la même couche pour capturer des caractéristiques à différentes échelles. ResNet se concentre sur la profondeur. Les architectures modernes comme Inception-ResNet combinent les deux concepts.
- ResNet vs. Vision Transformer (ViT) : Alors que les ViT utilisent des mécanismes d'auto-attention pour traiter les images globalement, les ResNets s'appuient sur des convolutions locales. Cependant, les ResNets restent une base de référence solide et sont souvent plus rapides pour les petits jeux de données ou l'inférence en temps réel.
Link to this sectionExemple d'implémentation#
Les bibliothèques de deep learning modernes comme PyTorch facilitent l'accès aux modèles ResNet pré-entraînés. Ces modèles sont inestimables pour le transfer learning, où un modèle entraîné sur un grand ensemble de données comme ImageNet est affiné pour une tâche spécifique.
L'extrait Python suivant démontre comment charger un modèle ResNet-50 pré-entraîné en utilisant torchvision (partie de l'écosystème PyTorch) et effectuer une simple passe avant. Bien que les utilisateurs de la plateforme Ultralytics puissent souvent utiliser YOLO26 pour la détection, comprendre les concepts de backbone sous-jacents comme ResNet est crucial pour une personnalisation avancée.
import torch
import torchvision.models as models
# Load a pre-trained ResNet-50 model
resnet50 = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)
resnet50.eval() # Set model to evaluation mode
# Create a dummy input tensor (batch_size, channels, height, width)
input_tensor = torch.randn(1, 3, 224, 224)
# Perform a forward pass to get predictions
with torch.no_grad():
output = resnet50(input_tensor)
print(f"Output shape: {output.shape}") # Expect [1, 1000] for ImageNet classesLink to this sectionImportance dans l'IA moderne#
Bien que les architectures plus récentes comme YOLO26 utilisent des structures hautement optimisées pour une vitesse et une précision maximales, les principes de l'apprentissage résiduel restent omniprésents. Le concept de connexions sautées est désormais un composant standard dans de nombreux réseaux avancés, y compris les transformateurs utilisés dans le traitement du langage naturel (NLP) et les derniers modèles de détection d'objets. En permettant aux informations de circuler plus librement à travers le réseau, ResNet a ouvert la voie aux modèles profonds et complexes qui alimentent l'intelligence artificielle d'aujourd'hui.






