Réseaux de neurones convolutionnels

7.4 Réseaux de neurones convolutionnels

Objectifs d'apprentissage

À la fin de cette section, vous devriez être en mesure de :

  • 7.4.1 Définir les réseaux de neurones convolutionnels et décrire certains problèmes où ils peuvent être plus performants que les réseaux de neurones classiques.
  • 7.4.2 Décrire les cartes de caractéristiques.
  • 7.4.3 Entraîner et tester un réseau de neurones convolutionnel sur des données d'images et analyser les résultats.

Les réseaux de neurones convolutionnels (CNNs) (convolutional neural networks (CNNs)) constituent une classe puissante de modèles de réseaux de neurones conçus pour traiter des données structurées sous forme de grille, telles que des images, en utilisant l'opération mathématique de convolution (qui s'apparente à l'application d'un filtre ou d'un masque à une image). Les CNN sont utiles pour la classification d'images, la localisation d'objets au sein d'images, la détection des contours et la capture des relations spatiales existant au sein d'une image. Nous aborderons ces applications et explorerons le concept de cartes de caractéristiques (feature maps), qui constituent la sortie des couches convolutionnelles dans les CNN et représentent les caractéristiques apprises des données d'entrée. À la fin de cette section, vous devriez comprendre comment entraîner et tester un CNN pour classifier des données d'images à l'aide de Python.

Les composants des réseaux de neurones convolutionnels

Les CNN sont constitués de multiples couches cachées, notamment des couches convolutionnelles, des couches de sous-échantillonnage et des couches entièrement connectées. Les composants clés d'un CNN sont les suivants :

  • Couches convolutionnelles (convolutional layers) : Ces couches appliquent des « filtres » aux données d'entrée, capables de détecter des caractéristiques structurelles distinctes, telles que des lignes ou contours verticaux ou horizontaux dans une image. C'est ici que sont appliquées les opérations mathématiques de convolution et que sont produites les cartes de caractéristiques, des sujets que nous aborderons plus en détail plus loin dans le chapitre.
  • Couches de sous-échantillonnage (pooling layers) : Les couches de sous-échantillonnage sous-échantillonnent les cartes de caractéristiques produites par les couches convolutionnelles, réduisant ainsi les dimensions spatiales des données tout en préservant les informations importantes. À titre d'illustration, considérons la liste de données [0, 0, 0, 1, 1, 1, 0, 0, 0, 2, 2, 2]. Ces données peuvent être compressées en [0, 1, 0, 2]. (Dans les applications réelles, une forme de procédure de moyennage ou de vote est utilisée pour déterminer les valeurs sous-échantillonnées.)
  • Couches entièrement connectées (fully connected layers) : Ces couches sont généralement utilisées à la fin du réseau pour effectuer des tâches de classification ou de régression sur la base des caractéristiques apprises extraites par les couches convolutionnelles. Les couches entièrement connectées relient chaque neurone d'une couche à chaque neurone de la couche suivante, comme dans un réseau de neurones traditionnel.

Les CNN excellent dans les tâches qui comprennent la capture de motifs spatiaux et la découverte de caractéristiques hiérarchiques dans les images. Outre la classification d'images et la détection d'objets, les CNN peuvent être utilisés pour la segmentation sémantique (semantic segmentation), qui consiste à classer chaque pixel d'une image dans une catégorie ou classe spécifique. Par exemple, dans la Figure 7.11, les différentes parties d'une image sont analysées et associées à différents types, tels que bâtiments, véhicules et route. Ce type de classification est un aspect important du développement de véhicules autonomes sûrs.

Une image d'une scène d'autoroute avec segmentation sémantique créée par l'IA. Le bleu indique un petit véhicule et le jaune indique des camionnettes et des camions ; le gris indique la route, les arbres et autres feuillages sont en vert ; les panneaux d'autoroute sont en rouge et le bleu cyan représente le ciel.
Figure 7.11 Segmentation sémantique d'une image. Les petites voitures apparaissent en bleu, les grandes camionnettes et camions en jaune, les panneaux de signalisation en rouge, et les bâtiments et autres barrières en marron. (source : « Semantic Segmentation Image Annotation Kotwel » par Kotwel Inc./Flickr, CC BY 2.0)

Cartes de caractéristiques

Dans un CNN typique, après que les données ont traversé les couches convolutionnelles et de sous-échantillonnage, le CNN peut alors commencer à extraire diverses caractéristiques de l'entrée. Cette étape repose sur des filtres ou des noyaux spécifiquement conçus pour détecter des motifs ou des caractéristiques particuliers, tels que des contours, des textures ou des formes, dans différentes régions des données d'entrée. L'application de ces filtres aux données d'entrée produit des cartes de caractéristiques (feature maps), qui sont essentiellement des tableaux bidimensionnels de valeurs représentant les activations des filtres à travers les dimensions spatiales de l'entrée. Chaque élément d'une carte de caractéristiques correspond à l'activation d'un filtre spécifique à un emplacement particulier dans les données d'entrée.

Les cartes de caractéristiques jouent un rôle fondamental dans le processus d'apprentissage de représentations des CNN. Elles capturent des caractéristiques hiérarchiques à différents niveaux d'abstraction, les premières couches capturant des caractéristiques de bas niveau (par exemple, des contours, des coins) et les couches plus profondes capturant des caractéristiques plus complexes et abstraites (par exemple, des parties d'objets, des concepts sémantiques). En empilant plusieurs couches convolutionnelles, les CNN apprennent à extraire (et abstraire) progressivement des caractéristiques à partir des données d'entrée brutes, ce qui leur permet de modéliser efficacement des motifs et des relations complexes dans les données.

Voici quelques exemples de caractéristiques courantes pouvant être capturées dans les cartes de caractéristiques :

  • Contours et textures. Il s'agit des caractéristiques fondamentales utiles pour reconnaître des chiffres ou des lettres ainsi que des frontières bien définies entre différentes parties d'images.
  • Variations de couleur et d'intensité. Déterminer la couleur réelle à partir d'une image numérique est souvent très difficile. Une même couleur peut sembler radicalement différente selon des facteurs tels que l'éclairage, les couleurs environnantes et l'intensité.
  • Formes et structures. En s'appuyant sur les caractéristiques de détection des contours, des formes et des structures plus vastes peuvent être élaborées sous forme de caractéristiques de niveau supérieur.
  • Parties d'objets et motifs de haut niveau. Encore plus haut dans la hiérarchie des caractéristiques d'image, les objets peuvent être décomposés en parties, et des motifs non évidents peuvent être découverts par le CNN.
  • Concepts sémantiques (voir la segmentation sémantique mentionnée précédemment). En dehors du domaine de l'analyse d'images, des cartes de caractéristiques peuvent être synthétisées pour détecter des concepts sémantiques, c'est-à-dire des parties de données qui s'associent pour former des objets ou des idées signifiants. Apprendre à reconnaître des concepts sémantiques est essentiel au bon fonctionnement des modèles d'apprentissage du langage naturel.
  • Dynamiques temporelles. Dans les données séquentielles, telles que les signaux audio ou les données de séries temporelles, les cartes de caractéristiques peuvent capturer des dynamiques temporelles et des motifs au fil du temps. Ces caractéristiques aident le réseau à comprendre les dépendances temporelles et à formuler des prédictions basées sur des entrées séquentielles.

Analyse d'images à l'aide de CNN

L'analyse d'images par segmentation sémantique est une tâche de vision par ordinateur qui consiste à attribuer des étiquettes sémantiques (des significations) à chaque pixel d'une image, divisant ainsi l'image en régions ou segments sémantiquement significatifs. Contrairement aux tâches classiques de classification d'images, où l'objectif est d'attribuer une seule étiquette à l'ensemble de l'image, la segmentation sémantique offre une compréhension de la scène au niveau du pixel en étiquetant chaque pixel avec la classe ou la catégorie correspondante à laquelle il appartient.

En segmentation sémantique, chaque pixel de l'image se voit attribuer une étiquette représentant l'objet ou la catégorie auquel il appartient, tel que « personne », « véhicule », « arbre » ou « route ». Le résultat est une image segmentée où les différentes régions ou objets sont délimités par des couleurs ou des étiquettes distinctes (comme le montre la Figure 7.11). Cette compréhension fine de l'image permet une analyse et une interprétation plus détaillées des scènes visuelles, faisant de la segmentation sémantique une tâche essentielle dans diverses applications de vision par ordinateur, notamment la conduite autonome, l'analyse d'images médicales, la compréhension de scènes et la réalité augmentée.

La segmentation sémantique est généralement réalisée à l'aide de techniques d'apprentissage profond, en particulier les réseaux de neurones convolutionnels, qui ont obtenu des résultats remarquables pour capturer les dépendances spatiales et apprendre des motifs visuels complexes. En entraînant des CNN sur des jeux de données annotés contenant des images et les étiquettes correspondantes au niveau du pixel, les modèles de segmentation sémantique peuvent apprendre à segmenter avec précision des objets et des scènes dans de nouvelles images, rendant possible un large éventail de tâches avancées de perception visuelle.

Le processus d'entraînement d'un CNN pour effectuer une segmentation sémantique est plus complexe que dans les tâches de classification d'images. Il s'agit d'une tâche d'apprentissage supervisé, dans la mesure où l'ensemble d'entraînement doit comporter des étiquettes attribuées à chaque région de chaque image. Le travail fastidieux d'étiquetage des régions d'images revient aux chercheurs humains.