Accéder au contenu principal

Architecture ResNet : réseaux résiduels et connexions de saut

Un tour d’horizon approfondi de l’architecture ResNet, qui explique comment l’apprentissage résiduel et les connexions de saut résolvent l’évanouissement des gradients et la dégradation qui compliquent l’entraînement des réseaux de neurones profonds.
Actualisé 4 mai 2026  · 12 min lire

Des réseaux de neurones plus profonds devraient mieux performer. En pratique, ce n’est pas toujours le cas.

Au-delà d’une certaine profondeur, la précision peut même diminuer. Non pas à cause du surapprentissage, mais parce que l’entraînement lui‑même se dégrade. Les gradients ont tendance à s’évanouir avant d’atteindre les premières couches, qui cessent alors d’apprendre. On pourrait penser qu’ajouter des couches résoudrait le problème, mais cela l’aggrave souvent.

ResNet a corrigé cela grâce à une idée centrale : les connexions de saut. Au lieu de forcer chaque couche à tout réapprendre, le réseau peut « sauter » des couches et ajouter directement l’entrée à la sortie.

Dans cet article, je passe en revue le fonctionnement de ResNet, son architecture, et pourquoi il reste un algorithme de référence en deep learning moderne.

Envie de voir ResNet en pratique ? Relevez notre exercice de classification d’images avec ResNet dans le cadre du cours Deep Learning for Images with PyTorch.

Qu’est‑ce que l’architecture ResNet ?

ResNet – abréviation de Residual Network – est une architecture de réseau de neurones conçue pour rendre l’entraînement de réseaux profonds réellement praticable.

L’idée a été introduite par Microsoft Research en 2015. L’algorithme s’appuie sur des connexions résiduelles pour contourner les problèmes d’entraînement qui limitaient la profondeur des réseaux à l’époque. Simple en apparence, cette découverte a permis pour la première fois d’entraîner de façon fiable des réseaux à 50, 101, voire 152 couches – sans voir les performances se dégrader.

Avant ResNet, atteindre une telle profondeur n’était pas vraiment envisageable.

Pourquoi les réseaux profonds sont difficiles à entraîner

Plus de couches devraient offrir plus d’opportunités d’apprentissage. En pratique, au‑delà d’un certain seuil, tout se dérègle.

Deux problèmes entrent en jeu ici.

Le premier est le problème du gradient qui s’évanouit. Les réseaux de neurones apprennent en propageant les erreurs en arrière dans le réseau – un processus appelé rétropropagation. Chaque couche ajuste ses poids en fonction de ce signal. Mais à mesure qu’il traverse de nombreuses couches, il est multiplié maintes fois par de petites valeurs et rétrécit. Lorsqu’il atteint les premières couches, il ne reste presque plus rien : ces couches cessent de se mettre à jour et donc d’apprendre.

Le second est le problème de dégradation. Celui‑ci est contre‑intuitif. On s’attendrait à ce qu’un réseau à 56 couches fasse au moins aussi bien qu’un autre à 20 couches – puisqu’il a plus de capacité. Or les chercheurs ont observé l’inverse : le réseau plus profond performe moins bien, même sur les données d’entraînement. On peut donc écarter le surapprentissage. Le modèle n’en mémorise pas trop : il peine simplement à s’optimiser.

C’est la distinction clé : il ne s’agit pas de problèmes de généralisation à corriger avec du dropout ou de la régularisation, mais de problèmes d’optimisation – le réseau ne parvient pas à trouver de bons poids.

ResNet a été conçu pour résoudre ces deux problèmes. Voici comment.

L’idée maîtresse : l’apprentissage résiduel

Les réseaux de neurones traditionnels apprennent une correspondance directe entre entrée et sortie. Chaque couche regarde ce qui entre et tente d’en déduire ce qui doit sortir. Cela fonctionne pour des réseaux peu profonds, mais à grande profondeur, on retrouve les deux problèmes évoqués.

Avec ResNet, au lieu de demander à chaque bloc d’apprendre la transformation complète, on pose une question plus simple : que faut‑il ajouter à l’entrée pour obtenir la bonne sortie ?

Cette différence s’appelle le résidu.

Ainsi, au lieu d’apprendre :

Residual learning (1)

Apprentissage résiduel (1)

Le réseau apprend :

Residual learning (2)

Apprentissage résiduel (2)

F(input) est le résidu – la petite correction à apporter. Si la couche n’a rien à changer, elle peut simplement pousser F(input) vers zéro et laisser l’entrée passer inchangée.

Cela peut sembler anodin, mais cela change ce que le réseau doit apprendre. Apprendre une petite correction est un problème d’optimisation bien plus simple qu’apprendre une transformation complète à partir de rien – c’est ce qui rend l’entraînement de réseaux plus profonds possible.

Que sont les connexions de saut dans ResNet ?

Une connexion de saut est exactement ce que le nom suggère : un chemin direct qui contourne une ou plusieurs couches et achemine l’entrée vers un point plus tardif du réseau.

Dans un réseau traditionnel, les données traversent chaque couche séquentiellement. Chaque couche transforme l’entrée et passe le résultat à la suivante. Les connexions de saut prennent l’entrée d’origine et l’additionnent directement à la sortie d’une couche plus loin dans le bloc.

Voici une façon simple de le visualiser :

Exemple de graphe avec connexion de saut

Exemple de graphe avec connexion de saut

L’entrée x suit deux chemins en parallèle. L’un passe par les couches de convolution, qui apprennent le résidu F(x). L’autre contourne ces couches et rejoint l’étape d’addition. La sortie finale est F(x) + x.

Ce raccourci joue un rôle clé à l’entraînement. Lors de la rétropropagation, les gradients peuvent revenir par la connexion de saut sans traverser les couches intermédiaires. Les premières couches reçoivent ainsi un signal plus fort et plus propre – exactement ce qui manquait aux réseaux profonds avant ResNet.

Structure d’un bloc ResNet

Un bloc résiduel est l’unité répétée qui compose un ResNet. Si vous comprenez un bloc, vous comprenez le réseau entier.

Voici ce qui se passe à l’intérieur d’un bloc :

  1. L’entrée x arrive dans le bloc et se sépare en deux chemins

  2. Un chemin traverse deux couches de convolution, chacune suivie d’une normalisation de lot (batch normalization) et d’une activation ReLU

  3. L’autre contourne ces couches : c’est la connexion de saut

  4. Les deux chemins se rejoignent lors d’une addition, où l’entrée d’origine est ajoutée à la sortie des convolutions

  5. Une activation ReLU finale est appliquée au résultat

Ou sous forme de schéma :

Schéma d’un bloc ResNet

Schéma d’un bloc ResNet

La connexion de saut ici est appelée mappage identité : l’entrée est transmise telle quelle et s’ajoute directement à la sortie apprise. C’est le raccourci le plus simple, sans transformation ni paramètres supplémentaires.

Mais pour que l’addition fonctionne, les deux chemins doivent produire des tenseurs de même forme. Si les couches de convolution modifient les dimensions spatiales ou le nombre de canaux, l’entrée x ne peut pas être ajoutée telle quelle. Dans ces cas, ResNet applique un raccourci par projection : une convolution 1×1 sur le chemin de saut qui redimensionne x pour faire correspondre les formes.

La plupart des blocs d’un ResNet utilisent des raccourcis identité. Les projections n’apparaissent que lorsque les dimensions changent, généralement lors du passage d’un stade à l’autre du réseau.

Types d’architectures ResNet

ResNet existe en plusieurs variantes standard, nommées d’après leur nombre total de couches. Le bon choix dépend de votre priorité : vitesse, précision, ou un compromis entre les deux.

Comparaison des architectures ResNet

Comparaison des architectures ResNet

ResNet‑18 et ResNet‑34 utilisent le bloc de base : deux convolutions 3×3 avec connexion de saut. Ils sont rapides et peu coûteux à exécuter, ce qui en fait un bon point de départ pour le prototypage ou avec un matériel limité.

ResNet‑50 et au‑delà adoptent un autre design, dit bloc « goulot d’étranglement » (bottleneck), avec trois couches au lieu de deux. Ce changement facilite l’entraînement de réseaux plus profonds sans hausse proportionnelle du coût de calcul. Nous détaillons le fonctionnement dans la section suivante.

ResNet‑101 et ResNet‑152 vont plus loin, au prix de temps d’entraînement plus longs et d’une utilisation mémoire accrue. Ils sont courants en recherche et en production lorsque la précision prime sur la vitesse.

Pour la plupart des cas pratiques, ResNet‑50 est le point de départ par défaut. Il offre un bon équilibre entre profondeur et coût, et il est largement pris en charge par tous les grands frameworks de deep learning.

Architecture « bottleneck » de ResNet

Les ResNet plus profonds n’utilisent pas le même bloc que les variantes plus légères. À partir de ResNet‑50, l’architecture passe à un bloc « bottleneck », un design en trois couches qui maintient le calcul à un niveau raisonnable à mesure que la profondeur augmente.

Le bloc enchaîne trois convolutions :

  • Convolution 1×1 – réduit le nombre de canaux, donc la taille de l’entrée
  • Convolution 3×3 – réalise l’apprentissage des caractéristiques sur cette représentation réduite
  • Convolution 1×1 – ré‑étend les canaux à la taille d’origine

Les convolutions 1×1 d’entrée et de sortie jouent le rôle de goulot d’étranglement – d’où le nom. Elles compressent les données avant la coûteuse convolution 3×3, puis les restaurent après.

Une convolution 3×3 sur une entrée à grand nombre de canaux est lourde en calcul. En réduisant d’abord les canaux, le bloc « bottleneck » permet à la couche 3×3 d’opérer sur une entrée bien plus petite. Résultat : plus de profondeur, sans explosion proportionnelle du coût de calcul.

La connexion de saut fonctionne comme dans le bloc de base : l’entrée est ajoutée à la sortie avant l’activation finale. La seule différence est qu’une projection est presque toujours nécessaire ici, car les canaux changent à l’intérieur du bloc.

Comment ResNet résout le problème du gradient qui s’évanouit

Le problème du gradient qui s’évanouit tient à la distance. Plus un gradient doit remonter loin dans le réseau, plus il rétrécit – et lorsqu’il atteint les premières couches, il est trop faible pour les mettre à jour.

Les connexions de saut contournent ce problème en offrant un chemin plus court aux gradients.

Lors de la rétropropagation, les gradients n’ont pas à traverser toutes les couches séquentiellement. Ils peuvent revenir directement via la connexion de saut, en contournant complètement les convolutions. Ce raccourci maintient un gradient assez fort pour mettre à jour les premières couches.

Cela change aussi l’objectif de chaque bloc : au lieu de chercher une transformation complète, le réseau n’a plus qu’à apprendre une petite correction par‑dessus l’entrée. Le problème d’optimisation devient bien plus simple, et le réseau peut donc aller plus profond sans instabilité d’entraînement.

En résumé, des réseaux auparavant trop profonds pour être entraînés de façon fiable deviennent entraînables.

ResNet vs architectures CNN traditionnelles

Les CNN traditionnels et les ResNet apprennent tous deux des caractéristiques à partir d’images, mais s’y prennent différemment.

Dans un CNN traditionnel, les données traversent les couches en ligne droite. Chaque couche prend la sortie de la précédente, applique une transformation, puis transmet. Cela fonctionne jusqu’à un certain point ; au‑delà, la structure séquentielle devient peu fiable en rétropropagation : les gradients s’amenuisent, les premières couches cessent d’apprendre et la précision chute.

ResNet n’avance pas en ligne droite. Les connexions de saut permettent à l’entrée de contourner une ou plusieurs couches et d’être ajoutée directement à la sortie plus loin dans le bloc. Le réseau apprend toujours des transformations, mais il dispose aussi d’un chemin direct pour les données et pour les gradients.

Voici comment les deux approches se comparent :

ResNet versus CNN traditionnel

ResNet versus CNN traditionnel

Les connexions de saut facilitent la circulation des gradients et lissent l’optimisation : le réseau trouve de bons poids plus vite et de façon plus fiable.

Applications de l’architecture ResNet

L’architecture ResNet s’emploie dans un large éventail de cas concrets.

Classification d’images : c’est là que ResNet a débuté. Lauréat d’ImageNet en 2015, il reste un choix de référence pour classer des images en catégories, qu’il s’agisse d’imageries médicales, de photos satellites ou de visuels produits.

Détection d’objets : des frameworks comme Faster R‑CNN et Mask R‑CNN combinent ResNet avec une tête de détection qui identifie et localise les objets dans l’image. ResNet réalise l’extraction de caractéristiques, la tête de détection fait le reste.

Apprentissage par transfert : c’est là que ResNet devient réellement utile pour la plupart des data scientists. Au lieu d’entraîner de zéro – ce qui prend des jours et beaucoup de données – vous chargez un ResNet préentraîné sur ImageNet et vous le peaufinez sur votre jeu de données. Les poids préentraînés encodent déjà des caractéristiques de bas niveau (bords, textures, formes), ce qui vous fait démarrer bien plus haut.

Extraction de caractéristiques : approche voisine. Vous faites passer vos images dans un ResNet préentraîné et récupérez la sortie d’une couche avancée. Ces sorties sont des représentations denses et pertinentes à injecter dans un classifieur plus simple ou un algorithme de clustering.

Dans tous ces cas, ResNet sert de point de départ préentraîné. La plupart des frameworks de deep learning fournissent des poids ResNet prêts à l’emploi, ce qui en fait l’une des architectures les plus faciles à adopter.

Atouts et limites de ResNet

ResNet a marqué une vraie avancée en deep learning – mais comme toute architecture, il implique des compromis. Voici les principaux avantages et inconvénients.

Atouts

Le plus évident : la profondeur. Les connexions de saut permettent d’entraîner des réseaux à 50, 100, voire 150+ couches sans rencontrer le problème de dégradation. Avant ResNet, ce n’était pas fiable.

L’entraînement est aussi plus stable. Les raccourcis offrent aux gradients une voie claire, ce qui signifie moins d’ajustements, moins d’effondrements et des résultats plus prévisibles selon les tâches et jeux de données.

Et les performances sont au rendez‑vous. Les variantes ResNet se classent régulièrement parmi les meilleures sur les benchmarks d’images, et les modèles préentraînés se transfèrent bien vers de nouveaux domaines, raison pour laquelle ils restent un point de départ par défaut en vision par ordinateur.

Limites

ResNet est gourmand en calcul. Les variantes profondes comme ResNet‑101 et ResNet‑152 demandent beaucoup de mémoire et de puissance, ce qui peut contraindre vos projets si le matériel est limité ou si l’inférence doit être rapide.

Ce n’est pas non plus le meilleur choix pour toutes les tâches. Avec des petits jeux de données ou des problèmes simples, une architecture plus légère obtient souvent des résultats similaires pour une fraction du coût. Choisir ResNet‑50 par défaut n’est pas toujours judicieux.

Et sur certains périmètres, ResNet a été supplanté. Des architectures comme EfficientNet offrent une meilleure précision par paramètre sur des tâches d’images, et les transformers dominent ailleurs. ResNet reste très utilisé, mais ce n’est plus l’unique option sérieuse.

ResNet dans le deep learning moderne

Onze ans après son introduction, l’architecture ResNet tient toujours la route. Ce n’est pas courant en deep learning.

Dans la pratique, on se tourne encore souvent vers ResNet pour une base fiable en vision par ordinateur. Elle est bien comprise, bien prise en charge dans tous les grands frameworks, et les poids préentraînés sont disponibles dans toutes les bibliothèques majeures. Si vous avez besoin d’une solution qui fonctionne sans trop d’expérimentation, ResNet est généralement votre premier essai.

Mais son influence dépasse ses propres variantes.

L’idée centrale de ResNet – ajouter un raccourci autour des couches pour faciliter le flux d’informations et de gradients – s’est révélée largement utile. DenseNet l’a prolongée en connectant chaque couche à toutes les autres, et même si les transformers ont une architecture différente, les connexions résiduelles de chaque bloc suivent le même principe introduit par ResNet.

Des architectures plus récentes comme EfficientNet, ConvNeXt et les vision transformers ont encore poussé les performances dans certains domaines. Elles ne remplacent pas tant ResNet qu’elles ne s’appuient sur ses fondations.

Conclusion

L’architecture ResNet repose sur un concept clé : les connexions de saut. Cette idée a résolu deux problèmes qui freinaient les réseaux profonds – l’évanouissement des gradients et la dégradation – et a rendu praticable l’entraînement de réseaux plus profonds qu’auparavant.

L’ajout de raccourcis entre les couches est désormais un standard du deep learning moderne, présent dans DenseNet, les transformers et la plupart des architectures postérieures à 2015.

Si vous travaillez aujourd’hui sur un problème de vision, ResNet reste un point de départ solide. Ce n’est pas l’option la plus récente, mais c’est l’une des plus fiables. Traitez‑le comme un socle : vous serez surpris de voir comme il peut encore surpasser la concurrence en 2026.

Si vous débutez en deep learning mais maîtrisez les fondamentaux de Python, explorez notre cours Introduction to TensorFlow in Python : de quoi aborder des sujets comme ResNet en un week‑end.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Scientifique de données senior basé en Croatie. Rédacteur technique de premier plan avec plus de 700 articles publiés, générant plus de 10 millions de vues. Auteur du livre Machine Learning Automation with TPOT.

FAQs

Qu’est‑ce que ResNet et pourquoi est‑ce important ?

ResNet, pour Residual Network, est une architecture de deep learning introduite par Microsoft Research en 2015. Elle a résolu deux problèmes qui rendaient l’entraînement des réseaux profonds difficile : l’évanouissement des gradients et la dégradation. Le mécanisme de connexions de saut a rendu possible l’entraînement fiable de réseaux à 50, 100, voire plus de 150 couches pour la première fois.

Que sont les connexions de saut dans un réseau de neurones ?

Une connexion de saut est un chemin direct qui contourne une ou plusieurs couches et ajoute l’entrée directement à la sortie d’une couche ultérieure. Elle offre un raccourci aux données comme aux gradients, préservant un signal de gradient suffisamment fort pour mettre à jour les premières couches durant l’entraînement.

Qu’est‑ce que le problème du gradient qui s’évanouit ?

Le problème du gradient qui s’évanouit survient lorsque les gradients rétrécissent en remontant un réseau profond. Quand le signal atteint les premières couches, il est trop faible pour les mettre à jour ; ces couches cessent alors d’apprendre. ResNet y répond en laissant les gradients circuler via des connexions de saut, en contournant les couches intermédiaires.

Quelle est la différence entre le bloc de base et le bloc « bottleneck » de ResNet ?

Le bloc de base utilise deux convolutions 3×3 et se retrouve dans les variantes plus légères comme ResNet‑18 et ResNet‑34. Le bloc « bottleneck », utilisé dans ResNet‑50 et au‑delà, enchaîne 1×1 – 3×3 – 1×1 afin de réduire le calcul en comprimant les canaux avant la coûteuse convolution 3×3.

Comment choisir la bonne variante de ResNet pour mon projet ?

Pour la plupart des projets, ResNet‑50 est un excellent choix par défaut : il équilibre bien profondeur, précision et coût de calcul. ResNet‑18 et ResNet‑34 sont plus rapides lorsque le matériel est limité, tandis que ResNet‑101 et ResNet‑152 s’imposent lorsque la précision prime et que le calcul n’est pas une contrainte.

Sujets

Learn with DataCamp

Cours

Introduction au Deep Learning en Python

4 h
262.9K
Initiez-vous aux réseaux neuronaux et créez vos premiers modèles avec Keras 2.0 en Python.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Contenus associés

blog

Comprendre les TPU et les GPU dans l'IA : Un guide complet

L'essor du développement de l'intelligence artificielle (IA) a entraîné une augmentation notable de la demande en matière de calcul, d'où la nécessité de disposer de solutions matérielles robustes. Les unités de traitement graphique (GPU) et les unités de traitement tensoriel (TPU) sont devenues des technologies essentielles pour répondre à ces demandes.
Kurtis Pykes 's photo

Kurtis Pykes

9 min

blog

Types d'agents d'intelligence artificielle : Comprendre leurs rôles, leurs structures et leurs applications

Découvrez les principaux types d'agents d'intelligence artificielle, comment ils interagissent avec les environnements et comment ils sont utilisés dans les différents secteurs d'activité. Comprendre les agents réflexes simples, les agents basés sur un modèle, les agents basés sur un but, les agents basés sur l'utilité, les agents d'apprentissage, etc.

blog

Architecture de l'entrepôt de données : Tendances, outils et techniques

Apprenez l'essentiel de l'architecture d'un entrepôt de données, des composants clés aux meilleures pratiques, pour construire un système de données évolutif et efficace !
Kurtis Pykes 's photo

Kurtis Pykes

15 min

blog

ROI de l'IA en 2026 : pourquoi les compétences des équipes déterminent le retour sur investissement

Seuls 21 % des dirigeants font état d'un retour sur investissement « significatif » de leurs investissements dans l'IA.
Lynn Heidmann's photo

Lynn Heidmann

cursor ai code editor

Tutoriel

Cursor AI : Un guide avec 10 exemples pratiques

Apprenez à installer Cursor AI sur Windows, macOS et Linux, et découvrez comment l'utiliser à travers 10 cas d'utilisation différents.

Tutoriel

Normalisation vs. Standardisation: comment faire la différence

Découvrez les principales différences, les applications et la mise en œuvre de la normalisation et de la standardisation dans le prétraitement des données pour l’apprentissage automatique.
Samuel Shaibu's photo

Samuel Shaibu

Voir plusVoir plus