Réseaux de Neurones Convolutionnels

Comprendre comment les machines "voient" les images

Qu'est-ce qu'un CNN ?

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.

🖼️

Traitement d'images

Conçus spécifiquement pour comprendre et analyser les images

🔍

Détection de motifs

Identifient automatiquement les caractéristiques visuelles importantes

🎯

Reconnaissance

Classifient et reconnaissent des objets dans les images

À quoi servent les CNN ?

📱

Reconnaissance Faciale

Déverrouillage de smartphones, sécurité, identification

🚗

Véhicules Autonomes

Détection de piétons, panneaux routiers, obstacles

🏥

Imagerie Médicale

Diagnostic de maladies, détection de tumeurs

🔐

Sécurité

Vidéosurveillance, détection d'intrusions

🎨

Art et Création

Génération d'images, transfert de style

📄

OCR

Reconnaissance de texte dans les images

Comment fonctionnent les CNN ?

🤔 Le problème des réseaux classiques

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 !

  • ❌ Trop de paramètres à apprendre
  • ❌ Ignore la structure spatiale de l'image
  • ❌ Ne détecte pas les motifs locaux

✅ La solution CNN

Les CNN utilisent des filtres convolutionnels qui parcourent l'image pour détecter des motifs locaux (bords, textures, formes).

  • ✅ Moins de paramètres grâce au partage de poids
  • ✅ Préserve la structure spatiale
  • ✅ Détecte automatiquement les caractéristiques importantes

Architecture d'un CNN

Un CNN typique est composé de plusieurs types de couches qui se succèdent :

🖼️ Couches Convolutionnelles

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).

📉 Couches de Pooling

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.

🔗 Couches Fully Connected

À la fin du réseau, des couches classiques combinent toutes les caractéristiques détectées pour faire la classification finale.

L'opération de Convolution

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.

Formule mathématique

\[ (I * K)(i,j) = \sum_{m}\sum_{n} I(i+m, j+n) \cdot K(m,n) \]

I est l'image d'entrée, K est le kernel (filtre), et * représente l'opération de convolution.

Démonstration Interactive

Image d'entrée (5×5)

Filtre (3×3)

Résultat de la convolution

Cliquez sur "Animation pas à pas" pour voir le filtre parcourir l'image...

Exemples de filtres courants

Détection de bords verticaux

-101
-101
-101

Détection de bords horizontaux

-1-1-1
000
111

Flou (moyenne)

1/91/91/9
1/91/91/9
1/91/91/9

Accentuation

0-10
-15-1
0-10

L'opération de Pooling

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 :

Max Pooling

Prend la valeur maximale dans chaque région

Avant (4×4)

8342
1597
6214
3726

Après (2×2)

89
76

Average Pooling

Calcule la moyenne dans chaque région

Avant (4×4)

8342
1597
6214
3726

Après (2×2)

4.255.5
4.53.25

Démonstration Interactive de Pooling

Sélectionnez un type de pooling pour commencer

Cartes de Caractéristiques (Feature Maps)

Chaque filtre convolutionnel produit une carte de caractéristiques qui montre où certains motifs sont présents dans l'image.

Couche 1 - Motifs simples

Détecte des éléments basiques : bords, coins, textures

Bords verticaux
Bords horizontaux
Coins

Couche 2 - Motifs intermédiaires

Combine les motifs simples : courbes, formes géométriques

Cercles
Rectangles
Textures

Couche 3 - Motifs complexes

Détecte des objets : visages, roues, fenêtres

Yeux
Roues
Portes

🧠 Apprentissage automatique

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.

Exemple Complet : Classification d'images

Voyons comment un CNN classifie une image en suivant toutes les étapes :

1

Image d'entrée

28×28 pixels (exemple : chiffre manuscrit)

2

Convolution + ReLU

16 filtres 3×3 → 16 feature maps 26×26

+13 autres
3

Max Pooling

2×2 → 16 feature maps 13×13

4

Convolution + ReLU

32 filtres 3×3 → 32 feature maps 11×11

+29 autres
5

Max Pooling

2×2 → 32 feature maps 5×5

6

Flatten

32×5×5 = 800 valeurs

7

Fully Connected

128 neurones

8

Output (Softmax)

10 classes (chiffres 0-9)

7: 95%
1: 3%
9: 2%

Concepts Clés

🔗 Partage de poids

Un même filtre est appliqué sur toute l'image. Cela réduit drastiquement le nombre de paramètres à apprendre.

📍 Invariance spatiale

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.

🏗️ Hiérarchie de features

Les couches profondes construisent des représentations de plus en plus abstraites en combinant les motifs des couches précédentes.

📐 Champ récepteur

Chaque neurone "voit" une petite région de l'image. Les couches plus profondes ont un champ récepteur plus large.

⚡ ReLU Activation

Fonction d'activation la plus courante : ReLU(x) = max(0, x). Simple, efficace, évite le problème du gradient qui disparaît.

🎯 Padding & Stride

Padding : ajoute des zéros autour de l'image
Stride : pas de déplacement du filtre

Architectures CNN Célèbres

1998

LeNet-5

Premier CNN performant, créé par Yann LeCun pour reconnaître des chiffres manuscrits

2012

AlexNet

Révolution dans la vision par ordinateur, vainqueur ImageNet avec 8 couches

2014

VGGNet

16-19 couches, utilise uniquement des filtres 3×3, très simple mais efficace

2015

ResNet

152 couches avec connections résiduelles, surpasse la performance humaine

2017+

EfficientNet, Vision Transformers

Architectures modernes optimisées pour l'efficacité et la performance

En Résumé

🎯 Points essentiels à retenir

  • Les CNN sont spécialement conçus pour traiter des images
  • Ils utilisent des filtres convolutionnels pour détecter des motifs visuels
  • Le pooling réduit la dimension tout en gardant l'information importante
  • Les couches apprennent automatiquement une hiérarchie de caractéristiques
  • Le partage de poids rend les CNN très efficaces
  • Applications : reconnaissance d'images, détection d'objets, segmentation, et bien plus

Pour aller plus loin

  • Expérimentez avec des frameworks comme TensorFlow ou PyTorch
  • Entraînez votre propre CNN sur un dataset simple (MNIST, CIFAR-10)
  • Explorez le transfert learning avec des modèles pré-entraînés
  • Découvrez les architectures modernes (ResNet, EfficientNet, Vision Transformers)