Qu’est-ce qu’un Convolutional Neural Network (CNN) ?

Les réseaux neuronaux convolutifs, appelés en anglais Convolutional Neural Networks et souvent abrégés en CNN ou ConvNets, sont des réseaux neuronaux artificiels dont les couches (Convolutional Layer) sont appliquées aux données d’entrée afin d’extraire des caractéristiques et finalement d’identifier un objet. Cela fait des ConvNets un élément important du Deep Learning.

Qu’est-ce qu’un Convolutional Neural Network ?

Les Convolutional Neural Networks sont des types spécialisés de réseaux neuronaux artificiels qui sont particulièrement efficaces pour traiter et analyser des données visuelles telles que des images et des vidéos. Ces réseaux sont importants pour le Machine Learning, et en particulier pour le Deep Learning.

Les ConvNets se composent de couches de nœuds qui comprennent une couche d’entrée, une ou plusieurs couches cachées et une couche de sortie. Les différents nœuds sont reliés entre eux et disposent d’une pondération et d’une valeur seuil correspondantes. Dès que la sortie d’un seul nœud dépasse le seuil indiqué, celui-ci est activé et envoie des données à la couche suivante du réseau.

Il existe différents types de réseaux neuronaux, utilisés pour différentes applications et différents types de données. Par exemple, les réseaux neuronaux récurrents sont souvent utilisés pour le traitement du langage naturel et la reconnaissance vocale, tandis que les réseaux neuronaux convolutifs sont plus souvent utilisés pour des tâches de classification et de vision par ordinateur. Leur capacité à reconnaître des modèles complexes dans les données en fait un outil important de l’intelligence artificielle.

Structure et construction des ConvNets

Les ConvNets se distinguent des autres réseaux neuronaux par leurs performances supérieures dans le traitement des signaux d’image, vocaux ou audio. Ils ont trois types principaux de couches et avec chacune d’elles, le CNN devient plus complexe : il identifie alors, par exemple, des parties plus grandes d’une image.

AI Model Hub
Votre plateforme d'IA multimodale sécurisée
  • Conforme au RGPD et hébergée en toute sécurité en Europe
  • Modèles d'IA les plus puissants
  • Open source, sans vendor lock-in

Compatibilité d’une image avec l’algorithme des ConvNets

Les images sont reconnues par les ordinateurs comme des combinaisons de chiffres, ergo le nombre de pixels. C’est également le cas de l’algorithme CNN : une image en noir et blanc de longueur m et de largeur n est représentée par un tableau bidimensionnel de taille m x n ; dans le cas d’une image en couleur de même taille, c’est un tableau tridimensionnel qui est utilisé. Chaque cellule de ce tableau contient la valeur de pixel correspondante et chaque image est représentée par les valeurs de pixel correspondantes dans trois canaux différents, appartenant respectivement à un canal rouge, bleu et vert.

Les principales caractéristiques de l’image sont ensuite identifiées. Celles-ci sont extraites à l’aide d’une méthode connue sous le nom de convolution. Il s’agit d’une opération par laquelle une fonction modifie (ou plie) la forme d’une autre fonction. Les convolutions dans les images sont généralement utilisées pour diverses raisons, comme l’accentuation, le lissage et le renforcement. Dans les ConvNets, en revanche, les convolutions sont utilisées pour extraire des caractéristiques marquantes des images.

Pour extraire des caractéristiques importantes d’une image, on utilise un filtre ou un noyau. Un filtre est un tableau qui représente la caractéristique à extraire. Ce filtre est placé sur le tableau d’entrée et le tableau résultant est un tableau bidimensionnel contenant la corrélation de l’image par rapport au filtre utilisé. La matrice de sortie est appelée Feature Map (carte des caractéristiques).

Caractéristiques des différentes couches de convolution

Pendant le processus de convolution, le champ d’entrée est transformé en un champ plus petit, tout en conservant la corrélation spatiale entre les pixels grâce à l’application de filtres. Les trois principaux types de couches convolutives sont présentés ci-dessous :

  • Convolutional Layer : la couche de convolution est la première couche d’un réseau convolutif. Elle utilise des filtres (petites matrices de poids) qui glissent sur l’image pour détecter des caractéristiques locales telles que les bords, les coins et les textures. Chaque filtre crée une carte de caractéristiques qui met en évidence des motifs spécifiques. Une autre couche de convolution peut suivre la première couche de convolution, rendant ainsi la structure du CNN hiérarchique, puisque les couches ultérieures peuvent voir les pixels à l’intérieur des champs réceptifs des couches précédentes.
  • Pooling Layer : la couche de pooling réduit la taille des Feature Maps en regroupant les zones locales et en rejetant les informations non pertinentes. Cela réduit la complexité des calculs tout en conservant les informations les plus importantes.
  • Fully Connected Layer : cette couche « entièrement connectée » relie tous les neurones entre eux, comme dans un réseau neuronal naturel. Elle sert à la classification finale et combine les caractéristiques extraites pour prendre une décision, jusqu’à ce qu’elle identifie finalement l’objet souhaité.

Illustration du processus de convolution

Imaginons : vous essayez de déterminer si une image contient un visage humain. Vous pouvez vous représenter le visage comme une somme de ses parties : il a deux yeux, un nez, une bouche, deux oreilles et ainsi de suite. Le processus de convolution se déroulerait comme suit :

  1. Première couche de convolution : les premières couches de convolution utilisent des filtres pour reconnaître les caractéristiques à partir des pixels individuels. Par exemple, un filtre peut détecter une arête verticale qui pourrait représenter le bord d’un œil. Comme nous l’avons déjà mentionné, les caractéristiques locales forment des modèles qui sont enregistrés lors de la convolution dans une Feature Map. Dans ce cas, une Feature Map pourrait représenter les bords des yeux, du nez et de la bouche.
  2. Couches de convolution supplémentaires : les couches de convolution peuvent être suivies par d’autres couches de convolution ou couches de regroupement. Les différentes couches de convolution combinent les caractéristiques simples en motifs plus complexes. Ainsi, les bords et les coins pourraient être combinés pour former des formes représentant des yeux. Ces couches voient des zones plus grandes de l’image (champs réceptifs) et reconnaissent ainsi des structures composées, appelées hiérarchies de caractéristiques, au sein des couches de convolution. Une couche ultérieure pourrait reconnaître que deux yeux et une bouche dans une certaine disposition forment un visage.
  3. Couches de pooling : elles réduisent la taille des Feature Maps et rendent les caractéristiques plus abstraites. Ce faisant, les caractéristiques essentielles sont conservées et le nombre de données à traiter est réduit.
  4. Couche fully connected : enfin, la dernière couche du ConvNet, la couche fully connected, est créée. Dans notre exemple, elle donnerait l’image d’un visage humain qui, grâce à la convolution, pourrait être clairement distingué d’un autre visage.
graphique-convolutional-neural-network.png
Les ConvNets extraient automatiquement les caractéristiques pertinentes et identifient les objets dans les images.

Des techniques telles que le dropout et la régularisation optimisent les réseaux en empêchant la suradaptation. Les fonctions d’activation telles que ReLU (Rectified Linear Unit ou Unité Linéaire Rectifiée) assurent la non-linéarité et aident le réseau à reconnaître des modèles plus complexes en ne faisant pas effectuer les mêmes calculs à tous les neurones. De plus, la normalisation par lots stabilise et accélère l’apprentissage en traitant les données de manière plus régulière.

Domaines d’application des Convolutional Neural Networks

Avant l’apparition des CNN, des méthodes manuelles et fastidieuses d’extraction de caractéristiques étaient utilisées pour identifier des objets dans des images. Les réseaux neuronaux convolutifs offrent une approche plus évolutive pour les tâches de classification d’images et de reconnaissance d’objets. Ils utilisent les principes de l’algèbre linéaire, notamment la multiplication matricielle, pour identifier des motifs dans une image. Les ConvNets trouvent aujourd’hui de nombreuses applications dans :

  • La reconnaissance d’images et de la parole : ils servent à la reconnaissance automatique d’objets ou de personnes dans des images et des vidéos, pour les services de tag photo sur les smartphones, pour les systèmes de reconnaissance faciale ou encore pour les assistants vocaux comme Siri ou Alexa.
  • Le diagnostic médical : ils sont utiles pour l’analyse d’images médicales grâce à la reconnaissance d’images par IA pour aider à établir un diagnostic, dans le cadre de radiographies, de scanners et ou d’IRM.
  • Les véhicules autonomes : ils permettent la reconnaissance des caractéristiques de la route et des obstacles, notamment pour les voitures à conduite automatique.
  • Les réseaux sociaux : les Convolutional Neuronal Networks peuvent être utilisés dans le cadre de text mining sur les réseaux pour modérer automatiquement le contenu et créer des publicités personnalisées.
  • Le marketing et la vente au détail : par exemple, la recherche visuelle de produits et placement de produits grâce au data mining.
Outils d'IA
Exploitez toute la puissance de l'intelligence artificielle
  • Créez votre site Web en un temps record
  • Boostez votre activité grâce au marketing par IA
  • Gagnez du temps et obtenez de meilleurs résultats

Les avantages et inconvénients des Convolutional Neural Networks

Les ConvNets peuvent extraire automatiquement des caractéristiques pertinentes des données et atteindre une grande précision. Cependant, les entraîner efficacement nécessite des ressources informatiques considérables, car ils ont besoin de grandes quantités de données étiquetées et de puissants GPU pour fournir de bons résultats.

Avantages Inconvénients
Extraction automatisée de caractéristiques Charge de calcul nécessaire élevée
Précision élevée Requiert de grands ensembles de données
En résumé

Les CNN ont révolutionné le domaine de l’intelligence artificielle et offrent d’immenses avantages dans différents domaines. Les développements futurs, tels que les améliorations matérielles, les nouvelles méthodes de collecte de données ou les architectures avancées telles que les réseaux capsulaires, pourraient permettre une optimisation et une intégration plus poussées dans différentes technologies, ce qui permettrait une utilisation encore plus large des CNN.

Cet article vous a-t-il été utile ?
Page top