Comprendre les Réseaux de Neurones Convolutifs (CNN)

Yannick Serge Obam
4 min readDec 21, 2019

--

source : https://www.aspexit.com/

Le Deep Learning (DL) est un domaine de recherche du Machine learning (ML), basé sur l’idée des réseaux de neurones artificiels et taillé pour gérer de larges quantités de données en ajoutant des couches au réseau. D’une maniere simple c’est ML à l’aide de réseaux de neurones profonds.

from Facebook Developer Circles Resources

Parmi les grandes familles des reseaux de neurones profonds, nous avons les CNN (réseaux de neurones convolutifs ou réseaux de neurones à convolution). Ils constituent une évolution des réseaux de neurones artificiels traditionnels dont le motif de connexion entre les neurones est inspiré du cortex visuel des annimaux.
Ils sont axés principalement sur des applications comportant des motifs répétitifs dans différents domaines de l’espace de modélisation, notamment dans la reconnaissance d’image et vidéo, les systemes de recommendation, et le traitement du langage naturel.

Principe et fonctionnement

La force des CNN se trouve dans la méthodologie utilisée dans leur stratification. Ils réduisent considérablement le nombre requis d’éléments structurels (nombre de neurones artificiels) par rapport aux réseaux de neurones à feed forward traditionnels.
Donc ils recoivent des images en entrée detectant les caracteristiques de chacune d’entre elles puis entrainent un classifieur. Le nom « Réseau de neurones convolutif » indique que le réseau emploie une opération mathématique speciale appelée convolution à la place de la multiplication matricielle dans au moins une de ses couches.

Ausi, sachons qu’une architecture atypique d’un réseau convolutif se compose de 4 types de couches différentes :

1- Couche convolutive

Elle consite à appliquer un filtre de convolution à l’image pour détecter des caractérisques de l’image. Une image passe à travers une succession de filtres, ou noyaux de convolution, créant de nouvelles images appelées cartes de convolutions. Certains filtres intermédiaires réduisent la résolution de l’image par une opération de maximum local. Au final, les cartes de convolutions sont mises à plat et concaténées en un vecteur de caractéristiques.

2- Couche de correction ReLU

L’ on fait passer les cartes de convolution à travers une couche d’activation non linéaire telle que Rectified Linear Unit (ReLu), qui consiste à remplacer les nombres négatifs des images filtrées par des zéros.

3- Couche de pooling : qui consiste à reduire progressivement la taille de l’image en ne gardant que les informations les plus importantes, par exemple pour chaque groupe de 4 pixel, le pixel ayant la valeur maximales (Max Pooling, le plus populaire) ou la moyenne des pixels (AVG pooling).

Avec la couche pooling, la quantité de paramètres et de calcul dans le réseau sont reduits, et cela va permettre de controler le sur-apprentissage.

Après avoir extrait les caractéristiques des entrées, on attache à la fin du réseau un perceptron ou bien un MLP (Multi Layer perceptron) communément appelé Fully connected.

4- Couche entierement connectée (Fully connected)

elle recoit un vecteur en entrée contenant les pixels aplatis de tous les images filtrées, corrigées et reduites par le pooling

mc.ai

Dans le cas d’une classification d’images, Le traitement d’images à travers l’extraction des caractéristiques et la segmentation en séquence d’entrée des images RGB se fait automatiquement à travers les couches de convolution et de pooling de nos modèles. L’application de la fonction softmax aux sorties de la couche fully connection, nous donne la probabilité d’une classe.

Usages pratiques

En suivant et en respectant l’approche detaillée plus haut, nous pouvons créer des modèles de réseaux de neurones convolutives de bout en bout efficaces.

Néanmoins, Il est possible d’exploiter la puissance des CNN sans être un expert du domaine, avec du matériel accessible et une quantité raisonnable de données étiquetées. Toute la complexité de création de CNN peut être évitée en adaptant des réseaux pré-entraînés disponibles publiquement. Ces techniques sont appelées transfert learning ou apprentissage par transfert, car on peut exploiter la connaissance acquise sur un problème de classification général pour l’appliquer de nouveau à un problème particulier.

Cette méthode est exploitée de deux façons :

· Comme un extracteur automatique de caractéristiques des images, matérialisé par le code CNN,

· Comme une initialisation du modèle, qui est ensuite ré-entraîné plus finement (Fine Tuning) pour traiter le nouveau problème de classification.

L’intérêt est double car l’on utilise une architecture optimisée avec soin par des spécialistes, et l’on profite des capacités d’extraction de caractéristiques apprises sur un jeu de données de qualité.

Ainsi s’achève notre article à propros des CNN, avec espoir que nous vous avons aider à mieux les comprendre. Bonne apprentissage!

--

--

Yannick Serge Obam

AI/ML Engineer | Google Developer Expert in Machine Learning | AI Evangelist | Teacher