Un réseau de neurones convolutif, ou CNN, est un réseau de neurones qui recherche de petits motifs locaux puis les combine en motifs plus grands. Dans les images, les premières couches détectent souvent des bords ou des coins, les couches intermédiaires détectent des textures ou des parties d’objet, et les couches plus profondes utilisent ces signaux pour produire une prédiction finale.
L’idée clé est le partage des poids. Au lieu d’apprendre un poids distinct pour chaque paire pixel-position, un CNN réutilise le même petit filtre à de nombreuses positions. Cela le rend bien moins coûteux qu’une couche dense appliquée à l’image brute et l’aide à détecter le même type de motif à plusieurs endroits.
Ce que fait un réseau de neurones convolutif
Dans une couche entièrement connectée, chaque sortie peut dépendre de toutes les valeurs d’entrée à la fois. Un CNN est plus structuré. Il utilise de petits noyaux, souvent appelés filtres, qui examinent une zone locale à la fois.
Pour une entrée à un seul canal et un noyau noté , une valeur de sortie peut s’écrire
C’est l’idée de somme pondérée locale qui se trouve derrière une couche de convolution. Dans de nombreuses bibliothèques de machine learning, l’opération implémentée est techniquement une corrélation croisée plutôt qu’une convolution mathématique avec retournement du noyau, mais l’intuition pratique reste la même : le noyau parcourt l’entrée et produit une carte de caractéristiques.
La carte de caractéristiques indique où le motif appris apparaît fortement.
Pourquoi les filtres partagés sont utiles
Si le même bord vertical apparaît près du coin supérieur gauche d’une image ou près du centre, on veut généralement que le modèle le remarque dans les deux cas. Un CNN permet cela en réutilisant les mêmes paramètres de filtre à toutes les positions.
Cela a deux effets pratiques :
- Cela réduit le nombre de paramètres appris par rapport à une couche dense appliquée à l’image brute.
- Cela pousse le réseau à détecter des motifs locaux récurrents plutôt qu’à mémoriser une position fixe.
Cette réutilisation est l’une des raisons pour lesquelles les CNN sont devenus efficaces pour les tâches sur les images.
À quoi ressemble une architecture CNN de base
Un CNN de base suit souvent ce schéma :
- couche de convolution
- activation comme ReLU
- pooling ou sous-échantillonnage optionnel
- autres blocs de convolution
- couche de prédiction finale
Les premières couches capturent généralement une structure locale simple. Les couches plus profondes combinent ensuite ces réponses en caractéristiques plus larges et plus spécifiques à la tâche.
Le pooling n’est pas obligatoire, mais lorsqu’il est utilisé, il réduit les dimensions spatiales afin que les couches suivantes travaillent avec une représentation plus compacte. Un exemple courant est le max pooling, qui conserve la plus grande valeur dans chaque petite région.
Si le stride vaut et le padding vaut , alors une entrée avec un noyau produit une sortie de taille . Cette règle de taille est utile pour vérifier si un exemple détaillé est cohérent.
Exemple détaillé : comment une carte de caractéristiques CNN est créée
Prenons cette image d’entrée :
Utilisons ce noyau :
Supposons un stride de et aucun padding. Comme l’entrée est de taille et le noyau de taille , la sortie doit être de taille . Chaque valeur de sortie est la somme d’une zone puisque chaque coefficient du noyau vaut .
La valeur de sortie en haut à gauche est
La zone située un pas vers la droite est
donc
En parcourant toutes les positions valides, on obtient
Cette sortie est la carte de caractéristiques. Les grandes valeurs montrent où le noyau a trouvé une forte correspondance. Ici, le filtre répond le plus fortement là où un bloc lumineux complet de taille apparaît.
Si vous appliquez maintenant ReLU, rien ne change car toutes les valeurs sont déjà non négatives. Si vous utilisez ensuite un max pooling avec un stride de , la sortie après pooling devient
Cela ne crée pas de nouvelle information. Cela conserve les réponses locales les plus fortes et réduit la grille spatiale.
Cet exemple est simple, mais il montre clairement le mécanisme central : un filtre glisse, calcule des sommes pondérées locales et crée une carte indiquant où un motif apparaît.
Ce qu’un CNN apprend pendant l’entraînement
Le noyau ci-dessus a été choisi à la main, mais dans un vrai CNN les valeurs du filtre sont apprises à partir des données. L’entraînement ajuste ces valeurs pour que les cartes de caractéristiques obtenues deviennent utiles pour la tâche.
Si la tâche est la classification d’images, le réseau apprend des filtres qui aident à séparer les classes. Si la tâche est la segmentation ou la détection, les couches finales sont entraînées pour produire ces sorties à la place. Le mécanisme de base reste le même : passe avant, loss, backpropagation, mise à jour des paramètres.
Erreurs courantes quand on apprend les CNN
Penser qu’un CNN signifie seulement « classificateur d’images »
Les images sont l’exemple standard, mais les CNN concernent surtout la structure locale et les filtres partagés. Si les valeurs voisines comptent, la même idée peut être utile au-delà des images.
Supposer que le pooling est toujours nécessaire
C’est courant, mais pas universel. Certaines architectures réduisent la taille spatiale avec des convolutions à stride, et d’autres conservent davantage de détail spatial plus longtemps.
Ignorer le stride et le padding
La taille de la carte de caractéristiques dépend de ces choix. Si vous modifiez le stride ou le padding, vous changez non seulement la forme de la sortie, mais aussi les voisinages locaux que chaque unité peut voir.
Traiter la couche comme une simple formule
La formule de convolution compte, mais l’architecture compte aussi. Un CNN fonctionne parce que la convolution, l’activation, l’empilement des couches et l’entraînement agissent ensemble.
Quand les réseaux de neurones convolutifs sont utiles
Les CNN sont largement utilisés en vision par ordinateur pour des tâches comme la classification d’images, la détection d’objets et la segmentation. On les retrouve aussi dans certains contextes de traitement du signal et de séquences lorsque les motifs locaux ont du sens.
Ils sont particulièrement utiles lorsque l’entrée possède une structure évidente en grille ou en voisinage ordonné. Si cette condition est faible, une autre architecture peut être plus adaptée.
Un modèle mental qui rend les CNN plus faciles à comprendre
Pensez à un CNN comme à un détecteur de motifs qui commence petit et devient plus abstrait avec la profondeur. Une couche demande : « Ce petit motif apparaît-il ici ? » Les couches suivantes demandent : « Ces motifs plus simples se combinent-ils en quelque chose de plus significatif ? »
C’est pour cela que les CNN sont plus faciles à comprendre lorsqu’on se concentre sur les cartes de caractéristiques, et pas seulement sur le mot « convolution ».
Essayez votre propre version
Gardez la même entrée, mais remplacez le noyau par
Recalculez la carte de caractéristiques et observez quelles régions produisent maintenant de grandes réponses positives ou négatives. Ce petit changement montre beaucoup plus clairement comment différents filtres détectent différents motifs.
Besoin d'aide pour un problème ?
Envoyez votre question et obtenez une solution vérifiée, étape par étape, en quelques secondes.
Ouvrir GPAI Solver →