Vous êtes sur la page 1sur 46

Perceptron multicouche

Apprentissage et reconnaissance – GIF-4101 / GIF-7005


Professeur : Christian Gagné

Semaine 12 : 23 novembre 2016

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 1 / 46


Intelligence naturelle

Cerveau : siège de l’intelligence naturelle


I Calculs parallèles et distribués
I Apprentissage et généralisation
I Adaption et contexte
I Tolérant aux fautes
I Faible consommation d’énergie
Machine computationnelle biologique !

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 2 / 46


Neurone biologique
2.2. MODÈLE D’UN NEURONE 9

F IG . 2.2 – Schéma d’un neurone biologique.


GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 3 / 46
Modèle de neurone artificiel

w1
w2 X a y
... f
wR w0
1

R
!
R entrées X
y=f w i xi + w 0
t=1

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 4 / 46


Réseau de neurones

Chaque neurone est un discriminant linéaire avec une fonction de


transfert f !
X
y =f wi xi + w0 = f(wT x + w0 )
i

Exemples de fonctions de transfert


I Fonction linéaire : flin (a) = a
1
I Fonction sigmoı̈de : fsig (a) = 1+exp(−a)
I Fonction seuil : fseuil (a) = 1 si a ≥ 0 et fseuil (a) = 0 autrement
Plusieurs neurones connectés ensembles forment un réseau de
neurones
I Réseau à une couche : neurones connectés sur les entrées
I Réseau à plusieurs couches : certains neurones sont connectés sur les
sorties d’autres neurones

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 5 / 46


Réseau de neurones (une couche)

w1,1
X a1 y1
f
w1,2
w1,3
w1,0
w1,R
1
w2,1
w2,2 X a2 y2
w2,3 f
w2,R
w2,0
1
wK,1
...

...
wK,2

wK,3
wK,R
X aK yK
f
wK,0
1

R entrées K neurones

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 6 / 46


Perceptron multicouche

Réseau à une couche : ensemble de discriminants linéaires


I Incapable de classer correctement des données non linéairement
séparables
Réseau à plusieurs couches (perceptron multicouche)
I Discriminants linéaires (neurones) cascadés à la sortie d’autres
discriminants linéaires
I Capable de classer des données non linéairement séparables
I Ensemble de classifieurs simples
I Chaque couche fait une projection dans un nouvel espace
Lors du traitement de données, l’information se propage des entrées
vers les sorties

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 7 / 46


Perceptron multicouche

X X X h1 (x)
x1
f f f

x2 1 1 1

X X X h2 (x)
f f f
x3

1 1 1
...

...

...
...

X X X hK (x)
xD
f f f

1 1 1

D entrées R1 neurones R2 neurones K neurones

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 8 / 46


Problème du XOR

1.5

Problème du XOR
1
x1 = [0 0]T r1 =0
x2 = [0 1]T r2 =1
x3 = [1 0]T r3 =1 0.5

x4 = [1 1]T r4 =0
0
Exemple de données non
linéairement séparables
−0.5
−0.5 0 0.5 1 1.5

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 9 / 46


Réseau pour le problème du XOR

1.5

X
2
x1 1
1

-1 X h(x)
-1 0.5

-1
X 1
x2 -1,5 0

1,5
−0.5
−0.5 0 0.5 1 1.5

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 10 / 46


Topologies de réseaux

Selon la topologie de réseau utilisé, différentes frontières de décisions


sont possibles
I Réseau avec une couche cachée et une couche de sortie : frontières
convexes
I Deux couches cachées ou plus : frontières concaves
F Le réseau de neurones est alors un approximateur universel
Nombre de poids (donc de neurones) détermine directement la
complexité du classifieur
I Détermination de la bonne topologie est souvent ad hoc, par essais et
erreurs

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 11 / 46


S xR + S1 x 1
+ S2 x 1

Formes de frontières de décision


-1 b 1
-1 b 2

R S1 x 1 S1 2
S x1 S2

a1 = logsig(W1p − b1) a2 = purelin(W2a1 − b2)

F IG . 5.10 – Réseau multicouche permettant de faire de l’approximation de fonction.

(a) (b) (c) (d)


F IGExemples de frontières
. 5.11 – Exemples de frontières de décision
de décision : (a)
: (a) convexe
convexe ouverte ;ouverte ; (b)
(b) convexe convexe
fermée ; (c)
concave ouvertefermée
; et (d) concave
; (c) fermée.
concave ouverte ; et (d) concave fermée
couche cachée. Intuitivement, un peu à la façon des séries de Fourier qui utilisent des sinus et co-
sinus, cette preuve passe par la démonstration que l’on peut approximer n’importe quelle fonction
d’intérêt par une combinaison linéaire de sigmoı̈des.

5.3.3 Classification
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 12 / 46
Nombre de neurones sur la couche cachée
patterns patterns
not separated separated
y2
y3
-1

y2 2
1.5
-1 1
y1 1
-1 0.5
0
0
-1
1 0
-1 1

y1
2-2-1 x2
2-3-1
5

4 input
3

1 2 3 4 5
x1

FIGURE 6.12.Duda,
Tiré de R.O. SevenP.E.
patterns fromStork,
Hart, D.G. a two-dimensional two-category
Pattern Classification, nonlinearly
Wiley Interscience, sepa-
2001.
rable classification problem are shown at the bottom. The figure at the top left shows the
hidden unit representations of the patterns in a 2-2-1 sigmoidal network with bias fully
trained (U.
GIF-4101 / GIF-7005 to the global error minimum;
Laval) the linear
Perceptron boundary implemented by the hidden-
multicouche C. Gagné 13 / 46
Nombre de neurones sur la couche cachée

1 M =1 1 M =3 1 M = 10

0 0 0

−1 −1 −1

0 1 0 1 0 1

1-1-1 1-3-1 1-10-1


Tiré de C. M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006.

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 14 / 46


Rétropropagation des erreurs

Apprentissage avec le perceptron multicouche : déterminer les poids


w,w0 de tous les neurones
Rétropropagation des erreurs
I Apprentissage par descente du gradient
I Couche de sortie : correction guidée par l’erreur entre les sorties
désirées et obtenues
I Couches cachées : correction selon les sensibilités (influence du neurone
sur l’erreur dans la couche de sortie)

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 15 / 46


Rétropropagation des erreurs

t
t
1 1 = et1 y1t (1 y1t )

X y1t
X
f ··· f
wj,1
t
j
w1,j
1
X atj yjt 1
f

...
...

t wj,0 wK,j t
K = etK yK
t
(1 t
yK )
R

X t
wj,R 1
X
yR
f f
···
1 1

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 16 / 46


Valeurs de sortie des neurones

Valeur yjt du neurone j pour la donnée xt

R
!
X
yjt = f(ajt ) =f wj,i yit + wj,0
i=1

I f : fonction
PR d’activation du neurone
I ajt = i=1 wj,i yit + wj,0 : sommation pondérée des entrées du neurone
I wj,i : poids du lien connectant le neurone j au neurone i de la couche
précédente
I wj,0 : biais du neurone j
I yit : sortie du neurone i de la couche précédente pour la donnée xt
I R : nombre de neurones sur la couche précédente

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 17 / 46


Erreur de la couche de sortie
Un ensemble de données X = {xt ,rt }N t t t t T
t=1 , avec r = [r1 r2 . . . rK ] ,
t t t
où rj = 1 si x ∈ Cj , autrement rj = 0
Erreur observée pour donnée xt sur neurone j de la couche de sortie

ejt = rjt − yjt

Erreur quadratique observée pour donnée xt sur les K neurones de la


couche de sortie (un neurone par classe)
K
1X t 2
Et = (ej )
2
j=1

Erreur quadratique moyenne observée pour les données du jeu X


N
1 X t
E= E
N
t=1

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 18 / 46


Correction de l’erreur pour la couche de sortie

Correction des poids par descente du gradient de l’erreur quadratique


moyenne
N
∂E η X ∂E t
∆wj,i = −η =−
∂wj,i N ∂wj,i
t=1

L’erreur du neurone j dépend des neurones de la couche précédente


I Développement en utilisant la règle du chaı̂nage des dérivées
∂f ∂f ∂y
( ∂x = ∂y ∂x )

∂E t ∂E t ∂ejt ∂yjt ∂ajt


=
∂wj,i ∂ejt ∂yjt ∂ajt ∂wj,i
∂E t ∂E t ∂ejt ∂yjt ∂ajt
=
∂wj,0 ∂ejt ∂yjt ∂ajt ∂wj,0

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 19 / 46


Calcul des dérivées partielles
1
Développement avec fonction d’activation sigmoı̈de (yjt = 1+exp(−ajt )
)

K
∂E t ∂ 1X t 2
= (el ) = ejt
∂ejt ∂ejt 2 l=1
∂ejt ∂ t
= rj − yjt = −1
∂yjt ∂yjt
∂yjt ∂ 1 exp(−ajt )
= =
∂ajt t t
∂aj 1 + exp(−aj ) [1 + exp(−ajt )]2
t
1 exp(−aj ) + 1 − 1
= = yjt (1 − yjt )
1 + exp(−ajt ) 1 + exp(−ajt )
R
∂ajt ∂ X
= wj,l ylt + wj,0 = yit
∂wj,i ∂wj,i l=1
R
∂ajt ∂ X
= wj,l ylt + wj,0 = 1
∂wj,0 ∂wj,0 l=1

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 20 / 46


Apprentissage pour la couche de sortie

Apprentissage des poids de la couche de sortie


N N
η X ∂E t η X ∂E t ∂ej ∂yj ∂aj
t t t
∆wj,i = − =−
N ∂wj,i N ∂ejt ∂yjt ∂ajt ∂wj,i
t=1 t=1
N
η X t t
= ej yj (1 − yjt )yit
N
t=1

Apprentissage des biais de la couche de sortie


N N
η X ∂E t η X ∂E t ∂ej ∂yj ∂aj
t t t
∆wj,0 = − =−
N ∂wj,0 N ∂ejt ∂yjt ∂ajt ∂wj,0
t=1 t=1
XN
η
= ejt yjt (1 − yjt )
N
t=1

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 21 / 46


Règle du delta

Poser un delta δjt , qui corresponds au gradient local du neurone j


pour la donnée xt

δjt = ejt yjt (1 − yjt )


N
η X t t
∆wj,i = δj yi
N
t=1
XN
η
∆wj,0 = δjt
N
t=1

Formulation utile pour correction de l’erreur sur les couches cachées

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 22 / 46


Correction de l’erreur pour les couches cachées

Gradient de l’erreur pour les couches cachées


t t
∂E t ∂E t ∂yj ∂aj
=
∂wj,i ∂yjt ∂ajt ∂wj,i

∂E t ∂yjt ∂ajt
Seul ∂yjt
change, ∂ajt
et ∂wj,i sont les mêmes que sur la couche de
sortie
I Erreur pour un neurone de la couche cachée dépend de l’erreur des
neurones k de la couche suivante (rétropropagation des erreurs)

1X t 2
Et = (ek )
2
k

∂E t ∂ 1 X t 2 X t ∂ekt
= (ek ) = ek t
∂yjt ∂yjt 2 ∂yj
k k

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 23 / 46


Correction de l’erreur pour les couches cachées

∂E t ∂ 1 X t 2 X t ∂ekt
= (ek ) = ek t
∂yjt ∂yjt 2 ∂yj
k k
X ∂e t ∂at
= ekt kt kt
∂ak ∂yj
k
X ∂(r t − y t ) P
∂ ( l wk,l ylt + wk,0 )
= ekt k k
∂akt ∂yjt
k
X
= ekt [−ykt (1 − ykt )]wk,j
k
δkt = ekt [ykt (1 − ykt )]
∂E t X
= − δkt wk,j
∂yjt
k

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 24 / 46


Correction de l’erreur pour les couches cachées

Correction de l’erreur correspondante


t t
∂E t ∂E t ∂yj ∂aj
=
∂wj,i ∂yjt ∂ajt ∂wj,i
" #
X
= − δkt wk,j yjt (1 − yjt )yit
k
X
δjt = yjt (1 − yjt ) δkt wk,j
k
N N
∂E η X ∂E t η X t t
∆wj,i = −η =− = δj yi
∂wj,i N ∂wj,i N
t=1 t=1
XN N
X
∂E η ∂E t η
∆wj,0 = −η =− = δjt
∂wj,0 N ∂wj,0 N
t=1 t=1

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 25 / 46


Rétropropagation des erreurs

t
t
1 1 = et1 y1t (1 y1t )

X y1t
X
f ··· f
wj,1
t
j
w1,j
1
X atj yjt 1
f

...
...

t wj,0 wK,j t
K = etK yK
t
(1 t
yK )
R

X t
wj,R 1
X
yR
f f
···
1 1

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 26 / 46


Apprentissage par lots et en ligne

Apprentissage par lots


P
I Guidé par l’erreur quadratique moyenne (E = N1 t E t )
I Correction des poids une fois à chaque époque, en calculant l’erreur
pour tout le jeu de données
I Relative stabilité de l’apprentissage
Apprentissage en ligne
I Correction des poids pour chaque présentation de données, donc N
corrections de poids par époque
I Guidé par l’erreur quadratique de chaque donnée (E t )
I Requiert la permutation de l’ordre de traitement à chaque époque pour
éviter les mauvaises séquences
I Apprentissage en ligne est plus rapide que par lots, mais avec risque de
plus grandes instabilités

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 27 / 46


Saturation des neurones

Plage opératoire des neurones avec fonction sigmoı̈de autour de 0


I Pour valeurs de a faibles fsig (a) → 0, et pour valeurs de a élevée,
fsig (a) → 1

fsig (1) = 0,7311, fsig (5) = 0,9933, fsig (10) ≈ 1

Pour valeurs grandes/petites, disons x < −10 ou x > 10, gradient


pratiquement nul
I Apprentissage extrêmement lent
Valeurs d’entrées, les xt , doivent être normalisées au préalable dans
[−1, 1]
I Typiquement, normalisation selon valeurs min et max du jeu de
données pour chaque dimension
I Appliquer la même normalisation aux données évaluées (ne pas
recalculer la normalisation)

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 28 / 46


Valeurs désirées en sortie

En classement, valeurs désirées rit ∈ {0, 1}


I Souffre également du problème de saturation des neurones avec
fonction sigmoı̈de
I On vise à approximer les rit avec les neurones de la couche de sortie

fsig (a) = 0 ⇒ a → −∞, fsig (a) = 1 ⇒ a → ∞

Solution : transformer les valeurs désirées en valeurs r̃it ∈ {0,05, 0,95}


I Si xt ∈ Ci alors r̃it = 0,95
I Autrement r̃it = 0,05

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 29 / 46


Initialisation des poids

Les poids et biais d’un perceptron multicouche sont initialisés


aléatoirement
I Typiquement, on initialise les poids et biais uniformément dans
[−0,5, 0,5]
wj,i ∼ U(−0,5, 0,5), ∀i,j

Perceptron multicouche est donc un algorithme stochastique


I D’une exécution à l’autre, on n’obtient pas nécessairement les mêmes
résultats

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 30 / 46


Algorithme de rétropropagation
1 Normaliser données d’entraı̂nement xit ∈ [−1,1] et sortie désirées r̃jt ∈ {0,05, 0,95}
2 Initialiser les poids et biais aléatoirement, wi,j ∈ [−0,5, 0,5]
3 Tant que le critère d’arrêt n’est pas atteint, répéter :
1 Calculer les sorties observées en propageant les données vers l’avant
2 Calculer les erreurs observées sur la couche de sortie
ejt = r̃jt − yjt , j = 1, . . . ,K , t = 1, . . . ,N
3 Ajuster les poids et biais en rétropropageant l’erreur observée
η X t t
wj,i = wj,i + ∆wj,i = wj,i + δ y
N t j i
η X t
wj,0 = wj,0 + ∆wj,0 = wj,0 + δ
N t j
où le gradient local est défini par :

ejt yjt (1 − yjt ) si j ∈ couche de sortie
δjt = P
yj (1 − yjt ) k δkt wk,j
t
si j ∈ couche cachée

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 31 / 46


Surapprentissage et critère d’arrêt

Nombre d’époques : facteur J/n


déterminant pour le
surapprentissage validation
Critère d’arrêt : lorsque l’erreur
tra test
sur l’ensemble de validation inin
g
augmente (généralisation)
Requiert utilisation d’une partie epochs
1 2 3 4 5 6 7 8 9 10 11
des données de l’ensemble pour
FIGURE 6.6. A learningTiré de shows
curve R.O. Duda, P.E. Hart,
the criterion D.G. Stork,
function as a function of the
la validation Pattern Classification,
of training, typically indicated by the number Wiley Interscience,
of epochs 2001.
or presentations of the fu

ing set. We plot the average error per pattern, that is, 1/ n np=1 Jp . The validatio
and the test or generalization error per pattern are virtually always higher than th
ing error. In some protocols, training is stopped at the first minimum of the va
set. From: Richard O. Duda, Peter E. Hart, and David G. Stork, Pattern Classifi
Copyright  c 2001 by John Wiley & Sons, Inc.

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 32 / 46


Momentum

Règle du delta généralisée


η X t t
wj,i (n) = wj,i (n − 1) + δ y + α∆wj,i (n − 1)
N t j i
η X t
wj,0 (n) = wj,0 (n − 1) + δ + α∆wj,0 (n − 1)
N t j

Facteur ∆wj,i (n − 1) est la correction effectuée au poids/biais à


l’époque précédente
Paramètre α ∈ [0,5, 1] est nommé momentum
Donne une « inertie » à la descente du gradient, en incluant une
correction provenant des itérations précédentes
Avec momentum, le facteur ∆wj,i (n − 1) dépend lui-même de la
correction de l’itération précédente ∆wj,i (n − 2), et ainsi de suite

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 33 / 46


Momentum

J(w)

tic
h as m
c tu
sto en
om
m
w.

w1
FIGURE 6.18.TiréThe incorporation
de R.O. of Stork,
Duda, P.E. Hart, D.G. momentum into stochastic
Pattern Classification, gradient
Wiley Interscience, 2001. descent by
Eq. 37 (red arrows) reduces the variation in overall gradient directions and speeds learn-
ing. From:/ GIF-7005
GIF-4101 Richard(U.O. Duda, Peter Perceptron
Laval) and David G. Stork, Pattern
E. Hart,multicouche Classification
C. Gagné 34 / 46 .
Régression avec perceptron multicouche

Algorithme de rétropropagation développé ici pour fonction de


transfert sigmoı̈de, pour le classement
I D’autres fonctions de transfert peuvent être utilisées
F Fonction linéaire : flin (a) = a
F Fonction tangente hyperbolique : ftanh (a) = tanh(a)
F Fonction ReLU (rectified linear unit) : fReLU (a) = max(0,a)
I En fait, toutes fonctions continues dérivables sur R peuvent être
utilisées
Perceptron multicouche approprié pour de la régression
I Topologie conseillée : une couche cachée avec fonction sigmoı̈de et une
couche de sortie avec fonction linéaire
I Critère de l’erreur quadratique moyenne approprié pour la régression

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 35 / 46


Méthode du deuxième ordre
La descente du gradient est une méthode du premier ordre (dérivées
premières)
Possibilité de faire mieux avec des méthodes du deuxième ordre
Méthode de Newton
I Basée sur l’expansion de la série de Taylor du deuxième ordre,
x0 = x + ∆x un point dans le voisinage de x
1
F (x0 ) = F (x + ∆x) ≈ F (x) + ∇F (x)T ∆x + ∆xT ∇2 F (x)∆x = F̂ (x)
2
I Recherche un plateau dans l’erreur quadratique F̂ (x)
∂ F̂ (x)
= ∇F (x) + ∇2 F (x)∆x = 0
∂x
∆x = −(∇2 F (x))−1 ∇F (x)
I Calcul de l’inverse de la matrice Hessienne ((∇2 F (x))−1 ) coûteux en
calculs
I Méthode du gradient conjugué évite le calcul de l’inverse de la matrice
Hessienne
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 36 / 46
Fonctions de base radiale

Fonctions de base radiale (RBF : Radial Basis Functions)


 
kx − mi k2
φi (x) = exp −
2si2

Consiste en une fonction gaussienne centrée sur mi avec une influence


locale paramétrée par si
I À strictement parler,
R ∞ ce n’est pas une densité de probabilité de loi
multinormale ( −∞ φi (x)dx 6= 1)
Idée : chaque fonction gaussienne capture un groupe de données dans
un certain voisinage
Avec R fonctions gaussiennes, projection dans un espace à R
dimensions
φ = [φ1 . . . φR ]T : RD → RR

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 37 / 46


Discrimination avec fonctions gaussiennes

Discrimination avec R fonctions gaussiennes (K classes)


R
X R
X  
kx − mi k2
hj (x) = wj,i φi (x) + wj,0 = wj,i exp − + wj,0
2si2
i=1 i=1

Paramètres du discriminant à estimer


I Positions mi des fonctions gaussiennes
I Étalement si des fonctions
F Fréquent de le partager entre les fonctions gaussiennes, si = s, ∀i
I Poids wj,i des fonctions gaussiennes
F Poids wj,i lie la j-ième classe à la i-ième fonction gaussienne
F Peut être fixé à des constantes, wi = ±1, selon l’association entre
fonctions gaussiennes et classes
I Biais wj,0 des sorties
F Avec poids égaux, ex. wj,i = ±1, biais peut être nul, wj,0 = 0

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 38 / 46


Réseau RBF et rétropropagation

Réseau RBF peut être vu comme un cas particulier d’un perceptron


multicouche
I Une couche cachée avec fonction gaussienne
I Couche de sortie avec fonction linéaire
Développement des équations pour mettre à jour les mi , wj , wj,0 et
même si avec descente du gradient est une instance de l’algorithme
de rétropropagation des erreurs
I Corrige d’abord les poids wj et wj,0 sur la couche de sortie
I Corrige ensuite les positions des centres mi et étalements si

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 39 / 46


Réseau RBF comme réseau de neurones

1 (x) w1,1
X h1 (x)
x1

w2,1 w1,2
s1 m1 w1,0
w1,3
1
x2

2 (x) w2,2
X h2 (x)

x3
w2,3
s2 m2 w2,0
1
...

...

...
wK,1
wK,2

R (x) wK,3
X hK (x)
xD

mR
sR wK,0
1

D entrées R neurones gaussiennes K neurones linéaires en sortie

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 40 / 46


Apprentissage avec descente du gradient (wj et wj,0 )
Critère d’erreur quadratique
N K N K
" R
!#2
1 X1X t 2 1 XX t X
E (w,w0 |X ) = (ej ) = r − wj,i φi (xt ) + wj,0
N t=1 2 j=1 2N t=1 j=1 j i=1

Dérivée partielle pour wi et wi,0


N R N
" !#
∂E 1 X t X 1 X t
= − r − wj,i φi (xt ) + wj,0 φi (xt ) = − e φi (xt )
∂wj,i N t=1 j i=1
N t=1 j
N R N
" !#
∂E 1 X t X
t 1 X t
= − r − wj,i φi (x ) + wj,0 =− e
∂wi,0 N t=1 j i=1
N t=1 j

Descente du gradient pour wj,i = wj,i + ∆wj,i , i = 0, . . . ,K


N N
∂E η X t t ∂E η X t
∆wj,i = −η = ej φi (x ), ∆wj,0 = −η = ej
∂wj,i N ∂wj,0 N
t=1 t=1

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 41 / 46


Apprentissage avec descente du gradient (mi )
Dérivée partielle pour mi = [mi,1 mi,2 · · · mi,D ]T
h i
kxt −mi k2  
t
∂φi (x ) ∂ exp − 2
2si (x t − mi,k ) kxt − mi k2
= = k 2 exp −
∂mi,k ∂mi,k si 2si2
(xkt − mi,k )
= φi (xt )
si2
N K
" R
!#
∂E 1 XX X ∂φi (xt )
= − wj,i rjt − wj,i φi (xt ) + wj,0
∂mi,k N ∂mi,k
t=1 j=1 i=1
N K
1 XX t (x t − mi,k )
= − ej wj,i k 2 φi (xt )
N si
t=1 j=1

Apprentissage : mi,k = mi,k + ∆mi,k , i = 1, . . . ,R, k = 1, . . . ,D


N K
∂E η XX t (x t − mi,k )
∆mi,k = −η = ej wj,i k 2 φi (xt )
∂mi,k N si
t=1 j=1
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 42 / 46
Apprentissage avec descente du gradient (si )
Dérivée partielle pour si
h i
kxt −mi k2  
t
∂φi (x ) ∂ exp − 2si2 kxt − mi k2 kxt − mi k2
= =2 exp −
∂si ∂si 2si3 2si2
kxt − mi k2
= φi (xt )
si3
N K
" R
!#
∂E 1 XX X ∂φi (xt )
= − wj,i rjt − wj,i φi (xt ) + wj,0
∂si N ∂si
t=1 j=1 i=1
N K
1 XX t kxt − mi k2
= − ej wj,i 3
φi (xt )
N si
t=1 j=1

Apprentissage : si = si + ∆si , i = 1, . . . ,R
N K
∂E η XX t kxt − mi k2
∆si = −η = ej wj,i 3
φi (xt )
∂si N si
t=1 j=1
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 43 / 46
Apprentissage en bloc et hybride

Apprentissage en bloc de réseau RBF


I Apprentissage en bloc de wj , wj,0 , mi et si par descente du gradient
peut être relativement lourd, computationnellement parlant
I Convergence lente vers résultats satisfaisants
Apprentissage hybride
I Fixer si = s et apprendre les positions mi par clustering (ex. K -means)
I Ensuite, apprendre wj et wj,0 par descente du gradient

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 44 / 46


Scikit-learn
Depuis version 0.18 (fin septembre 2016), MLP est disponible dans
scikit-learn
I Plus nécessaire d’utiliser scikit-neuralnetwork pour les devoirs !
I Scikit-learn utilise certaines avancées des réseaux profonds (mais pas
toutes)
I Pas d’accélération GPU pour les calculs, rigidité des modèles utilisables
neural_network.MLPClassifier : perceptron multicouche pour le
classement
I Minimise entropie croisée pour du classement avec des méthodes
basées sur le gradient
X
Eentr = − r t log y t + (1 − r t ) log(1 − y t )
t

neural_network.MLPRegressor : perceptron multicouche pour la


régression
I Minimise l’erreur quadratique avec des méthodes basées sur le gradient
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 45 / 46
Paramètres de MLPClassifier et MLPRegressor
hidden_layer_sizes (tuple) : nombre de neurones sur chaque couche cachée (défaut :
(100,))
activation (string) : ‘identity’ (linéaire), ‘logistic’ (sigmoı̈de), ‘tanh’ et ‘relu’ (défaut :
‘relu’)
solver (string) : ‘lbfgs’ (quasi-Newton), ‘sgd’ (descente du gradient stochastique),
‘adam’ (sgd avec détermination automatique du taux d’apprentissage) (défaut : ‘adam’)
alpha (float) : paramètre de la régularisation L2 des poids (défaut : 0,0001)
batch_size (int) : taille des lots pour chaque mise à jour (défaut : min(200,N))
learning_rate_init (float) : taux d’apprentissage initial (défaut : 0,001)
learning_rate (string) : ‘constant’, ‘invscaling’ (learning rate init / pow(t, power t)),
‘adaptive’ (taux actuel réduit lorsque apprentissage stagne) (défaut : ‘constant’)
max_iter (int) : nombre maximal d’époques (défaut : 200)
tol (float) : tolérance, arrêt de l’apprentissage si gain < tolérance pour plus de deux
époques (défaut : 10−4 )
momentum (float) : momentum pour la descente du gradient (défaut : 0,9)
early_stopping (bool) : arrêt lorsque erreur sur ensemble de validation ne baisse plus
(défaut : False)
validation_fraction (float) : portion des données utilisées pour la validation avec l’early
stopping (défaut : 0,1)

GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagné 46 / 46

Vous aimerez peut-être aussi