Guide du débutant sur les réseaux de neurones convolutifs (CNN) : explication étape par étape

Publié: 2022-06-06

L'apprentissage en profondeur a facilité de multiples approches de la vision par ordinateur, du calcul cognitif et du traitement raffiné des données visuelles. Un tel exemple est l'utilisation de CNN ou de réseaux de neurones convolutifs pour la classification d'objets ou d'images. Les algorithmes CNN offrent un avantage considérable dans la classification visuelle en permettant aux machines de percevoir le monde qui les entoure (sous forme de pixels) comme le font les humains.

CNN est fondamentalement un algorithme de reconnaissance qui permet aux machines de se former suffisamment pour traiter, classer ou identifier une multitude de paramètres à partir de données visuelles à travers des couches. Cela favorise l'identification avancée des objets et la classification des images en permettant aux machines ou aux logiciels d'identifier avec précision les objets requis à partir des données d'entrée.

Les systèmes basés sur CNN apprennent à partir de données de formation basées sur des images et peuvent classer les futures images d'entrée ou données visuelles sur la base de leur modèle de formation. Tant que l'ensemble de données utilisé pour la formation contient une gamme d'indices visuels utiles (données spatiales), le classificateur d'images ou d'objets sera très précis.

CNN est l'une des approches d'apprentissage en profondeur les plus populaires utilisées aujourd'hui dans des implémentations populaires telles que le système de classification d'images de Google Lens ou dans des véhicules autonomes comme Teslas. Cela est notamment dû à la reconnaissance fiable des formes qui est possible avec l'aide de CNN, en plus de la détection d'objets.

Apprenez l'apprentissage automatique en ligne dans les meilleures universités du monde - Masters, programmes de troisième cycle pour cadres et programme de certificat avancé en ML et IA pour accélérer votre carrière.

Table des matières

Applications de CNN

L'utilisation de systèmes basés sur CNN peut être observée dans les systèmes de sécurité, les systèmes de défense, les diagnostics médicaux, l'analyse d'images, la classification des médias et d'autres logiciels de reconnaissance. Par exemple, CNN peut être utilisé avec RNN (Recurrent Neural Network) pour créer un logiciel de reconnaissance vidéo ou des reconnaissances d'action.

Il s'agit d'une application plus avancée de la classification vidéo qui peut permettre aux systèmes d'identifier des objets en temps réel à partir de vidéos en analysant les informations spatiales disponibles dans les images qui forment séquentiellement la vidéo.

La séquence de ces trames contient également des informations temporelles qui aident à modéliser les données par un traitement spatial et temporel, permettant l'utilisation d'une architecture hybride composée à la fois de convolutions et de couches récurrentes. Les voitures Tesla et les véhicules Waymo utilisent CNN pour reconnaître et classer différents aspects des routes et des objets ou véhicules entrants à l'aide de données capturées par des caméras en temps réel.

Explorez nos cours sur l'apprentissage automatique et l'intelligence artificielle

Certification avancée en Machine Learning et Cloud de l'IITM Master of Science en apprentissage automatique et IA de LJMU Programme de troisième cycle exécutif en apprentissage automatique et IA de l'IITB
Programme de certificat avancé en apprentissage automatique et PNL de l'IIITB Programme de certificat avancé en apprentissage automatique et apprentissage en profondeur de l'IIITB Programme de certificat avancé en IA pour les gestionnaires de l'IITR

Les réseaux de neurones renforcent les systèmes de véhicules avec la détection de ligne, la segmentation de l'environnement, la navigation et la conduite automatisée. Ces capacités permettent aux voitures autonomes de prendre des décisions complexes basées sur des modèles de classification tels qu'éviter des objets, changer de voie, accélérer, ralentir ou s'arrêter complètement en freinant si nécessaire.

Cependant, ce sont des implémentations plus avancées de CNN qui nécessitent du matériel et des capteurs tels que GPS, RADAR, LiDAR ainsi que des quantités massives de données de formation et des environnements de traitement hautes performances. Ceux-ci aident les modèles d'apprentissage en profondeur à devenir des systèmes de prise de décision qui traitent les données entrantes des capteurs en temps réel et prennent des mesures pertinentes.

A partir des données des capteurs, la vision caméra procure également une perception 3D de l'environnement (reconstruction visuelle, analyse de profondeur…) et peut analyser la distance avec précision (grâce aux lasers). Ainsi, le modèle peut prédire la position future des véhicules ou des objets, décidant finalement du meilleur plan d'action.

Les modèles CNN reposent sur la classification, la segmentation, la localisation, puis construisent des prédictions. Cela permet à ces voitures de réagir presque comme le feraient des cerveaux humains dans une situation donnée ou parfois même plus efficacement que les conducteurs humains.

CNN comble véritablement le fossé entre les machines et les humains, en particulier en matière de vision par ordinateur et de détection de cible. Cependant, pour comprendre les CNN, nous devons d'abord en savoir plus sur les réseaux de neurones et commencer par utiliser les algorithmes CNN pour les données visuelles bidimensionnelles.

Qu'est-ce qu'un réseau de neurones dans le Deep Learning ?

L'apprentissage en profondeur est l'une des branches les plus importantes de l'apprentissage automatique et utilise des ANN ou des réseaux de neurones artificiels (ANN) pour être mis en œuvre en tant que méthodologie d'apprentissage automatique supervisé, non supervisé ou semi-supervisé. Ces types de modèles d'apprentissage automatique s'appuient sur plusieurs couches de traitement afin de travailler sur des fonctionnalités de niveau supérieur dans les données.

Les couches sont fondamentalement de multiples nœuds ou blocs qui sont empilés ensemble en tant qu'unités de calcul. Ces couches imitent efficacement les neurones humains et fonctionnent de la même manière que le cerveau humain. En construisant progressivement des couches, un modèle peut devenir beaucoup plus avancé que la couche d'entrée initiale qui ne contenait que des données prétraitées.

Les algorithmes de réseau neuronal extraient la sortie qui peut alimenter les calculs vers les futures couches jusqu'à ce que la couche de sortie finale soit atteinte. Cela forme un réseau où tous les nœuds de chaque couche suivante sont connectés à un seul nœud de la couche précédente. Chaque fois que les modèles utilisent plus de deux couches, ils sont classés comme réseaux de neurones profonds (DNN). Ces réseaux ne forment pas un cycle et permettent de multiples couches de perception, introduisant ainsi diverses dimensions dans les prédictions et le traitement des données.

Lisez nos articles populaires liés à l'apprentissage automatique et à l'intelligence artificielle

IdO : histoire, présent et avenir Tutoriel d'apprentissage automatique : Apprendre le ML Qu'est-ce que l'algorithme ? Simple et facile
Salaire d'ingénieur en robotique en Inde: tous les rôles Une journée dans la vie d'un ingénieur en apprentissage automatique : que font-ils ? Qu'est-ce que l'IoT (Internet des objets)
Permutation vs combinaison : Différence entre permutation et combinaison Top 7 des tendances en matière d'intelligence artificielle et d'apprentissage automatique Apprentissage automatique avec R : tout ce que vous devez savoir

Voici quelques frameworks courants utilisés pour le Deep Learning :

  • TensorFlow
  • Keras
  • Apache MXNet

Qu'est-ce qu'un réseau de neurones convolutifs ?

Les réseaux de neurones convolutifs sont un type d'ANN qui sont principalement utilisés pour travailler sur des données de pixels pour traiter des images ou pour la reconnaissance d'images. Les CNN sont utilisés dans Deep Learning pour des tâches génératives et descriptives qui utilisent la vision artificielle et des systèmes basés sur des recommandations.

CNN est un ANN plus efficace similaire aux DNN, mais réduit toujours les complexités d'un réseau neuronal Feedforward. En effet, CNN repose généralement sur deux couches, la couche de la carte des fonctionnalités et la couche d'extraction des fonctionnalités. L'entrée de chaque nœud extrait la caractéristique locale du champ récepteur local de la couche précédente.

La relation de position entre les entités locales et les autres entités est tracée ou cartographiée une fois l'extraction terminée. Pour rendre la résolution finale plus précise, les couches de convolution sont suivies de couches de calcul qui calculent les moyennes locales et l'extraction secondaire des caractéristiques. Même si les CNN fonctionnent principalement avec deux couches, les prédictions sont extrêmement précises en raison de l'incorporation de l'extraction multi-fonctions et de la distorsion d'invariance.

Les nœuds dans le même plan de carte d'entités peuvent apprendre simultanément en raison du partage des poids. Cela réduit les complexités du réseau et permet l'entrée d'images d'entrée multidimensionnelles. Contrairement aux autres réseaux de neurones, les CNN ne nécessitent pas que les images soient transformées en images de résolution inférieure, car les exigences de traitement sont faibles.

Ce modèle est similaire aux perceptions multicouches, sauf que les CNN ne sont pas sujets au surajustement des données, ce qui les rend moins complexes. Cela se fait en régularisant l'approche du perceptron multicouche en pénalisant les paramètres ou en coupant les connexions sautées.

Les CNN utilisent le modèle hiérarchique dans les données pour assembler des modèles selon leur niveau de complexité. Les réseaux de neurones convolutifs ne nécessitent pratiquement aucun prétraitement par rapport aux autres algorithmes de classification, en particulier pour les images et la vidéo. En utilisant la PNL, on peut même utiliser les CNN pour des applications plus avancées en robotique, diagnostic médical et automatisation. Les CNN fonctionnent très bien avec la plupart des techniques d'apprentissage automatique non supervisées et continuent d'optimiser indépendamment les filtres du modèle grâce à des méthodologies d'apprentissage automatisées.

Voici quelques architectures disponibles de CNN

  • GoogLeNet
  • Alex Net
  • Le Net
  • ZFNetComment
  • ResNet
  • VGGNet

Voici un exemple d'implémentation CNN

Supposons que nous devions classer les oiseaux, les chats, les chiens, les voitures et les humains à partir d'un ensemble aléatoire d'images. Pour commencer, nous devons d'abord trouver un ensemble de données d'entraînement qui peut être utilisé comme référence pour les calculs futurs. Un exemple d'un bon ensemble de données d'entraînement serait un ensemble de données de 50 000 images 64 × 64 pixels d'oiseaux, de chats, de chiens, de voitures et d'humains.

Chacune de ces cibles deviendra des étiquettes de classe avec des valeurs entières associées. Les étiquettes de classe seront « oiseaux », « chats », « chiens », « voitures » et « humains », ayant des valeurs de 0, 1, 2, 3 et 4. Une fois le modèle CNN formé à l'aide de cet ensemble de données et des points de repère , il sera capable d'identifier des repères visuels à partir de données d'entrée aléatoires, puis de les classer en fonction de leurs étiquettes. Le modèle final peut identifier avec précision les cinq différents types d'objets (étiquettes) à partir d'un ensemble aléatoire d'images présentant ces objets.

Voici les étapes nécessaires pour construire un modèle CNN

  • Chargement du jeu de données.
  • Préparation des données de pixels.
  • Définition du modèle.
  • Évaluation du modèle.
  • Présentation des résultats.
  • Échantillonnage complet.
  • Développer un modèle de base.
  • Mettre en œuvre des techniques de régularisation pour améliorer le modèle.
  • Augmenter les données.
  • Finalisation du modèle et évaluation ultérieure.

CNN Deep Learning est un domaine prometteur avec d'excellentes perspectives de carrière. Si vous envisagez de faire carrière chez CNN, vous pouvez consulter le programme de certificat avancé d'upGrad dans le programme d'apprentissage automatique et d'apprentissage en profondeur .

Quelle est la différence entre les réseaux de neurones classiques (autres ANN) et CNN ?

La principale différence entre les réseaux de neurones classiques tels que le réseau de neurones artificiels (ANN) et le CNN réside dans le fait que seule la dernière couche d'un CNN est complètement connectée et dans ANN, chaque neurone est connecté à tous les autres neurones.

Que sont les réseaux de neurones profonds ?

L'apprentissage en profondeur provient d'une famille plus large de concepts liés à l'apprentissage automatique qui est en outre basé sur des réseaux de neurones artificiels avec apprentissage par représentation.

La PNL peut-elle être utilisée avec CNN ?

Semblable à la classification des phrases, CNN peut être utilisé pour plusieurs tâches NLP telles que la classification des sentiments, la traduction automatique, la synthèse textuelle, la sélection de réponses, etc.