Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
06/11/02 16:00
Chapitre 3
3.1
Introduction
Comment l'homme fait-il pour raisonner, parler, calculer, apprendre, ...? Comment s'y prendre pour crer une ou de l'intelligence artificielle ? Deux types d'approches ont t essentiellement explores : procder d'abord l'analyse logique des tches relevant de la cognition humaine et tenter de les reconstituer par programme. C'est cette approche qui a t privilgie par l'Intelligence Artificielle et la psychologie cognitive classiques. Cette dmarche est tiquete sous le nom de cognitivisme. puisque la pense est produite par le cerveau ou en est une proprit, commencer par tudier comment celui-ci fonctionne. C'est cette approche qui a conduit l'tude de rseaux de neurones formels. On dsigne par connexionnisme la dmarche consistant vouloir rendre compte de la cognition humaine par des rseaux de neurones. La seconde approche a donc mene la dfinition et l'tude de rseaux de neurones formels qui sont des rseaux complexes d'units de calcul lmentaire interconnectes. Il existe deux courants de recherche sur les rseaux de neurones : un premier motiv par l'tude et la modlisation des phnomnes naturels d'apprentissage l'aide de rseaux de neurones, la pertinence biologique est importante ; un second motiv par l'obtention d'algorithmes efficaces ne se proccupant pas de la pertinence biologique. Nous nous plaons du point de vue du second groupe. En effet, bien que les rseaux de neurones formels aient t dfinis partir de considrations biologiques, pour la plupart d'entre eux, et en particulier ceux tudis dans ce cours, de nombreuses caractristiques biologiques (le temps, la mmoire, ...) ne sont pas prises en compte. Toutefois, nous donnons, dans la suite de cette introduction, un bref aperu de quelques proprits lmentaires de neurophysiologie qui permettent au lecteur de relier neurones rels et neurones formels. Nous donnons ensuite un rapide historique des rseaux de neurones. Enfin, nous donnons une classification des diffrents types de rseau et les principales applications.
3.1.1
La physiologie du cerveau montre que celui-ci est constitu de cellules (les neurones) interconnectes. Quelques tapes de cette dcouverte : Van Leuwenhook (1718) : premire description fidle de ce qu'on appellera plus tard les axones, Dutrochet (1824) : observation du corps cellulaire des neurones Valentin : dcouverte des dendrites, Deiters (1865) : image actuelle de la cellule nerveuse Sherington (1897) : les synapses, les neuro-transmetteurs (premire moiti du sicle).
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 1 sur 26
06/11/02 16:00
Les neurones reoivent les signaux (impulsions lectriques) par des extensions trs ramifies de leur corps cellulaire (les dendrites) et envoient l'information par de longs prolongements (les axones). Les impulsions lectriques sont rgnres pendant le parcours le long de l'axone. La dure de chaque impulsion est de l'ordre d'1 ms et son amplitude d'environ 100 mvolts. Les contacts entre deux neurones, de l'axone une dendrite, se font par l'intermdiaire des synapses. Lorsqu'un potentiel d'action atteint la terminaison d'un axone, des neuromdiateurs sont librs et se lient des rcepteurs post-synaptiques prsents sur les dendrites. L'effet peut tre excitateur ou inhibiteur. Chaque neurone intgre en permanence jusqu' un millier de signaux synaptiques. Ces signaux n'oprent pas de manire linaire (effet de seuil). Quelques informations en vrac : le cerveau contient environ 100 milliards de neurones. on ne dnombre que quelques dizaines de catgories distinctes de neurones. aucune catgorie de neurones n'est propre l'homme (cela serait trop beau !). la vitesse de propagation des influx nerveux est de l'ordre de 100m/s. C'est dire bien infrieure la vitesse de transmission de l'information dans un circuit lectronique. on compte de quelques centaines plusieurs dizaines de milliers de contacts synaptiques par neurone. Le nombre total de connexions est estim environ 1015. la connectique du cerveau ne peut pas tre code dans un << document biologique >> tel l'ADN pour de simples raisons combinatoires. La structure du cerveau provient donc en partie des contacts avec l'environnement. L'apprentissage est donc indispensable son dveloppement. le nombre de neurones dcroit aprs la naissance. Cependant, cette affirmation semble remise en question. on observe par contre une grande plasticit de l'axone, des dendrites et des contacts synaptiques. Celle-ci est surtout trs importante aprs la naissance (on a observ chez le chat un accroissement des contacts synaptiques de quelques centaines 12000 entre le 10me et le 35me jour). Cette plasticit est conserve tout au long de l'existence. les synapses entre des neurones qui ne sont pas simultanment actifs sont affaiblis puis limins. il semble que l'apprentissage se fasse par un double mcanisme : des connections sont tablies de manire redondantes et alatoires puis seules les connexions entre des neurones simultanment actifs sont conservs (phase de slection) tandis que les autres sont limins. On parle de stabilisation slective. Nous conseillons sur le sujet deux livres accessibles au profane et passionnants : L'homme neuronal de Jean-Pierre Changeux et La biologie de la conscience de Gerald Edelman. Pour un survol de quelques pages, voir [Kor97]. Pour ceux que l'anglais n'effraie pas et qui aiment les bandes dessines, voir [GZ98]. Les recherches sur la physiologie du cerveau sont actuellement
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 2 sur 26
06/11/02 16:00
trs actives.
3.1.2
La question fondamentale du connexionnisme est : comment rendre compte des processus cognitifs partir d'un ensemble d'units, dotes chacunes d'une faible puissance de calcul et interconnectes en rseau ? La dfinition de rseaux de neurones formels et l'exprimentation mene sur ces rseaux permettent d'tudier et de tester cette hypothse. Citons quelques tapes dans la formalisation des rseaux de neurones : Premire dfinition d'un neurone formel par McCulloch et Pitts en 1943 Les percepts ou concepts sont physiquement reprsents dans le cerveau par l'entre en activit (simultane) d'une assemble de neurones (Donald Hebb, 1949). L'hypothse concurrente est la spcialisation de certains neurones dans des tches cognitives complexes (cf le fameux neurone << grand-mre >>). deux neurones entrant en activit simultanment vont tre associs (c'est--dire que leur contacts synaptiques vont tre renforcs). On parle de loi de Hebb et d'associationnisme Le perceptron de Frank Rosenblatt (1958) : le premier modle pour lequel un processus d'apprentissage a pu tre dfini. De cette priode, date galement les travaux de Widrow et Hoff. Le livre de Minski et Papert "Perceptrons" (1969). Cet ouvrage contient une tude critique trs complte des perceptrons. On lui reproche parfois violemment d'avoir sonn le glas des recherches sur les rseaux neuronaux dans les annes 70, ce que nient leurs auteurs. Ce livre a t rdit en 1980, avec des ajouts et corrections manuscrites dans les marges, sans doute pour qu'on ne puisse pas les accuser de camoufler la premire version du texte ! l'algorithme de rtropropagation du gradient dans les rseaux multi-couches dcouvert au dbut des annes 80 par Rumelhart et McClelland, Parker, Hinton, Le Cun. Les << inventeurs >> sont nombreux car l'ide de descente de gradient est naturelle. La plupart de ces travaux taient associs des tudes empiriques montrant la puissance du modle. le modle de Hopfield (1982) qui utilise des rseaux totalement connects bass sur la rgle de Hebb qui ont permis de dfinir la notion d'attracteurs et de mmoire associative. les cartes de Kohonen (1984) avec un algorithme non supervis bas sur l'auto-organisation. la machine de Boltzman (1985), autre type de rseaux attracteurs avec une dynamique de Monte-Carlo.
3.1.3
Un rseau de neurones formels est constitu d'un grand nombre de cellules de base interconnectes. De nombreuses variantes sont dfinies selon le choix de la cellule lmentaire, de l'architecture du rseau et de la dynamique du rseau. Une cellule lmentaire peut manipuler des valeurs binaires ou relles. Les valeurs binaires sont reprsentes par 0 et 1 ou -1 et 1. Diffrentes fonctions peuvent tre utilises pour le calcul de la sortie. Le calcul de la sortie peut tre dterministe ou probabiliste. L'architecture du rseau peut tre sans rtroaction, c'est dire que la sortie d'une cellule ne peut influencer son entre. Elle peut tre avec rtroaction totale ou partielle. La dynamique du rseau peut tre synchrone : toutes les cellules calculent leurs sorties respectives simultanment. La dynamique peut tre asynchrone. Dans ce dernier cas, on peut avoir une dynamique asynchrone squentielle : les cellules calculent leurs sorties chacune son tour en squence ou avoir une dynamique asynchrone alatoire. Par exemple, si on considre des neurones sortie stochastique -1 ou 1 calcule par une fonction seuil base sur la fonction sigmode, une interconnection complte et une dynamique synchrone, on obtient le modle de Hopfield et la notion de mmoire associative. Si on considre des neurones dterministes sortie relle calcule l'aide de la fonction sigmode, une architecture sans rtroaction en couches successives avec une couche d'entres et une couche de sorties, une dynamique asynchrone squentielle, on obtient le modle du Perceptron multi-couches (PMC) qui sera tudi dans les paragraphes suivants.
3.1.4
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
06/11/02 16:00
Les principales applications des rseaux de neurones sont l'optimisation et l'apprentissage. En apprentissage, les rseaux de neurones sont essentiellement utiliss pour : l'apprentissage supervis ; l'apprentissage non supervis ; l'apprentissage par renforcement. Pour ces trois types d'apprentissage, il y a galement un choix traditionnel entre : l'apprentissage << off-line >> : toutes les donnes sont dans une base d'exemples d'apprentissage qui sont traits simultanment ; l'apprentissage << on-line >> : Les exemples sont prsents les uns aprs les autres au fur et mesure de leur disponibilit. Nous nous limitons, dans ce cours, l'apprentissage supervis partir d'une base d'exemples. Dans ce cadre, l'apprentissage l'aide de rseaux de neurones est bien adapt pour l'apprentissage partir de donnes complexes (images sur une rtine, sons, ...) mais aussi partir de donnes symboliques. Les entres peuvent tre reprsentes par de nombreux attributs valeurs relles ou symboliques, les attributs pouvant tre dpendants ou non. La ou les sorties peuvent tre relles ou discrtes. L'apprentissage l'aide de rseaux de neurones est tolrant au bruit et aux erreurs. Le temps d'apprentissage peut tre long, par contre, aprs apprentissage, le calcul des sorties partir d'un vecteur d'entre est rapide. La critique principale est que le rsultat de l'apprentissage, c'est--dire le rseau de neurones calcul par l'algorithme d'apprentissage, n'est pas interprtable par l'utilisateur : on ne peut pas donner d'explication au calcul d'une sortie sur un vecteur d'entre. On parle de << bote noire >>. Ceci est la principale diffrence entre rseaux de neurones et arbres de dcision. Si l'utilisateur a besoin de pouvoir interprter le rsultat de l'apprentissage, il choisira un systme bas sur les arbres de dcision, sinon les deux mthodes sont concurrentes. Nous n'tudions que le perceptron, brique de base des modles plus complexes, et le perceptron multi-couches (PMC). L'accent sera mis sur les algorithmes d'apprentissage pour ces deux modles, en particulier sur l'algorithme de rtropropagation du gradient appliqu aux PMC. Cet algorithme est, en effet, le premier algorithme d'apprentissage convaincant dans un modle suffisamment puissant et cet algorithme a de nombreuses applications.
3.2
Le Perceptron
Le perceptron est un modle de rseau de neurones avec algorithme d'apprentissage cr par Frank Rosenblatt en 1958. La version ci-dessous est simplifie par rapport l'originale. Vous trouverez une description de cette dernire dans l'exercice ??.
3.2.1
Dfinition du Perceptron
Dfinition 5 Un perceptron linaire seuil (voir figure ??) prend en entre n valeurs x1 ,..., xn et calcule une sortie o. Un perceptron est dfini par la donne de n+1 constantes : les coefficients synaptiques w1 , ..., wn et le seuil (ou le biais) q. La sortie o est calcule par la formule :
o=
1 si
i
wixi > q
0 sinon
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 4 sur 26
06/11/02 16:00
Les entres x1 ,..., xn peuvent tre valeurs dans {0,1} ou relles, les poids peuvent tre entiers ou rels. Une variante trs utilise de ce modle est de considrer une fonction de sortie prenant ses valeurs dans {-1,1} plutt que dans {0,1}. Il existe galement des modles pour lesquels le calcul de la sortie est probabiliste. Dans la suite de cette partie sur le perceptron, nous considrerons toujours le modle dterministe avec une sortie calcule dans {0,1}. Pour simplifier les notations et certaines preuves, nous allons remplacer le seuil par une entre supplmentaire x0 qui prend toujours comme valeur d'entre la valeur x0 =1. cette entre est associe un coefficient synaptique w0 . Le modle correspondant est dcrit dans la figure ??. On peut dcomposer le calcul de la sortie o en un premier calcul de la quantit Si wixi appele potentiel post-synaptique ou l'entre totale suivi d'une application d'une fonction d'activation sur cette entre totale. La fonction d'activation est la fonction de Heaviside dfinie par : 1x > 0 f(x) = 0 sinon
Bien que considrant une entre supplmentaire x0 , un perceptron est toujours considr comme associant une sortie o aux n entres x1 ,...,xn . L'quivalence entre le modle avec seuil et le modle avec entre supplmentaire 1 est immdiate : le coefficient w0 est l'oppos du seuil q. Nous considrerons toujours ce dernier modle de perceptron linaire seuil par la suite. Pour passer du modle avec sorties valeurs dans {0,1} au modle valeurs dans {-1,1}, il suffit de remplacer la fonction de Heaviside f par la fonction g dfinie par : g(x) = 2f(x) - 1. D'autres fonctions d'activation peuvent galement tre utilises. Exemple 10 Un perceptron qui calcule le OU logique avec les deux versions : seuil ou entre supplmentaire est prsent
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html Page 5 sur 26
06/11/02 16:00
On voit que quelques uns des traits principaux des neurones rels ont t retenus dans la dfinition du perceptron : les entres modlisent les dendrites, les impulsions en entre sont pondres par les coefficients synaptiques et l'impulsion mise, c'est--dire la sortie, obit un effet de seuil (pas d'impulsion si l'entre totale est trop faible). Un perceptron n entres relles (respectivement binaires) est une fonction de Rn (respectivement {0,1}n ) dans {0,1}. Si l'on veut faire le lien avec les chapitres prcdents, on peut voir les neurones d'entres comme dcrivant un espace de description avec des attributs rels (respectivement binaires) et le perceptron comme une procdure de classification binaire (c'est--dire en deux classes) sur cet espace. Un systme d'apprentissage base de perceptrons doit gnrer, partir d'un ensemble d'apprentissage, une hypothse qui est un perceptron. Nous nous intressons, dans la section suivante, cet espace d'hypothses, c'est--dire l'tude des fonctions calculables par perceptron.
3.2.2
} . On dit que S est linairement sparable s'il existe un hyperplan H de Rn tel que les ensembles S0 et S1 soient situs de part et d'autre de cet hyperplan. Thorme 2 Un perceptron linaire seuil n entres divise l'espace des entres Rn en deux sous-espaces dlimits par un hyperplan. Rciproquement, tout ensemble linairement sparable peut tre discrimin par un perceptron. Dmonstration : Il suffit pour s'en convaincre de se rappeler que l'quation d'un hyperplan dans un espace de dimension n est de la forme : a1 x1 + ... + an xn = b Un perceptron est donc un discriminant linaire. On montre facilement qu'un chantillon de Rn est sparable par un hyperplan si et seulement si l'chantillon de Rn +1 obtenu en rajoutant une entre toujours gale 1 est sparable par un hyperplan passant par l'origine. Toute fonction de Rn dans {0,1} est-elle calculable par perceptron ? La rponse est videmment non. De mme, toute fonction boolenne peut-elle tre calcule par un perceptron ? La rponse est galement non. Le contre-exemple le plus simple est le << OU exclusif >> (XOR) sur deux variables. Thorme 3 Le XOR ne peut pas tre calcul par un perceptron linaire seuil. Dmonstration : Dmonstration algbrique : Supposons qu'il existe un perceptron dfini par les coefficients synaptiques (w0 ,w1 , w2 ) calculant le XOR sur deux entres boolennes x1 et x2 . On devrait avoir :
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 6 sur 26
06/11/02 16:00
Il suffit d'additionner l'quation ?? et l'quation ?? d'une part, l'quation ?? et l'quation ?? d'autre part pour se rendre compte que l'hypothse est absurde. Dmonstration gomtrique : on << voit >> bien qu'aucune droite ne peut sparer les points de coordonnes (0,0) et (1,1) des points de coordonnes (0,1) et (1,0) (voir Figure ??). Si on considre une entre x0 =1, il n'existe pas de plan passant par l'origine qui spare les points de coordonnes (1,0,0) et (1,1,1) des points de coordonnes (1,0,1) et (1,1,0).
Figure 3.5 : Comment trouver une droite sparant les points (0,0) et (1,1) des points (0,1) et (1,0) ?
3.2.3
tant donn un chantillon d'apprentissage S de Rn {0,1} (respectivement {0,1}n {0,1}), c'est--dire un ensemble d'exemples dont les descriptions sont sur n attributs rels (respectivement binaires) et la classe est binaire, il s'agit de trouver un algorithme qui infre partir de S un perceptron qui classifie correctement les lments de S au vu de leurs descriptions si c'est possible ou au mieux sinon. Exemple 11 Pour apprendre la notion de chiffre pair ou impair, on peut considrer un chantillon compos des 10 chiffres crits sur une rtine 7 leds.
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 7 sur 26
06/11/02 16:00
En reprsentant chaque chiffre par le symbole qui le dsigne habituellement, un chantillon d'apprentissage complet est : S = {(1111110,0), (0110000,1), (1101101,0), (1111001,1), (0010011,0), (1011011,1), (0011111,0), (1110000,1), (1111111,0), (1111011,1)}. Le but sera d'infrer, partir de S, un perceptron qui prend ses entres dans {0,1}7 et qui retourne la classe 0 si le vecteur d'entre correspond un chiffre pair et 1 sinon. Sur cet exemple, l'chantillon S est complet (toutes les entres possibles sont dcrites). Il est frquent, pour les problmes concrets, d'avoir un chantillon non complet. L'algorithme d'apprentissage peut tre dcrit succinctement de la manire suivante. On initialise les poids du perceptron des valeurs quelconques. A chaque fois que l'on prsente un nouvel exemple, on ajuste les poids selon que le perceptron l'a correctement class ou non. L'algorithme s'arrte lorsque tous les exemples ont t prsents sans modification d'aucun poids. Dans la suite, nous noterons x une description qui sera un lment de Rn ou {0,1}n . La i-me composante de x sera note xi. Un chantillon S est un ensemble de couples (x,c) o c est la classe de x. Lorsqu'il sera utile de dsigner un lment particulier de S, nous noterons (xs,cs) le s-ime lment de S. xis dsignera la i-me composante du vecteur d'entre xs. Si une entre xs est prsente en entre d'un perceptron, nous noterons os la sortie binaire calcule par le perceptron. Nous rappelons qu'il existe une n+1-ime entre x0 de valeur 1 pour le perceptron. L'algorithme d'apprentissage par correction d'erreur du perceptron linaire seuil est : Algorithme par correction d'erreur: Entre : un chantillon S de Rn {0,1} ou {0,1}n Initialisation alatoire des poids wi pour i entre 0 et n Rpter Prendre un exemple (x,c) dans S Calculer la sortie o du perceptron pour l'entre x - - Mise jour des poids - Pour i de 0 n wi wi + (c-o)xi finpour finRpter Sortie : Un perceptron P dfini par (w0 , w1 , ..., wn ) La procdure d'apprentissage du perceptron est une procdure de correction d'erreur puisque les poids ne sont pas modifis lorsque la sortie attendue c est gale la sortie calcule o par le perceptron courant. tudions les modifications sur les poids lorsque c diffre de o : si o=0 et c=1, cela signifie que le perceptron n'a pas assez pris en compte les neurones actifs de l'entre (c'est--dire les neurones ayant une entre 1) ; dans ce cas, wi wi + xi ; l'algorithme ajoute la valeur de la rtine aux poids synaptiques (renforcement). si o=1 et c=0, alors wi wi - xi ; l'algorithme retranche la valeur de la rtine aux poids synaptiques (inhibition). Remarquons que, en phase de calcul, les constantes du perceptron sont les poids synaptiques alors que les variables sont les entres. Tandis que, en phase d'apprentissage, ce sont les coefficients synaptiques qui sont variables alors que les entres de l'chantillon S apparaissent comme des constantes. Certains lments importants ont t laisss volontairement imprcis. En premier lieu, il faut prciser comment est fait le choix d'un lment de S : alatoirement ? En suivant un ordre prdfini ? Doivent-ils tre tous prsents ? Le critre d'arrt de la boucle principale de l'algorithme n'est pas dfini : aprs un certain nombre d'tapes ? Lorsque tous les exemples ont t prsents ? Lorsque les poids ne sont plus modifis pendant un certain nombre d'tapes ? Nous reviendrons sur toutes ces questions par la suite. Tout d'abord, examinons le comportement de l'algorithme sur deux exemples :
{0,1}
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 8 sur 26
06/11/02 16:00
Exemple 12 Apprentissage du OU : les descriptions appartiennent {0,1}2 , les entres du perceptron appartiennent {0,1}3 , la premire composante correspond l'entre x0 et vaut toujours 1, les deux composantes suivantes correspondent aux variables x1 et x2 . On suppose qu' l'initialisation, les poids suivants ont t choisis : w0 =0 ; w1 = 1 et w2 = -1. On suppose que les exemples sont prsents dans l'ordre lexicographique. tape w0 w1 w2 Entre S0 2 wi xi o c init 1 2 3 4 5 6 7 8 9 10 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 -1 -1 0 0 0 0 1 1 1 1 100 101 110 111 100 101 110 111 100 101 0 -1 2 2 1 0 2 3 1 1 w0 w1 w2
0 1 -1 0 0 0+0x1 1+0x0 -1+0x0 0 1 0+1x1 1+1x 0 -1+1x1 11 1 1 0 11 1 1 0 1 0 1+(-1)x1 1+(-1)x0 0+(-1)x0 0 1 0+1x1 1+1x0 0+1x1 11 1 1 1 11 1 1 1 1 0 1+(-1)x1 1+(-1)x0 1 +(-1)x0 11 0 1 1
Aucune entre ne modifie le perceptron partir de cette tape. Vous pouvez aisment vrifier que ce perceptron calcule le OU logique sur les entres x1 et x2 . Exemple 13 Apprentissage d'un ensemble linairement sparable : les descriptions appartiennent R2 , le concept cible est dfini l'aide de la droite d'quation y=x/2. Les couples (x,y) tels que y>x/2 sont de classe 1 ; Les couples (x,y) tels que y x/2 sont de classe 0. L'chantillon d'entre est S={((0,2),1), ((1,1),1), ((1,2.5),1), ((2,0),0), ((3,0.5),0)}. On suppose qu' l'initialisation, les poids suivants ont t choisis : w0 =0 ; w1 = 0 et w2 = 0. On choisit de prsenter tous les exemples en alternant exemple positif (de classe 1) et exemple ngatif. tape w0 w1 w2 Entre S0 2 wi xi o c w0 w1 w2 init 0 0 0 1 0 0 0 (1,0,2) 0 01 1 0 2 2 1 0 2 (1,2,0) 1 1 0 0 -2 2 3 0 -2 2 (1,1,1) 0 0 1 1 -1 3 4 1 -1 3 (1,3,0.5) -0.5 0 0 1 -1 3 5 1 -1 3 (1,1,2.5) 7.5 1 1 1 -1 3
Aucune entre ne modifie le perceptron partir de cette tape car ce perceptron classifie correctement tous les exemples de S. Le perceptron de sortie associe la classe 1 aux couples (x,y) tels que y>x/3 - 1/3.
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 9 sur 26
06/11/02 16:00
Dans les deux exemples, l'chantillon d'apprentissage est un ensemble linairement sparable. Lors de la phase d'apprentissage, tous les exemples sont prsents jusqu' la convergence, c'est--dire jusqu' ce qu'une prsentation complte des exemples n'entrane aucune modification de l'hypothse en cours. Nous dmontrons, dans la section suivante, que ceci est un rsultat gnral. Thorme d'apprentissage par correction d'erreur Thorme 4 Si l'chantillon S est linairement sparable et si les exemples sont prsents quitablement (c'est--dire que la procdure de choix des exemples n'en exclut aucun), la procdure d'apprentissage par correction d'erreur converge vers un perceptron linaire seuil qui calcule S.
Dmonstration : Soit un chantillon d'entre sur n variables relles (le cas de variables binaires s'en dduit), soit S l'chantillon obtenu en ajoutant une n+1-ime entre x0 toujours gale 1, par hypothse l'chantillon est linairement sparable, donc il existe un hyperplan de Rn +1 passant par l'origine qui spare S, soit encore, il existe un vecteur v=(v0 ,..., vn ) de Rn +1 tel que :
n
" ( x ,1) S x . v =
i=0
(3.5)
Comme S est fini, cela implique qu'il existe un rel d strictement positif tel que : " ( x ,1) S x . v >d et " ( x ,0) S x . v <-d
(3.6)
Soit w0 le vecteur des poids synaptiques choisi l'initialisation de l'algorithme, soit (wi)i I la suite des valeurs successives diffrentes des vecteurs de poids au cours de l'excution de l'algorithme, c'est--dire que l'on suppose que, pour tout i, wi wi+1 (le lecteur remarquera qu'il se peut que le vecteur wi reste inchang pour un certain nombre d'exemples). Supposons que l'algorithme d'apprentissage ne s'arrte pas, la prsentation des exemples tant quitable, ceci implique qu'il y a une infinit de wi. Nous allons montrer que cette hypothse est absurde. Soit M un majorant de {x2 | (x,c) S}, nous allons calculer des bornes pour wi2 et wi.v. Lors du passage de w w , deux cas peuvent se produire :
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html Page 10 sur 26
06/11/02 16:00
i+1
premier cas : l'exemple (x,c) vrifie c=1 et la sortie calcule sur cette entre par le perceptron courant est o=0. o=0 donc x.wi 0 ; c=1 donc x.v > 0. D'aprs la rgle de mise jour des poids, on a wi+1= wi + x. On en dduit que : wi+12 =(wi + x)2 =wi2 + 2 x.wi + x2 wi2 +x2 wi2 +M ; wi+1.v= (wi + x).v = wi.v + x.v > wi.v + d. soit
(3.7)
deuxime cas : l'exemple (x,c) vrifie c=0 et la sortie calcule sur cette entre par le perceptron courant est o=1. o=1 donc x.wi > 0 ; c=0 donc x.v 0. D'aprs la rgle de mise jour des poids, on a wi+1= wi - x. On montre de mme que :
(3.8)
Par consquent, l'aide des ingalits ?? et ??, nous dduisons que, pour tout i 0, on a :
(3.9)
(3.10)
Comme d>0, il existe un entier i0 tel que , pour tout i i0 , w0 .v + id>0, en utilisant les ingalits de ??, nous obtenons que, pour tout i i0 , (w0 . v + id)2 (wi. v )2 = wi2 v 2 (w0 2 +iM) v 2
(3.11)
Cette ingalit nous amne la contradiction recherche. En effet, le terme de gauche est un polynme de degr 2 en i major par le terme de droite qui est linaire en i. Critiques sur la mthode par correction d'erreur Nous venons de dmontrer que si l'chantillon est linairement sparable, si tous les exemples sont prsents quitablement et que le critre d'arrt est la stabilit de l'hypothse aprs une prsentation complte de l'chantillon alors l'algorithme s'arrte avec un perceptron qui classifie correctement l'chantillon d'apprentissage. Que se passe-t-il si l'chantillon d'entre n'est pas linairement sparable ? L'inconvnient majeur de cet algorithme est que si l'chantillon prsent n'est pas linairement sparable, l'algorithme ne convergera pas et l'on aura aucun moyen de le savoir. On pourrait penser qu'il suffit d'observer l'volution des poids synaptiques pour en dduire si l'on doit arrter ou non l'algorithme. En effet, si les poids et le seuil prennent deux fois les mmes valeurs sans que le perceptron ait appris et alors que tous les exemples ont t prsents, cela signifie d'aprs le thorme prcdent que l'chantillon n'est pas sparable. Et l'on peut penser que l'on peut borner les poids et le seuil en fonction de la taille de la rtine. C'est vrai mais les rsultats de complexit noncs ci-dessous (sans dmonstration) montrent que cette ide n'est pas applicable en pratique. Thorme 5
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html Page 11 sur 26
06/11/02 16:00
1. Toute fonction boolenne linairement sparable sur n variables peut tre implante par un perceptron dont les poids synaptiques entiers wi sont tels que wi (n+1)n +1/2. 2. Il existe des fonction boolennes linairement sparables sur n variables qui requirent des poids entiers suprieurs 2n +1/2. Ces rsultats sont assez dcevants. Le premier montre que l'on peut borner les poids synaptiques en fonction de la taille de la rtine, mais par un nombre tellement grand que toute application pratique de ce rsultat semble exclue. Le second rsultat montre en particulier que l'algorithme d'apprentissage peut ncessiter un nombre exponentiel d'tapes (en fonction de la taille de la rtine) avant de s'arrter. En effet, les poids ne varient qu'au plus d'une unit chaque tape. Mme lorsque l'algorithme d'apprentissage du perceptron converge, rien ne garantit que la solution sera robuste, c'est--dire qu'elle ne sera pas remise en cause par la prsentation d'un seul nouvel exemple. Pour s'en persuader, il suffit de se reporter l'exemple ??. Supposons qu'on ajoute l'exemple ((3,1),0), cet exemple remet en cause l'hypothse gnre car le perceptron sorti par notre algorithme associe la classe 1 la description (3,1). Un << bon >> algorithme d'apprentissage devrait produire une solution robuste. Graphiquement, si on considre un chantillon linairement sparable, une solution robuste serait << mi-chemin >> entre les points de classe 1 et de classe 0 comme le montre la Figure ??.
Pire encore, cet algorithme n'a aucune tolrance au << bruit >> : si du bruit, c'est--dire une information mal classe, vient perturber les donnes d'entre, le perceptron ne convergera jamais. En effet, des donnes linairement sparables peuvent ne plus l'tre cause du bruit. En particulier, les problmes non-dterministes, c'est--dire pour lesquels une mme description peut reprsenter des lments de classes diffrentes ne peuvent pas tre traits l'aide d'un perceptron. Si on considre les donnes de l'exemple prsent dans la Figure ??, les donnes ne sont pas linairement sparables, mais un << bon >> algorithme d'apprentissage pour le perceptron devrait tre capable de produire un sparateur linaire comme celui qui est prsent dans cette mme figure, ce qui n'est pas le cas de l'algorithme par correction d'erreur.
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 12 sur 26
06/11/02 16:00
Le but des sections suivantes est de prsenter des algorithmes d'apprentissage du perceptron qui produisent des solutions robustes pour des chantillons linairement sparables et des solutions << approximatives >> pour des chantillons non linairement sparables.
3.2.4
Plutt que d'obtenir un perceptron qui classifie correctement tous les exemples, il s'agira maintenant de calculer une erreur et d'essayer de minimiser cette erreur. Pour introduire cette notion d'erreur, on utilise des poids rels et on limine la notion de seuil (ou d'entre supplmentaire), ce qui signifie que la sortie sera gale au potentiel post-synaptique et sera donc relle. Dfinition 7 Un perceptron linaire prend en entre un vecteur x de n valeurs x1 ,..., xn et calcule une sortie o. Un perceptron est dfini par la donne d'un vecteur w de n constantes : les coefficients synaptiques w1 , ..., wn . La sortie o est dfinie par :
n
o= x .w=
i=1
wi xi
(3.12)
L'erreur d'un perceptron P dfini par w=(w1 ,...,wn ) sur un chantillon d'apprentissage S d'exemples (xs,cs) est dfinie en utilisant la fonction erreur quadratique par :
E(w) = 1/2
( x s,cs) S
(cs - os)2
(3.13)
o os est la sortie calcule par P sur l'entre xs. L'erreur mesure donc l'cart entre les sorties attendue et calcule sur l'chantillon complet. On remarque que E(w) = 0 si et seulement si le perceptron classifie correctement l'chantillon complet. On suppose S fix, le problme est donc de dterminer un vecteur w qui minimise E(w). Une mthode qui permet de rechercher le minimum d'une fonction est d'utiliser la mthode du gradient. Cette mthode est rappele maintenant : Mthode du gradient Soit f une fonction d'une variable relle valeurs relles, suffisamment drivable dont on recherche un minimum. La mthode du gradient construit une suite x qui doit en principe s'approcher du minimum. Pour cela, on part d'une valeur
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html Page 13 sur 26
06/11/02 16:00
quelconque x0 et l'on construit la suite rcurrente par : pour tout n > 0, xn +1 = xn + D xn avec D xn = - e f'(xn ) o e est une valeur << bien >> choisie. On a : f(xn +1) = f(xn - e f'(xn )) f(xn ) - e (f'(xn ))2 d'aprs le thorme des approximations finies si e f'(xn ) est << suffisamment >> petit. On voit que, sous rserve de la correction de l'approximation, f(xn +1) est infrieur f(xn ).
On remarque que xn +1 est d'autant plus loign de xn que la pente de la courbe en xn est grande. On peut dcider d'arrter l'itration lorsque cette pente est suffisamment faible. Les inconvnients bien connus de cette mthode sont : 1. 2. 3. 4. le choix de e est empirique, si e est trop petit, le nombre d'itrations peut tre trs lev, si e est trop grand, les valeurs de la suite risquent d'osciller autour du minimum sans converger, rien ne garantit que le minimum trouv est un minimum global. Algorithme d'apprentissage par descente de gradient E est une fonction des n variables wi. La mthode du gradient a t rappele dans le cas d'une variable relle, mais cette mthode peut tre tendue au cas de fonctions de plusieurs variables relles. Pour mettre en oeuvre la mthode applique la fonction erreur quadratique E, nous allons, tout d'abord, valuer la drive partielle de E par rapport wi, pour tout i. On a : E(w) 1 =w i2 wi
(cs - os)2 =
S
1 2
S
s s2 1 wi(c - o ) = 2
S
2 (cs - os)
s s wi(c - o )=
S
(cs - os)
s s wi(c - w. x )= S
o xis est la ime composante du vecteur xs. L'application de la mthode du gradient nous invite donc modifier le poids wi aprs une prsentation complte de S d'une quantit D wi dfinie par : E(w) =e wi
D wi = - e
(3.14)
L'algorithme d'apprentissage par descente de gradient du perceptron linaire peut maintenant tre dfini :
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 14 sur 26
06/11/02 16:00
Algorithme par descente de gradient : Entre : un chantillon S de Rn {0,1} ; e Initialisation alatoire des poids wi pour i entre 1 et n Rpter Pour tout i D wi 0 finPour Pour tout exemple (xs,cs) de S calculer la sortie os Pour tout i D wi D wi + e (cs - os) xis finPour finPour Pour tout i wi wi + D wi finPour finRpter Sortie : Un perceptron P dfini par (w1 , ..., wn ) La fonction erreur quadratique ne possde qu'un minimum (la surface est une parabolode). L'algorithme prcdent est assur de converger, mme si l'chantillon d'entre n'est pas linairement sparable, vers un minimum de la fonction erreur pour un e bien choisi suffisamment petit. Si e est trop grand, on risque d'osciller autour du minimum. Pour cette raison, une modification classique est de diminuer graduellement la valeur de e en fonction du nombre d'itrations. Le principal dfaut est que la convergence peut tre trs lente et que chaque tape ncessite le calcul sur tout l'ensemble d'apprentissage. Algorithme d'apprentissage de Widrow-Hoff Cet algorithme est une variante trs utilise de l'algorithme prcdent. Au lieu de calculer les variations des poids en sommant sur tous les exemples de S, l'ide est de modifier les poids chaque prsentation d'exemple. La rgle de modification des poids donne dans l'quation ?? devient : D wi = e (cs - os) xis (3.15)
Cette rgle est appele rgle delta, ou rgle Adaline, ou encore rgle de Widrow-Hoff d'aprs le nom de ses inventeurs. L'algorithme s'crit alors : Algorithme de Widrow-Hoff : Entre : un chantillon S de Rn {0,1} ; e Initialisation alatoire des poids wi pour i entre 1 et n Rpter Prendre un exemple (x,c) dans S Calculer la sortie o du perceptron pour l'entre x - - Mise jour des poids - Pour i de 1 n wi wi + e (c-o)xi finpour finRpter Sortie : Un perceptron P dfini par (w0 , w1 , ..., wn ) En gnral, on parcourt l'chantillon dans un ordre prdfini. Le critre d'arrt gnralement choisi est : pour un passage complet de l'chantillon, toutes les modifications de poids sont en dessous d'un seuil prdfini. Au coefficient e prs dans la rgle de modification des poids, on retrouve l'algorithme d'apprentissage par correction d'erreur. Pour l'algorithme de Widrow-Hoff, il y a correction chaque fois que la sortie totale (qui est un rel) est diffrente de la valeur attendue (gale 0 ou 1). Ce n'est donc pas une mthode d'apprentissage par correction d'erreur puisqu'il y a modification du perceptron dans (presque) tous les cas. Rappelons galement que l'algorithme par correction d'erreur produit en sortie un perceptron linaire seuil alors que l'algorithme par descente de gradient produit un perceptron linaire. L'avantage de l'algorithme de Widrow-Hoff par rapport l'algorithme par correction d'erreur est que, mme si l'chantillon d'entre n'est pas linairement sparable, l'algorithme va converger vers une solution << optimale >> (sous rserve du bon choix du paramtre e). L'algorithme est, par consquent, plus robuste au bruit (voir Figure ??).
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html Page 15 sur 26
06/11/02 16:00
L'algorithme de Widrow-Hoff s'carte de l'algorithme du gradient sur un point important : on modifie les poids aprs prsentation de chaque exemple en fonction de l'erreur locale et non de l'erreur globale. Rien ne prouve donc que la diminution de l'erreur en un point ne va pas tre compense par une augmentation de l'erreur pour les autres points. La justification empirique de cette manire de procder est commune toutes les mthodes adaptatives : le champ d'application des mthodes adaptatives est justement l'ensemble des problmes pour lesquels des ajustements locaux vont finir par converger vers une solution globale. L'algorithme de Widrow-Hoff est trs souvent utilis en pratique et donne de bons rsultats. La convergence est, en gnral, plus rapide que par la mthode du gradient. Il est frquent pour cet algorithme de faire diminuer la valeur de e en fonction du nombre d'itrations comme pour l'algorithme du gradient.
3.2.5
Conclusion
En conclusion, l'apprentissage par perceptron ou par la mthode du gradient ne sont rien d'autre que des techniques de sparation linaire qu'il faudrait comparer aux techniques utilises habituellement en statistiques. Ces mthodes sont non paramtriques, c'est--dire qu'elles n'exigent aucune autre hypothse sur les donnes que la sparabilit. On peut montrer que << presque >> tous les chantillons de moins de 2n exemples sont linairement sparables lorsque n est le nombre de variables. Une classification correcte d'un petit chantillon n'a donc aucune valeur prdictive. Par contre, lorsque l'on travaille sur suffisamment de donnes et que le problme s'y prte, on constate empiriquement que le perceptron appris par un des algorithmes prcdents a un bon pouvoir prdictif. Il est bien vident que la plupart des problmes d'apprentissage qui se posent naturellement ne peuvent pas tre rsolus par des mthodes aussi simples : il n'y a que trs peu d'espoir que les exemples << naturels >> se rpartissent << sagement >> de part et d'autre d'un hyperplan. Une manire de rsoudre cette difficult serait soit de mettre au point des sparateurs non-linaires, soit (ce qui revient peu prs au mme) de complexifier l'espace de reprsentation de manire linariser le problme initial. C'est ce que permettent de faire les rseaux multicouches que nous tudions maintenant.
3.3
3.3.1
Un perceptron linaire seuil est bien adapt pour des chantillons linairement sparables. Cependant, dans la plupart des problmes rels, cette condition n'est pas ralise. Un perceptron linaire seuil est constitu d'un seul neurone. On s'est trs vite rendu compte qu'en combinant plusieurs neurones le pouvoir de calcul tait augment. Par exemple, dans le cas des fonctions boolennes, il est facile de calculer le XOR en utilisant deux neurones linaires seuil. Cet exemple est prsent dans la figure ??.
Figure 3.11 : Il suffit de rajouter un neurone intermdiaire entre la rtine et la cellule de dcision pour pouvoir calculer le XOR
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html Page 16 sur 26
06/11/02 16:00
La notion de perceptron multi-couches (PMC) a ainsi t dfinie. On considre une couche d'entre qui correspond aux variables d'entre, une couche de sorties, et un certain nombre de couches intermdiaires. Les liens n'existent qu'entre les cellules d'une couche avec les cellules de la couche suivante. Le XOR peut tre calcul par un perceptron multi-couches prsent dans la figure ?? en transformant lgrement le rseau prsent dans la figure ??.
Figure 3.12 : PMC pour le XOR ; les liens avec poids nul ne sont pas reprsents
Dfinition 8 Un rseau de neurones couches caches est dfini par une architecture vrifiant les proprits suivantes : les cellules sont rparties de faon exclusive dans des couches C0 , C1 , ..., Cq , la premire couche C0 est la rtine compose des cellules d'entre qui correspondent aux n variables d'entre ; les couches C1 , ..., Cq -1 sont les couches caches ; la couche Cq est compose de la (ou les) cellule(s) de dcision, Les entres d'une cellule d'une couche Ci avec i 1 sont toutes les cellules de la couche Ci-1 et aucune autre cellule. La dynamique du rseau est synchrone. Le rseau prsent dans la figure ?? pour le calcul du XOR est un rseau une couche cache. L'architecture d'un rseau couches caches est sans rtroaction. Dans notre dfinition, nous avons suppos qu'une cellule avait pour entre toutes les cellules de la couche prcdente, ce peut tre un sous-ensemble des cellules de la couche prcdente. Ce qui est primordial dans la dfinition, c'est que les entres appartiennent uniquement la couche prcdente, c'est--dire que la structure en couches est respecte et qu'il n'y a pas de rtroaction. Supposons que les cellules lmentaires soient des perceptrons linaires seuil, on parle alors de perceptrons multi-couches (PMC) linaire seuil. Soit n variables binaires, il est facile de montrer que le OU n-aire est calculable par un perceptron linaire seuil et que toute conjonction sur les littraux dfinis partir des n variables est calculable par un perceptron linaire seuil. tant donn une fonction boolenne sur n variables, cette fonction peut tre mise sous forme normale disjonctive, il suffit alors que chaque cellule de la couche cache calcule une conjonction et que la cellule de sortie calcule la disjonction des rsultats. Nous avons ainsi dmontr que : Proposition 1 Toute fonction boolenne peut tre calcule par un PMC linaire seuil comprenant une seule couche cache. Cependant, si l'on utilise cette mthode pour construire un rseau de neurones pour calculer une fonction boolenne quelconque, la couche cache pourra contenir jusqu' 2n neurones (o n est la taille de la rtine), ce qui est inacceptable en pratique. On peut montrer par ailleurs que cette solution est loin d'tre la meilleure (voir le cas de la fonction parit dans
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 17 sur 26
06/11/02 16:00
l'exercice ??). Pour pouvoir utiliser les rseaux multi-couches en apprentissage, deux choses sont indispensables : une mthode indiquant comment choisir une architecture de rseau pour rsoudre un problme donn. C'est--dire, pouvoir rpondre aux questions suivantes : combien de couches caches ? combien de neurones par couches caches ? une fois l'architecture choisie, un algorithme d'apprentissage qui calcule, partir de l'chantillon d'apprentissage, les valeurs des coefficients synaptiques pour construire un rseau adapt au problme. Le premier point est encore un sujet de recherche actif : quelques algorithmes d'apprentissage auto-constructifs ont t proposs. Leur rle est double : apprentissage de l'chantillon avec un rseau courant, modification du rseau courant, en ajoutant de nouvelles cellules ou une nouvelle couche, en cas d'chec de l'apprentissage. Il semble assez facile de concevoir des algorithmes auto-constructifs qui classent correctement l'chantillon, mais beaucoup plus difficile d'en obtenir qui aient un bon pouvoir de gnralisation. Il a fallu attendre le dbut des annes 80 pour que le deuxime problme trouve une solution : l'algorithme de rtropropagation du gradient, dcouvert simultanment par des quipes franaise et amricaine. Cet algorithme est, comme son nom l'indique, bas sur la mthode du gradient. Il est donc ncessaire de considrer des fonctions d'erreur drivables. Ceci implique qu'il n'est pas possible de considrer comme cellule lmentaire un perceptron linaire seuil. L'ide est alors de prendre comme cellule lmentaire un perceptron linaire. Malheureusement, dans ce cas, l'introduction de cellules supplmentaires n'augmente pas l'expressivit. En effet, une combinaison linaire de fonctions linaires est une fonction linaire ! Nous allons donc avoir besoin de considrer une nouvelle cellule lmentaire. La sortie de cette cellule sera une fonction de variable relle drivable qui est une approximation de la fonction de Heaviside. Nous donnons dans la section suivante la dfinition d'une telle cellule et prsentons l'algorithme de rtropropagation du gradient.
3.3.2
Cette fonction est une approximation indfiniment drivable de la fonction seuil de Heaviside, d'autant meilleure que k est grand. Nous prendrons k=1 dans la suite, soit la fonction s (voir figure ??) dfinie par : 1 ex s(x) = x = (3.17) e +1 1+e-x
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 18 sur 26
06/11/02 16:00
On peut remarquer que la drive de la fonction s est simple calculer : s'(x) = ex = s(x)(1-s(x)) (1+ex)2 (3.18)
Il est essentiel que ce calcul soit simple car la drive de cette fonction sera utilise dans la rgle de mise jour des poids par l'algorithme de rtropropagation du gradient. On utilise aussi parfois, pour cette raison, la fonction th(x) qui est une approximation de la fonction de Heaviside dont la drive est gale 1-th2 (x). Nous pouvons maintenant dfinir les rseaux considrs dans la suite de ce cours : Dfinition 9 Une cellule lmentaire n entres relles x= (x1 ,...,xn ) est dfinie par les poids synaptiques rels w= (w1 ,...,wn ) et la sortie o est calcule par la formule suivante :
n
o( x ) =
1 o y= x .w= 1+e-y
i=1
wi xi
(3.19)
un perceptron multi-couches (PMC) est un rseau de neurones couches caches avec les cellules lmentaires ainsi dfinies. Introduction de l'algorithme Le principe de l'algorithme est, comme dans le cas du perceptron linaire, de minimiser une fonction d'erreur. Il s'agit ensuite de calculer la contribution cette erreur de chacun des poids synaptiques. C'est cette tape qui est difficile. En effet, chacun des poids influe sur le neurone correspondant, mais, la modification pour ce neurone va influer sur tous les neurones des couches suivantes. Ce problme est parfois dsign sous le nom de << Credit Assignment Problem >>. Soit un PMC dfini par une architecture n entres et p sorties, soit w le vecteur des poids synaptiques associs tous les liens du rseau. L'erreur du PMC sur un chantillon d'apprentissage S d'exemples (xs,cs) est dfinie par :
p
E(w) = 1/2
( x s, c s) S k=1
(cks - oks)2
(3.20)
o oks est la k-ime composante du vecteur de sortie os calcul par le PMC sur l'entre xs. L'erreur mesure donc l'cart entre les sorties attendue et calcule sur l'chantillon complet. On suppose S fix, le problme est donc de dterminer un vecteur w qui minimise E(w). Cependant, de la mme faon que pour le perceptron avec la rgle de Widrow-Hoff, plutt que de chercher minimiser l'erreur globale sur l'chantillon complet, on cherche minimiser l'erreur sur chaque prsentation individuelle d'exemple. L'erreur pour un exemple est :
p
E( x , c )(w) = 1/2
k=1
(ck - ok)2
(3.21)
Nous notons E la fonction E(x,c), E est une fonction des poids synaptiques, pour appliquer la mthode du gradient, il nous faut valuer les drives partielles de cette fonction E par rapport aux poids synaptiques. Les calculs qui suivent sont faciles. La seule complication provient de la complexit des notations et des indices utiliss, complication due la structure du PMC. Nous utilisons les notations suivantes (voir figure ??) :
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 19 sur 26
06/11/02 16:00
chaque cellule est dfinie par un indice, le rseau comporte p cellules de sortie, si i est l'indice d'une cellule de sortie, ci est la sortie attendue pour cette cellule sur l'entre x, wij est le poids synaptique associ au lien entre cellule j vers la cellule i, ce qui implique qu'elles se trouvent sur deux couches successives par dfinition de l'architecture, xij est l'entre associe au lien entre cellule j vers cellule i, Pred(i) est l'ensemble des cellules dont la sortie est une entre de la cellule i ; ceci implique que la cellule n'est pas une cellule d'entre et que tous les lments de Pred(i) appartiennent la couche prcdente de celle laquelle appartient la cellule i, yi l'entre totale de la cellule i, soit yi = j Pred(i) wij xij, oi est la sortie de la cellule i, soit oi=s(yi), Succ(i) est l'ensemble des cellules qui prennent comme entre la sortie de la cellule i, ceci implique la cellule n'est pas une cellule de sortie et que tous les lments de Succ(i) appartiennent la couche suivante de celle laquelle appartient la cellule i.
Il nous reste maintenant valuer E(w)/ wij que nous noterons E/ wij. Tout d'abord remarquons que wij ne peut influencer la sortie du rseau qu' travers le calcul de la quantit yi, ce qui nous autorise crire que : E E yi E x wij= yi wij= yi ij (3.22)
Il nous suffit donc de calculer E/ yi, pour cela, nous allons distinguer deux cas : le cas o la cellule i est une cellule de sortie et le cas o c'est une cellule interne. La cellule i est une cellule de sortie Dans ce cas, la quantit yi ne peut influencer la sortie du rseau que par le calcul de oi. Nous avons donc : E E oi yi= oi yi (3.23) Nous allons maintenant calculer chacune des deux drives partielles apparaissant dans l'quation ??. Pour la premire de ces deux drives nous avons :
p
E 1 oi= oi2
(ck - ok)2
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 20 sur 26
06/11/02 16:00
k=1
Seul le terme correspondant k=i a une drive non nulle, ce qui nous donne finalement : E 1 2 oi= oi2(ci - oi) = -(ci-oi) (3.24) Pour la seconde des deux drives de l'quation ??, en utilisant la dfinition du calcul de la sortie d'une cellule lmentaire et la formule de calcul de la drive de la fonction sigmode donne en ??, nous avons : oi s(yi) = s(yi)(1-s(yi))=oi(1-oi) (3.25) = yi yi En substituant les rsultats obtenus par les quations ?? et ?? dans l'quation ??, nous obtenons : E = -(ci-oi)oi(1-oi) (3.26) yi La cellule i est une cellule interne Dans ce cas, la quantit yi va influencer le rseau par tous les calculs des cellules de l'ensemble Succ(i). Nous avons alors : E yi= Soit encore : E = o (1-oi) yi i E yk wki (3.27) E yk yk yi =
k Succ(i)
E yk oi yk oi yi =
k Succ(i)
E yk
k Succ(i)
wki
oi (1-oi)
k Succ(i)
Par l'tude de ces deux cas, nous avons obtenu deux quations ?? et ?? qui nous permettent de calculer les drives partielles E/ yi pour toute cellule i. Le calcul devra tre fait pour les cellules de sortie puis des cellules de l'avant-dernire couche jusqu'aux cellules de la premire couche. C'est pour cette raison que l'on parle de << rtropropagation >>. Grace l'quation ??, nous pouvons calculer toutes les drives partielles E(w)/ wij. Enfin, pour en dduire la modification effectuer sur les poids synaptiques, il nous reste simplement rappeler que la mthode du gradient nous indique que : E(w) D wij = - e (3.28) wij Tous les lments sont donc en place pour nous permettre de dfinir l'algorithme de rtropropagation du gradient. Algorithme de rtropropagation du gradient Pour crire l'algorithme, nous allons simplifier quelques notations. Nous appelons di la quantit - E/ yi. En utilisant les quations ?? , ?? , ?? et ??, nous obtenons les formules suivantes : pour une cellule i de sortie, nous avons : pour une cellule i interne, nous avons : di = oi(1-oi) dk wki
k Succ(i)
di = oi(1-oi)(ci-oi)
(3.29)
(3.30)
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 21 sur 26
06/11/02 16:00
(3.31)
la rgle de modification des poids pour le perceptron linaire est : wi wi + e (c-o)xi. Dans le cas du PMC, cette rgle est : wij wij + e di xij. Ces deux rgles sont trs similaires, le terme d'erreur c-o est remplac par un terme plus compliqu di, pour une cellule i de sortie, la quantit di correspond l'erreur usuelle ci-oi multiplie par la drive de la fonction sigmode, pour une cellule i interne, le calcul de di dpend de la somme pondre des erreurs des cellules de la couche suivante, aprs prsentation de l'entre x et calcul de la sortie o, le calcul des erreurs di sera effectu de la couche de sortie vers la couche d'entre. Il ne reste qu' crire l'algorithme. Algorithme de rtropropagation du gradient : Entre : un chantillon S de Rn Rp ; e un PMC avec une couche d'entre C0 , q-1 couches caches C1 , ..., Cq -1, une couche de sortie Cq , n cellules. Initialisation alatoire des poids wi dans [-0.5,0.5] pour i entre 1 et n Rpter Prendre un exemple (x,c) de S et calculer o - - calcul des di par rtropropagation Pour toute cellule de sortie i di oi(1-oi)(ci-oi) finPour Pour chaque couche de q-1 1 Pour chaque cellule i de la couche courante di = oi(1-oi) k Succ(i) dk wki finPour finPour - - mise jour des poids Pour tout poids wij wij + e di xij finPour finRpter Sortie : Un PMC dfini par la structure initiale choisie et les wij Remarques L'algorithme de rtroprogation du gradient est une extension de l'agorithme de Widrow-Hoff. En effet, dans les deux cas, les poids sont mis jour chaque prsentation d'exemple et donc on tend minimiser l'erreur calcule pour chaque exemple et pas l'erreur globale. La mthode donne de bons rsultats pratiques. Dans la plupart des cas, on rencontre peu de problmes dus aux minima locaux, peut tre grce au fait que l'on minimise une erreur locale. Cependant, les problmes de minima locaux existent. Pour amliorer l'algorithme vis vis de ce problme, mais aussi pour essayer d'amliorer la vitesse de convergence, une variante couramment utilise consiste pondrer la modification des poids en fonction du nombre d'itrations dja effectu. Plus formellement, on fixe une constante a [0,1[ appele moment (momentum) ; soit t un compteur du nombre d'itrations de la boucle principale, la rgle de modification des poids devient : wij wij + D wij(t) D wij(t) = e di xij + a D wij(t-1) L'intrt de cette rgle est de prendre en compte les modifications antrieures des poids dans le but d'viter des
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html Page 22 sur 26
06/11/02 16:00
oscillations perptuelles. Le critre d'arrt n'est pas prcis dans l'algorithme. Ce critre peut tre : << arrter ds que l'erreur estime passe sous un seuil prdfini >>. On retrouve alors le problme toujours prsent en apprentissage de la sur-spcialisation. En effet, le critre d'arrt dpend de l'erreur observe mesure sur l'ensemble d'apprentissage et non de l'erreur relle. Les mthodes pour palier ce problme sont identiques celles utilises pour les arbres de dcision. Par exemple, utiliser un ensemble test, quand c'est possible, pour estimer l'erreur relle. Ou encore, utiliser des techniques d'lagage qui tentent de diminuer la taille du rseau. Le mode de prsentation des exemples est galement absent de notre algorithme. En rgle gnrale, on choisit une prsentation quitable. Le choix de l'architecture initiale du rseau reste un problme difficile. Ce choix peut tre fait par l'exprience. Des mthodes dites << autoconstructives >> existent : il s'agit d'ajouter des cellules au cours de l'apprentissage pour que l'apprentissage se fasse bien. Mais ces mthodes rencontrent souvent le problme de la sur-spcialisation. L'architecture peut aussi tre choisie l'aide de mthodes bases sur les algorithmes gntiques. Le modle et l'architecture tant choisie, un problme est galement de choisir les << bonnes >> valeurs pour les paramtres e et a. Pour cela, on dcoupe l'ensemble d'apprentissage en un ensemble d'apprentissage, un ensemble de validation et un ensemble test. Lors de la phase d'apprentissage, on arrte priodiquement l'apprentissage, on estime l'erreur relle sur l'ensemble de validation, on met jour les paramtres e et a en fonction de la variation de cette erreur estime. L'ensemble test sert estimer l'erreur relle la fin de l'apprentissage. L'algorithme de rtropropagation du gradient a pu tre tendu certaines classes de rseaux rcurrents pour lesquels il y a rtroaction. Ces rseaux sont trs utiles pour la prdiction de sries temporelles. Enfin, terminons par une dernire remarque sur la puissance de reprsentation des rseaux multi-couches. Nous avons vu que toute fonction boolenne peut tre calcule par un PMC linaire seuil comprenant une seule couche cache dont on rappelle qu'elle peut tre de taille exponentielle. Ce rsultat a t gnralis par Hornik en 1989 au cas des fonctions relles et des PMC : la plupart des fonctions numriques peuvent tre approximes avec une prcision arbitraire par des rseaux une seule couche cache. Mais comme dans le cas boolen, cette couche cache peut tre dmesurment grande et le thorme de Hornik est essentiellement un rsultat thorique sur l'expressivit des rseaux multi-couches.
3.3.3
Applications
De nombreuses applications de l'algorithme de rtropropagation du gradient ont t ralises. Parmi les plus souvent cites, nous en mentionnons deux : NetTalk de Sejnowski et les familles italo-amricaines de Hinton
NetTalk
NetTalk est un rseau qui a appris transformer un texte (en anglais) en une suite de phonmes correspondant sa lecture. Coupl en entre un scanner et un OCR et en sortie un synthtiseur de paroles, ce rseau est donc capable de lire un texte haute voix. Description de l'architecture du rseau : la couche d'entre comprend 7 groupes de 29 neurones. Chaque groupe correspond un caractre cod directement (non compress). Les 7 caractres en entre forment un contexte local de trois caractres entourant de part et d'autre un caractre central. Par exemple, le caractre 'c' se prononce diffremment dans 'cygne' et dans 'carte'. Les ambiguts les plus courantes semblent pouvoir tre levs avec un tel contexte. la couche cache contient 80 neurones la couche de sortie comprend 26 neurones servant coder les caractristiques des phonmes : la zone vibratoire (labiale, dentale, ...), le type de phonme (arrt, nasale, fricative, ...), la hauteur des voyelles, la ponctuation (silence, pause, lision, arrt net), l'accentuation, ...
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 23 sur 26
06/11/02 16:00
Le rseau comprend donc au total 309 neurones et comme les connexions sont compltes d'une couche l'autre, 18320 connexions. D'aprs les rsultats publis : 50000 mots appartenant un corpus de 1000 mots ont t prsents au rseau. Le temps d'apprentissage a t : une nuit sur un VAX 780. Les performances : 95% pour l'ensemble d'apprentissage et 75% pour les nouveaux mots. Citons ce propos Jean-Pierre Nadal : << Dans ses confrences, T. Sejnowski faisait entendre l'auditoire un enregistrement sonore pris divers moments au cours de la phase d'apprentissage. On pouvait alors entendre le rseau d'abords balbutier, puis on distinguait un dcoupage du texte en phrases, jusqu' finalement une lecture raisonnable du texte. L'effet est videmment spectaculaire, et il n'y a pas de doute, qu' la suite de ces dmonstrations, nombreux sont ceux qui se sont convertis au connexionnisme, si je puis dire ...On a ainsi vu, et ceci principalement aux Etats-Unis, se dvelopper la vague, ne en 1985, d'une activit impressionnante de ceux pour qui, << a y tait >> : pour rsoudre n'importe quel problme, il suffit de mettre dans une bote noire quelques neurones artificiels, d'injecter une base de donnes et de laisser tourner la << backprop >> pendant une nuit ; au matin, miracle, on retrouve une machine intelligente. Comme l'a dit Y. Le Cun, l'un des inventeurs de l'algorithme, l'usage de la RPG (rtropropagation du gradient) est la fois wide et wilde (large et sauvage) ... En fait, les performances de NetTalk taient loin d'tre exceptionnelles, si on les compare ce qui se fait de mieux dans ce domaine de la lecture automatique. Il n'empche que c'est une trs jolie application, qu'on peut considrer comme le prototype de l'utilisation de la RPG pour un problme rel. Cette simulation dmontre le pouvoir potentiel des rseaux de neurones : un temps de calcul raisonnable, une mise en oeuvre facile, et des performances acceptables. Mais elle montre aussi les limitations de l'approche : les performances ne sont que acceptables. >>
Les familles italo-amricaines
Les deux arbres gnalogiques ci-dessous prsentent les relations entre les membres de deux familles comprenant chacune 12 personnes. On remarque que ces arbres sont isomorphes. Les relations sont : pre, mre, mari, femme, fils, fille, oncle, tante, frre, soeur, neveu et nice. On souhaite faire apprendre ces relations un rseau de neurones, c'est--dire que pour tout triplet de la forme (<personne1>,<relation>,<personne2>) dcrit dans l'un des deux arbres, et toute entre gale (<personne1>,<relation>), le rseau calcule la rponse (<personne2>).
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 24 sur 26
06/11/02 16:00
Pour cela, Hinton utilise un rseau 3 couches caches dont l'architecture est dcrite ci-dessous. Un groupe de 24 cellules d'entre sert coder les 24 personnes possibles. Un deuxime groupe de 12 cellules d'entre sert coder les relations. Chacun de ces groupes est connect un groupe de 6 cellules. Le rle de cette couche est de coder l'information en entre de manire optimale relativement au problme pos. La couche centrale contient 12 cellules ; c'est ce niveau que la liaison persone-relation doit s'effectuer. L'avant dernire couche contient 6 cellules qui devra contenir une version code de la sortie.
Le rseau a t entrain sur 100 des 104 relations possibles et aprs apprentissage prolong, il a t capable de gnraliser correctement sur les 4 exemples restants. Citons Hinton ce propos : <<It generalized correctly because during the training it learned to represent each of the people in terms of important features such as age, nationality, and the branch of the family tree that they belonged to, even these << semantic >> features were not at all explicit in the input or output vectors. Using these underlying features, much of the information about family relationships can be captured by a fairly small number of << micro-inferences >> between features. For example, the father of
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html Page 25 sur 26
06/11/02 16:00
a middle-aged person is an old person, and the father of an Italian person is an Italian person. So the features of the output person can be derived from the features of the input person and of relationship. The learning procedure can only discover these features by searching for a set of features that make it easy to express the associations. Once these features have been discovered, the internal representation of each person (in the first hidden layer) is a distributed pattern of activity and similar people are represented by similar patterns. Thus the network constructs its own internal similarity metric. This is a significant advance over simulations in which good generalization is achieved because the experimenter chooses representations that already have an appropriate similarity metric>>.
3.3.4
Conclusion
Autant le perceptron est un dispositif trs rudimentaire d'apprentissage, autant des algorithmes comme la rtropropagation du gradient appliqu des rseaux multicouches permettent d'aborder des problmes dj trs complexes. Parmi les applications les plus frquentes de ces rseaux, on peut noter : la reconnaissance des formes. Il semble que ce soit l un des domaines o les rseaux neuronaux sont les plus performants. On peut signaler comme exemple un rseau reconnaissant les visages (voir ouvrage de Mitchell [Mit97]). c'est un exemple de solution connexionniste d'un problme pour lequel les mthodes classiques de l'intelligence artificielle ont t trs peu performantes. concurrence avec les mthodes statistiques. Les rseaux neuronaux sont de plus en plus utiliss en marketing, scoring, ...avec des succs divers. D'aprs certains statisticiens, si ces nouvelles mthodes sont intressantes et parfois plus performantes que les techniques statistiques usuelles, elles sont aussi moins robustes, moins bien fondes et partant, plus dangereuses. la cognition. L'espoir qu'ont suscit les techniques connexionnistes dans la communaut des sciences cognitives provient du fait que l'on a pens avoir trouv avec elles un dispositif expliquant ou montrant comment le << symbolique >> pouvait merger spontanment de l'exprience. Le compte-rendu des familles de Hinton vont dans ce sens. Il me semble que les travaux et exprimentations visant tudier ce phnomne n'avancent que trs lentement.
http://www.grappa.univ-lille3.fr/polys/apprentissage/sortie005.html
Page 26 sur 26