8 minutes de lecture
Dans la partie précédente de notre série sur le Machine Learning, nous avons vu les principales régressions (linéaire, logistique etc). Dans cette partie, nous allons nous focaliser sur les Réseaux de Neurones. La philosophie de ce guide reste intacte, c’ est à dire rendre le contenu accessible au plus grand nombre de personnes.
Que sont les réseaux de neurones ?
Les réseaux de neurones, communément appelés des réseaux de neurones artificiels sont des imitations simples des fonctions d’un neurone dans le cerveau humain pour résoudre des problématiques d’apprentissage de la machine (Machine Learning)
Le neurone est une unité qui est exprimée généralement par une fonction sigmoïde.
Pourquoi recourir à des réseaux de neurones ? La réponse est plutôt simple dans le sens où les réseaux de neurones s’avèrent plus performants que les techniques de régressions pour des tâches de Machine Learning.
Les domaines d’application des réseaux neuronaux sont souvent caractérisés par une relation entrée-sortie de la donnée d’information :
- La reconnaissance d’image
- Les classifications de textes ou d’images
- Identification d’objets
- Prédiction de données
- Filtrage d’un set de données
Réseaux neuronaux classiques pour reconnaissance d’image.
L’architecture d’un réseau neuronal
Un réseau de neurones peut prendre des formes différentes selon l’objet de la donnée qu’il traite et selon sa complexité et la méthode de traitement de la donnée.
Les architectures ont leurs forces et faiblesses et peuvent être combinées pour optimiser les résultats. Le choix de l’architecture s’avère ainsi crucial et il est déterminé principalement par l’objectif.
Les architectures de réseaux neuronaux peuvent être divisées en 4 grandes familles :
- Réseaux de neurones Feed fowarded
- Réseaux de neurones récurrent (RNN)
- Réseaux de neurones à résonance
- Réseaux de neurones auto-organisés
Les types de réseaux neuronaux
Les réseaux de neurones feed-forwarded
Ne laissez pas votre esprit s’égarer par la terminologie anglaise. Feed-forwarded fait tout simplement référence à la procédure du traitement de la donnée par le réseau neuronal. En effet, feed-fowarded (propagation avant) signifie tout simplement que la donnée traverse le réseau d’entrée à la sortie sans retour en arrière de l’information.
Typiquement, dans la famille des réseaux à propagation avant, on distingue les réseaux monocouches (perceptron simple) et les réseaux multicouches (perceptron multicouche)
Le perceptron simple est dit simple parce qu’il ne dispose que de deux couches ; la couche en entrée et la couche en sortie. Le réseau est déclenché par la réception d’une information en entrée. Le traitement de la donnée dans ce réseau se fait entre la couche d’entrée et la couche de sortie qui sont toutes reliées entre elles. Le réseau intégral ne dispose ainsi que d’une matrice de poids. Le fait de disposer d’une seule matrice de poids limite le perceptron simple à un classificateur linéaire permettant de diviser l’ensemble d’informations obtenues en deux catégories distingues.
source : http://tpe-ia.lescigales.org/maths.php
Le perceptron multicouche se structure de la même façon. L’information entre par une couche d’entrée et sort par une couche de sortie. À la différence du perceptron simple, le perceptron multicouche dispose entre la couche en entrée et la couche en sortie une ou plusieurs couches dites « cachées ». Le nombre de couches correspond aux nombres de matrices de poids dont disposent le réseau. Un perceptron multicouche est donc mieux adapté pour traiter les types de fonctions non-linéaires.
Pour le traitement d’informations complexes et très variées, il est envisageable de créer plusieurs réseaux de neurones distincts dédiés à traiter chacun une partie de l’information. Ces réseaux de neurones sont appelés des réseaux neuronaux convolutifs (Convolutional Neural Networks). Ces réseaux peuvent être imaginés comme une compilation d’un segment d’informations pour au final traiter l’ensemble de l’information (par exemple le traitement d’image, de vidéos, de textes).
Les réseaux de neurones récurrents
Les Réseaux de Neurones récurrents traitent l’information en cycle. Ces cycles permettent au réseau de traiter l’information plusieurs fois en la renvoyant à chaque fois au sein du réseau.
La force des Réseaux de neurones récurrents réside dans leur capacité de prendre en compte des informations contextuelles suite à la récurrence du traitement de la même information. Cette dynamique auto-entretient le réseau.
Les Réseaux de neurones récurrents se composent d’une ou plusieurs couches. Le modèle de Hopfield (réseau temporel) est le réseau de neurones récurrent d’une seule couche le plus connu.
Les Réseaux de neurones récurrents à couches multiples revendiquent quant à eux la particularité de posséder des couples (entrée/sortie) comme les perceptrons entre lesquels la donnée véhicule à la fois en propagation en avant et en rétro propagation.
source :
http://www.scilogs.fr/intelligence-mecanique/wp-content/blogs.dir/135/files/hopfield_Elman-1.png
Les réseaux de neurones à résonance
L’appellation du réseau neuronal fait encore une fois référence à son fonctionnement. En effet, au sein des réseaux de neurones à résonance, l’activation de tous les neurones est renvoyée à tous les autres neurones au sein du système. Ce renvoi provoque des oscillations, d’où la raison du terme résonance.
Il va sans dire que ces réseaux de neurones peuvent prendre différentes formes avec des degrés de complexité plutôt élevés. Pour aller plus loin, je vous invite à vous intéresser à la Mémoire Associative Bidirectionnel qui permet d’associer deux informations de natures différentes ou encore le modèle ART (Adaptative Resonance Theory) qui fait interagir une information contextuelle avec la connaissance que l’on a déjà pour identifier ou reconnaître des objets.
source : https://www.researchgate.net/figure/The-structure-of-the-adaptive-resonance-theory-using-the-binary-vector-input-form-ART-1_fig13_220306695
Les réseaux de neurones auto-organisés
Les Réseaux de neurones auto-organisés sont surtout adaptés pour le traitement de d’informations spatiales. Par des méthodes d’apprentissage non-supervisé, les réseaux neuronaux auto-organisés sont capables d’étudier la répartition de données dans des grands espaces comme par exemple pour des problématiques de clusterisation ou de classifications.
Le modèle le plus connu de ce type de réseaux de neurones est sans doute la carte auto-organisatrice de Kohonen :
source : https://www.researchgate.net/figure/Carte-auto-organisatrice-de-Kohonen-Chaque-sphere-symbolise-un-neurone-de-la-couche_fig2_304559519
Mais alors, qu’est-ce que le Deep Learning ?
L’apprentissage profond (deep learning) est une notion issue du fait que les réseaux neurones disposaient de plus en plus de couches cachées et que le nombres élevés de couches devenait une source de problèmes. En effet, à partir d’un nombre de couches, le réseau neuronal n’était plus capable d’assimiler les informations et d’apprendre correctement.
Des solutions ont été apportées à ces problèmes et les réseaux de neurones sont de plus en plus dotées de couches multiples et capables d’apprendre. Tous ces types de réseaux de neurones peuvent être regroupés sous la notion « deep learning ».
Vers une troisième génération des réseaux de neurones pour le Machine Learning : une introduction aux « Spiking Neural Networks »
La troisième génération des réseaux de neurones dénommée « spiking neural networks » vise à rapprocher la neuroscience et le Machine Learning. L’idée consiste à représenter les procédures biologiques différentes capables de traiter des événements ponctuels au lieu d’événements à valeur continue, c’est-à-dire, lorsqu’un neurone dépasse une certaine valeur, il émet un signal et la valeur retombe à son potentiel initial. C’est ce phénomène que les réseaux de neurones de troisième génération veulent saisir et prendre en considération.
Dès lors, les réseaux de neurones de 3ème génération changent complètement l’objet de l’étude de machine learning qui se basait initialement sur une suite de valeur continue. Ceci dit, à ce stade on pourrait croire que la troisième génération des réseaux de neurones serait synonyme de régression plutôt que de progrès. Toutefois, le fait de saisir les pics de valeurs augmente la capacité du traitement des données spatio-temporelles. Ainsi, il a été prouvé que la nouvelle génération des réseaux de neurones s’avère bien plus performante que les générations précédentes.
Or, leur utilisation n’est guère répandue dû à l’absence d’une méthode d’apprentissage supervisé. La complexité de l’élaboration d’une méthode d’apprentissage supervisé réside dans la méconnaissance initiale du fonctionnement de la méthode d’apprentissage du cerveau humain. Bien qu’on sache représenter le phénomène biologique pour saisir les pics des valeurs, les recherches n’ont pour l’instant pas pu reproduire le fonctionnement intrinsèque responsable de ces pics.
Les « Spike Neuronal Networks » sont également très énergivores et ils demandent à simuler différents calculs d’équations. Dès lors, la durée de vie de l’application des réseaux de neurones demeure très incertaine sachant qu’ils existent principalement que dans le discours théorique et que les applications pratiques se font rares.
[1] https://blog.kynapse.fr/le-p%C3%A8re-du-deep-learning-revient-avec-les-capsules-network-584eb83321d6
Cet article a été rédigé par Djamel Belhaouci, Doctorant en droit et Responsable du développement de Juri’Predis