Réseau neural convolutif (CNN)
Qu’est-ce qu’un CNN ?
Un CNN, ou réseau neural convolutif, est un type d’algorithme de deep learning utilisé pour analyser des données visuelles telles que des images et des vidéos. Il est conçu pour imiter le fonctionnement du cortex visuel humain. Les CNN sont constitués de couches qui traitent les données d’entrée. Les couches convolutives appliquent des filtres pour extraire les caractéristiques de l’entrée tandis que les couches de regroupement réduisent les dimensions spatiales de ces caractéristiques. Les couches entièrement connectées mettent les caractéristiques extraites en relation avec la sortie finale. Les CNN utilisent le partage de paramètres et présentent une invariance spatiale, ce qui leur permet de reconnaître des objets quelle que soit la position ou l’orientation de ces derniers. Ils apprennent les représentations hiérarchiques des caractéristiques, du bas niveau au haut niveau. Les CNN sont entraînés avec des données étiquetées, une pondération étant appliquée en vue d’optimiser les performances. Ils ont obtenu des résultats impressionnants dans des tâches telles que la classification d’images, la détection d’objets et la segmentation d’images. Les CNN sont des algorithmes spécialisés qui permettent l’extraction automatisée de caractéristiques et la reconnaissance précise de modèles visuels.
Pourquoi utiliser un CNN ?
Le CNN est largement utilisé dans divers domaines en raison de sa capacité à traiter et extraire efficacement des caractéristiques significatives à partir d’entrées visuelles complexes. Voici quelques raisons pour lesquelles le CNN est couramment utilisé :
- Les CNN sont utilisés pour les tâches de reconnaissance d’images, de détection d’objets et de classification.
- Ils excellent dans l’analyse de données visuelles complexes, telles que des images et des vidéos. Les CNN peuvent détecter et reconnaître automatiquement des motifs, des formes et des objets dans les images.
- Ils présentent une invariance spatiale, ce qui leur permet de reconnaître des objets indépendamment de leur emplacement ou de leur orientation dans une image.
- Les CNN excellent dans l’extraction de caractéristiques, et sont conçus pour apprendre des caractéristiques complexes et abstraites à partir de données d’entrée.
- Le partage de paramètres appliqué dans les CNN réduit les besoins de calcul et de mémoire, ce qui améliore leur efficacité.
- Ils peuvent être préentraînés sur de grands ensembles de données et affinés pour des tâches spécifiques, permettant ainsi l’apprentissage par transfert.
- Les CNN sont évolutifs et peuvent gérer des entrées de différentes tailles.
- Les CNN sont largement utilisés dans la vision par ordinateur, le traitement d’images et les domaines connexes.
Comment ça marche ?
- Couche d’entrée : la couche d’entrée reçoit les valeurs de pixels brutes d’une image ou de données visuelles.
- Couche convolutive : la convolution est le processus d’application d’un filtre à l’image d’entrée en vue d’extraire la caractéristique associée. Lors du filtrage, chaque élément de l’image d’entrée est multiplié par l’élément correspondant présent dans le filtre, qui additionne ensuite ces produits élément par élément.
- Fonction d’activation : après l’opération de convolution, une fonction d’activation (par exemple, ReLU) est appliquée élément par élément pour introduire une non-linéarité et rendre le réseau plus expressif.
- Couche de regroupement : le regroupement est une technique utilisée pour réduire la taille de l’image. Elle consiste à sélectionner aléatoirement des pixels de la carte des caractéristiques et à générer la moyenne de ces pixels. Cela permet au CNN de sélectionner les caractéristiques les plus essentielles de l’image et de faire de la place pour davantage de couches dans le réseau.
- Couches de convolution et de regroupement supplémentaires : plusieurs couches de convolution et de regroupement peuvent être empilées pour apprendre des caractéristiques de plus en plus complexes à partir de l’entrée. Cela permet de capturer différents niveaux d’abstraction et de hiérarchie dans les données.
- Aplatissement : la dernière couche de regroupement est suivie d’une opération d’aplatissement qui transforme les cartes de caractéristiques multidimensionnelles en un vecteur unidimensionnel.
- Couche entièrement connectée : toutes les cartes de caractéristiques obtenues à partir des couches convolutives et de regroupement sont combinées et aplaties en un seul vecteur de sortie pour former la couche entièrement connectée. Cette couche applique un traitement supplémentaire aux sorties des couches convolutives et de regroupement pour obtenir la sortie souhaitée.
- Couche de sortie : la couche entièrement connectée se connecte à la couche de sortie, qui produit les prédictions ou classifications finales en fonction de la tâche à accomplir.
- Fonction de perte : une fonction de perte est utilisée pour mesurer l’écart entre la sortie prédite et les étiquettes réelles. Les fonctions de perte courantes comprennent l’entropie croisée pour les tâches de classification et l’erreur quadratique moyenne pour les tâches de régression.
- Rétropropagation : la rétropropagation a pour but d’optimiser les performances du réseau. Elle consiste à calculer le gradient de la fonction de perte par rapport aux poids et aux biais du réseau. Ce gradient est utilisé pour mettre à jour les paramètres, améliorant ainsi les prédictions du réseau au fil du temps.
- Entraînement : le CNN est entraîné sur un grand ensemble de données étiquetées, les poids étant ajustés de manière itérative via des passages avant et arrière jusqu’à ce que la convergence soit atteinte.
- Inférence : une fois entraîné, le CNN est à même de faire des prédictions sur des données nouvelles et invisibles en les transmettant au réseau et en appliquant les poids et les biais appris pour générer la sortie.
Comment utiliser un CNN pour la détection d’images ?
En utilisant un grand ensemble de données d’images avec les réseaux neuraux fondamentaux, un CNN peut identifier des images similaires ou identiques avec un excellent niveau de justesse. Cette fonctionnalité peut être observée dans la recherche d’images Google, lorsque vous effectuez une recherche par image ou faites glisser une image vers l’omnibox. Cette fonctionnalité permet également d’identifier différents styles artistiques tels que baroque, surréalisme ou post-modernisme, et de les appliquer à un prompt pour effectuer un rendu.
Quelle est la différence entre le CNN et le RNN ?
Le réseau neural convolutif (CNN) et le réseau neural récurrent (RNN) sont deux types populaires de réseaux neuraux, mais ils n’ont pas le même usage et sont conçus pour gérer des types de données différents. Voici les principales différences entre CNN et RNN :
CNN
- Traite principalement des données en grille, telles que des images
- Extrait des caractéristiques locales à l’aide de couches convolutives
- Excelle dans la détection des modèles et de relations spatiaux
- Pas de mémoire explicite des entrées passées
- Traite chaque entrée de manière indépendante
- Adapté aux tâches telles que la reconnaissance d’images et la vision par ordinateur
- Exploite le traitement parallèle
- Conçu pour capturer les hiérarchies et les modèles spatiaux
- Utilise des couches de convolution et de regroupement
- Traite les données en grille avec des relations spatiales locales
- Ne capture pas intrinsèquement les informations temporelles
- Convient pour les tâches où l’ordre des points de données n’est pas significatif
- Permet des calculs efficaces sur du matériel parallèle
RNN
- Spécialement conçu pour les données séquentielles, comme les séries chronologiques ou le langage naturel
- Capture les dépendances temporelles avec des connexions récurrentes
- Idéal pour capturer des modèles séquentiels et des dépendances à long terme
- Possède une mémoire des entrées précédentes via l’état caché
- Maintient le flux d’informations au fil du temps
- Couramment utilisé dans le traitement du langage naturel, la reconnaissance vocale et l’analyse des séries chronologiques
- Sa nature séquentielle limite les capacités de traitement parallèle
- Capable de modéliser des hiérarchies et des motifs temporels
- Utilise des connexions récurrentes pour la persistance des informations
- Traite les données séquentielles présentant des dépendances temporelles
- Gère les tâches où l’ordre des points de données est important
- La dépendance séquentielle limite les capacités de traitement parallèle
En conclusion, les CNN et les RNN servent à des fins différentes et sont conçus pour gérer des types de données distincts. Les CNN sont idéaux pour traiter des données en grille, telles que les images, en capturant des modèles spatiaux via des couches convolutives. Ils sont dépourvus de mémoire explicite mais excellent dans la reconnaissance de modèles au sein d’entrées individuelles. D’autre part, les RNN se spécialisent dans l’analyse de données séquentielle, et conservent les informations via des connexions récurrentes et des états cachés pour capturer les dépendances temporelles. Ils sont particulièrement adaptés aux tâches telles que le traitement du langage naturel et l’analyse des séries chronologiques. En comprenant les points forts et les caractéristiques de chaque réseau, les praticiens peuvent exploiter l’architecture appropriée en fonction des exigences spécifiques de leurs données et du problème à résoudre.
Un exemple de réseau neural convolutif
Comme exemple de CNN, on peut citer un modèle de classification d’images entraîné à distinguer différents types d’animaux. Voici comment cet exemple pourrait fonctionner :
- Exemple : un CNN peut être entraîné à classer des images d’animaux (chats, chiens, oiseaux).
- Ensemble de données : des images étiquetées d’animaux sont collectées à des fins d’entraînement.
- Architecture du CNN : le CNN se compose de couches convolutives pour détecter les caractéristiques, suivies de couches de regroupement servant à sous-échantillonner les données.
- Couches entièrement connectées : des couches entièrement connectées sont utilisées pour apprendre des représentations de haut niveau.
- Abandon : la régularisation par abandon permet d’éviter le surapprentissage.
- Sortie SoftMax : la couche finale produit des probabilités pour chaque classe d’animaux.
- Entraînement : le CNN apprend à partir des images étiquetées, en ajustant les poids par rétropropagation.
- Évaluation : le CNN entraîné est testé sur un ensemble d’images distinct, ce qui permet de mesurer sa justesse.
- Inférence : le CNN peut ensuite classer de nouvelles images inédites d’animaux en fonction de caractéristiques apprises.
Le CNN est entraîné à classer les images d’animaux à l’aide de couches convolutives et entièrement connectées. Il apprend à partir de données étiquetées et, une fois entraîné, il peut faire des prédictions sur de nouvelles images d’animaux.
Comment entraîner mes données pour les CNN ?
Lorsqu’il s’agit d’entraîner vos données pour les CNN, HPE propose des solutions puissantes adaptées aux besoins de l’intelligence artificielle (IA) et des charges de travail de deep learning. Les solutions d’intelligence artificielle de HPE vous font bénéficier des avantages suivants :
- Évolutivité : HPE fournit une infrastructure évolutive – y compris des systèmes et des accélérateurs HPC – permettant un entraînement efficace des modèles CNN à grande échelle.
- Performances : les solutions HPE exploitent des technologies avancées telles que GPU et frameworks logiciels optimisés pour assurer des performances exceptionnelles, ce qui permet d’accélérer l’entraînement et d’augmenter la productivité.
- Flexibilité : les solutions d’IA de HPE sont assorties d’options de déploiement qui vous permettent de choisir l’environnement (sur site, hybride ou cloud) le mieux adapté à vos besoins.
- Collaboration : l’écosystème de HPE facilite la collaboration et le partage des connaissances.
HPE GreenLake for Large Language Models fournit une solution spécifique pour l’entraînement de grands modèles linguistiques, ce qui constitue un atout pour des tâches telles que le traitement et la compréhension du langage naturel.
Les solutions d’IA de HPE libèrent le potentiel des CNN et permettent un entraînement efficace de vos données. Quelle que soit votre priorité – infrastructure puissante, performances optimisées, options de déploiement flexibles ou solutions spécialisées pour les grands modèles linguistiques –, HPE propose une suite complète de produits et services pour répondre à vos besoins d’entraînement de CNN.
En ce qui concerne l’entraînement de vos données pour les CNN, HPE propose également une gamme complète de produits et de services qui peuvent grandement bénéficier à vos initiatives de deep learning et d’IA. Voici quelques ressources et avantages clés fournis par HPE en matière d’entraînement de CNN :
- Deep Learning : les solutions de deep learning de HPE fournissent l’infrastructure et les outils nécessaires pour entraîner les CNN et exploiter leur plein potentiel de manière efficace.
- Intelligence artificielle : les offres d’IA de HPE renforcent l’entraînement des CNN grâce à une infrastructure évolutive, des performances accélérées et des options de déploiement flexibles.
- Machine learning : les solutions de machine learning de HPE prennent en charge l’entraînement de CNN en offrant de puissantes fonctionnalités de calcul et des frameworks logiciels optimisés.
- Traitement du langage naturel : les solutions NLP de HPE permettent un entraînement efficace des CNN pour les tâches liées au langage, améliorant ainsi la compréhension et le traitement des données textuelles.
La gamme complète de produits et services de HPE spécifiquement adaptés au deep learning, à l’intelligence artificielle, au machine learning et au traitement du langage naturel permet d’améliorer vos capacités d’entraînement de CNN et de générer des résultats percutants.