Réseau de neurones : définition et fonctionnement

Quatrième épisode de notre série consacrée au Deep Learning, n’hésitez pas à lire ou relire les premiers pour vous rafraîchir la mémoire sur les définitions de Deep Learning, Machine Learning et Intelligence Artificielle ainsi que sur les grandes lignes du fonctionnement et des applications des réseaux de neurones. N’hésitez pas également à relire la partie dédiée au CNN : Convolutional Neural Network . Démarrons sans plus tarder cette nouvelle partie ! 

Table des matières:

  1. Introduction au Deep Learning
  2. Réseaux de neurones : Biologique VS Artificiels
  3. Convolutional Neural Network
  4. Fonctionnement des réseaux de neurones
    1. Rappel sur les réseaux de neurones
    2. Descente de gradient
  5. Transfer Learning 

 

Vous allez maintenant découvrir en détails comment les réseaux de neurones artificiels apprennent et leur manière de s’articuler dans un réseau.

Petit rappel sur les réseaux de neurones

Pour rappel, les multi-layers perceptron sont un empilement de perceptron qui sont mis sous forme de couche. Prenons l’exemple suivant pour illustrer le concept :

 

Le modèle consiste à classifier (en 10 classes) des images de chiffres manuscrits. Les carrés verts sont la couche d’entrée de notre modèle, c’est-à-dire la valeur des pixels. La couche intermédiaire et la couche sortie sont des perceptrons représentés par des ronds gris. La dernière couche possède 10 neurones puisqu’il y a 10 classes et retourne la probabilité correspondante à chaque classe.

Nous pouvons très facilement implémenter le modèle sur TensorFlow :

Comment entraîner le modèle ?

Pour entraîner notre modèle, c’est-à-dire trouver les poids adaptés, il est nécessaire de définir une fonction qui va quantifier l’erreur de notre modèle . En général, pour les problèmes de classification, nous utilisons la fonction « cross-entropy » pour mesurer l’erreur. 

Notre problème d’optimisation consiste à trouver les poids de notre modèle qui minimise notre fonction d’erreur : 

J(w)

En Deep Learning, nous sommes confrontés à des problèmes de minimisation complexe et sans solution explicite. C’est pourquoi, des méthodes d’optimisation comme la descente de gradient sont utilisée pour les résoudre.

Descente de gradient : Pour descendre, il faut aller vers le bas

Pour découvrir d’une manière intuitive le concept de descente du gradient, regardez notre vidéo sur le sujet : 

https://youtu.be/Ka4AnSXxF2g

 

Avec :

  • Wt : les paramètres de notre modèle
  • η : pas du gradient, autrement dit, la vitesse d’apprentissage
  • : fonction de perte

 

Un pas de gradient trop grand ou trop petit ne permettra pas à l’algorithme MLP de converger vers une solution satisfaisante. Trouver le bon pas de gradient est tout le challenge du Deep Learning.

Pour résumer, le neurone artificiel autrement appelé le perceptron se comporte comme un modèle de classification linéaire. Le perceptron multicouche quant à lui lie et empile sous forme de couche les perceptrons pour apporter une plus grande complexité à l’établissement des règles.

Après avoir défini les paramètres du modèle, nous avons vu qu’il était nécessaire de quantifier l’erreur de celui-ci. Pour ce faire, le Deep Learning utilise principalement la descente de gradient pour ajuster ses poids de façon à minimiser la fonction de perte.

Pour explorer  les mathématiques qui se cachent derrière cet algorithme de descente de gradient et l’importance du taux d’apprentissage découvrez cet article.

Dans la suite, nous allons vous présenter Le Transfer Learning, une catégorie d’apprentissage à succès utilisée en Deep Learning et qui semble fortement s’inspirer de l’apprentissage humain ! 

Article 1 : Introduction au deep learning et aux réseaux de neurones

Article 2 : Convolutional Neural Network

Article 3 : Fonctionnement des réseaux de neurones

Article 4 : Transfer Learning