Réseaux de neurones convolutifs (CNN) : une introduction
Les réseaux neuronaux convolutifs représentent une approche plus adaptable pour la reconnaissance d'objets et le tri d'images.
Le domaine de la technologie est en constante évolution, avec l'intelligence artificielle et l'apprentissage automatique qui sont devenus des termes courants.
Ces technologies sont désormais omniprésentes, trouvant des applications dans divers secteurs tels que le marketing, le commerce électronique, le développement de logiciels, ainsi que la banque, la finance et la médecine.
L'IA et l'apprentissage automatique sont des disciplines vastes, et des efforts considérables sont déployés pour étendre leurs applications afin de résoudre une multitude de défis concrets. C'est pourquoi ces technologies se divisent en de nombreuses branches, l'apprentissage automatique étant lui-même un sous-ensemble de l'IA.
Les réseaux neuronaux convolutifs sont une branche de l'IA qui gagne en popularité à notre époque.
Dans cet article, nous examinerons ce que sont les CNN, leur fonctionnement et leur utilité dans le monde moderne.
Alors, plongeons-nous dans le sujet !
Qu'est-ce qu'un réseau neuronal convolutif ?
Un réseau neuronal convolutif (ConvNet ou CNN) est un type de réseau neuronal artificiel (RNA) qui emploie des algorithmes d'apprentissage profond pour l'analyse d'images, la classification de visuels et la réalisation de tâches de vision par ordinateur.
Les CNN exploitent des principes d'algèbre linéaire, comme la multiplication matricielle, pour identifier des schémas dans une image. En raison de la complexité de ces calculs, des unités de traitement graphique (GPU) sont nécessaires pour entraîner les modèles.
En résumé, les CNN utilisent des algorithmes d'apprentissage profond pour traiter des données d'entrée telles que des images, en attribuant une importance, sous forme de biais et de poids ajustables, à différents aspects de l'image. De cette manière, les CNN peuvent différencier ou classifier les images.
CNN : un bref aperçu historique
Puisqu'un réseau neuronal convolutif est un type de réseau neuronal artificiel, il est essentiel de revenir sur les réseaux neuronaux en général.
En informatique, un réseau neuronal est un outil d'apprentissage automatique (ML) utilisant des algorithmes d'apprentissage profond. Il est calqué sur les schémas de connectivité des neurones du cerveau humain. Les réseaux neuronaux artificiels s'inspirent également de l'organisation du cortex visuel.

Ainsi, différents types de réseaux neuronaux ou de réseaux neuronaux artificiels (RNA) sont utilisés à des fins variées. L'un d'entre eux, le CNN, est employé pour la détection et la classification d'images, entre autres. Il a été introduit dans les années 1980 par Yann LeCun, chercheur postdoctoral.
La première version de CNN, LeNet (nommée d'après LeCun), était capable de reconnaître les chiffres manuscrits. Elle a ensuite été utilisée dans les services bancaires et postaux pour lire les chiffres sur les chèques et les codes postaux écrits sur les enveloppes.
Cependant, cette première version manquait de capacités d'adaptation, ce qui a limité l'utilisation des CNN dans l'intelligence artificielle et la vision par ordinateur. De plus, elle nécessitait des ressources de calcul et des données importantes pour fonctionner efficacement avec des images plus grandes.
Par la suite, en 2012, AlexNet a relancé l'intérêt pour l'apprentissage profond en utilisant des réseaux neuronaux multicouches. À cette époque, la technologie s'était améliorée et de grands ensembles de données ainsi que des ressources informatiques puissantes étaient disponibles, ce qui a permis de créer des CNN complexes capables de réaliser efficacement des tâches de vision par ordinateur.
Les couches d'un CNN
Examinons les différentes couches qui composent un CNN. L'augmentation du nombre de couches dans un CNN accroît sa complexité et lui permet de détecter davantage d'aspects ou de zones d'une image. En partant d'une fonction simple, il devient capable de déceler des caractéristiques complexes telles que la forme d'un objet et des éléments plus grands, jusqu'à pouvoir finalement identifier l'image dans son ensemble.
Couche convolutive
La première couche d'un CNN est la couche convolutive. C'est le bloc de construction central du CNN, où la plupart des calculs ont lieu. Elle se compose de peu d'éléments, tels que des données d'entrée, une carte de caractéristiques et un filtre.

Un CNN peut également comporter des couches convolutives supplémentaires. Cela confère une structure hiérarchique aux CNN, car les couches suivantes peuvent visualiser les pixels dans les champs récepteurs des couches précédentes. Ensuite, les couches convolutives transforment l'image donnée en valeurs numériques, permettant au réseau de comprendre et d'extraire des schémas précieux.
Couches de mise en commun
Les couches de mise en commun sont utilisées pour réduire les dimensions et sont considérées comme du sous-échantillonnage. Elles réduisent le nombre de paramètres utilisés dans l'entrée. L'opération de mise en commun peut déplacer un filtre sur l'ensemble de l'entrée, comme dans la couche convolutive, mais sans poids. Ici, le filtre applique une fonction conjointe aux valeurs numériques du champ récepteur afin de remplir le tableau de résultats.
La mise en commun est de deux types :
- Mise en commun moyenne : La valeur moyenne est calculée dans le champ récepteur que le filtre parcourt sur l'entrée pour être transmise au tableau de sortie.
- Mise en commun maximale : Elle sélectionne le pixel de valeur maximale et l'envoie au tableau de sortie lorsque le filtre parcourt l'entrée. La mise en commun maximale est plus fréquente que la mise en commun moyenne.
Bien qu'une quantité importante de données soit perdue lors de la mise en commun, cela offre toujours de nombreux avantages au CNN. Elle contribue à réduire les risques de surapprentissage et la complexité, tout en améliorant l'efficacité. Elle améliore également la stabilité du CNN.
Couche entièrement connectée (FC)

Comme son nom l'indique, dans une couche entièrement connectée, tous les nœuds d'une couche de sortie sont directement connectés aux nœuds de la couche précédente. Elle classe une image en fonction des caractéristiques extraites par les couches précédentes avec leurs filtres.
De plus, les couches FC utilisent généralement une fonction d'activation softmax pour classer correctement les entrées, contrairement aux fonctions ReLU (comme dans le cas des couches de mise en commun et de convolution). Cela permet de générer une probabilité de 0 ou 1.
Comment fonctionnent les CNN ?
Un réseau neuronal convolutif est composé de nombreuses couches, parfois des centaines. Ces couches apprennent à identifier différentes caractéristiques d'une image donnée.
Bien que les CNN soient des réseaux neuronaux, leur architecture diffère d'un RNA ordinaire.

Ce dernier fait passer une entrée à travers de nombreuses couches cachées pour la transformer, chaque couche étant composée d'un ensemble de neurones artificiels et étant entièrement connectée à chaque neurone de la même couche. Enfin, il existe une couche entièrement connectée, ou couche de sortie, pour afficher le résultat.
D'autre part, un CNN organise les couches en trois dimensions : largeur, profondeur et hauteur. Dans ce cas, un neurone d'une couche ne se connecte qu'aux neurones d'une petite région au lieu d'être connecté à chacun d'eux dans la couche suivante. En fin de compte, le résultat final est représenté par un seul vecteur avec un score de probabilité et n'a que la dimension de profondeur.
Vous vous demandez peut-être ce que signifie la "convolution" dans un CNN.
La convolution désigne une opération mathématique qui consiste à fusionner deux ensembles de données. Dans un CNN, le concept de convolution est appliqué aux données d'entrée pour générer une carte de caractéristiques en filtrant les informations.
Ceci nous amène à aborder quelques-uns des concepts et terminologies importants utilisés dans les CNN.
- Filtre : Également appelé détecteur de caractéristiques ou noyau, un filtre peut avoir une dimension spécifique, par exemple 3 × 3. Il parcourt une image d'entrée pour effectuer une multiplication matricielle pour chaque élément afin d'appliquer la convolution. L'application de filtres à chaque image d'entraînement, à différentes résolutions, ainsi que la sortie de l'image convoluée, serviront d'entrée à la couche suivante.
- Rembourrage : Il est utilisé pour étendre une matrice d'entrée jusqu'aux bordures de la matrice en insérant de faux pixels. Il vise à compenser le fait que la convolution réduit la taille de la matrice. Par exemple, une matrice 9 × 9 peut être transformée en une matrice 3 × 3 après le filtrage.
- Enjambement : Si vous souhaitez obtenir une sortie plus petite que l'entrée, vous pouvez effectuer un enjambement. Il permet de sauter certaines zones pendant que le filtre parcourt l'image. En sautant deux ou trois pixels, vous pouvez obtenir un réseau plus efficace en réduisant la résolution spatiale.
- Poids et biais : Les CNN ont des poids et des biais dans leurs neurones. Un modèle peut apprendre ces valeurs pendant l'entraînement, et les valeurs restent les mêmes dans une couche donnée pour tous les neurones. Cela signifie que chaque neurone caché détecte les mêmes caractéristiques dans différentes zones d'une image. Par conséquent, le réseau devient plus tolérant lors de la translation des objets dans une image donnée.
- ReLU : Il signifie Rectified Linear Unit (ReLu) et est utilisé pour un entraînement plus rapide et plus efficace. Il mappe les valeurs négatives sur 0 et conserve les valeurs positives. Il est également considéré comme une activation, car le réseau ne conserve que les caractéristiques de l'image activées dans la couche suivante.
- Champ récepteur : Dans un réseau neuronal, chaque neurone reçoit une entrée de différents emplacements de la couche précédente. Dans les couches convolutives, chaque neurone reçoit une entrée d'une zone restreinte de la couche précédente, appelée champ récepteur du neurone. Dans le cas de la couche FC, l'ensemble de la couche précédente constitue le champ récepteur.
Dans les tâches de calcul du monde réel, la convolution est généralement effectuée sur une image 3D, ce qui nécessite un filtre 3D.
Pour en revenir aux CNN, ils comprennent différentes parties ou couches de nœuds. Chaque couche de nœuds a un seuil et un poids et est connectée à une autre. Si la limite du seuil est dépassée, les données sont envoyées à la couche suivante du réseau.
Ces couches peuvent effectuer des opérations pour modifier les données afin d'apprendre les caractéristiques pertinentes. De plus, ces opérations sont répétées sur des centaines de couches différentes, qui continuent d'apprendre à détecter d'autres caractéristiques d'une image.

Les parties d'un CNN sont :
- Une couche d'entrée : c'est là que l'entrée est prise, comme une image. Ce sera un objet 3D avec une hauteur, une largeur et une profondeur définies.
- Une ou plusieurs couches cachées ou phase d'extraction de caractéristiques : ces couches peuvent être une couche convolutive, une couche de mise en commun et une couche entièrement connectée.
- Une couche de sortie : c'est ici que le résultat est affiché.
Le passage de l'image à travers la couche de convolution la transforme en une carte de caractéristiques ou carte d'activation. Après avoir convolué l'entrée, les couches convoluent l'image et transmettent le résultat à la couche suivante.
Le CNN effectuera de nombreuses convolutions et techniques de mise en commun pour détecter les caractéristiques pendant la phase d'extraction de caractéristiques. Par exemple, si vous entrez l'image d'un chat, le CNN reconnaîtra ses quatre pattes, sa couleur, ses deux yeux, etc.
Ensuite, les couches entièrement connectées d'un CNN agiront comme un classificateur sur les caractéristiques extraites. En fonction de ce que l'algorithme d'apprentissage profond a prédit à propos de l'image, les couches fourniront le résultat.
Avantages des CNN

Précision supérieure
Les CNN offrent une précision supérieure par rapport aux réseaux neuronaux classiques qui n'utilisent pas la convolution. Les CNN sont particulièrement utiles lorsque la tâche implique une grande quantité de données, la reconnaissance de vidéos et d'images, etc. Ils fournissent des résultats et des prédictions très précis, ce qui explique leur utilisation croissante dans différents secteurs.
Efficacité de calcul

Les CNN offrent un niveau d'efficacité de calcul supérieur à celui des autres réseaux neuronaux classiques. Cela est dû à l'utilisation du processus de convolution. Ils utilisent également la réduction de la dimensionnalité et le partage de paramètres pour rendre les modèles plus rapides et plus faciles à déployer. Ces techniques peuvent également être optimisées pour fonctionner sur différents appareils, qu'il s'agisse de votre smartphone ou de votre ordinateur portable.
Extraction de caractéristiques
Les CNN peuvent facilement apprendre les caractéristiques d'une image sans nécessiter d'ingénierie manuelle. Vous pouvez exploiter des CNN pré-entraînés et gérer les pondérations en leur fournissant des données lorsque vous travaillez sur une nouvelle tâche, et le CNN s'y adaptera de manière transparente.
Applications des CNN
Les CNN sont utilisés dans divers secteurs pour de nombreux cas d'utilisation. Voici quelques-unes des applications concrètes des CNN :
Classification d'images

Les CNN sont largement utilisés dans la classification d'images. Ils peuvent identifier des caractéristiques précieuses et identifier des objets dans une image donnée. Par conséquent, ils sont utilisés dans des secteurs comme la santé, en particulier pour les IRM. De plus, cette technologie est utilisée pour la reconnaissance des chiffres manuscrits, qui est l'une des premières applications des CNN en vision par ordinateur.
Détection d'objets
Les CNN peuvent détecter des objets dans des images en temps réel, ainsi que les étiqueter et les classer. Par conséquent, cette technique est largement utilisée dans les véhicules automatisés. Elle permet également aux maisons intelligentes et aux piétons de reconnaître le visage du propriétaire du véhicule. Elle est également utilisée dans les systèmes de surveillance alimentés par l'IA pour détecter et marquer des objets.

Correspondance audiovisuelle
L'utilisation des CNN dans la correspondance audiovisuelle améliore les plateformes de diffusion vidéo telles que Netflix, YouTube, etc. Elle permet également de répondre aux requêtes des utilisateurs, comme "les chansons d'amour d'Elton John".
Reconnaissance vocale

Outre les images, les CNN sont utiles pour le traitement du langage naturel (TAL) et la reconnaissance vocale. Un exemple concret est l'utilisation de CNN par Google dans son système de reconnaissance vocale.
Reconstruction d'objets
Les CNN peuvent être utilisés dans la modélisation 3D d'un objet réel dans un environnement numérique. Il est également possible pour les modèles CNN de créer un modèle de visage 3D à l'aide d'une image. De plus, les CNN sont utiles pour la création de jumeaux numériques dans les domaines de la biotechnologie, de la fabrication, de la biotechnologie et de l'architecture.
L'utilisation des CNN dans divers secteurs comprend :
- Santé : la vision par ordinateur peut être utilisée en radiologie pour aider les médecins à détecter les tumeurs cancéreuses avec une meilleure efficacité chez un patient.
- Agriculture : les réseaux peuvent utiliser des images de satellites artificiels comme LSAT et exploiter ces données pour classifier les terres fertiles. Cela permet également de prévoir les niveaux de fertilité des terres et de développer une stratégie efficace pour maximiser le rendement.
- Marketing : les applications de médias sociaux peuvent suggérer une personne sur une photo publiée sur le profil de quelqu'un. Cela permet d'identifier des personnes dans vos albums photo.
- Vente au détail : les plateformes de commerce électronique peuvent utiliser la recherche visuelle pour aider les marques à recommander des articles pertinents que les clients ciblés souhaitent acheter.
- Automobile : les CNN sont utilisés dans l'industrie automobile pour améliorer la sécurité des passagers et des conducteurs. Cela se fait grâce à des fonctionnalités telles que la détection de lignes de voie, la détection d'objets, la classification d'images, etc. Cela aide également le monde des voitures autonomes à progresser davantage.
Ressources pour en savoir plus sur les CNN
Cours :
Coursera propose un cours sur les CNN que vous pouvez envisager de suivre. Ce cours vous apprendra comment la vision par ordinateur a évolué au fil des ans, ainsi que quelques applications des CNN dans le monde moderne.
Amazon :
Vous pouvez lire ces livres et conférences pour en savoir plus sur les CNN :
- Réseaux neuronaux et apprentissage en profondeur : il couvre les modèles, les algorithmes et la théorie de l'apprentissage en profondeur et des réseaux neuronaux.
- Un guide des réseaux neuronaux convolutifs pour la vision par ordinateur : ce livre vous enseignera les applications des CNN et leurs concepts.
- Réseaux neuronaux convolutifs pratiques avec TensorFlow : ce livre vous permettra de résoudre divers problèmes de vision par ordinateur en utilisant Python et TensorFlow.
- Apprentissage profond appliqué avancé : ce livre vous aidera à comprendre les CNN, l'apprentissage profond et leurs applications avancées, notamment la détection d'objets.
- Réseaux neuronaux convolutifs et réseaux neuronaux récurrents : ce livre vous expliquera les CNN et les RNN et comment créer ces réseaux.
Conclusion
Les réseaux neuronaux convolutifs sont l'un des domaines émergents de l'intelligence artificielle, de l'apprentissage automatique et de l'apprentissage profond. Ils ont diverses applications dans le monde actuel dans presque tous les secteurs. Compte tenu de leur utilisation croissante, on s'attend à ce qu'ils se développent davantage et soient plus utiles pour résoudre les problèmes du monde réel.