• Aucun résultat trouvé

4.2 Apprentissage

4.2.2 La r´etropropagation de l’erreur

Pour l’apprentissage supervis´e d’un perceptron multicouche, par correction d’erreur, l’algorithme le plus utilis´e est l’algorithme de descente de gradient. Le calcul du gradient se fait en utilisant l’algorithme de la r´etro-propagation de l’erreur. L’algorithme d’apprentissage utilisant ce proc´ed´e a ´et´e d´ecouvert par [Rumelhart, D. E. et al., 1986; Le Cun, 1987] et reste encore aujourd’hui la m´ethode d’apprentissage la plus largement utilis´ee.

Les algorithmes d’optimisation de fonction efficaces utilisent en g´en´eral la dif-f´erentielle de la fonction consid´er´ee (c’est-`a-dire son gradient quand elle est `a valeurs r´eelles). Quand les fonctions de transfert utilis´ees dans les neurones et la fonction distance sont diff´erentiables, alors l’erreur commise par un MLP est une fonction diff´erentiable des coefficients synaptiques du r´eseau de neurones. L’al-gorithme de r´etro-propagation permet justement de calculer le gradient de cette erreur de fa¸con efficace : le nombre d’op´erations (multiplications et additions) `a faire est en effet proportionnel au nombre de connexions du r´eseau, comme dans le cas du calcul de la sortie de celui-ci. Cet algorithme rend ainsi possible

l’ap-prentissage d’un MLP et permet d’apporter une r´eponse `a l’apl’ap-prentissage qui devient complexe dans les r´eseaux multi-couches.

Un algorithme de descente de gradient repose sur une fonction de coˆut C, que l’on doit minimiser au cours d’une session d’apprentissage. Lors de cette der-ni`ere les couples de vecteurs d’entr´ee et de sorties d´esir´ees (xi,di) sont pr´esent´es s´equentiellement au r´eseau au cours d’un cycle. A chaque neurone de sortie du r´eseau,i, on associe une valeur de sortie d´esir´ee di. Posons ici la fonction de coˆut quadratique C, comme ´etant :

C = X

x∈P

X

i∈O

(dxi −sxi)2, (4.4) o`uP est l’ensemble des exemples d’apprentissage,Oest l’ensemble des cellules de sortie,sxi est la valeur du neurone de sortieiapr`es la pr´esentation de l’exemple xetdxi est la valeur d´esir´ee pour le neurone correspondant. Il est `a noter que cette fonction de coˆut quadratique n’est pas la seule possible mais que toute fonction d´erivable en s et d peut ˆetre utilis´ee.

La modification des poids du r´eseau de neurones est r´ealis´ee `a l’aide d’un algorithme de gradient qui est de la forme :

Wt+1 =Wt−α∇C(Wt) (4.5)

o`u la matrice W repr´esente les poids du r´eseau,∇repr´esente le gradient de la fonction de coˆut par rapport aux poids W et α repr´esente un coefficient de modification des poids, appel´e pas d’apprentissage.

Il existe deux m´ethodes principales de modification des poids du r´eseau li´ees

`a la mani`ere de calculer le gradient, soit en utilisant un gradient total : C = X

x∈P

X

i∈O

(dxi −sxi)2 (4.6)

qui est une m´ethode globale encore appel´ee “batch”, soit en utilisant un gra-dient partiel :

Cx =X

i∈O

(dxi −sxi)2 (4.7)

qui est appel´ee m´ethode stochastique. Bottou pr´esente dans [Bottou, 1991]

une comparaison des deux m´ethodes et il montre que la m´ethode stochastique est plus “rapide” que la m´ethode globale. Les propri´et´es de convergence de la r´etro-propagation “standard” (telle que propos´ee dans [Rumelhart, D. E. et al., 1986; Le Cun, 1987]), en version stochastique et en version “batch” sont discut´ees

4.2. Apprentissage 71 dans [Bertsekas et Tsitsiklis, 1996].

Dans le cas stochastique, l’algorithme de r´etro-propagation du gradient de l’erreur se d´ecompose en trois phases :

– Pr´esentation d’un vecteur d’entr´ee, xi, aux neurones de la couche d’entr´ee puis calcul des sorties de tous les neurones du r´eseau de couche en couche jusqu’`a obtenir les sorties des neurones de la couche de sortie. Sachant que la sortie d’un neuronei, quel qu’il soit, est :

si =f(ai) = f(

n

X

j=0

(wtijsj)) (4.8)

o`uai est l’activit´e pr´esente `a l’entr´ee du neurone,wijt la connexion reliant le neuronei`a un neuronej de la couche pr´ec´edente1,sj la sortie du neuronej de la couche pr´ec´edente,f la fonction d’activation du neurone, t le num´ero du cycle d’apprentissage etn le nombre d’entr´ees du neurone.

– Pr´esentation du vecteur de sortie di associ´e `a xi sur les neurones de la couche de sortie de mani`ere `a calculer l’erreur commise par le r´eseau.

– Application de la proc´edure du calcul de gradient qui permet de modifier les poids du r´eseau en fonction de l’erreur commise (l’algorithme de r´etro-propagation lui-mˆeme). Cependant, plutˆot que de calculer les gradients par rapport aux poids, on pr´ef`ere calculer les gradients par rapport `a la valeur de l’activation de chaque neurone ai. En effet, elles sont en nombre plus faible et permettent de retrouver les gradients par rapport aux poids de la fa¸con suivante :

On utilise dans la suite pour le gradient la notation : Gxi = ∂Cx

∂axi (4.10)

Le calcul qui suit diff`ere selon que le neurone concern´e appartient `a une couche cach´ee ou `a la couche de sortie :

– Pour un neuronei de la couche de sortie, O, et un exemple x:

1Rappelons que l’on se place dans le cas du perceptron multicouche sans connexion r´ecurrente.

Gxi = ∂

La r`egle de modification des poids, quel que soit le poids concern´e est alors : wijt+1 =wijt −αGxisxj (4.17) aveciappartenant `a la coucheN,j appartenant `a la couche suivante dans le sens de la propagation,xl’exemple pr´esent´e etαun nombre r´eel positif, de faible valeur, qui repr´esente le pas de d´eplacement en direction de la pente maximum. On peut r´esumer l’algorithme de r´etropropagation `a l’aide du sch´ema de la figure 4.2 o`u le sens du mot r´etroprogation est bien perceptible.

La fonction de coˆut utilis´ee dans l’algorithme pr´esent´e ci-dessus poss`ede un certain nombre de propri´et´es. Elle poss`ede des minima locaux car le minimum global n’est pas forc´ement unique et elle peut ˆetre parsem´ee de plateaux qui ren-dent la convergence dans ces r´egions lente. Le choix du pas d’apprentissage est alors difficile. En effet, dans la r´etro-propagation “standard” `a pas fixe, avec un