Vous êtes sur la page 1sur 16

Rseaux de neurones

Adam Salvail-Brard
6 septembre 2012

Rsum
Le but de ce document est de donner une introduction simple, mais
formelle, du procd de construction des rseaux de neurones artificiels.
En plus de la dfinition dun rseau de neurones, sont donnes les versions
scalaire, vectorielle et par lot des formules utilises dans lapprentissage
des paramtres du rseau de neurones. Les algorithmes de propagation
des donnes et de rtropropagation du gradient de lerreur dapprentissage
sont abords. Finalement, dans le contexte doptimisation des rseaux de
neurones, une mthode exacte de calcul du produit de la matrice hessienne
et dun vecteur est montre.

1 Introduction
Les rseaux de neurones sont des constructions abstraites simulant lactivit
dun rseau de neurones biologique simplifi. Ils sont utiliss en apprentissage au-
tomatique pour construire un modle partir de donnes existantes dans le but
deffectuer des prdictions sur de nouvelles donnes soit laide de rgression,
dans le cas continu, ou de classification, dans le cas discret. Une introduction
plus complte lapprentissage automatique et son cousin le forage de donnes
est prsente dans [5].
Lapprentissage automatique 1 concerne lajustement de paramtres dune
boite qui prend en entre des donnes et fournit en sortie un rsultat. Cest la
mtaphore classique dcrivant une fonction. En statistiques, la boite est souvent
simple et peut utiliser lanalyse mathmatique pour caractriser les paramtres
optimaux. Par exemple, la rgression classique utilise une boite constitue
dune combinaison linaire de fonctions lmentaires pertinentes et lajustement
consiste simplement optimiser les coefficients de la combinaison linaire. Le
contexte moderne du forage de donnes a motiv le dveloppement de boites
plus complexes, impossibles optimiser analytiquement. Les rseaux de neu-
rones sont un exemple de tels modles complexes qui ont fait leurs preuves
dans plusieurs domaines comme la dtection de fraudes ou la reconnaissance de
caractres manuscrits.
Ce texte sintresse donc aux rseaux de neurones, ouvrir la boite mta-
phorique qui est associe cette classe de modles. Un rseau de neurones est
1. De langlais machine learning.
Rseaux de neurones 1. INTRODUCTION

un graphe orient de nuds, appels neurones, souvent disposs en couches.


Ces nuds reoivent une information de leurs prdcesseurs (les neurones de
la couche prcdente) et combinent cette information selon des pondrations
(i) (i)
identifies par wj,k . Chaque nud possde galement un seuil dactivation bk .
Autour de ce seuil, la valeur de sortie est beaucoup plus sensible aux change-
ments de la valeur dentre.

Entre Couche 1 Couche 2 Couche 3 Sortie

(1) (1) (3) (3)


s1 (e1 ) s1 (e1 ) y1

(2) (2)
x1 w (0)
s1 (e1 )
1,2

(1) (1) (3) (3)


s2 (e2 ) s2 (e2 ) y2
)
(0
w 2,2
(2) (2)
b2(0)

x2 s2 (e2 )

(1) (1) (3) (3)


s3 (e3 ) s3 (e3 ) y3

biais biais biais biais

Figure 1 Illustration dun rseau de neurones feed-forward 5 couches dont 3


couches caches, une couche dentre et une couche de sortie. Ce type de rseau
est caractris par le fait quun neurone ne tire ses entres que de la couche
prcdente. titre dexemple, les entres du deuxime nud de la seconde
couche ont t tiquettes en bleu.

(i)
Le comportement du rseau de neurones dpend donc des wj,k qui servent
pondrer les apports des nuds dune couche la suivante, et aussi des seuils
dactivation de chaque nud. Si ces paramtres sont fixs arbitrairement, les r-
sultats fournis seront mdiocres. Il convient dutiliser un jeu de donnes nomm
(i) (i)
ensemble dentrainement pour optimiser les paramtres (les wj,k et les bj ) afin
de minimiser lerreur de prdiction du rseau. Pour cet ensemble dentrainement,
le rsultat thorique est connu et loptimisation consiste minimiser la somme
des carres des diffrences entre les sorties calcules et les sorties attendues.
Contrairement aux modles classiques en statistique, il est impossible dobtenir
une solution analytique ces problmes doptimisation. Il faut donc optimiser
numriquement la fonction derreur.

Adam Salvail-Brard 2
Rseaux de neurones 2. DFINITIONS

Cet article prsente une description rigoureuse de ces rseaux de neurones.


De plus, une mthode est dveloppe pour valuer les drives premires et
secondes (dans une direction donne) dune fonction derreur servant identifier
les paramtres optimaux. Cette information sur les drives est trs utile pour
les algorithmes doptimisation qui sen servent pour trouver rapidement une
solution optimale au problme de minimisation de lerreur.

2 Dfinitions
Un rseau de neurones agit sur des donnes. Ces donnes sont dfinies for-
mellement comme tant un ensemble de couples (x, c) avec x Rn et c Rm ,
n, m N . En outre, un rseau de neurones peut tre dfini comme tant une
fonction f : Rn Rm qui prend en entre les informations du vecteur x et
qui effectue une prdiction y Rm sur le vecteur c. Le but de la construction
dun rseau de neurones devient de trouver la fonction f qui donne la meilleure
approximation de y compare la cible c.
Comme son nom lindique, un rseau de neurones est une collection de
nuds, nomms neurones, dispose en r couches. La couche 0 reprsente len-
tre et possde n neurones, soit la dimension du vecteur dentre x. De mme,
la r-ime couche, la couche de sortie, possde m neurones, soit la dimension du
vecteur de sortie y. Les couches intermdiaires, nommes couches caches, pos-
sdent un nombre de neurones arbitraires, souvent dtermin par la complexit
du problme rsoudre.
Afin de propager les valeurs dentre, chaque neurone de la couche i, 0 i <
r, possde une connexion avec tous les neurones de la couche i + 1 2 . Chacune de
(i)
ces connexions est pondre par un poids wj,k dfini comme tant le poids liant
(i) (i+1)
la sortie sj du j-ime neurone de la couche i lentre ek du k-ime neurone
de la couche i + 1. Les poids dune mme couche i + 1 forment une matrice note
w(i) . La figure 1 illustre ces notations laide dune reprsentation graphique
dun rseau de neurones.
Les neurones dun rseau de neurones reprsentent les units de calcul du
modle. Chaque neurone possde une entre (un scalaire), une fonction dacti-
vation et une sortie. Par exemple, le k-ime neurone de la couche i reoit une
valeur dentre
(i)
X (i1) (i1) (i1)
ek = wj,k sj + bk (1)
j


(i) (i)
(i)
et retourne la valeur sk= akek qui est la fonction dactivation applique
lentre du neurone.
(i1)
La valeur bk est un biais ajout lentre du k-ime neurone de la couche
i servant, en quelque sorte, de seuil dterminant partir de quelle valeur le
neurone est significativement activ. En dautres termes, le biais dicte partir
2. Ceci est la reprsentation classique dun rseau de neurones. Dautres topologies, cest-
-dire dispositions des neurones, sont possibles. Dans ce document, seul ce type de rseau de
neurones, appel feed-forward, est discut.

Adam Salvail-Brard 3
Rseaux de neurones 3. RSEAU DE NEURONES FEED-FORWARD

de quelle valeur la somme des produits des poids et des sorties de la couche
prcdente passe le seuil o un neurone est considr actif.
Finalement, il y a la fonction derreur E (voir formule (3)) qui dnote lerreur
du rseau de neurones dans son approximation de la sortie y par rapport la
cible c. Cest cette fonction qui dtermine la qualit du modle de comportement
des donnes.

3 Rseau de neurones feed-forward


Un rseau de neurones typique est le rseau feed-forward. Ce rseau propage
lentre du rseau vers les couches suivantes sans jamais revenir en arrire. Ce
type de rseau est utilis pour le reste de cet article.
En plus du type de rseau de neurones, il faut galement choisir une fonction
derreur et une fonction dactivation pour les neurones. Ces choix sont souvent
guids par le type de donnes traites. Plus de dtails sont disponibles dans
louvrage de Bishop [1] au chapitre 5.
Dans cet article, la fonction dactivation utilise est une fonction logistique
(i) 1
dfinie par aj (x) = 1+exp(x) , sauf pour la couche de sortie qui garde la fonction
identit comme fonction dactivation. De cette faon, la valeur de sortie
(i) (i) (i) 1
sj = aj (ej ) = (i)
pour i 6= r. (2)
1 + exp(ej )
(r) (r)
sj = ej .
Pour la fonction derreur, un choix simple est dutiliser
m
1 1X
E= ky ck22 = (yi ci )2 , (3)
2 2 i=1

soit la moiti du carr de la distance euclidienne entre la sortie du rseau et la


cible.
Avec ces dfinitions, tous les outils ncessaires ltablissement dune pr-
diction sont prsents. Pour effectuer la propagation avec un couple (x, c), les
sorties de la couche dentre sont assignes aux valeurs du vecteur x, cest--
(1)
dire que sj = xj . Les valeurs sont ensuite propages au travers du rseau de
(r)
neurones grce aux formules (1) et (2) pour donner les sorties yj = sj qui
sont compares aux cibles cj par la fonction derreur E (3). Il faut maintenant
minimiser la moyenne des erreurs donnes par la fonction E sur lensemble des
donnes fournies en entre :
N
1 X
Emoyenne = Et
N t=1

o N est le nombre de couples donn en entrainement au rseau de neurones et


Et reprsente la t-ime erreur dapprentissage.

Adam Salvail-Brard 4
Rseaux de neurones 4. CONSTRUCTION DU RSEAU DE NEURONES

4 Construction du rseau de neurones


Bien entendu, au dpart, un rseau de neurones avec des poids initialiss ala-
toirement donne de pauvres rsultats. Cest pourquoi il y a une tape dappren-
tissage, cest--dire dajustement des poids du rseau afin que ceux-ci puissent
donner de meilleures prdictions.
Une faon de voir le problme est dessayer de minimiser lerreur de prdic-
tion du modle. Cette formulation transforme le problme dapprentissage en
un problme doptimisation pour lequel plusieurs algorithmes existent. Lopti-
misation de la fonction derreur seffectue par lajustement des paramtres de
la fonction, cest--dire les poids et les biais du rseau de neurones.
Soit la fonction dim(i) qui donnne le nombre de neurones de la couche i. Soit
h i
(i) (i)
= wj,k bj (4)

o 0 i < r, 0 j < dim(i) et 0 k < dim(i + 1) qui reprsentent le vecteur


rassemblant chacun des paramtres du rseau de neurones. Le problme dopti-
misation associ est de trouver les paramtres du rseau de neurones permettant
de minimiser lerreur E(). Formellement, il faut trouver
N
1 X
= arg min Et (). (5)
N t=1

Nanmoins, lapplication de ces algorithmes doptimisation ncessite souvent


davoir plus dinformation sur la fonction derreur E(), comme ses drives de
premier et second ordre par rapport aux paramtres de la fonction derreur.
Trouver les drives de la fonction derreur est un problme complexe. Puis-
que la fonction derreur, avec toutes les couches du rseau, peut facilement
devenir difficile apprhender, il devient impossible de dduire une forme ana-
lytique de la solution au problme de minimisation de lerreur moyenne. Il faut
donc procder avec des mthodes itratives. La mthode la plus lgante pour
lobtention de la drive de premier ordre est la rtropropagation de lerreur de
prdiction. Pour la drive de second ordre, une mthode propose par Pearl-
mutter [3] est dcrite. Cette mthode donne le rsultat exact du produit de la
matrice hessienne et dun vecteur arbitraire.

4.1 Rtropropagation
Lide de la rtropropagation est de faire circuler linformation sur la drive
de la fonction derreur partir de la couche de sortie, o lerreur de prdiction est
connue (la diffrence entre y et c), jusqu la couche dentre. Pour y arriver, il
faut arriver exprimer la drive de la fonction derreur dun nud en fonction
de linformation donne par les couches suivantes. De cette faon, les valeurs
attendues de la couche de sortie pourront tre rtropropages vers lentre.

Adam Salvail-Brard 5
Rseaux de neurones 4. CONSTRUCTION DU RSEAU DE NEURONES

Tout dabord, la drive, la sortie, de la fonction derreur (3) est donne


par
E
= y i ci . (6)
yi
partir de cette quation, il est possible de trouver la drive de la fonction
derreur lentre de la couche de sortie. La drive reste la mme puisque la
fonction dactivation de la dernire couche est la fonction identit, cest--dire
E E E
(r)
= (r)
= .
ej sj yj

partir de ce moment, il faudra se servir de la formule de drive en chaine


pour trouver, de faon rcursive, les autres drives. En dautres mots, il faut
pouvoir exprimer chaque drive de la fonction derreur en terme de drive
venant plus loin dans le rseau de neurones.
Pour ce faire, il faut voir que la fonction derreur est affecte par la sortie dun
neurone de la i-ime couche travers lensemble des neurones de la (i + 1)-ime
couche. Donc,
E X (i) E
(i)
= wj,k (i+1) . (7)
sj k ek
De plus, la fonction derreur est affecte par lentre dun neurone de la i-
ime couche seulement au travers de la sortie de ce mme neurone. Il en rsulte
que
(i)
E E sj
(i)
= (i) (i)
ej sj ej
. Sachant que la drive de la fonction dactivation logistique est donne par
a
x = a(1 a), la drive de la fonction derreur par lentre dun neurone est
donc
E E (i) (i)
(i)
= (i) sj (1 sj ). (8)
ej sj
La formule (8) permet de rtropropager la drive de lerreur jusqu la
premire couche. laide de ces valeurs, il est possible darriver la drive de
la fonction derreur par rapport chacun des poids du rseau de neurones, en
appliquant la rgle de drive en chaine. Donc,
(i+1)
E E ek E (i)
(i)
= (i+1) (i)
= s .
(i+1) j
(9)
wj,k ek wj,k ek

Finalement, comme les biais sont galement des paramtres impliqus dans
lapprentissage dun rseau de neurones, il faut aussi pouvoir leur trouver une
valeur optimale. Il est donc ncessaire de trouver la drive de lerreur par
rapport aux biais. De la mme faon quavec les poids, un biais naffecte lerreur

Adam Salvail-Brard 6
Rseaux de neurones 4. CONSTRUCTION DU RSEAU DE NEURONES

de prdiction quau travers de lentre du nud auquel il est rattach. Donc,


grce la drive en chaine et la formule (1),
(i+1)
E E ej E
(i)
= (i+i) (i)
= (i+i)
. (10)
bj ej bj ej

4.2 Calcul de la drive seconde


Pour pouvoir minimiser la fonction derreur de manire efficace, plusieurs
algorithmes doptimisation ncessitent des informations sur la drive seconde
qui reprsente le comportement de la fonction autour dun point. Dans le cas de
la fonction derreur, une fonction avec un domaine dans Rm , sa drive seconde
est en fait la matrice hessienne
2
E 2E 2E
2 . . .
21 1 2 1 n
E 2E 2
2 1 22 . . . 2
E

n
H= .
. . . .
.. .. .. ..

2E 2E 2E
n 1 n 2 ... n2

Malheureusement, cette matrice, pour de grandes dimensions, devient diffi-


cile stocker et calculer, mme pour un ordinateur. Puisque la plupart des
algorithmes utilisent plutt le produit de la matrice hessienne avec un vecteur
arbitraire v (rsultant en un vecteur de dimension m), il est plus facile de cal-
culer directement ce vecteur plutt que la matrice hessienne entire.
En se basant sur le principe de la propagation de valeurs expos plus haut,
il est possible de trouver la valeur de Hv en apportant quelques changements
aux formules dj donnes. Cette technique, sous la forme prsente dans cet
article, est attribue Pearlmutter [3].
Le produit hessienne-vecteur peut tre dfini par


Hv = ( + qv) .
q q=0

De cette dfinition, il est possible dextraire un nouvel oprateur




R {f ()} = f ( + qv)
q q=0

o v reprsente le vecteur par lequel la matrice hessienne est multiplie et qui


est de mme dimension que le vecteur . Pour fins de concordance, les lments
(i) (i)
vj,k et vj du vecteur v sont respectivement la mme position que les lments
(i) (i)
wj,k et bj du vecteur .
n o n o
(i) (i) (i) (i) (i) (i)
Par dfinition, R wj,k = vj,k et R bk = vk puisque les wj,k et des bk
sont les paramtres optimiser. En appliquant les rgles usuelles de drive et

Adam Salvail-Brard 7
Rseaux de neurones 4. CONSTRUCTION DU RSEAU DE NEURONES

de drive en chaine, il est possible dobtenir des formules de propagation pour


les calculs de R {}. Pour lentre dans un neurone, la formule devient, avec la
rgle de la drive dun produit,

n o X
(i+1) (i) (i) (i)
R ek =R wj,k sj + bk

j
X (i) n o n o n o
(i) (i) (i) (i)
= wj,k R sj + R wj,k sj + R bk
j
n o
(i) (i) (i) (i) (i)
X
= wj,k R sj + vj,k sj + vk . (11)
j

Pour la sortie dun neurone, la formule devient


n o n o
(i) (i) (i) (i)
R sj = sj (1 sj )R ej . (12)

partir des formules (11) et (12), il est possible de faire la propagation des
valeurs donnes en entre pour le calcul de la drive seconde. Cette propagation
peut facilement tre calcule en parallle de la propagation usuelle des valeurs
dentre.
limage de la rtropropagation, il faut galement rtropropager la drive
de la fonction derreur sur laquelle est appliqu loprateur R {}. Il faut donc
appliquer loprateur R {} la formule de la drive de la sortie :
 
E n
(r)
o
R = R {yj cj } = R {yj } = R sj . (13)
yj

De faon identique la rtropropagation,


  ( ) ( )
E E E
R =R (r)
=R (r)
yj s e
j j

. Les formules rcursives de la rtroprapagation deviennent


(i)
( ) ( )
E E sj
R (i)
=R (i) (i)
ej sj ej
( (i) ) ( ) (i)
E sj E sj
= (i) R (i)
+R (i) (i)
sj ej sj ej
(i)
( ) (i)
E 2 sj n o
(i) E sj
= (i) (i) R ej +R (i) (i)
(14)
sj ej 2 sj ej
(i) (i)
sj (i) (i) 2 sj (i) (i) (i)
o (i) = sj (1 sj ) et (i) = sj (1 sj )(1 2sj ).
ej ej 2

Adam Salvail-Brard 8
Rseaux de neurones 5. VERSION VECTORIELLE

De mme, pour la sortie dun neurone,


( )
E X (i) E
R (i)
= R w j,k (i+1)
sj
j ek
( ) !
X (i) E n
(i)
o E
= wj,k R (i+1)
+ R wj,k (i+1)
j ek ek
( ) !
X (i) E (i) E
= wj,k R (i+1)
+ vj,k (i+1) . (15)
j ek ek

Finalement, pour les poids


( ) ( )
E (i) E
R (i)
= R sj (i+1)
wj,k ek
( )
(i) E n o E
(i)
= sj R (i+1)
+ R sj (i+1)
(16)
ek ek

et les biais ( ) ( )
E E
R (i)
=R (i+1)
. (17)
bk ek
Aprs tous ces calculs, il est possible de reconstituer le vecteur du produit
hessienne-vecteur

Hv = R { E()}
     n o n o>
(1) (r1)
= R E(1) ... R (r1)
E
R b1 ... R bm .
w1,1 wdim(r2)1,m
(18)

5 Version vectorielle
Alors que la version scalaire du rseau de neurones est utile la comprhen-
sion, une version vectorielle est plus concise. La plupart des implmentations
de cet algorithme dapprentissage utilisent dailleurs la version vectorielle pour
utiliser la puissance de calcul des librairies dalgbre linaire.
La notation vectorielle se base sur la notation scalaire partir de laquelle
les indices se rattachant un neurone particulier ont t omis. Par exemple,
h i>
(i) (i) (i)
lentre dun neurone e(i) = e1 e2 . . . en .
Lutilisation de vecteurs apporte quelques changements dont il faut tenir
compte. Dabord, lensemble des drives par rapport lerreur est remplac par
le gradient de cette mme fonction. Dans cet article, le gradient dune fonction
f : Rn R est dfini comme tant

Adam Salvail-Brard 9
Rseaux de neurones 5. VERSION VECTORIELLE

 >
f f f
f (x) = ... .
x1 x2 xn
Une exception notable cette rgle (tir du livre de Rojas [4]) est la fonction
dactivation qui est une fonction de Rn dans Rn , donc qui ncessite de calculer
la matrice jacobienne de la fonction, cest--dire que

(i) (i) (i)
a1 a1 a1
e(i) (i) (i)
e2 en

1
(i) (i) (i)
a2 a2 a2
  e(i) (i) (i)

(i) e2 en

Je(i) a = 1
.
.. .. ..
.
..
. . .


(i)
a(i) (i)

an an
(i)
n
(i) (i)
e1 e2 en

Mais comme la drive partielle de la fonction dactivation du j-ime neurone


na des termes quen fonction de lentre
 du mme neurone, tous les lments
non diagonaux de la matrice Je(i) a(i) sont nuls. Donc, dans le cas o la fonction
dactivation est la fonction logistique,

(i) (i)

s1 (1 s1 ) 0 0
(i) (i)
0 s2 (1 s2 ) 0


Js(i) = Ja(i) = .. .. .. .. . (19)
logistique
.

. . .
(i) (i)
0 0 sn (1 sn )

Sachant ceci, il est plus efficace dimplmenter cette matrice comme un vec-
teur colonne qui est multipli terme--terme un autre. Par exemple, la formule
(22) multiplie un gradient et une matrice jacobienne. Pour implmenter cette
multiplication de manire efficace, il est possible de multiplier le gradient et
le vecteur contenant les lments diagonaux de la matrice jacobienne terme
terme. Il en rsulte un nouveau vecteur de la mme dimension que le gradient,
ce qui correspond la dimension du produit du gradient et de la matrice jabo-
bienne. Cette manipulation vite de mettre en mmoire tous les zros qui ne sont
pas situs sur la diagonale de la matrice jacobienne, ce qui acclre galement
les calculs.
Pour profiter de ces avantages, loprateur diag(A) est utilis pour reprsen-
ter le vecteur colonne compos des lments de la diagonale de la matrice A. De
plus, loprateur est utilis pour signifier un produit terme terme de deux
matrices de mme dimensions.

5.1 Propagation
Pour propager les entres dans le rseau de neurones, il convient de convertir
les formules vues prcdemment. Dans ce contexte, une entre du rseau de

Adam Salvail-Brard 10
Rseaux de neurones 5. VERSION VECTORIELLE

neurones est reprsente par le vecteur x = s(1) . Ensuite, pour calculer les
entres des neurones des couches suivantes, il faut transformer la formule (1) en
e(i+1) = w(i) s(i) + b(i) .
De mme pour la sortie dun neurone, la formule (2) devient
" #>
(i) (i) (i) 1 1 1
s = a (e ) = (i) (i)
... (i)
.
1 + exp(e1 ) 1 + exp(e2 ) 1 + exp(en )
La fonction derreur (3) se simplifie pour donner
1
E() = ky ck22 (20)
2
dont le gradient est tout simplement
s(r) E = y E = y c. (21)
Ces fonctions permettent de faire lensemble des calculs en faisant abstrac-
tion des neurones et en ne manipulant que les vecteurs ou matrices se rattachant
aux couches.

5.2 Rtropropagation
Pour retrouver la version vectorielle de la rtropropagation, il faut refaire les
mmes oprations que pour la version scalaire partir de la dernire couche.
Lerreur par rapport la sortie est dj connue (21) et la fonction dactivation
de la dernire couche est une fonction linaire (s(r) = e(r) ). Puisque la drive
de cette fonction linaire donne 1, lentre de la dernire couche est gale sa
sortie, cest--dire que e(r) E = s(r) E = y c.
partir de l, il est possible de retrouver la formulation des gradients des
autres couches de faon rcursive. Le gradient de la sortie sobtient, limage
de la formule (7), par
s(i) E = (w(i) )> e(i+1) E.
Quant lui, le gradient de lentre dun neurone suit le principe de la formule
(8) :
    
e(i) E = s(i) E Je(i) s(i) = s(i) E diag Je(i) s(i) (22)

o Je(i) s(i) est dfinie par la formule (19).
Ne reste qu utiliser ces deux vecteurs pour pouvoir calculer la valeur des
gradients de lerreur par rapport aux poids et aux biais, chacun dcrit par les
formules (9) et (10). Ils scrivent
w(i) E = e(i+1) E w(i) e(i+1) = e(i+1) E s(i)>
et
b(i) E = e(i+1) E b(i) e(i+1) = e(i+1) E.

Adam Salvail-Brard 11
Rseaux de neurones 5. VERSION VECTORIELLE

5.3 Calcul de la matrice hessienne dans une direction v


Au lieu de parler de la drive seconde, il est maintenant question de trouver
la hessienne de la fonction derreur. Cest celle-ci qui permet de donner une ide
du comportement de la fonction derreur au point dvaluation.
Par contre, la plupart des algorithmes doptimisation sintressent plutt la
hessienne dans une direction particulire v et non toute la matrice hessienne.
En dautres termes, au lieu de calculer la hessienne H, il est plus efficace de
calculer directement le produit hessienne-vecteur Hv puisque la matrice H na
pas tre garde en mmoire.
limage de la version scalaire o le produit hessienne-vecteur de la fonction
tait compos des drives secondes de la fonction derreur par rapport aux poids
et aux biais, la version vectorielle manipule directement les matrices de poids et
de biais.
De la mme faon que la version vectorielle de la propagation des donnes,
la version vectorielle du calcul du produit hessienne-vecteur peut scrire
n o n o
R e(i+1) = R w(i) s(i) + b(i)
n o n o n o
= w(i) R s(i) + R w(i) s(i) + R b(i)
n o
(i)
= w(i) R s(i) + vw(i) s(i) + vb

et
n o n o  
R s(i) = R e(i) Je(i) s(i) .

La mthode reste la mme pour la rtropropagation. Par contre, il faut savoir


ce que reprsente la drive seconde
 de la  sortie dun neurone par rapport son
entre, cest--dire de trouver R Je(i) s(i) . Or, comme la fonction dactivation
na pas une image une seule dimension, la matrice rsultante serait en fait un
tenseur (une matrice plus de deux indices). Pour simplifier les choses, il est
possible de se concentrer sur la deuxime forme de la formule (22) qui fait
intervenir un vecteur multipli un autre vecteur de mme dimension de faon
terme--terme.
Dans cette notation, le j-ime lment du vecteur de la drive seconde est
donn par
 n  o n o
(i) (i) (i) (i)
diag R Je(i) s(i) = sj (1 sj )(1 2sj )R ej .
j

Avec cette information, les formules (13), (14) et (15) deviennent respecti-
vement

R {y E} = R {y c}
= R {y} (23)

Adam Salvail-Brard 12
Rseaux de neurones 6. APPRENTISSAGE DUN RSEAU DE NEURONES

n  o
R {e(i) } = R s(i) E Je(i) s(i)
n  o  
= s(i) E R Je(i) s(i) + R {s(i) E} Je(i) s(i)
 n  o  
= s(i) E diag R Je(i) s(i) + R {s(i) E} Je(i) s(i)

n o
R {s(i) E} = R (w(i) )> e(i+1) E
n o
= (w(i) )> R {e(i+1) E} + R (w(i) )> e(i+1) E
= (w(i) )> R {e(i+1) E} + (vw(i) )> e(i+1) E

Encore une fois, partir de ces rsultats il est possible de reconstituer le


vecteur du produit Ht partir de la concatnation des lments des matices,
comme dans lquation (18) :
n o
R {w(i) E} = R e(i+1) E (s(i) )>
n o
= e(i+1) E R (s(i) )> + R {e(i+1) E} (s(i) )>

et des vecteurs

R {b(i) E} = R {e(i+1) E}

qui sont drivs des formules (16) et (17).

6 Apprentissage dun rseau de neurones


Comme il a t mentionn plus tt, le but de la phase dapprentissage est de
trouver le vecteur de paramtres dfini en (4) qui minimise la fonction derreur
comme illustr la formule (5).
Cette section porte sur quelques faons dy arriver, chacune prsentant leurs
avantages et leurs inconvnients.

6.1 Descente de gradient


Une premire mthode consiste appliquer un algorithme de descente de
gradient sur lensemble des couples (x, c). Cette faon de procder consiste
trouver le gradient de lerreur de chacun des couples et den faire la moyenne.
Comme le gradient est un vecteur pointant vers la direction de plus forte crois-
sance de la fonction derreur, dplacer les paramtres dans la direction oppose
au gradient fait diminuer lerreur.
Dans cette optique, P les paramtres seront mis--jour selon lquation :=
N
( E()) = ( N1 t=1 Et ()) o est appel le taux dapprentissage

Adam Salvail-Brard 13
Rseaux de neurones 6. APPRENTISSAGE DUN RSEAU DE NEURONES

et contrle la vitesse dapprentissage. Un taux trop lev pourrait nuire lal-


gorithme qui sauterait par-dessus le dplacement idal.
Selon cette mthode, lalgorithme dapprentissage ressemble lalgorithme
1. Dans cet algorithme, le critre darrt peut tre en lien avec un seuil derreur
atteindre ou un nombre ditrations limite.

Algorithme 1: Algorithme de la descente de gradient pour lapprentissage


dun rseau de neurones.
Donnes : Une base de donnes B o Bt est le t-ime couple (x, c) et
dont la taille est N .
Entres : Une fonction CritereArret() qui renvoie vrai quand
lapprentissage est termin.
Un rseau de neurones muni dune collection de paramtres .
Un hyper-paramtre donnant la vitesse dapprentissage de
lalgorithme.
tant que CritereArret() faire
pour chaque couple (x, c) de B faire
y P ropagation(x) ; /* La prdiction du rseau */
gt Retropropagation(y c) ; /* Le t-ime gradient */
1
PN
g N t=1 gt ; /* Le gradient moyen */
g ; /* Mise jour des paramtres */
PN
E N1 t=1 kyt ct k22 ; /* Erreur moyenne de prdiction */
Sorties : Un rseau de neurones ayant des paramtres optimiss.

6.2 Descente de gradient par lots


Une autre mthode, lapprentissage par lots 3 tente damliorer la vitesse
dapprentissage en utilisant un certain nombre de couples (x, c) par lot plutt
que lensemble des lments de la base de donnes.
Puisque les calculs ne se font pas sur lensemble des donnes, mais seulement
sur un chantillon, lestimation de la moyenne des gradients reste sans biais alors
que la variance de lestimation de la moyenne augmente. Or, il peut tre plus
efficace de procder ainsi pour avancer plus rapidement dans lespace solution.
Lalgorithme 2 prsente le fonctionnement de cette mthode.
Une faon dacclrer les choses, surtout dans loptique de lutilisation de
librairies dalgbre linaire optimises, est de passer la propagation tous les
vecteurs dentre dun lot la fois, sous forme de matrice. De cette faon, les
calculs peuvent tous se faire quen une seule propagation et rtropropagation.
Dans ce cas, un lot est un couple (X, C) o X et C sont des matrices de
dimensions n l composes de l vecteurs x et c respectivement.
partir de ceci, chaque vecteur colonne des formules de la section 5 devient
une matrice l colonnes pour accommoder lentre et la cible de dimension l.
3. De langlais mini-batch training.

Adam Salvail-Brard 14
Rseaux de neurones 6. APPRENTISSAGE DUN RSEAU DE NEURONES

Algorithme 2: Algorithme de la descente de gradient pour lapprentissage


dun rseau de neurones par lots.
Donnes : Une base de donne B o Bt est le t-ime couple (x, c) et
dont la taille est N .
Entres : Une fonction CritereArret() qui renvoie vrai quand
lapprentissage est termin.
Un rseau de neurones muni dune collection de paramtres .
Un hyper-paramtre donnant la vitesse dapprentissage de
lalgorithme.
Le nombre de donnes l mettre dans chaque lots.
tant que CritereArret(E) faire
Blot l couples (x, c) tirs au hasard et sans remise de B;
pour chaque couple (x, c) de Blot faire
y P ropagation(x) ; /* La prdiction du rseau */
gt Retropropagation(y c) ; /* Le t-ime gradient */
1
PN
g N t=1 gt ; /* Le gradient moyen */
g ; /* Mise jour des paramtres */
PN
E N1 t=1 kyt ct k22 ; /* Erreur moyenne de prdiction */
Sorties : Un rseau de neurones ayant des paramtres optimiss.

Les formules vectorielles restent valides ; seulement la dimension des en-


tres/sorties et de leurs gradients changent. Toutefois, une diffrence est noter
au niveau de la fonction derreur (20) qui, pour compenser la gestion de plusieurs
vecteurs la fois, devient, selon larticle de Mller [2],
1
E= kY Ck2F
2l
o Y est la matrice des sorties prdites. En fait, ce calcul revient trouver
lerreur moyenne commise sur chacun des couples de vecteurs (x, c). La drive
E
de cette fonction derreur devient : Y = 1l (Y C). Le facteur 1l peut ensuite
tre factoris du reste des calculs, les laissant inchangs.
Pour le calcul du produit hessienne-vecteur, il faut galement appliquer le
facteur 1l la formule (23) qui devient
1
R {y E} = R {y} .
l
Grce ces deux petits changements, il est possible de supporter lappren-
tissage par lots.

6.3 Descente de gradient stochastique


Il est galement possible de pousser plus loin lide des lots en utilisant des
lots de taille 1. Pour ce faire, la mthode consiste prendre chaque couple

Adam Salvail-Brard 15
Rseaux de neurones RFRENCES

(x, c) individuellement et appliquer les formules de la section 5. Cette faon


de faire est appele lapprentissage en ligne 4 lorsquelle se fait dans lordre des
donnes ou apprentissage par descente de gradient stochastique lorsque le couple
en entre est choisi au hasard.

6.4 Mthodes doptimisation de second ordre


Une autre possibilit est dutiliser des algorithmes doptimisation requie-
rant des informations sur la courbure de la fonction derreur, cest--dire sur la
matrice hessienne de E. Pour aider ces algorithmes, une mthode semblable
la rtropropagation a t expose dans cet article pour trouver le produit de
la matrice hessienne et dun vecteur. Ce produit est souvent utilis dans ces
techniques pour observer la courbure de la fonction derreur dans une direction
donne, ce qui ne ncessite pas le calcul de la hessienne en entier.
Bien entendu, il est possible de combiner ces mthodes avec la philosophie
des lots afin dacclrer lapprentissage.

Rfrences
[1] C. M. Bishop. Pattern recognition and machine learning. Springer New
York, 2006.
[2] M. Mller. Supervised learning on large redundant training sets. In Neural
Networks for Signal Processing [1992] II., Proceedings of the 1992 IEEE-SP
Workshop, pages 7989. IEEE, 1992.
[3] B. A. Pearlmutter. Fast exact multiplication by the hessian. Neural Com-
putation, 6(1) :147160, 1994.
[4] R. Rojas. Neural networks : a systematic introduction. Springer, 1996.
[5] A. Salvail-Brard. Les arbres de dcision hybrides. Cahier de Mathmatique
de lUniversit de Sherbrooke, 2 :3458, 2012.

4. De langlais online training.

Adam Salvail-Brard 16