Version classiqueVersion mobile

Éloge du flou

 | 
Arturo Sangalli

Appendice 4. Apprendre avec l’algorithme de rétropropagation

Texte intégral

1L’algorithme de rétropropagation est conçu pour entraîner les réseaux de propagation composés de deux couches ou plus de neurones, et connectés de telle façon que les sorties d’une couche deviennent les entrées de la couche suivante. De plus, les fonctions d’activation des neurones doivent être continues (pour permettre l’emploi du calcul différentiel). Le nom de l’algorithme provient du fait que les ajustements des poids dictés par les règles d’apprentissage se propagent « vers l’arrière », de la couche de sortie vers la couche d’entrée.

2Pour expliquer les principes de l’algorithme, nous emploierons un réseau modeste qui consiste seulement en deux couches (figure A.1). Quand les trois neurones dans la première couche (ou couche cachée) reçoivent les entrées y1 et y2, ils répondent par les sorties intermédiaires, ou cachées, z1, z2 et z3. Celles-ci sont alors transmises aux deux neurones dans la deuxième couche (de sortie), laquelle transforme les zj en sorties finales 01 et 02 selon les formules habituelles

0i = f(si), i =1,2 (1)

f est la fonction d’activation du neurone (censée être la même pour tous les neurones) ;si est la somme pondérée :

si = vi1 z1 + vi2 z2 + vi3 z3 (2)

et vik est le poids, ou force, de la connexion reliant la kième entrée au iième neurone. Les zj sont elles-mêmes calculées de la même façon, par l’application de f à la somme pondérée des entrées y1 et y2 :

zj =f(uj1 y1 + uj2 y2), j = 1,2,3. (3)

3Après qu’une entrée donnée y = [y1, y2] ait été traitée, le réseau répond avec un vecteur de sortie 0 = [01, 02]. L’erreur E de la réponse est alors calculée en comparant 0 avec la réponse désirée, qui est un autre vecteur d =[d1, d2]. Plus précisément, E est défini par

E =(d1-01)2 + (d2-02)2(4)

c’est-à-dire, la somme des carrés des erreurs locales dk-0k à chaque neurone de sortie (les carrés ne peuvant être négatifs, l’addition des carrés (dk-0k)2 empêche les erreurs locales négatives de compenser les erreurs positives).

4Il résulte des équations (1) à (4) que, pour une entrée donnée y, l’erreur E est une fonction des poids seulement—douze dans ce cas. En d’autres mots, E assigne à chaque vecteur de poids w de dimension 12 le nombre E(w) spécifié en (4). Dans le cas le plus simple, quand E est une fonction de deux variables seulement, w1 et w2, l’erreur peut être visualisée comme une surface dans un espace à 3 dimensions suspendu au-dessus d’un plan des poids à 2 dimensions. À partir de n’importe quel point sur cette surface, il y a une direction qui correspond à la montée la plus escarpée ou, ce qui revient au même, au taux de croissance le plus rapide de l’erreur. Mathématiquement, cela correspond à la direction définie par ce que l’on appelle le gradient d’erreur, un vecteur E à 2 dimensions dont les composantes peuvent être calculés par l’emploi du calcul différentiel (ce sont les dérivées partielles E/∂w1 et E/w2). L’erreur décroît le plus rapidement dans la direction opposée à celle de E, qui est celle du vecteur -E. C’est la direction de la descente la plus abrupte. Quand la dimension de l’espace pondéral est plus grande que deux, une interprétation géométrique aussi précise est impossible. Mais l’opposé du vecteur du gradient -E « pointe » encore dans la direction de la réduction d’erreur la plus rapide et ainsi, par analogie, il est habituel de toujours parler de « descente la plus abrupte ».

5Si nous notons par w un vecteur de poids initial (peut-être choisi au hasard), alors E(w) est l’erreur pour ces poids particuliers. Or, puisque les neurones continus peuvent répondre avec tout nombre entre 0 et 1, il est très peu vraisemblable que les sorties du réseau 01, 02 (pour quelques y et w donnés) vont correspondre exactement aux sorties désirées d1 et d2 ; autrement dit, E(w) sera presque certainement différent de zéro. L’algorithme doit alors calculer un nouveau vecteur de poids w, de telle sorte que l’erreur soit réduite autant que possible. Mais E est généralement une fonction compliquée de plusieurs variables, avec beaucoup de caractéristiques inconnues (et peut-être inconnaissables). Ceci fait de la recherche pour les poids optimaux une tâche redoutable, le chemin pour arriver à une erreur minimum étant très probablement long et jonché de pseudo-solutions trompeuses (les minima locaux redoutés qui ont déjà été discutés dans le chapitre 6). Étant donné la maigre information disponible à propos de E, le meilleur choix de l’algorithme dans les circonstances serait d’ajuster le vecteur de poids dans la direction de la descente la plus abrupte... et espérer que tout se passe pour le mieux.

6Le choix du nouveau vecteur de poids w∆ est donc dicté par l’impératif de réduire l’erreur aussi rapidement que possible. Ainsi, un incrément de poids w qui déplace le poids w le long de la direction de la descente la plus abrupte doit être calculé. À partir de la couche de sortie, l’algorithme calcule couche par couche les composantes de w. Une sorte de « signal d’erreur » se déplaçant vers l’arrière, de la sortie vers l’entrée, entre dans le calcul des incréments pondéraux—d’où le nom, pour l’algorithme, de rétropropagation de l’erreur. Après la mise à jour des poids (c’est-à-dire le remplacement de l’ancien vecteur de poids w par le nouveau w, w′ = w+w), l’entrée suivante est fournie au réseau, et le processus d’ajustement des poids recommence à nouveau. Quand le cycle d’entraînement est terminé—c’est-à-dire après que toutes les entrées dans l’ensemble d’apprentissage auront été testées—les erreurs qui résultent des entrées individuelles sont additionnées. Si cette erreur globale est inférieure à un seuil prédéterminé, l’entraînement est terminé ; sinon, un autre cycle d’entraînement commence.

7En un mot, la rétropropagation peut se décrire comme une technique efficace pour calculer l’erreur du gradient à partir de la réponse du réseau, ne travaillant qu’avec une seule donnée d’entrée à la fois. Malgré tous les exposés au sujet de l’entraînement, de l’apprentissage, des synapses, de la propagation du signal, etc., c’est vraiment le calcul différentiel et l’algèbre vectorielle travaillant dans l’ombre qui assurent la réalisation de la tâche.

Table des illustrations

Titre FIGURE A. 1
URL http://books.openedition.org/pum/docannexe/image/14198/img-1.jpg
Fichier image/jpeg, 127k

© Presses de l’Université de Montréal, 2001

Conditions d’utilisation : http://www.openedition.org/6540

Cette publication numérique est issue d’un traitement automatique par reconnaissance optique de caractères.
Rechercher dans OpenEdition Search

Vous allez être redirigé vers OpenEdition Search