Réseaux de Neurones Convolutifs (CNN)

Explorez l'architecture et le fonctionnement des réseaux convolutifs

Qu'est-ce qu'un CNN ?

Les Convolutional Neural Networks sont spécialisés dans le traitement des images. Ils utilisent des opérations convolutives pour détecter des caractéristiques visuelles.

Inspiré par le fonctionnement du cortex visuel animal (travaux de Hubel et Wiesel, puis Yann LeCun avec LeNet-5), le CNN ne regarde pas l'image globale d'un coup. Il la scanne.

Visualisation CNN

Voici un exemple du traitement d'un CNN pour reconnaitre un chiffre sur une image de 32x32 pixels.

Caractéristiques principales

  • Input: L'image de base.
  • Couches Convolutives: Détectent des motifs et des caractéristiques
  • Pooling: Réduit la dimension de l'image
  • Couches Fully Connected: Classification finale
  • Applications: Donne pour chacun des 10 chiffres une probabilité que l'image le représente

Si l'on regarde l'architecture, on voit que plusieurs blocs possèdent trois dimentions. L'image n'est pas en 3D, cela représente juste le nombre de couches utilisées par les blocs. Le nombre et le type de blocs est décidé par le developpeur lors de la création du CNN. Le nombre de couches correspond au nombre de paramètres étudiés. Par exemple, pour l'image de base, il y a trois paramètres pour les trois couleurs de base: bleu, vert, rouge.

Comment fonctionnent les matrices de convolution ?

La convolution est l'opération mathématique fondamentale des CNN. Elle consiste à appliquer un petit filtre (appelé noyau ou kernel) sur différentes régions d'une image pour en extraire des caractéristiques.

Le processus étape par étape

Imaginez une petite matrice carrée (généralement 3×3, 5×5 ou 7×7) contenant des nombres appelés poids. Voici comment elle fonctionne :

Visualisation — Convolution 3×3

Déplacez le noyau sur l'image pour voir comment la valeur de sortie est calculée. Utilisez le curseur "Stride" pour changer le déplacement du noyau.

Explications des calculs

Supposons une petite région 3×3 d'une image avec ces valeurs de pixels :

Image (région 3×3):          Filtre (noyau 3×3):
[1  2  3]                    [0.5  0  -0.5]
[4  5  6]                    [ 1   0   -1 ]
[7  8  9]                    [0.5  0  -0.5]

Calcul:
(1×0.5) + (2×0) + (3×-0.5) + (4×1) + (5×0) + (6×-1) + (7×0.5) + (8×0) + (9×-0.5)
= 0.5 + 0 - 1.5 + 4 + 0 - 6 + 3.5 + 0 - 4.5
= -4

Résultat final: -4

Pourquoi c'est puissant ?

Le Pooling (Sous-échantillonnage)

Après chaque couche convolutive, on applique généralement une opération de pooling pour réduire la dimensionnalité de l'image tout en conservant les informations importantes.

Objectifs du Pooling

Types de Pooling courants

Max Pooling : C'est le plus populaire. On divise l'image en petites régions (généralement 2×2) et on garde uniquement la valeur maximale de chaque région.

Average Pooling : Au lieu de prendre le maximum, on calcule la moyenne des valeurs de chaque région. C'est moins courant que le Max Pooling.

Visualisation — pooling sur une matrice de 6×6

Choisissez le type de pooling :

Les Couches Fully Connected (Entièrement Connectées)

Après les couches convolutives et de pooling, le CNN utilise une ou plusieurs couches fully connected pour faire la classification finale.

Fonctionnement

Contrairement aux couches convolutives qui travaillent localement sur des régions de l'image, les couches fully connected connectent chaque neurone à tous les neurones de la couche précédente. C'est essentiellement un réseau de neurones classique (MLP).

Processus d'aplatissement (Flattening)

Avant d'entrer dans les couches FC, les cartes de caractéristiques doivent être converties en un vecteur unique :

Par exemple, pour une carte de caractéristiques 6×6×64:
(6 pixels de largeur × 6 de hauteur × 64 canaux)

Après flattening: vecteur de 6×6×64 = 2304 valeurs

[v1, v2, v3, ..., v2304]

Architecture typique

on prend comme exemple un CNN qui doit reconnaitre un chiffre écrit entre 0 et 9.

Résultat final

La couche de sortie produit 10 probabilités, une pour chaque classe. Par exemple :

Sortie du CNN:
Chiffre 0: 2%
Chiffre 1: 5%
Chiffre 2: 88%  ← Prédiction: c'est probablement un 2
Chiffre 3: 3%
Chiffre 4: 1%
Chiffre 5: 1%
...
Chiffre 9: 0%

Ressources & approfondissement

Pour en savoir plus sur les CNN et consulter des ressources interactives :

En savoir plus sur les CNN