Rétropropagation du gradient

Introduction

nn_schema

Le schéma ci-dessus illustre un réseau de neurones sans couche cachée qui permet par exemple de résoudre un problème de régression linéaire. Chaque point de dimension est transformé en un point de dimension . Pour apprendre les paramètres du réseau (i.e., les vecteurs et les constantes ), on utilise le jeu de données d'apprentissage formé des vecteurs qui indiquent les valeurs associées aux points . On veut que le réseau transforme le point en un vecteur proche du vecteur . On cherche à minimiser la fonction , avec .

Pour calculer les valeurs des paramètres qui minimisent , on propose de les initialiser aléatoirement. Puis, pour chaque paramètre, on calcule la dérivée partielle de afin de déterminer comment modifier ce paramètre pour aller dans le sens de minimiser . C'est l'algorithme du gradient.

Régression linéaire

Mise à jour des paramètres

Ainsi, le programme ci-dessous réalise la mise à jour du paramètre pour une itération de l'algorithme du gradient :

 

est de dimension .

Mise à jour des paramètres

 

est de dimension .

Réseau de neurones multicouches

Soit une fonction non linéaire (par exemple : ), dite fonction d'activation.

Un réseau de neurones à deux couches cachées est décrit par les équations :

Mise à jour des paramètres

 

est de dimension .

Mise à jour des paramètres

 

est de dimension .

Mise à jour des paramètres

 

est de dimension .

 

est de dimension .

Mise à jour des paramètres

 

est de dimension .

La mise à jour des paramètres restants suit le même schéma.