Éducation d’un réseau neuronal

Le 20/06/2017

Dans Développement

La semaine dernière, nous avons vu comment fonctionnait théoriquement un réseau neuronal, cette fois-ci, intéressons-nous au fonctionnement du cœur de l’algorithme.

Rappel

On sait qu’un neurone est composé d’entrées, d’une formule mathématique, et d’une sortie. La formule mathématique est mise en œuvre en fonction de différents paramètres, composés du poids des entrées, et d’un seuil définissant la sortie (1 ou 0).

Avant que le tout soit fonctionnel, il faut passer par une phase de configuration des paramètres, et donc d’apprentissage, les paramètres étants définis dans un premier temps aléatoirement.

Apprentissage

Rétropropagation du gradient

Il existe beaucoup de méthodes d’apprentissage, intéressons-nous d’abord à la méthode de rétropropagation du gradient. Le principe est de corriger les erreurs commises par les paramètres initiaux (générés aléatoirement).

On envoie donc en entrée un exemple donné dont la sortie est connue. On récupère la sortie donnée par notre neurone, puis on applique une formule mathématique complexe afin de calculer l’erreur commise

(e = g’(h)[sa – sr] ou e est l’erreur, g’ la dérivée de la formule d’application, h la formule d’agrégation, sa le vecteur attendu et sr le vecteur retourné par le neurone)

Enfin, on propage l'erreur vers l'arrière pour modifier nos paramètres en conséquence.

e i s o r t i e = g ′ ( h i s o r t i e ) [ t i − y i ] {displaystyle e_{i}^{sortie}=g'(h_{i}^{sortie})[t_{i}-y_{i}]}

Algorithme génétique

Une autre méthode d’apprentissage est l’utilisation d’algorithmes génétiques vus il y a quelques semaines (je vous enjoins encore une fois à aller (re)lire cet article pour bien comprendre). Ceux-ci peuvent en effet être bien utiles dans notre cas.

D’abord un petit rappel s’impose : un algorithme génétique reprend la théorie de l’évolution de Darwin, pour une population d’éléments quelconques (donc ici les paramètres), on a :
Sélection naturelle, traduite ici par la sélection des meilleurs éléments
Hérédité, traduite ici par le croisement des éléments pour en donner un ou des meilleurs
Variations entre individus, traduite ici par la mutation et l’utilisation des particularités des éléments

Ainsi, on a juste à appliquer cet algorithme sur les paramètres du neurone qui constituent la boîte noire, et on aura alors une intelligence artificielle reprenant à la fois le concept du neurone, mais aussi le concept de l’évolution des espèces.

 

Réseau neuronal vs algorithme génétique

A noter que si les algorithmes génétiques (qu’on va abréger AG) et les réseaux neuronaux (qu’on va abréger RN) peuvent se completer, ils peuvent aussi être utilisés indépendamment l’un de l’autre.

Amusons-nous donc à comparer les deux :

D’abord, les deux appartiennent au « machine learning » ou « apprentissage automatique », autrement dit sont des algorithmes qui apprennent d’eux-mêmes grace à des informations données.

La différence principale est que l’AG a juste besoin d’un objectif final et de types de paramètres d’entrée, il gérera de lui même sa progression, tandis qu’un RN a besoin d’exemples de réussite, autrement dit il va simplement imiter la finalité qu’un humain atteindrait, tandis que l’AG va innover et réfléchir seul.

On peut donc se dire que les algorithmes génétiques sont bien plus intéressants que les réseaux neuronaux, bien qu’ils soient limités dans leurs capacités, mais le mieux reste de les faire travailler ensemble.