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.

Soit un vecteur qui regroupe l'ensemble des paramètres (i.e. les vecteurs , les constantes … et plus tard, également les vecteurs , les constantes etc.). On considère ici comme une fonction de . Par la théorie des série de Taylor, une approximation linéaire de centrée au point est donnée par :

Avec le vecteur gradient de la fonction en . Sa direction est celle de la plus grande pente en . Ses éléments sont les dérivées partielles de par rapport à chaque paramètre.

nn_schema

En partant de , pour modifier les valeurs des paramètres afin de minimiser , on peut suivre la pente du gradient :

est appelé le taux d'apprentissage qui peut être par exemple contrôlé par un facteur de diminution (learning rate decay) :

 

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 autres paramètres suit le même schéma.