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, plus 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. Introduits par des chercheurs de Microsoft en 2015, les ResNets ont résolu un goulot d'étranglement critique en deep learning connu sous le nom de problème du gradient qui s'évanouit. Dans les réseaux traditionnels, l'empilement de couches supplémentaires conduisait souvent à une saturation ou à une dégradation des performances, car le signal nécessaire pour mettre à jour les poids du modèle s'affaiblissait au fur et à mesure de sa propagation vers l'arrière à travers les couches. ResNet a introduit les "connexions sautées" (ou connexions résiduelles), qui permettent aux données de contourner une ou plusieurs couches pour circuler directement vers les étapes de traitement suivantes. Cette innovation a prouvé que des réseaux plus profonds pouvaient être entraînés efficacement, marquant des percées significatives en vision par ordinateur (CV) et devenant un concept fondamental pour les architectures modernes.
Le 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 convolutionnel (CNN) standard, chaque couche tente d'apprendre une correspondance directe de l'entrée vers la sortie. À mesure que les réseaux s'approfondissent, l'apprentissage de cette correspondance directe devient de plus en plus difficile.
ResNet modifie cette approche en formulant l'objectif d'apprentissage différemment. Au lieu d'espérer que chaque pile de couches apprenne l'ensemble de la correspondance sous-jacente, le bloc résiduel force 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 rajoutée au résidu appris via une connexion sautée. Ce changement structurel implique que si une correspondance d'identité (laisser passer l'entrée sans modification) est optimale, le réseau peut facilement apprendre à ramener les résidus à 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.
Variantes 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 "goulet d'étranglement" (bottleneck). Cette conception utilise des convolutions 1x1 pour réduire puis restaurer les dimensions, rendant le réseau efficace sur le plan informatique tout en maintenant une haute précision.
- ResNet-101 et ResNet-152 : Des variantes plus profondes dotées respectivement de 101 et 152 couches. Celles-ci sont souvent utilisées lorsque les ressources informatiques permettent une plus grande complexité afin de 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.
Applications 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 secteur de la santé, l'identification d'anomalies subtiles dans des examens haute résolution est essentielle. Les modèles basés sur ResNet sont fréquemment employés pour détecter des conditions telles que la détection de tumeurs en imagerie médicale, où la profondeur du réseau aide à discerner des motifs fins dans les données IRM ou TDM.
- 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 riches caractéristiques visuelles nécessaires à une navigation sûre.
ResNet 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 à celles de ResNet et sont généralement plus coûteux en 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) : Bien 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 ensembles de données ou l'inférence en temps réel.
Exemple 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 montre comment charger un modèle ResNet-50 pré-entraîné en utilisant torchvision (qui fait partie de l'écosystème PyTorch) et effectuer une passe avant simple. Bien que les utilisateurs de la Plateforme Ultralytics puissent souvent utiliser YOLO26 pour la détection, comprendre les concepts de base 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 classesImportance dans l'IA moderne#
Bien que les architectures plus récentes comme YOLO26 emploient 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 des connexions sautées est désormais un composant standard dans de nombreux réseaux avancés, y compris les transformers utilisés dans le traitement automatique 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.






