Accueil les sujets Qu'est-ce que les réseaux neuronaux convolutifs ? Qu'est-ce qu'un réseau de neurones convolutifs ?
Découvrir la solution de réseaux neuronaux d’IBM S’abonner aux mises à jour sur l’IA
Illustration avec collage de pictogrammes de nuages, graphique circulaire et pictogrammes graphiques
Qu'est-ce qu'un réseau de neurones convolutifs ?

Les réseaux neuronaux convolutifs utilisent des données tridimensionnelles pour les tâches de classification d’images et de reconnaissance d’objets.

Les réseaux neuronaux constituent un sous-ensemble du machine learning et sont au cœur des algorithmes d’apprentissage profond. Ils se composent de couches de nœuds contenant une couche d’entrée, une ou plusieurs couches masquées et une couche de sortie. Chaque nœud se connecte à un autre et possède un poids et un seuil associés. Si la valeur de sortie d’un nœud individuel est supérieure à la valeur de seuil spécifiée, ce nœud est activé, envoyant les données à la couche suivante du réseau. Dans le cas contraire, aucune donnée n’est transmise à la couche suivante.

Cet article se concentrait principalement sur les réseaux à propagation avant, mais il existe différents types de réseaux de neurones, utilisés pour différents cas d’utilisation et types de données. Par exemple, les réseaux de neurones récurrents sont couramment utilisés pour le traitement automatique du langage naturel et la reconnaissance vocale, tandis que les réseaux de neurones convolutifs (ConvNets ou CNN) sont plus souvent utilisés pour les tâches de classification et de vision par ordinateur. Avant les CNN, des méthodes manuelles et chronophages d’extraction des caractéristiques étaient utilisées pour identifier des objets dans les images. Cependant, les réseaux de neurones convolutifs offrent désormais une approche plus évolutive des tâches de classification des images et de reconnaissance d’objets, en exploitant les principes d’algèbre linéaire, en particulier la multiplication matricielle, pour identifier les modèles au sein d’une image. Cela dit, ils peuvent être exigeants en termes de calcul, nécessitant des unités de traitement graphique (GPU) pour entraîner les modèles.

Le magasin de données pour l'IA

Découvrez la puissance de l’intégration d’une stratégie de data lakehouse dans votre architecture de données, avec des améliorations pour dimensionner l’IA et des possibilités d’optimisation des coûts.

Contenu connexe

Lire le guide à l’intention des responsables des données

Comment fonctionnent les réseaux de neurones convolutifs ?

Les réseaux de neurones convolutifs (CNN) se distinguent des autres réseaux neuronaux par leurs performances supérieures avec des entrées de signaux d’image, de parole ou audio. Ils présentent trois principaux types de couches :

  • Couche de convolution
  • Couche de pooling
  • Couche entièrement connectée (FC)

La couche de convolution est la première couche d'un réseau convolutif. Bien qu'elle puisse être suivie de couches de convolution supplémentaires ou de couches de pooling, la couche entièrement connectée est la couche finale. Avec chaque couche, le CNN augmente sa complexité, identifiant de plus grandes portions de l'image. Les couches précédentes se concentrent sur des caractéristiques simples, telles que les couleurs et les bords. À mesure que les données image progressent dans les couches du CNN, celui-ci commence à reconnaître des éléments ou des formes plus importants de l'objet jusqu'à ce qu'il identifie enfin l'objet attendu.

Couche de convolution

La couche de convolution est le bloc fonctionnel principal d'un CNN, c'est là que se produisent la majorité des calculs. Elle nécessite quelques composants, à savoir des données d'entrée, un filtre et une carte de caractéristiques ou feature map. Supposons que l'entrée soit une image couleur, composée d'une matrice de pixels en 3D. Cette entrée aura alors trois dimensions (hauteur, largeur et profondeur) qui correspondent à la combinaison RVB dans une image. Nous disposons également d'un détecteur de caractéristiques, également connu sous le nom de noyau ou de filtre, qui se déplacera sur les champs réceptifs de l'image pour vérifier si la caractéristique est présente. Ce processus est appelé convolution.

Le détecteur de caractéristiques est une matrice de poids bidimensionnelle (2D), qui représente une partie de l'image. Bien que la taille puisse varier, le filtre est généralement une matrice 3x3 ; cela détermine également la taille du champ réceptif. Le filtre est ensuite appliqué à une zone de l'image et un produit scalaire est calculé entre les pixels d'entrée et le filtre. Ce produit scalaire est ensuite intégré dans une matrice de sortie. Puis, le filtre se décale d'un cran pour répéter le processus jusqu'à ce que le noyau ait balayé toute l'image. La sortie finale de la série de produits scalaires issus de l'entrée et du filtre est connue sous le nom de carte de caractéristiques, carte d'activation, feature map ou caractéristique convoluée.

Notez que les pondérations dans le détecteur de caractéristiques restent fixes lorsqu’il se déplace sur l’image, ce qui est également connu sous le nom de partage de paramètres. Certains paramètres, comme les valeurs de pondérations, s’ajustent pendant l’entraînement grâce au processus de rétropropagation et de descente de gradient. Cependant, il existe trois hyperparamètres qui affectent la taille du volume de sortie et qui doivent être définis avant le début de l’entraînement du réseau neuronal. On trouve notamment :

1. Le nombre de filtres affecte la profondeur de la sortie. Par exemple, trois filtres distincts donneraient trois cartes de caractéristiques différentes, créant une profondeur de trois. 

2. Le pas est la distance, ou le nombre de pixels, que le noyau parcourt sur la matrice d’entrée. Bien que des valeurs de pas égales ou supérieures à deux soient rares, un pas plus grand produit une sortie plus faible.

3. La marge, ou zero-padding est généralement utilisée lorsque les filtres ne correspondent pas à l’image d’entrée. Cela met à zéro tous les éléments qui se trouvent en dehors de la matrice d’entrée, produisant une sortie plus grande ou de taille égale. Il existe trois types de marges :

  • Marge valide : il s’agit de l’absence de marge. Dans ce cas, la dernière convolution est supprimée si les dimensions ne s’alignent pas.
  • Marge identique : cette marge garantit que la couche de sortie a la même taille que la couche d’entrée.
  • Marge pleine : ce type de marge augmente la taille de la sortie en ajoutant des zéros à la bordure de l’entrée.

Après chaque opération de convolution, un CNN applique une transformation ReLU (unité de rectification linéaire) sur la carte d'activation, ce qui permet d'introduire une non-linéarité dans le modèle.

Couche convolutive supplémentaire

Comme nous l’avons mentionné précédemment, une autre couche de convolution peut suivre la couche de convolution initiale. Dans ce cas, la structure du CNN peut devenir hiérarchique, car les couches suivantes peuvent voir les pixels dans les champs réceptifs des couches précédentes.  Supposons par exemple que nous cherchions à déterminer si une image contient un vélo. Nous pouvons considérer le vélo comme un ensemble de parties : il est composé d’un cadre, d’un guidon, de roues, de pédales, etc. Chaque partie du vélo constitue un schéma de niveau inférieur dans le réseau de neurones, et la combinaison de ses parties représente un schéma de niveau supérieur, créant ainsi une hiérarchie de caractéristiques au sein du CNN. Enfin, la couche convolutionnelle convertit l’image en valeurs numériques, ce qui permet au réseau neuronal d’interpréter et d’extraire des modèles pertinents.

Couche de pooling

Les couches de pooling, également appelée couches de sous-échantillonnage, permettent de réduire la dimensionnalité, c'est-à-dire de réduire le nombre de paramètres d'entrée. Comme pour la couche de convolution, l'opération de pooling balaie un filtre sur toute l'entrée, à la différence que ce filtre n'a aucun poids. Au lieu de cela, le noyau applique une fonction d'agrégation aux valeurs du champ réceptif, remplissant ainsi la matrice de sortie. Il existe deux principaux types de pooling :

  • Max pooling : à mesure que le filtre se déplace sur l’entrée, il sélectionne le pixel ayant la valeur maximale pour l’envoyer à la matrice de sortie. Soit dit en passant, cette approche a tendance à être plus souvent utilisée que l’average pooling.
  • Average pooling : à mesure que le filtre se déplace sur l’entrée, il calcule la valeur moyenne dans le champ réceptif pour l’envoyer à la matrice de sortie.

Bien que de nombreuses informations soient perdues dans la couche de pooling, celle-ci présente malgré tout un certain nombre d'avantages pour le CNN. Elle permet de réduire la complexité, d'améliorer l'efficacité et de limiter le risque de surajustement. 

Couche entièrement connectée (FC)

La couche entièrement connectée porte bien son nom. Comme mentionné précédemment, les valeurs de pixel de l'image d'entrée ne sont pas directement connectées à la couche de sortie dans les couches partiellement connectées. Cependant, dans la couche entièrement connectée, chaque nœud de la couche de sortie se connecte directement à un nœud de la couche précédente.

Cette couche effectue la classification en fonction des caractéristiques extraites à partir des couches précédentes et de leurs différents filtres. Alors que les couches de convolution et de pooling ont tendance à utiliser les fonctions ReLu, les couches FC exploitent généralement une fonction d'activation softmax pour classer les entrées de manière appropriée, produisant une probabilité de 0 à 1.

Types de réseaux de neurones convolutifs

Kunihiko Fukushima et Yann LeCun ont respectivement posé les bases de la recherche sur les réseaux neuronaux convolutifs dans leurs travaux de 1980 (lien externe à ibm.com) et de 1989, « Backpropagation Applied to Handwritten Zip Code Recognition ». Yann LeCun est connu pour être parvenu à appliquer la rétropropagation pour entraîner les réseaux neuronaux à identifier et à reconnaître les modèles au sein d’une série de codes postaux manuscrits. Son équipe et lui ont poursuivi leurs recherches au cours des années 90, pour aboutir à « LeNet-5 », qui a permis d’appliquer les mêmes principes de recherche préalable à la reconnaissance des documents. Depuis, plusieurs architectures CNN diverses ont vu le jour avec l’introduction de nouveaux jeux de données, tels que MNIST et CIFAR-10, et de compétitions, comme l’ImageNet Large Scale Visual Recognition Challenge (ILSVRC). Certaines de ces architectures incluent :

  • AlexNet (lien externe à ibm.com)
  • VGGNet (lien externe à ibm.com)
  • GoogLeNet (lien externe à ibm.com)
  • ResNet (lien externe à ibm.com)
  • ZFNet

Cependant, LeNet-5 est connu comme l'architecture CNN classique.

Réseaux de neurones convolutifs et vision par ordinateur

Les réseaux neuronaux convolutifs alimentent les tâches de reconnaissance d’images et de vision par ordinateur. La vision par ordinateur est un domaine de l’intelligence artificielle (IA) qui permet aux ordinateurs et aux systèmes d’extraire des informations pertinentes à partir d’images, de vidéos et d’autres entrées visuelles numériques, et de prendre des mesures à partir de ces entrées. Cette capacité à fournir des recommandations la distingue des tâches de reconnaissance d’images. Voici quelques domaines d’application courants de la vision par ordinateur :

  • Marketing : les plateformes de médias sociaux proposent des suggestions quant aux personnes susceptibles de figurer sur les photos publiées sur un profil, ce qui facilite l'identification de ses amis dans les albums photos. 
  • Santé : la vision par ordinateur a été intégrée à la technologie radiologique pour permettre aux médecins de mieux identifier les tumeurs cancéreuses dans une anatomie saine.
  • Distribution : la recherche visuelle a été intégrée à certaines plateformes d'e-commerce, ce qui permet aux marques de recommander des articles pour compléter une garde-robe existante.   
  • Automobile : bien que l’ère des voitures autonomes ne soit pas tout à fait une réalité, la technologie sous-jacente a commencé à faire son apparition dans les véhicules, améliorant la sécurité des conducteurs et des passagers grâce à des fonctionnalités telles que la détection du franchissement de voie de circulation.
Solutions connexes
IBM SPSS Neural Networks

IBM SPSS Neural Networks peut vous aider à découvrir des relations complexes et à tirer une plus grande valeur de vos données.

Découvrir IBM SPSS Neural Networks
IBM Watson Studio

Créez et faites évoluer une IA digne de confiance dans n’importe quel cloud. Automatisez le cycle de vie de l’IA pour les ModelOps.

En savoir plus sur IBM Watson Studio
Ressources Réseaux de neurones convolutifs avec Python

Utilisez Python pour implémenter un réseau simple qui classifie les chiffres manuscrits.

Introduction aux réseaux de neurones convolutifs

Découvrez les différentes étapes de la création d’un réseau neuronal convolutif.

Réseaux de neurones à double convolution

Dans cet article, la recherche IBM suggère que les réseaux de neurones à double convolution (DCNN) peuvent améliorer de manière significative les performances des CNN.

Découvrir les réseaux de neurones convolutifs avec Deep Part Embeddings

Les chercheurs d'IBM proposent un nouveau concept d'imbrications profondes de parties (DPE), pouvant être utilisé pour découvrir de nouveaux réseaux de neurones convolutifs (CNN) pour différentes classes.

Entraîner un modèle de détection d’objets YOLOv8 en Python

Affiner un modèle de détection d’objets pré-entraîné.

Passez à l’étape suivante

Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio professionnel de nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.

Découvrir watsonx.ai Réserver une démo en direct