Suivez nous sur
Classe de maître IA :

AI 101

Que sont les CNN (Convolutional Neural Networks) ?

mm
Le kit de préparation mis à jour on

Peut-être vous êtes-vous demandé comment Facebook ou Instagram sont capables de reconnaître automatiquement les visages dans une image, ou comment Google vous permet de rechercher des photos similaires sur le Web simplement en téléchargeant votre propre photo. Ces fonctionnalités sont des exemples de vision par ordinateur et sont alimentées par réseaux de neurones convolutifs (CNN). Mais que sont exactement les réseaux de neurones convolutifs ? Plongeons en profondeur dans l'architecture d'un CNN et comprenons comment ils fonctionnent.

Que sont les réseaux de neurones ?

Avant de commencer à parler de réseaux de neurones convolutionnels, prenons un moment pour définir le réseau de neurones régulier. Il y a un autre article sur le sujet des réseaux de neurones disponibles, nous n'allons donc pas les approfondir ici. Cependant, pour les définir brièvement, il s'agit de modèles informatiques inspirés du cerveau humain. Un réseau de neurones fonctionne en prenant des données et en manipulant les données en ajustant les « poids », qui sont des hypothèses sur la façon dont les caractéristiques d'entrée sont liées les unes aux autres et à la classe de l'objet. Au fur et à mesure que le réseau est entraîné, les valeurs des pondérations sont ajustées et, espérons-le, elles convergeront vers des pondérations qui capturent avec précision les relations entre les entités.

C'est ainsi qu'un réseau de neurones à anticipation fonctionne, et les CNN sont composés de deux moitiés : un réseau de neurones à anticipation et un groupe de couches convolutionnelles.

Que sont les réseaux de neurones à convolution (CNN) ?

Quelles sont les « convolutions » qui se produisent dans un réseau neuronal convolutif ? Une convolution est une opération mathématique qui crée un ensemble de poids, créant essentiellement une représentation de parties de l'image. Cet ensemble de poids est appelé un noyau ou un filtre. Le filtre créé est plus petit que l'intégralité de l'image d'entrée et ne couvre qu'une sous-section de l'image. Les valeurs du filtre sont multipliées par les valeurs de l'image. Le filtre est ensuite déplacé pour former une représentation d'une nouvelle partie de l'image, et le processus est répété jusqu'à ce que l'image entière ait été couverte.

Une autre façon de penser à cela est d'imaginer un mur de briques, les briques représentant les pixels de l'image d'entrée. Une "fenêtre" est glissée d'avant en arrière le long du mur, qui est le filtre. Les briques visibles à travers la fenêtre sont les pixels dont la valeur est multipliée par les valeurs dans le filtre. Pour cette raison, cette méthode de création de pondérations avec un filtre est souvent appelée technique des « fenêtres glissantes ».

La sortie des filtres déplacés autour de l'image d'entrée entière est un tableau à deux dimensions représentant l'image entière. Ce tableau est appelé un "Carte des fonctionnalités".

Pourquoi les convolutions sont essentielles

Quel est le but de créer des convolutions de toute façon? Les convolutions sont nécessaires car un réseau de neurones doit pouvoir interpréter les pixels d'une image comme des valeurs numériques. La fonction des couches convolutives est de convertir l'image en valeurs numériques que le réseau de neurones peut interpréter, puis extraire des modèles pertinents. Le travail des filtres dans le réseau convolutif est de créer un tableau bidimensionnel de valeurs qui peuvent être transmises aux couches ultérieures d'un réseau de neurones, celles qui apprendront les motifs de l'image.

Filtres et canaux

Photo : cecebur via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)

Les CNN n'utilisent pas un seul filtre pour apprendre les modèles à partir des images d'entrée. Plusieurs filtres sont utilisés, car les différents tableaux créés par les différents filtres conduisent à une représentation plus complexe et plus riche de l'image d'entrée. Les nombres courants de filtres pour les CNN sont 32, 64, 128 et 512. Plus il y a de filtres, plus le CNN a d'opportunités d'examiner les données d'entrée et d'en tirer des leçons.

Un CNN analyse les différences de valeurs de pixels afin de déterminer les frontières des objets. Dans une image en niveaux de gris, le CNN ne regarderait que les différences en termes de noir et blanc, de clair à foncé. Lorsque les images sont des images couleur, non seulement le CNN prend en compte l'obscurité et la lumière, mais il doit également prendre en compte les trois canaux de couleur différents - rouge, vert et bleu. Dans ce cas, les filtres possèdent 3 canaux, tout comme l'image elle-même. Le nombre de canaux d'un filtre est appelé sa profondeur, et le nombre de canaux dans le filtre doit correspondre au nombre de canaux dans l'image.

Réseau neuronal convolutif (CNN) Architecture

Examinons l'architecture complète de un réseau de neurones convolutifs. Une couche convolutive se trouve au début de chaque réseau convolutif, car il est nécessaire de transformer les données d'image en tableaux numériques. Cependant, les couches convolutives peuvent également venir après d'autres couches convolutives, ce qui signifie que ces couches peuvent être empilées les unes sur les autres. Avoir plusieurs couches convolutionnelles signifie que les sorties d'une couche peuvent subir d'autres convolutions et être regroupées dans des modèles pertinents. Concrètement, cela signifie qu'au fur et à mesure que les données d'image traversent les couches convolutives, le réseau commence à « reconnaître » des caractéristiques plus complexes de l'image.

Les premières couches d'un ConvNet sont responsables de l'extraction des fonctionnalités de bas niveau, telles que les pixels qui composent des lignes simples. Les couches ultérieures du ConvNet réuniront ces lignes en formes. Ce processus de passage d'une analyse superficielle à une analyse approfondie se poursuit jusqu'à ce que le ConvNet reconnaisse des formes complexes telles que des animaux, des visages humains et des voitures.

Une fois que les données ont traversé toutes les couches convolutionnelles, elles passent dans la partie densément connectée du CNN. Les couches densément connectées sont à quoi ressemble un réseau de neurones à rétroaction traditionnelle, une série de nœuds disposés en couches connectées les unes aux autres. Les données passent par ces couches densément connectées, qui apprennent les modèles qui ont été extraits par les couches convolutionnelles, et ce faisant, le réseau devient capable de reconnaître des objets.