Qu'est-ce qu'un convolutional neural networks (CNN) ?

Qu'est-ce qu'un convolutional neural networks (CNN) ?

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.

Design 3D de balles roulant sur une piste

Les dernières actualités et informations en matière d’IA 


La newsletter hebdomadaire Think vous apporte toute l’actualité sur l’IA, le cloud et bien d’autres sujets.

Comment fonctionnent les réseaux de neurones convolutifs ?

Les réseaux neuronaux 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 convolutive est le bloc fonctionnel principal d’un CNN ; c’est là que se produit 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 neuronal, 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). Voici quelques-unes de ces architectures :

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

Groupe d’experts | Podcast

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l'actualité et des dernières tendances dans le domaine de l’IA.

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 d’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, pour prendre des mesures selon 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 réseaux sociaux proposent des suggestions quant aux personnes susceptibles de figurer sur les photos publiées sur un profil, ce qui facilite l’identification des amis de l’utilisateur 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 watsonx.ai

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 d’entreprise 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
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.

Découvrir les solutions d’IA
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Bénéficiez d’un accès centralisé aux fonctionnalités couvrant le cycle de développement de l’IA. Produisez des solutions IA puissantes offrant des interfaces conviviales, des workflows et un accès à des API et SDK conformes aux normes du secteur.

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