Residual Networks (ResNet)
Explore la puissance des réseaux résiduels (ResNet). Découvre comment les connexions de saut résolvent le problème de disparition des gradients et permettent le deep learning 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çu pour permettre l’entraînement de réseaux extrêmement profonds. Présenté par des chercheurs de Microsoft en 2015, ResNet a résolu un problème critique de l’apprentissage profond appelé 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 à la mise à jour des poids du modèle s’estompait au fur et à mesure qu’il se propageait en sens inverse à travers les couches. ResNet a introduit les « connexions de saut » (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 démontré qu’il était possible d’entraîner efficacement des réseaux plus profonds, ouvrant la voie à des avancées majeures en vision par ordinateur (CV) et devenant un concept fondamental des architectures modernes.
Le concept central : l’apprentissage résiduel#
La caractéristique déterminante d’un ResNet est le « bloc résiduel ». Dans un réseau neuronal convolutif (CNN) standard, chaque couche tente d’apprendre une correspondance directe entre l’entrée et la sortie. À mesure que les réseaux gagnent en profondeur, l’apprentissage de cette correspondance directe devient de plus en plus difficile.
ResNet modifie cette approche en formulant différemment l’objectif d’apprentissage. Au lieu d’espérer que chaque empilement de couches apprenne l’intégralité de la correspondance sous-jacente, le bloc résiduel oblige les couches à apprendre le « résidu », c’est-à-dire la différence entre l’entrée et la sortie souhaitée. L’entrée d’origine est ensuite ajoutée au résidu appris par l’intermédiaire d’une connexion de saut. Cette modification structurelle implique que, si une correspondance d’identité (transmettre l’entrée sans la modifier) est optimale, le réseau peut facilement apprendre à ramener les résidus à zéro. Cela facilite considérablement l’optimisation des modèles d’apprentissage profond (DL), qui peuvent ainsi passer de quelques dizaines à des centaines, voire des milliers de couches.
Principales variantes d’architecture#
Depuis sa création, plusieurs variantes de ResNet sont devenues des références standard dans la communauté de l’IA.
- ResNet-50 : Une version à 50 couches qui utilise une architecture en « goulot d’étranglement ». Cette architecture utilise des convolutions 1x1 pour réduire puis restaurer les dimensions, ce qui rend le réseau efficace sur le plan des calculs tout en maintenant une précision élevée.
- ResNet-101 et ResNet-152 : Des variantes plus profondes comportant respectivement 101 et 152 couches. Elles sont souvent utilisées lorsque les ressources de calcul permettent une complexité supérieure afin de capturer des cartes de caractéristiques plus complexes.
- ResNeXt : Une évolution de ResNet qui introduit une dimension de « cardinalité » en divisant le bloc résiduel en plusieurs chemins parallèles, ce qui améliore l’efficacité et les performances.
Applications concrètes#
La robustesse des architectures ResNet en a fait un choix privilégié pour un large éventail de tâches visuelles.
- Analyse d’images médicales : Dans le domaine de la santé, il est essentiel d’identifier de subtiles anomalies dans des examens haute résolution. Les modèles basés sur ResNet sont fréquemment employés pour détecter des pathologies telles que la détection de tumeurs en imagerie médicale, la profondeur du réseau facilitant la distinction de motifs fins dans les données IRM ou de tomodensitométrie.
- Véhicules autonomes : Les voitures autonomes doivent extraire de manière fiable les caractéristiques des flux vidéo des caméras afin d’identifier les piétons, les panneaux et les obstacles. Les ResNets servent souvent de réseau dorsal aux systèmes de détection d’objets dans les applications d’IA dans l’automobile, en fournissant les riches caractéristiques visuelles nécessaires à une navigation sûre.
ResNet par rapport aux autres architectures#
Il est utile de distinguer ResNet des autres architectures populaires pour comprendre son utilité spécifique.
- ResNet par rapport à VGG : Les réseaux VGG (groupe de géométrie visuelle) sont également des CNN profonds, mais ils ne disposent pas de connexions résiduelles. Ils sont donc beaucoup plus difficiles à entraîner à des profondeurs comparables à celles de ResNet et sont généralement plus coûteux en calcul en raison de leurs grandes couches entièrement connectées.
- ResNet par rapport à Inception : Les réseaux Inception privilégient la largeur en utilisant des filtres de plusieurs tailles au sein d’une même couche afin de capturer des caractéristiques à différentes échelles. ResNet privilégie la profondeur. Les architectures modernes comme Inception-ResNet combinent ces deux concepts.
- ResNet par rapport au Transformer de vision (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 référence solide et sont souvent plus rapides pour les petits jeux de données ou l’inférence en temps réel.
Exemple d’implémentation#
Les bibliothèques modernes d’apprentissage profond comme PyTorch permettent d’accéder facilement aux modèles ResNet préentraînés. Ces modèles sont précieux pour l’apprentissage par transfert, dans lequel un modèle entraîné sur un vaste jeu de données comme ImageNet est ajusté pour une tâche spécifique.
L’extrait de code Python suivant montre comment charger un modèle ResNet-50 préentraîné à l’aide de torchvision (qui fait partie de l’écosystème PyTorch) et effectuer une simple passe avant. Les utilisateurs de la plateforme Ultralytics utilisent souvent YOLO26 pour la détection, mais comprendre les concepts sous-jacents des réseaux dorsaux comme ResNet est essentiel pour effectuer des personnalisations avancées.
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 classesImportance dans l’IA moderne#
Bien que les architectures plus récentes comme YOLO26 utilisent des structures hautement optimisées pour maximiser la vitesse et la précision, les principes de l’apprentissage résiduel restent omniprésents. Le concept de connexions de saut est désormais un composant standard de nombreux réseaux avancés, notamment des Transformers utilisés en traitement automatique du langage naturel (NLP) et dans les derniers modèles de détection d’objets. En permettant aux informations de circuler plus librement dans le réseau, ResNet a ouvert la voie aux modèles profonds et complexes qui alimentent l’intelligence artificielle actuelle.









