Convolutional Neural Network (CNN)
Un réseau neuronal convolutif (CNN) apprend des caractéristiques d’image à l’aide de filtres glissants partagés. Découvre ses couches, ses propriétés, ses principaux modèles et les différences entre les CNN et les ViT.
Un réseau neuronal convolutif (CNN) est une architecture d'apprentissage profond qui traite des données structurées en grille, le plus souvent des images, à l'aide de petits filtres apprenables qui glissent sur l'entrée. Chaque filtre réutilise les mêmes poids à chaque position ; un CNN détecte donc un motif, comme un bord ou une roue, où qu'il apparaisse, tout en utilisant beaucoup moins de paramètres qu'un réseau entièrement connecté. Les couches empilées construisent une hiérarchie de caractéristiques, des bords et textures des premières couches aux parties d'objets et aux objets entiers des couches plus profondes. Les CNN ont porté la majeure partie des progrès en vision par ordinateur depuis la victoire d'AlexNet au concours ImageNet en 2012, et restent le choix le plus courant pour la vision en temps réel sur du matériel périphérique.
Fonctionnement d'un CNN#
Un CNN répète quelques types de couches organisées en étapes, chacune travaillant à une résolution inférieure à celle de la précédente :
- Couches de convolution : Chaque couche fait glisser sur la hauteur et la largeur de l'entrée un ensemble de filtres apprenables, généralement de 3×3. Chaque filtre produit un canal de la carte de caractéristiques de sortie ; une couche comportant 64 filtres produit donc 64 canaux.
- Normalisation et activation : La normalisation par lots maintient les sorties de chaque couche dans une plage stable pendant l'entraînement, et une fonction d'activation non linéaire comme ReLU ou SiLU permet aux couches empilées de représenter plus qu'une seule transformation linéaire.
- Sous-échantillonnage : La mise en commun maximale ou une convolution de pas 2 réduit de moitié la hauteur et la largeur, ce qui élargit le champ réceptif des couches suivantes et réduit le calcul. De nombreuses architectures modernes effectuent le sous-échantillonnage principalement avec des convolutions à pas.
- Tête : Pour la classification d'images, la mise en commun moyenne globale réduit chaque canal final à un nombre, et une couche entièrement connectée convertit ces nombres en scores de classe. Les modèles de détection et de segmentation remplacent cette tête par des couches qui prédisent des boîtes ou des masques par pixel.
Principales propriétés des CNN#
Trois propriétés expliquent pourquoi les convolutions sont adaptées aux images. La connectivité locale signifie que chaque sortie ne dépend que d'un petit voisinage de l'entrée, ce qui correspond à la forte corrélation entre pixels proches. Le partage des poids signifie qu'un filtre couvre toute l'image ; le nombre de paramètres reste donc identique quelle que soit la taille de l'entrée. L'équivariance par translation signifie que le décalage de l'entrée entraîne le même décalage de la carte de caractéristiques : un motif appris dans un coin est ainsi reconnu partout, et les couches de mise en commun ajoutent une certaine tolérance aux petits décalages. Ensemble, ces propriétés constituent le biais inductif du CNN, c'est-à-dire les hypothèses intégrées qui lui permettent d'apprendre à partir de moins d'images qu'un transformer.
L'extrait PyTorch ci-dessous compare une couche convolutive à une couche entièrement connectée appliquée à la même image RGB de 224×224.
import torch
from torch import nn
image = torch.randn(1, 3, 224, 224)
# 64 learnable 3x3 filters, each reused at every position of the RGB image
conv = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, padding=1)
# A fully connected layer mapping the same flattened image to only 64 numbers
dense = nn.Linear(3 * 224 * 224, 64)
conv_params = sum(p.numel() for p in conv.parameters())
dense_params = sum(p.numel() for p in dense.parameters())
print(f"Conv2d: output {tuple(conv(image).shape)}, {conv_params:,} parameters")
print(f"Linear: output {tuple(dense(image.flatten(1)).shape)}, {dense_params:,} parameters")Il affiche Conv2d: output (1, 64, 224, 224), 1,792 parameters et Linear: output (1, 64), 9,633,856 parameters. Grâce au partage des poids, la convolution produit 64 cartes de caractéristiques en pleine résolution avec 1 792 paramètres ; la couche entièrement connectée en nécessite 5 376 fois plus pour ne produire que 64 nombres.
Architectures CNN emblématiques#
- LeNet-5 (1998) : Le réseau de Yann LeCun, conçu pour lire des chiffres manuscrits, a établi le modèle d'alternance entre couches convolutives et de mise en commun, suivies de couches entièrement connectées ; il a été déployé commercialement pour lire des chèques bancaires.
- AlexNet (2012) : Entraîné sur deux GPU avec des activations ReLU et du dropout, le modèle a remporté le défi ILSVRC 2012 avec un taux d'erreur de 15,3 % sur les cinq premières prédictions, contre 26,2 % pour le deuxième.
- VGG (2014) : A montré que l'empilement de petites convolutions 3×3, jusqu'à 16 à 19 couches de poids, améliore nettement la précision sur ImageNet.
- ResNet (2015) : Les connexions résiduelles ont rendu entraînables des réseaux pouvant atteindre 152 couches, et un ensemble de ResNet a remporté ILSVRC 2015.
- U-Net (2015) : CNN encodeur-décodeur avec connexions de saut, devenu l'architecture de référence pour la segmentation d'images biomédicales.
- ConvNeXt (2022) : ResNet modernisé à l'aide de choix de conception issus de l'ère des transformers, qui atteint une précision top-1 de 87,8 % sur ImageNet et surpasse Swin Transformer pour la détection sur COCO.
Applications des CNN#
- Détection d'objets : Les détecteurs CNN à une étape repèrent et classent les objets en une seule passe avant, assez rapidement pour traiter des vidéos sur des caméras, des téléphones et des cartes embarquées.
- Analyse d'images médicales : Les CNN de type U-Net segmentent les organes, les tumeurs et les lésions dans les scanners CT et les IRM, où l'étiquette de chaque pixel compte.
- Estimation de pose : Les CNN prédisent les points clés du corps pour l'analyse sportive, l'ergonomie et les applications de remise en forme.
- Signaux autres que les images : Les convolutions unidimensionnelles traitent les formes d'onde audio et les séries temporelles de capteurs, tandis que les CNN bidimensionnels classent les spectrogrammes en reconnaissance vocale.
CNN et Vision Transformers#
Un transformer de vision (ViT) découpe une image en patches et relie chaque patch à tous les autres par l'auto-attention ; il dispose donc d'un contexte global dès la première couche. Son biais inductif plus faible a un coût : le ViT d'origine était moins performant que des ResNet de taille similaire lorsqu'il était entraîné uniquement sur ImageNet, et ne les égalait ou ne les dépassait qu'après un préentraînement sur 14 à 300 millions d'images. Le coût de l'attention augmente aussi avec le carré du nombre de patches, ce qui rend les entrées haute résolution coûteuses, alors que celui d'une convolution n'augmente que linéairement avec le nombre de pixels. De nombreux modèles actuels combinent donc les deux approches : ils conservent des étapes convolutives à haute résolution et ajoutent l'attention lorsque la carte de caractéristiques est petite. YOLO26 suit ce modèle : les blocs Conv (convolution, normalisation par lots et SiLU) et les blocs C3k2 font l'essentiel du travail, tandis que l'auto-attention multi-têtes ne s'exécute que sur la carte de caractéristiques de pas 32, une grille 20×20 pour une image de 640×640.










