Comprendre comment les machines "voient" les images
Les Réseaux de Neurones Convolutionnels (Convolutional Neural Networks - CNN) sont une classe spécialisée de réseaux de neurones artificiels, particulièrement efficaces pour analyser des données visuelles comme les images.
Conçus spécifiquement pour comprendre et analyser les images
Identifient automatiquement les caractéristiques visuelles importantes
Classifient et reconnaissent des objets dans les images
Déverrouillage de smartphones, sécurité, identification
Détection de piétons, panneaux routiers, obstacles
Diagnostic de maladies, détection de tumeurs
Vidéosurveillance, détection d'intrusions
Génération d'images, transfert de style
Reconnaissance de texte dans les images
Un réseau de neurones classique traite une image comme une longue liste de pixels. Pour une image 200×200 en couleur, cela fait 120 000 valeurs en entrée !
Les CNN utilisent des filtres convolutionnels qui parcourent l'image pour détecter des motifs locaux (bords, textures, formes).
Un CNN typique est composé de plusieurs types de couches qui se succèdent :
Appliquent des filtres pour détecter des caractéristiques visuelles. Les premières couches détectent des motifs simples (bords, coins), les couches profondes détectent des motifs complexes (yeux, roues, formes).
Réduisent la taille des données en conservant l'information importante. Cela rend le réseau plus efficace et moins sensible à la position exacte des motifs.
À la fin du réseau, des couches classiques combinent toutes les caractéristiques détectées pour faire la classification finale.
La convolution est l'opération mathématique au cœur des CNN. Un petit filtre (kernel) parcourt l'image et calcule un produit scalaire à chaque position.
Où I est l'image d'entrée, K est le kernel (filtre), et * représente l'opération de convolution.
Cliquez sur "Animation pas à pas" pour voir le filtre parcourir l'image...
| -1 | 0 | 1 |
| -1 | 0 | 1 |
| -1 | 0 | 1 |
| -1 | -1 | -1 |
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 1/9 | 1/9 | 1/9 |
| 1/9 | 1/9 | 1/9 |
| 1/9 | 1/9 | 1/9 |
| 0 | -1 | 0 |
| -1 | 5 | -1 |
| 0 | -1 | 0 |
Le pooling réduit la dimension spatiale des données en résumant les informations d'une région. Les deux types les plus courants sont :
Prend la valeur maximale dans chaque région
| 8 | 3 | 4 | 2 |
| 1 | 5 | 9 | 7 |
| 6 | 2 | 1 | 4 |
| 3 | 7 | 2 | 6 |
| 8 | 9 |
| 7 | 6 |
Calcule la moyenne dans chaque région
| 8 | 3 | 4 | 2 |
| 1 | 5 | 9 | 7 |
| 6 | 2 | 1 | 4 |
| 3 | 7 | 2 | 6 |
| 4.25 | 5.5 |
| 4.5 | 3.25 |
Sélectionnez un type de pooling pour commencer
Chaque filtre convolutionnel produit une carte de caractéristiques qui montre où certains motifs sont présents dans l'image.
Détecte des éléments basiques : bords, coins, textures
Combine les motifs simples : courbes, formes géométriques
Détecte des objets : visages, roues, fenêtres
Les CNN apprennent automatiquement quels filtres utiliser ! Le réseau ajuste les valeurs des filtres pendant l'entraînement pour détecter les caractéristiques les plus utiles pour la tâche donnée.
Voyons comment un CNN classifie une image en suivant toutes les étapes :
28×28 pixels (exemple : chiffre manuscrit)
16 filtres 3×3 → 16 feature maps 26×26
2×2 → 16 feature maps 13×13
32 filtres 3×3 → 32 feature maps 11×11
2×2 → 32 feature maps 5×5
32×5×5 = 800 valeurs
128 neurones
10 classes (chiffres 0-9)
Un même filtre est appliqué sur toute l'image. Cela réduit drastiquement le nombre de paramètres à apprendre.
Un motif est détecté peu importe sa position dans l'image. Un chat reste un chat, qu'il soit en haut à gauche ou en bas à droite.
Les couches profondes construisent des représentations de plus en plus abstraites en combinant les motifs des couches précédentes.
Chaque neurone "voit" une petite région de l'image. Les couches plus profondes ont un champ récepteur plus large.
Fonction d'activation la plus courante : ReLU(x) = max(0, x). Simple, efficace, évite le problème du gradient qui disparaît.
Padding : ajoute des zéros autour de l'image
Stride : pas de déplacement du filtre
Premier CNN performant, créé par Yann LeCun pour reconnaître des chiffres manuscrits
Révolution dans la vision par ordinateur, vainqueur ImageNet avec 8 couches
16-19 couches, utilise uniquement des filtres 3×3, très simple mais efficace
152 couches avec connections résiduelles, surpasse la performance humaine
Architectures modernes optimisées pour l'efficacité et la performance