Vous êtes sur la page 1sur 13

Adrien Verg

Lyce Michelet

TIPE 2009

Rseaux de neurones articiels


L'objet de ce TIPE est d'tudier et de comprendre les mcanismes d'apprentissage des rseaux de neurones de manire thorique dans un premier temps, pour ensuite valuer et optimiser leurs performances par une approche exprimentale (au moyen d'un rseau de neurones que l'on aura mis au point).

Table des matires


I Prsentation gnrale
1 Introduction 2 Le modle du neurone
2.1 2.2 Neurone biologique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Neurone formel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2
2 2
2 2

3 Structure d'un rseau neuronal 4 Entranement d'un rseau 5 Applications

3 4 4

II Approche thorique
6 Modlisation mathmatique du rseau 7 Le perceptron multicouche 8 Apprentissage par rtropropagation du gradient
8.1 8.2 Rgle du moindre carr pour un perceptron monocouche linaire . . . . . . . . . . . . . . Rtropropagation pour un perceptron multicouche . . . . . . . . . . . . . . . . . . . . . .

5
5 5 6
6 7

III

tude exprimentale, mesures, optimisation

9
9 9 11 12

9 laboration d'un programme "testeur de rseaux" simple 10 Inuence de la vitesse d'apprentissage 11 Inuence de l'ordre de prsentation des exemples 12 Inuence du nombre de couches

IV Bibliographie

13

Premire partie

Prsentation gnrale
1 Introduction
Un rseau de neurones articiel est une structure compose d'entits capables de calcul et intragissant entre eux, les neurones. Il permet de traiter, par le biais de l'informatique, des problmes de direntes natures que les outils classiques ont du mal rsoudre. En eet, son fonctionnement s'inspire de celui des cellules neuronales animales, et est donc dirent des mthodes de calcul analytiques que l'on utilise ordinairement. Il s'avre trs puissant dans des problmes de reconnaissance, classication, approximation ou prvision. tudions de plus prs le fonctionnement d'un rseau neuronal classique.

2 Le modle du neurone
2.1 Neurone biologique
En biologie, un neurone est une cellule nerveuse dont la fonction est de transmettre un signal lectrique dans certaines conditions. Il agit comme un relai entre une couche de neurones et celle qui la suit. Les caractristiques des neurones sont encore mal connues (et font l'objet de recherches) mais on connait leur principe d'action. Le corps d'un neurone est reli d'une part un ensemble de dendrites (entres du neurones) et d'autre part un axone, partie tire de la cellule, qui reprsentera pour nous sa sortie. Le neurone tudi est connect aux neurones qui l'environnent : il reoit au niveau de ses dendrites les signaux lectriques des neurones "en amont", propags par les axones de ces derniers. Les charges lectriques s'accumulent dans le neurone jusqu' dpasser un certain seuil : ce moment la transmission du signal lectrique se dclenche via son axone vers d'autres neurones "en aval".

On remarque que les liaisons axone/dendrite entre deux neurones (connexions synaptiques) ne sont pas toutes de la mme ecacit. Ainsi l'entre associe une certaine dendrite du neurone pourra avoir plus d'inuence qu'une autre sur la valeur de sortie. On peut reprsenter la qualit de la liaison par un poids, sorte de coecient s'appliquant au signal d'entre. Le poids sera d'autant plus grand que la liaison est bonne. Un poids ngatif aura tendance inhiber une entre, tandis qu'un poids positif viendra l'accentuer.

2.2 Neurone formel


Pour reproduire le neurone biologique, on se sert d'un modle mathmatique : le neurone formel. Il doit tre capable de :  recevoir en entre direntes informations provenant des neurones environnants,  analyser ces informations, de manire envoyer en sortie une rponse,  ajuster cette rponse avant de l'envoyer aux neurones suivants.

Il est donc tout naturel d'assimiler un neurone un triplet (poids , biais , fonction d'activation f ) :  on multiplie chaque valeur d'entre par la composante des poids correspondante, ce qui revient faire le produit scalaire entre es poids,

 on compare la valeur obtenue une valeur de rfrence : le biais, ce qui revient soustraire le scalaire biais,  enn on applique la fonction d'activation cette dirence ; la fonction d'activation est souvent de faon avoir une sortie comprise entre 0 et 1. Par exemple dans le cas d'une fonction d'activation de type seuil, la sortie sera : 0 si entre es poidsbiais 0 es poidsbiais > 0. 1 si entre Le modle mathmatique sera plus amplement repris dans la deuxime partie, mais on peut dj donner des exemples de fonctions d'activation utilises pour les rseaux de neurones. Elles ressemblent le plus souvent des fonctions tout ou rien : Nom Valeur Reprsentation

Seuil

f (x) = 0 si x 0 f (x) = 1 si x > 0

Seuil symtrique

f (x) = 1 si x < 0 f (0) = 0 f (x) = 1 si x > 0 f (x) = 0 si x < 0 f (x) = x si 0 x 1 f (x) = 1 si x > 1

Linaire sature

Linaire

f (x) = x

Sigmode

f (x) =

1 1 + ex

Tangente hyperbolique

f (x) =

ex ex ex + ex

3 Structure d'un rseau neuronal


En superposant dans une mme couche, la couche 1, s1 neurones formels e1 entres, on obtient un systme admettant e1 entres et s1 sorties (chaque neurone produisant une sortie scalaire). Puis lorsqu'on concatne N couches connectes les unes la suite des autres (sn1 = en : le nombre d'entres d'une couche tant gal au nombre de sorties de la prcdente), on obtient un rseau de N couches de neurones. La N e couche est appele couche de sortie, tandis que les couches prcdentes sont des couches caches. Le choix du nombre de couches et de neurones dpend du problme que l'on souhaite rsoudre. En eet un rseau sera apte traiter ce problme si les donnes de ce dernier fournissent e1 variables d'entres et ncessitent sN variables en sortie. Un exemple : on souhaite classer des images de 55 = 25 pixels dans 2 catgories, selon des critres dpendant de la couleur et de la disposition de ces pixels. La premire couche de notre rseau devra comporter 25 entres, une pour la valeur de chaque pixel, et la couche de sortie fournira 2 valeurs : les "anits" respectives qu'aura l'image avec les deux catgories (si la premire anit est la plus grande, l'image sera classe dans la catgorie 1).

4 Entranement d'un rseau


La particularit du rseau de neurones comme outil mathmatique repose sur sa capacit d'apprentissage : grce un processus d'entranement, on peut amliorer les performances du rseau, c'est--dire qu'en rponse une certaine entre, il fournisse la "bonne" sortie, le sortie qu'on voudrait obtenir. Le principe est le suivant : on peut modier les caractristiques du rseau (les poids de ses liaisons par exemple) en raction aux stimuli extrieurs qu'on lui soumet (les valeurs d'entre), de manire ce qu'il ragisse diremment si un mme stimulus lui est appliqu ultrieurement. Le rseau s'amliore ainsi car chaque erreur qu'il fait, il subit une correction qui le fait ragir diremment s'il est confront la mme situation. Le but tant qu'une fois l'apprentissage termin, le rseau eectue la tche pour laquelle il a t concu sans se tromper, c'est--dire qu'il fournisse pour chaque stimulus d'entre la "bonne" sortie, la sortie dsire par l'oprateur. L'apprentissage n'est bien sr pas ralis par l'oprateur par modication des paramtres du rseau la main, mais par un algorithme d'entranement. De nombreux algorithmes existent ce jour, que l'on peut sparer en deux types :  Les apprentissages superviss : un "professeur" fournit un grand nombre de couples (entre e , sortiede sir e epourcetteentr e e ), et la correction s'eectue selon l'erreur obtenue pour chaque couple = ( erreur sortieobtenue sortiede sir e e ). Si l'apprentissage est ecace, la norme de l'erreur diminue globalement. On l'appelle aussi apprentissage par des exemples.  Les apprentissages non-superviss : sans professeur dnissant la sortie dsire pour une entre donne, donc sans signal d'erreur, le rseau apprend par lui-mme classer des entres similaires en trouvant des points communs aux stimuli appliqus. La rptition de la correction en raction des stimuli en entre constitue le processus d'apprentissage. Il faut parfois des milliers d'itrations de l'algorithme pour arriver un rsultat. Nous verrons un algorithme d'entranement plus en dtail dans la deuxime partie.

5 Applications
Un rseau de neurones est avant tout un outil de traitement de l'information. force d'apprentissage, on peut le former des tches de reconnaissance, classication, approximation, prvision... On utilise par exemple des rseaux de neurones pour rduire l'cho dans les communications tlphoniques outre-mer (rseau Adaline). Ils peuvent aussi servir pour l'limination du bruit, les prvisions mtorologiques, la compression de donnes, la modlisation du march montaire, le dveloppement d'Intelligence Articielle... Grce leur capacit d'apprentissage, les rseaux de neurones fournissent de trs bons rsultats pour des tches de reconnaissance. Il existe de nombreuses applications dans le traitement du son et de l'image, par exemple dans des logiciels de reconnaissance optique de caractres. C'est parce qu'un tel programme est assez facile mettre en oeuvre que nous avons choisi de le dvelopper et de le tester dans la troisime partie. Une application qui a fait parler d'elle est le projet NetTalk, rseau de 309 neurones reli en entre un scanner et branch en sortie un haut-parleur, qui a appris lire un texte haute voix ! Alors que les outils informatiques traditionnels sont inadapts ce genre de problme, les rseaux constituent une nouvelle approche prometteuse. Car une fois entran, un rseau est capable de lire des nouveaux mots qu'ils n'a jamais vu auparavant (grce sa capacit d'adaptation). Ainsi, l'entranement de NetTalk qui a consist lui rabcher un dictionnaire de 50 000 mots pendant toute une nuit, a donn de bons rsultats : au matin il lisait sans faute 95% des mots du dictionnaire d'apprentissage et 75% des nouveaux mots. Enn, on peut citer des applications de rseaux faits de vrais neurones "animaux" cette fois-ci. Des chercheurs de l'Universit de Reading en Angleterre ont russi dvelopper une intelligence articielle pour robot l'aide de neurones de rats : mis en culture et connects par des lectrodes au systme moteur de la machine, celle-ci apprend viter les murs force de se cogner !

Deuxime partie

Approche thorique
6 Modlisation mathmatique du rseau
Comme on l'a entraperu dans la premire partie, l'eet d'un neurone e1 entres peut tre modlis par une forme linaire de Re1 dans R (qui multiplie les composantes de l'entre par des poids w bien choisis), laquelle on soustrait un scalaire biais et l'on applique enn une fonction d'activation f (de type seuil, tangente hyperbolique, etc. a priori non linaire) au rsultat. L'action d'une couche de s1 neurones est donc assimilable une application linaire de Re1 dans Rs1 , que l'on reprsentera ici par une matrice e1 colonnes et s1 lignes : une entre e1 composantes aura pour image un vecteur s1 composantes (une pour chaque neurone). On soustrait cette premire sortie un biais B1 qui est cette fois-ci vectoriel, et l'on applique une fonction d'activation f1 chaque composante du vecteur obtenu.

Un rseau de neurones tout entier (N couches empiles les unes la suite des autres) est donc une successions de N matrices de tailles ei si (1 i N ), auxquelles on associe, chaque fois, un vecteur biais bi et une fonction d'activation fi . Par souci de simplicit, on prendra la mme fonction d'activation fi pour tous les neurones d'une mme couche. En revanche, utiliser des fonctions direntes pour les direntes couches peut s'avrer assez intressant (selon l'usage du rseau).

Exemple de l'action de la couche 1 :

X R
e1

W1 X B1 R
s1

f1 (W1 X B1 ) = X1 Rs1

Remarque : chaque couche a ses propres paramtres (nombre d'entres, nombre de sorties, fonction d'activation) ; mais puisque chaque couche prend en entre les valeurs de sortie de la couche prcdente, on doit toujours avoir ei = si1 .

7 Le perceptron multicouche
Le perceptron multicouche est un type de rseau de neurones parmi les plus utiliss. Son fonctionnement est le suivant : l'information se propage de couche en couche, suivant le modle dcrit plus haut, toujours dans le mme sens jusqu' la sortie. On donne au rseau l'information sous forme d'un vecteur de Re1 et on rcupre l'information traite sous forme d'un vecteur de RsN . Dans certains rseaux autres que le perceptron, plus complexes, l'information ne circule pas en sens unique : il peut y avoir rtroaction. Nous ne nous intresserons qu'au cas du perceptron. Un exemple trs simple : on considre un perceptron monocouche, dont la fonction sera de dtecter si un point du plan R2 est au-dessus ou en dessous de la droite d'quation y = x + 2. On veut : 5

 en entre, les coordonnes x et y du point de R2 (= e1 = 2)  en sortie, la valeur +1 si le point est au-dessus de la droite, 1 s'il est en dessous (= s1 = 1). Utilisons alors la fonction d'activation seuil symtrique, qui tout rel positif associe +1, tout rel ngatif 1 et 0 lui-mme ; un biais b = 2 ; et une matrice de poids W = 1 1 . Si notre point est au dessus de la droite, c'est--dire si y > x + 2, alors W X b = x + y 2 > 0 et la fonction d'activation donnera = +1. Si le point sur la droite, y = x + 2 et on obtient = 0. Si le point est en dessous, y < x + 2 et alors = 1. Cet exemple de rseau un neurone est peu intressant : on a du dterminer nous-mme W et b tels qu'il fonctionne. Le principal intrt d'un rseau de neurones est sa capacit d'auto-apprentissage.

8 Apprentissage par rtropropagation du gradient


Soit un rseau de type perceptron, dont les N couches ont chacune un nombre d'entres, de sorties, et une fonction d'activation bien dtermins, mais dont les poids et biais sont initialement inadapts (les matrices Wi et les vecteurs Bi sont remplis de coecients alatoires par exemple). Le rseau est ignorant et dpourvu d'exprience : pour une entre donne, il ne fournit pas la sortie qu'on souhaiterait obtenir. (schma : rseau ignorant, rseau en cours d'apprentissage, rseau apte) Pour rendre le rseau performant, et donc utilisable sans qu'on n'ait contrler si les sorties sont bonnes, on doit l'entraner en lui imposant un apprentissage de type supervis. Rappelons le principe de l'apprentissage supervis : un "professeur" donne un bon nombre de couples (entre e, sortiede sir e e ) pour que le rseau s'entrane associer chaque entre, la sortie correcte. chaque stimulus d'information qu'on soumet au rseau, si la sortie obtenue n'est pas la sortie thorique du professeur, on modie les coecients de telle sorte que si on recommence, la sortie soit cette fois plus proche de la sortie dsire. La correction selon la rgle de moindre carr permet de faire cela. L'algorithme d'entranement est la ritration de ce procd sur de multiples exemples et de nombreuses fois. Il est possible de montrer que sous certaines conditions, les rponses du rseau sont sans fautes en un nombre ni d'itrations. Ce sont les eets de ces conditions que nous avons tudies dans ce TIPE (cf troisime partie).

8.1 Rgle du moindre carr pour un perceptron monocouche linaire


tudions le cas d'une couche (N = 1) ayant une fonction de tranfert linaire (f1 = IdR ). Pour commencer, on va s'intresser une couche ne contenant qu'un seul neurone (s1 = 1). Notre modlisation du rseau tant linaire, on passera facilement au cas de plusieurs neurones en appliquant nos rsultats chacun d'entre eux (plus tard). chaque stimulus qu'on applique en entre du rseau (sous la forme d'un vecteur X Re1 ), on obtient une sortie Y R qui est a priori dirente de la sortie dsire Yd . On peut donc dnir l'erreur pour chaque stimulus : E = Y Yd L'erreur quadratique tant le carr de cette erreur :

= E2
La rgle de moindre carr consiste modier les coecients (poids et biais) de la couche de manire rduire l'erreur quadratique. Pour cela on va "descendre le gradient", c'est--dire modier les coecients de W et b dans la direction de diminution de l'erreur quadratique. (schma avec les minima local et global) Calcul du vecteur gradient de l'erreur quadratique : en crivant W = [wij ] et X = [xj ] (i = 1, 1 j e1 )

1 j e1 ,

[]j =

E 2 E (Y Yd ) ((W X b) Yd ) = = 2E = 2E = 2E w1j w1j w1j w1j w1j e1 k=1 w1k xk (W X ) = 2E = 2xj E = 2E w1j w1j ((W X b) Yd ) = 2E = 2E b b

Si bien que = 2EX et

Il devient donc trs facile d'obtenir le gradient de l'erreur : il sut de multiplier l'erreur par le stimulus d'entre. Pour diminuer l'erreur, la correction consiste retrancher aux coecients les gradients obtenus multiplis par une quantit positive appele vitesse d'apprentissage. On aecte ces nouvelles valeurs aux coecients de la couche :

W b

W = W 2E tX b = b + 2E b
Ci contre, la reprsentation de l'erreur quadratique en fonction des 2 poids d'un perceptron 21. Cette mthode consiste en fait descendre le gradient pour s'approcher d'un minimum de l'erreur .

- grad - grad

On peut faire l'analogie avec l'nergie potentielle en physique : les coordonnes d'une particule dans un champ "descendent" le potentiel.

Dans le cas plus gnral o on a un nombre s1 de neurones dans notre couche, ce qui impose un biais B Rs1 et une matrice de poids W Ms1 ,e1 (R), l'erreur quadratique est un rel positif qui s'exprime comme le carr de la norme du vecteur erreur E = Y Yd , soit dans Rs1 :

= tE E
Pour chaque neurone i on modie la composante du vecteur B et la ligne de la matrice W correspondantes de la mme manire :

1 i s1 , 1 i s1 ,
Soit sous forme matricielle :

wij bi

wij 2Ei xj bi + 2Ei

(1 j e1 )

W B

W 2E tX B + 2E

8.2 Rtropropagation pour un perceptron multicouche


Dans le cas d'un perceptron quelconque N couches, on observe deux dirences par rapport l'tude prcdente :  les fonctions d'activation de chaque couche ne sont pas forcment linaires,  les donnes du "professeur" qui permettent la correction ne concernent que la sortie de la dernire couche (couche de sortie ).

Il va alors falloir trouver un moyen de corriger les couches une par une en partant de la dernire et en remontant pas pas jusqu' la premire. C'est en quoi consiste la mthode de rtropropagation du gradient.

L'algorithme de correction est toujours bas sur la descente du gradient, par exemple sur la couche de sortie N :

WN BN

W N N BN N

Mais ici les drives partielles ont chang car la fonction d'activation n'est pas toujours linaire. Cependant, si les fonctions d'activation sont drivables (ce qui n'est pas le cas de la fonction seuil : sa drive est nulle partout sauf en 0 o elle n'est pas dnie), et en notant fn la drive de fn , on peut montrer qu'il faut corriger les poids et biais de la sorte :

1 n N,

Wn Bn

Wn Sn tXn Bn + Sn
(n)

O Sn est un vecteur qui reprsente la sensibilit de l'erreur au changement de An = [ai ] = Wn Xn1 Bn dans la couche n et se calcule par rtro-rcurrence : (N ) fN (a1 ) 0 0 (N ) 0 fN (a2 ) 0 (Y Yd ) SN = 2 . . . . . . .. . . . .

0
(n)

fN (asN ) .. . t Wn+1 Sn+1 (n) fn (asn ) 0 0 . . .

(N )

1 n N 1,

fn (a1 ) 0 (n) 0 fn (a2 ) Sn = . . . . . . 0 0

L'algorithme d'apprentissage par rtropropagation du gradient peut tre rsum par les tapes :  on propage le vecteur d'entre X travers les couches, ce qui donne X1 , . . . , XN 1 , Y ,  on calcule la dernire sensibilit SN ce qui nous permet de corriger les poids et biais de la dernire couche ; puis on calcule SN 1 pour corriger l'avant dernire, . . . , et ce jusqu' la premire couche par rtropropagation. tapes que l'on rpte pour chaque couple entre/sortie dsire (X, Yd ) donn par le professeur. Chaque itration (correspodant une certaine entre) modie les coecents du rseau d'une manire qui est cense diminuer l'erreur quadratique pour l'entre donne. Pour arriver un rsultat, il convient d'entraner notre rseau plusieurs fois pour chaque couple entre/sortie dsire, pour arriver une erreur quadratique moyenne la plus basse possible. Remarque : il existe d'autres mthodes de correction de l'erreur, telle la mthode de Newton ou celle du gradient conjugu qui consiste chercher le minimum de l'erreur selon des droites dans l'espace des coecients.

Troisime partie

tude exprimentale, mesures, optimisation


9 laboration d'un programme "testeur de rseaux" simple
Pour faire l'tude exprimentale des rseaux neuronaux et dterminer les conditions pratiques qui limitent leurs performances, j'ai mis au point un programme informatique qui simule un rseau de neurones accompagn d'un algorithme d'apprentissage. J'ai d'abord cod ce programme en PHP, langage servant usuellement gnrer des pages web dynamiques et qui tait intressant pour la simplicit de son interface avec l'utilisateur : il s'agit d'hypertexte HTML. Il a donc l'apparence d'une page web, et vous pouvez tester ce rseau l'adresse internet http://www.k-netweb.net/projects/tipe/reseau/. J'ai mis le code source disposition l'adresse http://www.k-netweb.net/projects/tipe/reseau/codesource.zip. Pour des raisons de performances, j'ai du ultrieurement recoder mon programme avec un langage plus puissant : le JAVA (chaque entranement ncessite de rpter l'algorithme des centaines de fois). L'tude des performances se fera sur un exemple : un rseau de neurones dont la fonction est de reconnatre 10 images de 55 = 25 pixels reprsentant les chires de zro neuf. Chaque image est code par un vecteur dont chaque composante vaut 0 si le pixel est blanc, 1 s'il est noir.

Par exemple, pour l'image du chire zro le vecteur est (0111010001100011000101110). Le rseau prend alors en entre un vecteur de R25 et donne en sortie un vecteur de R10 . La couche de sortie comporte donc 10 neurones, qui donnent les "anits" de l'image avec les dirents chires. Idalement, le quatrime neurone (par exemple) de la couche de sortie d'un rseau correctement entran doit donner 1 si l'image reprsente le chire quatre, 0 sinon.

(1001010010111110001000010)

vecteur caractrisant quatre 0 0 0 0 1 0 0 0 0 0

En pratique, on n'obtiendra jamais un tel vecteur avec uniquement des 0 et un 1. Dans notre tude, on considrera que le rseau est oprationnel lorsqu'il associe chacune des 10 images un vecteur de R10 tel que sa plus grande composante est celle correspondant au chire. Par exemple, une sortie 0.01 0 0.2 0 0.98 0.3 0.1 0.02 0 0.07 pour l'image du chire 4 nous conviendra. Remarque : on aurait pu dcider d'avoir une sortie scalaire, qui donnerait idalement 0 pour la premire image, 1 pour la deuxime, . . . et 9 pour la dixime. Nous avons test cette variante mais les rsultats sont mdiocres. On a donc prfr "sparer" en 10 anits distinctes. Pour chacune de nos expriences, on cre un nouveau rseau de type perceptron (dont les coecients sont remplis par des nombres pris au hasard entre -2 et 2), puis on l'entrane avec l'algorithme de rtropropagation du gradient.

Dans la suite nous allons voir quelles sont les meilleures conditions pour obtenir rapidement un rseau oprationnel. Pour cela on valuera la dure de l'apprentissage ncessaire en fonction de dirents paramtres que l'on fera varier.
Le programme informatique permet de crer et d'entraner un rseau en choissisant :  le nombre de couches et la dimension de celles-ci (la dernire contient toujours 10 neurones),  les fonctions d'activation des couches. De mme, pour l'apprentissage par rtropropagation du gradient on peut :  entraner le rseau pendant T = 500 itrations de l'algorithme sur des exemples prsents dans un ordre alatoire ou priodique,  choisir la valeur de la vitesse d'apprentissage . chaque itration t de l'algorithme d'entranement, qui est faite sur un des dix vecteurs de test (par exemple le chire 4), on calcule l'erreur et on l'ache sur un graphe.

10 Inuence de la vitesse d'apprentissage


Nous travaillons ici avec des rseaux de type perceptron une seule couche, dont la fonction d'activation est linaire (f = IdR ). On a donc appliqu des rseaux "ignorants" un apprentissage de 500 itrations de l'algorithme, en testant direntes valeurs de la vitesse d'apprentissage . 9


700 600 500 400 300 200 100 0 0 50 100 150 200 250 300 350 400 450 500 Evolution de lerreur quadratique pendant lentrainement

= 0,0001

500

400

= 0,005
300 Le reseau est operationnel au bout de quelques centaines diterations

200

100

0 0 50 100 150 200 250 300 350 400 450 500

1.6e+009 1.4e+009 1.2e+009 1e+009 8e+008 6e+008 4e+008 2e+008 0 0 50 100 150 200 250 300 350 400 450 500

= 0,01

Mon groupe et moi avons remarqu que l'erreur ne convergeait vers un minimum que si la valeur de la vitesse d'apprentissage tait infrieure une certaine limite max . Au-dessus, les coecients du rseau divergent vers l'inni, en-dessous ils convergent vers une certaine valeur. Si l'on entrane le rseau pour reconnatre uniquement l'image 8 : X = (0111010001011101000101110) 1 R25 dont la norme au carr vaut X 2 = 13, la vitesse limite vaut max 0.071 X 2 +1 . Pour les autres vecteurs, on obtient la mme rgle : convergence des coecients du rseau pour < X 12 +1 , divergence pour > X 12 +1 . On a constat qu'exprimentalement, cette loi est toujours vraie pour des rseaux de tailles direntes (par exemple avec une entre dans R15 et une sortie dans R13 ). Ne trouvant aucune mention de ce phnomne dans les documents que nous consultions pour ce TIPE, nous avons voulu dmontrer cette loi. Considrons donc un perceptron monocouche linaire, que l'on souhaite entraner pour reconnatre un certain vecteur d'entre X , c'est--dire lui associer la sortie dsire Yd . Si l'on appelle W (t) la matrice des poids et B (t) le vecteur des biais du rseau l'itration t, on veut en fait que la sortie eective Y (t) = W (t) X B (t) s'approche le plus possible de Yd . La correction par descente du gradient impose une modication des coecients :

W (t+1) = W (t) 2 (Y (t) Yd ) tX B (t+1) = B (t) + 2 (Y (t) Yd )


10

Si l'on multiplie la premire ligne par X et que l'on y soustrait la deuxime :

W (t+1) X B (t+1) = W (t) X B (t) 2 (Y (t) Yd )( X


Y (t+1) Y (t)

+ 1)

Donc :

Y (t+1) Yd = (Y (t) Yd )
avec = 1 2 ( X
2

+ 1)

Et l'on obtient nalement pour cette suite arithmtico-gomtrique :

Y (t) = t (Y (0) Yd ) + Yd
Conclusion : la sortie Y (t) converge si et seulement si || < 1, autrement dit si 0 < <
1 X
2 +1

Il apparat nalement qu'il existe une valeur limite de la vitesse d'apprentissage :  au-dessus de celle-ci, les coecients divergent coup sr,  en dessous de cette vitesse, le rseau converge plus ou moins lentement vers un tat qui est le bon.
Remarque : dans le cas d'une fonction d'activation non linaire, le rsultat prcdent n'est pas directement appliquable. On remarque mme qu'une trop faible valeur de fait converger le rseau vers une cuvette de l'erreur (un minimum local qui n'est pas le minimum global). On comprend qu'une vitesse trop petite ne permet pas de faire le "saut" pour sortir de la cuvette de l'ventuel minimum local. Pour empcher ce phnomne, on peut introduire un vitesse d'apprentissage variable. C'est le principe du momentum : on donne une inertie la vitesse de descente du gradient de l'erreur, c'est--dire que si la modication des poids tait grande l'itration t, elle restera assez grande t + 1. On peut s'imaginer une bille qui, du fait de son inertie, garde de l'lan pour sortir de la cuvette.

11 Inuence de l'ordre de prsentation des exemples


On considre toujours un perceptron linaire dont la tche est de classer nos chires de zro neuf, auquel on applique comme d'habitude une correction pour chaque exemple prsent, de manire rduire l'erreur pour chacun de ces exemples. Pour une mme valeur de la vitesse d'apprentissage , on a valu la diminution de l'erreur en fonction de l'ordre de prsentation de ces vecteurs d'entre : soit de manire priodique (0 1 2 3 . . . 8 9 0 1 2 . . . ), soit de manire alatoire.

350 300 250 200 150 100 50 0 0 50 100 150 200 250 300 350 400 450 500

exemples presentes aleatoirement

350 300 250 200 150 100 50 0 0 50 100 150 200 250 300 350 400 450 500

exemples presentes periodiquement

11

Il apparat plus fructueux de prsenter les exemples dans un ordre alatoire plutt que dans un ordre donn, pour deux raisons :  l'erreur diminue en gnral plus rapidement,  cela vite de rester bloqu dans un minimum local de l'erreur au cours de l'entranement. En eet, chaque ordre de prsentation engendre une trajectoire de descente de l'erreur dirente dans l'espace des paramtres du rseau, et certaines trajectoires peuvent nous amener des minima locaux au lieu du minimum global. Un ordre alatoire rduit ce risque.

12 Inuence du nombre de couches


La premire couche peut servir extraire certaines caractristiques des donnes brutes qu'on lui soumet, c'est--dire donner des sorties similaires pour des entres ayant certains points communs. Les couches suivantes peuvent comparer ces caractristiques pour les classer correctement. Le nombre de couche que l'on donne un rseau dpend donc de la complexit du problme que l'on veut traiter.

4 Evolution de lerreur quadratique pendant lentrainement 3

1 couche

0 0 50 100 150 200 250 300 350 400 450 500

4 Evolution de lerreur quadratique pendant lentrainement 3

2 couches

0 0 50 100 150 200 250 300 350 400 450 500

3 couches
4

0 0 50 100 150 200 250 300 350 400 450 500

Les expriences faites montrent qu'il est beaucoup plus dur d'entraner un rseau multicouche qu'un monocouche. De plus, il vaut mieux donner des fonctions d'activation linaires pour les couches caches (pour viter que les sorties intermdiaires soient comprises entre -1 et 1).

12

Quatrime partie

Bibliographie
Frdric Bourg,  Ordinateurs, enn dous pour la lecture  Science & Vie, n1082 de nov. 2007, p. 78 David Delaunay,  Le perceptron  Tangente Sup, n44-45, p. 24 Marc Parizeau,  Rseaux de neurones  thse l'universit Laval, 2004 Franois Denis et Rmi Gilleron,  Apprentissage partir d'exemples , chap. 3 http ://www.grappa.univ-lille3.fr/polys/apprentissage/ Wikipedia,  Le neurone biologique  http ://fr.wikipedia.org/wiki/Neurone

13