Академический Документы
Профессиональный Документы
Культура Документы
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
(2) (2)
x1 w (0)
s1 (e1 )
1,2
x2 s2 (e2 )
(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
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.
Adam Salvail-Brard 4
Rseaux de neurones 4. CONSTRUCTION DU RSEAU DE NEURONES
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
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
Adam Salvail-Brard 7
Rseaux de neurones 4. CONSTRUCTION DU RSEAU DE NEURONES
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
Adam Salvail-Brard 8
Rseaux de neurones 5. VERSION VECTORIELLE
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
(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
et
n o n o
R s(i) = R e(i) Je(i) s(i) .
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
et des vecteurs
R {b(i) E} = R {e(i+1) E}
Adam Salvail-Brard 13
Rseaux de neurones 6. APPRENTISSAGE DUN RSEAU DE NEURONES
Adam Salvail-Brard 14
Rseaux de neurones 6. APPRENTISSAGE DUN RSEAU DE NEURONES
Adam Salvail-Brard 15
Rseaux de neurones RFRENCES
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.
Adam Salvail-Brard 16