Réseaux de neurones convolutionnels | réseaux de neurones convolutifs

Les réseaux de neurones convolutifs sont probablement l'une des plus grandes avancées du deep learning. 

du fait qu'il résolve un des problème fondamentaux rencontré dans le machine learning connus sous le nom d'extraction de caractéristique avec lequelle les ingénieur et expert du domaine ont du se battre durant de nombreuse années. 








Il est probablement impossible de parler de réseaux de neurones convolutif sans citer le nom leur inventeur je cite Yann LECUN, ancien directeur du département de recherche en intelligence artificielle de facebook également récipendiaire avec Yoshua bengio et geoffroy hinton du prix turing 2019.

L'équivalent du prix nobel d'informatique décerné à tout ceux ayant contribué significativement à lavancée du shimblique dans le domaine.

Comment sont né les réseau de neurones convolutionnelle ? 

En t'intéressant un peu à l'histoire de ces derniers, tu te rendras vite compte qu'il sont né au laboratoire Bell dans les années 1980 alors que Yann LECUN y travaillait sur

un projet de reconnaissance de chèque bancaire. 


Alors qu'il travaillait sur le projet, Yann LECUN fait alors face à une énorme difficulté : 

Tout le monde à une écriture différente

il y a donc :

6 milliard d'écriture différentes


Constuire un modèle capable de toute les représenter prendrait plusieurs génération d'ingénieur qui ne consacrerait leur vie qu'a la résolution de ce problème. 

Yann LECUN le comprend alors, et décide de ne pas passer par la méthode convontionelle utilisé par tout les ingénieur de l'époque c'est à dire

constuire manuellement un modèle pour extraire les informations des images. 

Il décide que cette fois ci vu "qu'il était impossible en une seul vie de résoudre cette tâche" qu'il valait mieux confier à l'ordinateur le soin de construire un modèle mathématique pour extraire les caractéristique des différentes écriture. 

La photo ci-dessous est un extrait du jeu MNIST. 

Elle te donnera une idées des données sur lesquels LeCUN Travaillait à cette époque :

 


Pour résoudre ce problème, il donne naissance au réseaux de neurones convolutifs

Pour bien comprendre le fonctionnement des réseaux de neurones convolutif, et bien comprendre l'avancée qu'il apporte au domaine du machine learning, il est important de comprendre comment fonctionnait les choses avant. 

Comment fonctionnait la reconnaissance d'images avant leur création ?

Avant, avec le machine learning de l'époque, quand l'on procédait à une tâche de reconnaissance de caractère ou plus généralement d'image, l'on procédait selon un schéma de 5 étapes : 

La première étape d'un traitement de reconnaissance d'image consiste

Séparer les différents objets présent dans les images

Plus connus sous le nom de segmentation elle consiste à identifier la position de l'ensemble des objets présents sur l'image. Pour ce faire, généralement un masque binaire est créé comme montré ci-dessous.







Grâce a ce masque binaire, l'ordinateur peut facilement identifier la position des objets présent sur l'image et ainsi les extraire.




Une fois les objets extrait, la seconde étape consista à : 

extraire des informations de chacunes des imagettes

Pour extraire les informations contenu dans chacune des imagette, les mathématiciens et ingénieur en traitement d'image ont mis en place des formules mathématique complexe permettant d'obtenir les propriété de chacun des objets de l'image. 

Par exemple :

Pour extraire l'aire d'un objet, il vont écrire un code qui permettra de compter le nombre de pixel appartenant à l'objet. 

Pour en extraire le périmètre il vont compter le nombre de pixel entourant cette objet. 

Et enfin pour savoir si l'objet est ou pas rond, il vont calculer une mesure communément connu sous le nom de circularité dans la communauté du traitement d'image.

Il s'agit d'une mesure comprise entre 0 et 1 et qui exprime à quelle degré l'objet est rond. Elle est obtenu a partir de l'air et du périmètre de l'imagette

Sa formule est la suivante :

A la fin de cette étape on obtient pour chaque objets un schéma similaire à celui-ci dessous est obtenu



Il existe bien d'autre mesure, à tel point qu'il est impossible de toute les citer c'est pourquoi je m'en arrête la. 

Une fois toute ces mesure calculée, nous pouvons passer à la troisième étape il s'agit de l'

entraînement du modèle de reconnaissance

Lors de cette étape, un modèle de classification supervisée est choisi parmi l'ensemble des modèles qu'il est possible de choisir.  

Il en existe énormément, mais actuellement les deux modèle de classification les plus populaires sont : 

Les réseau de neurones 



Les arbres de décisions

Par la suite, les mesure précedemment extraite sont soumise au classifieur avec pour but de reconnaître l'objet :




Enfin, une fois le modèle entraîné, il est possible de passé à la dernière étape :

la reconnaissance des images

Pour cela, il suffir d'extraire de l'image que l'on souhaite reconnaître les même mesures qui ont été extraites des imagette utilisées pour l'entraînement du classifieur et de les envoyé en entrée du classifieur. 

Ce dernier donnera alors le nom de l'objet.


Comment fonctionne un réseau de neurones convolutionnelles ?

Comme j'ai pu te le faire comprendre précedemment, pour faire de la reconnaissance d'objets, il faut soit prendre l'objet et le

mesurer manuellement avec une règle.

puis envoyé ces mesure à un modèle de classification. Ce processus peut être particulièrement long surtout si il y a des millier de d'objet à analyser. 

Prendre une photo de chaque objet et

construire une programme d'analyse d'image

qui permettra de prélever ces mesures. 

En clair il faut être expérimenter en traitement d'images. 

Ce qui peut être un gros inconvénient pour bon nombre d'entre nous.

La particularité de ces réseau est que contrairement au réseau classique tel que le perceptron multi-couche ou les arbres de décisions qui ont besoin des données prémâché pour pouvoir effectuer le job, 

Ces réseau n'ont juste besoin que de l'image brute. 

Ainsi, même quelqu'un n'y connaissant rien au traitement d'images, s'il a suffisement d'images de ce qu'il souhaite reconnaître automatiquement, il sera en mesure de construire un programme capable de le discriminer, sans forcer comme normalement il devrait pour extraire les différentes mesures des objets.

Ci dessous tu peux voir le schéma d'un réseau de neurones convolutif.


Schéma du réseau convolutionnel de neurones :


Comme tu peux le voir, en entrée de ce réseaux comme je te lai dit précédemment, on y envoi une image. 

Cette image, va ensuite être modifiée plusieurs fois et donné naissance à différente images sous l'action des filtres du réseau de neurones.  

Chacune des images seront réduite à la suite d'une opération de pooling. Cette dernière, à pour but de résumer l'information se trouvant dans l'image.

Les deux étapes que je viens de citer sont nommer respectivement "convolution" et "pooling".

Elle sont répéter autant de fois que le concepteur du réseau le souhaite. 

En effet, pour le faire, ce dernier n'a juste qu'a ajouter au réseau une couche de convolution, à la suite de laquelle, il ajoutera une couche de pooling. 

De nouvelle images sont alors générée et la taille de celle-ci est alors réduites jusqu'a ce quelle soit écrasé par une couche flatten comme je le montrerais plus bas et envoyé en entrée d'un percetron multi-couches. 

Tu l'as donc probablement compris, le but de toute ces opération de convolution et de pooling est de prémacher le boulot, afin de pouvoir envoyé les informations extraites de l'image à un perceptron multi-couches. 

Exactement comme l'aurait fait un ingénieur en traitement d'images traditionnel, mise à part que cette fois ci c'est totalement automatique. 

Moins de boulot, moins de mal de tête donc. C'est tout bénèf. 

J'imagine que la maintenant il y a probablement un question qui doit te grater la tête, car tout ce que je te dis est bien beau mais pas forcément logique.

Cette étapes de convolution, comment fait telle pour savoir comme modifier les images envoyé en entrée pour finalement extraire les informations contenu dans l'image.

Alors moi je te réponds alors "Élémentaire mon cher Watson", 

Les filtre sont automatiquement déterminé grâce à l'algorithme de rétropropagation du gradient qui sert à entraîner le réseau.

En effet, ce réseau peut être utilisé pour traité tout type de signaux, ainsi certain seront utilisé pour la reconnaissance vocal.


 

 

.