Les réseaux neuronaux convolutifs offrent une solution plus évolutive pour les tâches de reconnaissance d’objets et de classification d’images.

Le monde de la technologie connaît de nombreuses avancées. L’intelligence artificielle et l’apprentissage automatique sont des termes que vous entendez souvent.

Actuellement, ces technologies sont utilisées dans presque tous les domaines, qu’il s’agisse du marketing, du commerce électronique, du développement de logiciels, de la banque, de la finance ou de la médecine.

L’IA et l’apprentissage automatique sont des domaines très vastes, et des efforts sont déployés pour élargir leurs applications afin de résoudre de nombreux problèmes du monde réel. C’est la raison pour laquelle vous pouvez voir de nombreuses branches à l’intérieur de ces technologies ; le ML est un sous-ensemble de l’IA elle-même.

Les réseaux neuronaux convolutifs sont l’une des branches de l’IA les plus populaires de nos jours.

Dans cet article, je vais vous expliquer ce que sont les réseaux neuronaux convolutifs, comment ils fonctionnent et quelle est leur utilité dans le monde moderne.

Plongeons dans le vif du sujet !

Qu’est-ce qu’un réseau neuronal convolutif ?

Un réseau neuronal convolutif (ConvNet ou CNN) est un réseau neuronal artificiel (ANN) qui utilise des algorithmes d’apprentissage profond pour analyser des images, classer des éléments visuels et effectuer des tâches de vision par ordinateur.

 Convolutional Neural Network

Le CNN s’appuie sur des principes d’algèbre linéaire, tels que la multiplication des matrices, pour détecter des motifs dans une image. Comme ces processus impliquent des calculs complexes, ils nécessitent des unités de traitement graphique(GPU) pour l’entraînement des modèles.

En d’autres termes, le CNN utilise des algorithmes d’apprentissage profond pour prendre des données d’entrée telles que des images et attribuer de l’importance, sous forme de biais et de poids pouvant être appris, à différents aspects de cette image. De cette manière, le CNN peut différencier les images ou les classer.

CNN : Une brève histoire

Un réseau neuronal convolutif étant un réseau neuronal artificiel, il est important de rappeler ce que sont les réseaux neuronaux.

En informatique, un réseau neuronal fait partie de l’apprentissage machine (ML) qui utilise des algorithmes d’apprentissage profond. Il est analogue aux modèles de connectivité suivis par les neurones dans le cerveau humain. Les réseaux neuronaux artificiels s’inspirent également de l’organisation du cortex visuel.

CNN's: A Brief History

Ainsi, différents types de réseaux neuronaux ou réseaux neuronaux artificiels (RNA) sont utilisés à différentes fins. L’un d’entre eux, le CNN, est utilisé pour la détection et la classification d’images, entre autres. Il a été introduit par un chercheur postdoctoral, Yann LeCun, dans les années 1980.

La première version du CNN – LeNet, nommé d’après LeCun, était capable de reconnaître des chiffres écrits à la main. Il a ensuite été utilisé dans les services bancaires et postaux pour lire les chiffres figurant sur les chèques et les codes postaux inscrits sur les enveloppes.

Toutefois, cette première version manquait d’évolutivité, ce qui explique que les CNN n’aient pas été beaucoup utilisés dans les domaines de l’intelligence artificielle et de la vision par ordinateur. En outre, elle nécessitait d’importantes ressources de calcul et de données pour fonctionner plus efficacement sur des images de grande taille.

En outre, en 2012, AlexNet a revisité l’apprentissage profond en utilisant des réseaux neuronaux composés de plusieurs couches. À cette époque, la technologie s’est améliorée et de grands ensembles de données et de lourdes ressources informatiques étaient disponibles pour permettre la création de réseaux neuronaux complexes capables d’effectuer des activités de vision par ordinateur de manière efficace.

Les couches d’un CNN

Comprenons les différentes couches d’un CNN. L’augmentation du nombre de couches d’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 caractéristique simple, il devient capable de détecter des caractéristiques complexes telles que la forme de l’objet et des éléments plus grands, jusqu’à ce qu’il puisse finalement détecter l’image.

Couche convolutive

La première couche d’un CNN est la couche convolutive. Il s’agit du principal bloc de construction du CNN, où la plupart des calculs sont effectués. Elle nécessite moins de composants, tels que des données d’entrée, une carte de caractéristiques et un filtre.

Convolutional Layer

Un CNN peut également comporter des couches convolutives supplémentaires. Cela rend la structure des CNN hiérarchique puisque les couches suivantes peuvent visualiser les pixels situés dans les champs réceptifs des couches précédentes. Ensuite, les couches convolutives transforment l’image donnée en valeurs numériques et permettent au réseau de comprendre et d’extraire des modèles utiles.

Couches de mise en commun

Les couches de mise en commun sont utilisées pour réduire les dimensions et sont appelées “downsampling”. Elles réduisent les paramètres utilisés dans l’entrée. L’opération de mise en commun permet de déplacer un filtre sur l’ensemble de l’entrée, comme la couche convolutive, mais sans les poids. Dans ce cas, le filtre applique une fonction conjointe aux valeurs numériques du champ réceptif pour remplir le tableau de résultats.

Il existe deux types de mise en commun :

  • Mise en commun de la moyenne : La valeur moyenne est calculée dans le champ réceptif que le filtre balaie sur l’entrée pour la transmettre au tableau de sortie.
  • Mise en commun maximale : Il choisit la valeur maximale du pixel et l’envoie au tableau de sortie pendant que le filtre balaie l’entrée. La mise en commun maximale est plus utilisée que la mise en commun moyenne.

Bien que des données importantes soient perdues lors de la mise en commun, celle-ci offre de nombreux avantages au CNN. Il permet de réduire les risques de surajustement et la complexité tout en améliorant l’efficacité. Il améliore également la stabilité du CNN.

Couche entièrement connectée (FC)

Fully Connected (FC) Layer

Comme son nom l’indique, tous les nœuds d’une couche de sortie sont directement connectés aux nœuds de la couche précédente dans une couche entièrement connectée. Elle classifie une image sur la base des caractéristiques extraites par les couches précédentes avec leurs filtres.

En outre, les couches entièrement connectées utilisent généralement une fonction d’activation softmax pour classer correctement les entrées au lieu des fonctions ReLu (comme dans le cas des couches de mise en commun et convolutives). Cela permet de produire une probabilité de 0 ou de 1.

Comment fonctionnent les CNN ?

Un réseau neuronal convolutif se compose de nombreuses couches, voire de centaines de couches. Ces couches apprennent à identifier les différentes caractéristiques d’une image donnée.

Bien que les CNN soient des réseaux neuronaux, leur architecture diffère de celle d’un ANN classique.

How Do CNNs Work

Ce dernier fait passer une entrée par de nombreuses couches cachées pour la transformer, où chaque couche est créée avec un ensemble de neurones artificiels et est entièrement connectée à tous les neurones de la même couche. Enfin, une couche entièrement connectée, ou couche de sortie, affiche le résultat.

D’autre part, le CNN organise les couches en trois dimensions : largeur, profondeur et hauteur. Ici, une couche de neurones ne se connecte qu’aux neurones d’une petite région au lieu de se connecter à chacun d’entre eux dans la couche suivante. Enfin, 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 qu’est la “convolution” dans un CNN.

En fait, la convolution est une opération mathématique qui permet de fusionner deux ensembles de données. Dans un CNN, le concept de convolution est appliqué aux données d’entrée pour produire une carte de caractéristiques en filtrant les informations.

Cela nous amène à aborder certains 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 certaine dimension, par exemple 3×3. Il passe sur 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 et la sortie de l’image convoluée serviront d’entrée à la couche suivante.
  • Remplissage: Il est utilisé pour étendre une matrice d’entrée jusqu’aux limites de la matrice en insérant de faux pixels. Cela permet de contrer le fait que la convolution réduit la taille de la matrice. Par exemple, une matrice 9×9 peut se transformer en une matrice 3×3 après filtrage.
  • Lastridulation: Si vous souhaitez obtenir une sortie plus petite que votre entrée, vous pouvez effectuer un striding. Il permet d’ignorer certaines zones pendant que le filtre glisse sur l’image. En sautant deux ou trois pixels, vous pouvez produire 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 au cours de l’entraînement, et les valeurs restent les mêmes pour tous les neurones d’une couche donnée. 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 traduction d’objets dans une image donnée.
  • ReLU: il s’agit d’une unité linéaire rectifiée (ReLu) utilisée pour une formation plus efficace et plus rapide. Elle fait correspondre les valeurs négatives à 0 et maintient les valeurs positives. Elle est également appelée activation, car le réseau ne transmet que les caractéristiques d’image activées à la couche suivante.
  • Champ réceptif : Dans un réseau neuronal, chaque neurone reçoit des entrées provenant de différents endroits de la couche précédente. Dans les couches convolutives, chaque neurone reçoit des informations provenant uniquement d’une zone restreinte de la couche précédente, appelée champ réceptif du neurone. Dans le cas de la couche FC, l’ensemble de la couche précédente constitue le champ réceptif.

Dans les tâches de calcul du monde réel, la convolution est généralement effectuée dans une image 3D nécessitant un filtre 3D.

Pour en revenir au CNN, il comprend 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. Lorsque le seuil est dépassé, 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. En outre, ces opérations se répètent sur des centaines de couches différentes qui continuent d’apprendre à détecter d’autres caractéristiques d’une image.

operations

Les éléments d’un CNN sont les suivants

  • Une couche d’entrée : C’est l’endroit où l’entrée est prise, par exemple une image. Il s’agit d’un objet en 3D dont la hauteur, la largeur et la profondeur sont définies.
  • Une ou plusieurs couches cachées ou phase d’extraction des 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 sera affiché.

Le passage de l’image par la couche de convolution est transformé en une carte de caractéristiques ou une 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 effectue de nombreuses convolutions et techniques de mise en commun pour détecter les caractéristiques au cours de la phase d’extraction des caractéristiques. Par exemple, si vous saisissez 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 produiront le résultat.

Avantages des CNN

Advantages of CNNs

Précision supérieure

Les CNN offrent une plus grande précision que les réseaux neuronaux ordinaires qui n’utilisent pas la convolution. Les CNN sont utiles, en particulier lorsque la tâche implique un grand nombre de données, la reconnaissance de vidéos et d’images, etc. Ils produisent des résultats et des prédictions très précis, ce qui explique leur utilisation croissante dans différents secteurs.

Efficacité informatique

Computational Efficiency

Les CNN offrent un niveau d’efficacité de calcul plus élevé que les 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 des 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 des caractéristiques

Les CNN peuvent facilement apprendre les caractéristiques d’une image sans nécessiter d’ingénierie manuelle. Vous pouvez utiliser des CNN pré-entraînés et gérer les poids 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 du CNN

Les CNN sont utilisés dans différents secteurs pour de nombreux cas d’utilisation. Voici quelques-unes des applications réelles des CNN

Classification d’images

Image Classification

Les CNN sont largement utilisés dans la classification d’images. Ils peuvent reconnaître des caractéristiques importantes et identifier des objets dans une image donnée. Ils sont donc utilisés dans des secteurs tels que les soins de santé, en particulier les IRM. En outre, cette technologie est utilisée pour la reconnaissance de chiffres écrits à la main, ce qui constitue l’un des premiers cas d’utilisation des CNN dans le domaine de la vision par ordinateur.

Détection d’objets

Le CNN peut détecter des objets dans des images en temps réel et également les étiqueter et les classer. Cette technique est donc 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.

Object Detection

Correspondance audiovisuelle

L’aide de CNN en matière de comparaison audiovisuelle permet d’améliorer les plateformes de streaming vidéo telles que Netflix, YouTube, etc. Elle permet également de répondre aux demandes des utilisateurs telles que “chansons d’amour d’Elton John”.

Reconnaissance de la parole

Speech Recognition

Outre les images, les CNN sont utiles dans le traitement du langage naturel (NLP) et la reconnaissance vocale. Un exemple concret est celui de Google qui utilise les CNN dans son système de reconnaissance vocale.

Reconstruction d’objets

Les CNN peuvent être utilisés pour la modélisation 3D d’un objet réel dans un environnement numérique. Les modèles CNN peuvent également créer un modèle de visage en 3D à partir d’une image. En outre, le CNN est utile pour construire des jumeaux numériques dans les domaines de la biotechnologie, de la fabrication, de la biotechnologie et de l’architecture.

Le CNN est utilisé dans différents secteurs :

  • Les soins de santé : La vision par ordinateur peut être utilisée en radiologie pour aider les médecins à détecter plus efficacement les tumeurs cancéreuses chez une personne.
  • Agriculture : Les réseaux peuvent utiliser des images provenant de satellites artificiels tels que LSAT et exploiter ces données pour classer les terres fertiles. Cela permet également de prédire les niveaux de fertilité des terres et d’élaborer 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 d’une personne. Cela vous permet d’étiqueter des personnes dans vos albums photos.
  • Commerce de détail : Les plateformes de commerce électronique peuvent utiliser la recherche visuelle pour aider les marques à recommander des articles pertinents que les clients cibles souhaitent acheter.
  • Automobile : CNN trouve des applications dans les automobiles pour améliorer la sécurité des passagers et des conducteurs. Il le fait à l’aide de fonctions telles que la détection des voies de circulation, la détection d’objets, la classification d’images, etc. Cela permet également de faire évoluer le monde des voitures auto-conduites.

Ressources pour apprendre les CNN

Coursera :

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 et quelques applications des CNN dans le monde moderne.

Amazon :

Vous pouvez lire ces livres et conférences pour en savoir plus sur le CNN :

  • Neural Networks and Deep Learning (Réseaux neuronaux et apprentissage profond) : Il couvre les modèles, les algorithmes et la théorie de l’apprentissage profond et des réseaux neuronaux.
  • Guide des réseaux neuronaux convolutifs pour la vision par ordinateur : Ce livre vous apprendra les applications des réseaux neuronaux convolutifs et leurs concepts.
  • Réseaux neuronaux convolutifs pratiques avec Tensorflow : Vous pouvez résoudre divers problèmes de vision par ordinateur en utilisant Python et TensorFlow avec l’aide de ce livre.
  • Apprentissage profond appliqué avancé : Ce livre vous aidera à comprendre les CNN, l’apprentissage profond et leurs applications avancées, y compris la détection d’objets.
  • Réseaux neuronaux convolutifs et réseaux neuronaux récurrents : Ce livre vous apprendra ce que sont les CNN et les RNN et comment construire 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 de nombreuses applications dans le monde d’aujourd’hui, dans presque tous les secteurs. Au vu de leur utilisation croissante, on s’attend à ce qu’ils se développent davantage et qu’ils soient plus utiles pour résoudre les problèmes du monde réel.