LES RÉSEAUX NEURONAUX: RESEAUX A COUCHES CACHEES
Définition
Limitation du perceptron
Comme on l´a vu en 3-3-4 un perceptron ne peut résoudre que des
problèmes linéairement séparables (un contre exemple est la fonction XOR).
Différentes technique permettent, dans une certaine mesure, de dépasser
cette limitation (comme le
recodage
du problème en un problème linéaire,
ce qui n´est pas toujours possible).
Mais la méthode la plus connue consiste à complexifier le perceptron
en lui ajoutant des couches de neurones (simulant le cerveau dont
l´architecture est hautement complexe).
Architecture
Un réseau à couches cachées comporte (voir figure 5-1)
1) Une couche d´entrée.
2) Une ou plusieurs couches cachées.
3) Une couche de sortie.
4) Le flux se fait "en avant", c´est à dire que chaque neurone d´une
couche est connecté à tous les neurones de la couche suivante et a aucun
des neurones des couches précédentes.
En pratique une ou deux couches cachées suffisent. La raison pour
laquelle on limite le nombre de couches cachées est que, comme on le verra
plus loin, l´algorithme de "rétropropagation de l´erreur" est très lent
et demande un très grand nombre de transferts de données, d´ou une propagation
des erreurs d´arrondi et des temps de calculs prohibitifs.

Figure 5-1
Soit par exemple un réseau de neurones avec une couche d´entrée
comportant Ne cellules, une couche cachée de Nc cellules et une couche
de sortie ayant Ns cellules.
On notera xk le vecteur de Ne éléments representant
le stimulus numero k (valeur d´apprentissage) parmi Nk. La matrice Ne * Nk
des k stimulus à apprendre sera notée X.
On notera hk le vecteur de Nc éléments représentant la réponse des Nc
cellules de la couche cachée.
On notera ok le vecteur de Ns éléments représentant la réponse des Ns
cellules de la couche de sortie.
tk est le vecteur de Ns éléments de la réponse théorique pour l´entrée
xk. L´apprentissage est défini par les Nk couples (x1,t1) ... (xNk,tNk).
La matrice Ns * Nk des réponses théoriques sera notée T.
Soit W la matrice Nc * Ne des poids des connexions reliant les cellules
de la couche d´entrée à celles de la couche cachée. wj,i est le poids
de la connexion de la cellule d´entrée numero i à la cellule cachée numéro j.
Soit Z la matrice Nc * Ns des poids des connexions relaint les cellules
de la couche cachée celles de la couche de sortie.
Les Nk couples d´apprentissage seront notes:
{(x1,ox1) , (x2,ox2) , ... }
On supposera que la fonction de transfert des neurones est la
fonction sigmoïde.
Algorithme de la rétropropagation d´erreur
Calcul du signal d´erreur locale
Calcul du signal d´erreur d´une unité
La méthode dite de "rétropropagation de l´erreur" est une technique
d´apprentissage "supervisée", c´est à dire que, pour apprendre, le
réseau doit connaître la réponse théorique (celle qu´il doit apprendre).
Si la réponse calculée est différente, on modifie les poids de manière
à diminuer l´erreur commise par la cellule correspondant à la réponse.
Le calcul de prise en compte de l´erreur est le même pour toutes les
couches, mais celui du signal d´erreur diffère selon la couche.
Soit, pour un exemple k, oi la sortie calculée et
ti la sortie théorique, il s´agit de
minimiser l´erreur quadratique:
La méthode du gradient consiste à faire évoluer les wi,j dans la direction
inverse du gradient (voir figure 5-2):
Figure 5-2: Méthode du gradient
n est la constante d´apprentissage, comprise entre 0.0 et 1.0
Soit ei l´entrée du neurone i, ai sa sortie
et f sa fonction de transfert, on a:
La correction des poids de l´unité numéro i est alors:
Le calcul du signal d´erreur di se déroule ensuite de deux façons différentes selon le niveau:
Couche de sortie
L´erreur sur la couche de sortie est la différence entre la sortie
théorique oi et la sortie calculée ai:
Couche cachée
Soit i l´indice d´une couche cachée, elle influence les états de toutes
les cellules de la couche suivante i+1. Soit k l´indice des unités de
cette dernière couche. L´erreur quadratique Q dépend de tous les ak,
lesquels dépendent de tous les ai et donc dans le calcul de di la
différentielle partielle de Q relativement a ai contiendra les différentielles
partielles de Q relativement à tous les ak, soit:
L´algorithme
On a obtenu une méthode récurrente de calcul des signaux d´erreur
des cellules d´une couche à partir de ceux de la couche suivante. On
commence donc par calculer les signaux d´erreur pour la couche de sortie
par la formule (2), puis, de proche en proche en descendant dans les
couches, on utilise les signaux d´erreur des cellules de
la couche i pour calculer
celui de chaque cellule de la couche i-1 par la formule (3). D´ou le
nom de "rétropropagation de l´erreur" de cet algorithme.
voir figure 5-3
Remarquons que ce calcul est local et n´utilise, pour chaque cellule
d´une couche, que des informations relatives aux cellules voisines et
aux poids des connexions les reliant.

Figure 5-3
Correction des oscillations
La formule (1) de correction des poids modifie ceux-ci de
façon à compenser exactement l´erreur commise pour le couple
d´apprentissage en cours de validation et, de ce fait, ne tient pas
compte des corrections apportées précédemment pour adapter le réseau
à d´autres couples d´apprentissage. L´apprentissage ainsi conduit
donne lieu aà des oscillations des poids et ne se termine donc pas
puisque, pour celà, il faudrait que les poids soient stabilisés.
Pour corriger ces oscillations on introduit, dans la formule (1),
un terme proportionnel à la dernière variation des poids. Soit un
couple d´apprentissage k, la correction des poids relative au couple
k+1 est donné par:
n est le taux d´apprentissage (entre 0.0 et 1.0)
c est le "momentum" (entre 0.0 et 1.0)
Cette formule permet de filtrer les oscillations haute fréquence. On
prend couramment c = 0.5. Le réglage de ces paramètres est empirique,
on évite d et c trop proches de zero, et c trop voisin de 1, de plus
on peut les faire varier au cours de l´apprentissage.
Exemple de la fonction sigmoide
Si f est la fonction sigmoide, le calcul de sa derivée donne:
D´où le signal d´erreur pour la couche de sortie:
Et celui d´une couche cachée:
Exemple
Soit un réseau neuronal (d´apres [Abdi 1994]) constitué
d´une couche d´entreé comportant
3 neurones (1,2,3), d´une couche cachée de 2 neurones (4,5) et d´une couche de
sortie ayant 3 neurones (6,7,8).
Les poids des connexions entrée -> cachée sont:
w41 = 0.5 w42 = 0.3 w43 = 0.1
w51 = 0.3 w52 = 0.2 w53 = 0.1
Ceux des connexions cachée -> sortie sont:
w64 = 0.1 w65 = 0.2
w74 = 0.3 w75 = 0.4
w84 = 0.5 w85 = 0.6
Soit W la matrice des poids entrée -> cachée, Z celle des poids
cachée -> sortie, et soi x le stimulus d´entrée devant donner la
réponse théorique t:
1) Calculons la réponse du réseau pour le stimulus x. Pour cela soit b
l´activation de la couche cachée obtenue en appliquant la matrice W
aià l´entrée x. Soit h la réponse de la couche cachée obtenue en
appliquant la fonction sigmoide à b. Soit a l´activation de la couche de
sortie obtenue en appliquant la matrice Z à h. Enfin soit o la
réponse de la couche de sortie obtenue en appliquant la fonction sigmoide
à a.
2) L´apprentissage consiste à propager l´erreur en arrière: Le signal
d´erreur de la couche de sortie est calculée par le "superviseur" par:
3) Le signal d´erreur de la sortie est d´après (2):
4) Soit la matrice R définie par:
5) Après avoir propagé l´erreur vers la couche cachée (par d3), les neurones
de la couche cachée corrigent les poids les reliant à la couche cachée.
La formule (1) permet de recalculer la matrice Z (on a pris n=1 pour
simplifier):
6) Soit f l´estimation de l´erreur par les neurones de la couche
cachée. Pour chaque cellule elle est la somme des signaux d´erreur propagés
en retour, c´est à dire la somme de chaque colonne de R:
7) Le signal d´erreur pour la couche cachée se calcule en appliquant
la formule (3), c´est à dire en remplaçant l´erreur donnée par le
superviseur par l´erreur estimée f par les neurones de la couche
cachée:
8) Les neurones de la couche cachée corrigent alors les poids de leurs
connexions à la couche d´entrée en appliquant la formule (1):
9) La première passe de l´apprentissage est terminée et comme il y a eu
des corrections, le processus est repris, c´est à dire que l´on
retourne en 1).
Conclusion
L´algorithme de la rétropropagation décrite ici a été à l´origine
du regain d´intérêt pour les réseaux neuronaux, puisqu´il permet
de résoudre des problèmes de classification non linéaire (ce que ne
savait pas faire le perceptron).
Cependant cet algorithme ne résout pas tout... En particulier ses
temps de convergence sont considérables (une expérience avec le XOR
peut conduire à un apprentissage de plusieurs milliers de passes) et
ne peut donc pas être utilisé pour des problèmes trop complexes. D´autre
part cette méthode ne s´applique qu´en mode supervisé, c´est à dire
avec un "professeur" qui connait les bonnes reponses. Enfin il ne
semble pas que le système nerveux procéde ainsi.