apprentissage et reconnaissance { gif-4101 / gif-7005...
TRANSCRIPT
Perceptron multicouche
Apprentissage et reconnaissance – GIF-4101 / GIF-7005Professeur : Christian Gagne
Semaine 12 : 23 novembre 2016
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 1 / 46
Intelligence naturelle
Cerveau : siege de l’intelligence naturelleI Calculs paralleles et distribuesI Apprentissage et generalisationI Adaption et contexteI Tolerant aux fautesI Faible consommation d’energie
Machine computationnelle biologique !
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 2 / 46
Neurone biologique2.2. MODELE D’UN NEURONE 9
FIG. 2.2 – Schema d’un neurone biologique.
il engendre un potentiel electrique qui se propage a travers son axone1 pour eventuellement ve-nir exciter d’autres neurones. Le point de contact entre l’axone d’un neurone et le dendrite d’unautre neurone s’appelle le synapse. Il semble que c’est l’arrangement spatial des neurones et deleur axone, ainsi que la qualite des connexions synaptiques individuelles qui determine la fonc-tion2 precise d’un reseau de neurones biologique. C’est en se basant sur ces connaissances que lemodele mathematique decrit ci-dessus a ete defini.
Un poids d’un neurone artificiel represente donc l’efficacite d’une connexion synaptique. Unpoids negatif vient inhiber une entree, alors qu’un poids positif vient l’accentuer. Il importe deretenir que ceci est une grossiere approximation d’un veritable synapse qui resulte en fait d’un pro-cessus chimique tres complexe et dependant de nombreux facteurs exterieurs encore mal connus.Il faut bien comprendre que notre neurone artificiel est un modele pragmatique qui, comme nousle verrons plus loin, nous permettra d’accomplir des taches interessantes. La vraisemblance bio-logique de ce modele ne nous importe peu. Ce qui compte est le resultat que ce modele nouspermettra d’atteindre.
Un autre facteur limitatif dans le modele que nous nous sommes donnes concerne son caracterediscret. En effet, pour pouvoir simuler un reseau de neurones, nous allons rendre le temps discretdans nos equations. Autrement dit, nous allons supposer que tous les neurones sont synchrones,c’est-a-dire qu’a chaque temps t, ils vont simultanement calculer leur somme ponderee et produireune sortie a(t) = f(n(t)). Dans les reseaux biologiques, tous les neurones sont en fait asynchrones.
Revenons donc a notre modele tel que formule par l’equation 2.2 et ajoutons la fonction d’ac-
1Un axone peut etre plus ou moins long selon le type de neurone.2Notez bien, cependant, que des theories recentes remettent en cause cette hypothese. Mais ceci sort du cadre du
cours !
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 3 / 46
Modele de neurone artificiel
Xf
ya
w0
w1
w2
wR
1
. . .
R entréesy = f
RX
t=1
wixi + w0
!
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 4 / 46
Reseau de neurones
Chaque neurone est un discriminant lineaire avec une fonction detransfert f
y = f
(∑
i
wixi + w0
)= f(wT x + w0)
Exemples de fonctions de transfertI Fonction lineaire : flin(a) = aI Fonction sigmoıde : fsig (a) = 1
1+exp(−a)I Fonction seuil : fseuil (a) = 1 si a ≥ 0 et fseuil (a) = 0 autrement
Plusieurs neurones connectes ensembles forment un reseau deneurones
I Reseau a une couche : neurones connectes sur les entreesI Reseau a plusieurs couches : certains neurones sont connectes sur les
sorties d’autres neurones
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 5 / 46
Reseau de neurones (une couche)
Xf
1
...
Xf
1
Xf
1
...
R entrées K neurones
w1,0
w2,0
wK,0
w1,1
w1,3
w1,R
w2,1
w2,3
w2,R
w1,2
w2,2
wK,1wK,2
wK,3
wK,R
a1
a2
aK
y1
y2
yK
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 6 / 46
Perceptron multicouche
Reseau a une couche : ensemble de discriminants lineairesI Incapable de classer correctement des donnees non lineairement
separables
Reseau a plusieurs couches (perceptron multicouche)I Discriminants lineaires (neurones) cascades a la sortie d’autres
discriminants lineairesI Capable de classer des donnees non lineairement separablesI Ensemble de classifieurs simplesI Chaque couche fait une projection dans un nouvel espace
Lors du traitement de donnees, l’information se propage des entreesvers les sorties
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 7 / 46
Perceptron multicouche
Xf
1
...
Xf
1
Xf
1
...D entrées R1 neurones
Xf
Xf
1
Xf
1
...
Xf
Xf
1
Xf
1
...
1 1
R2 neurones K neurones
x1
x2
x3
xD
h1(x)
h2(x)
hK(x)
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 8 / 46
Probleme du XOR
Probleme du XOR
x1 = [0 0]T r1 = 0x2 = [0 1]T r2 = 1x3 = [1 0]T r3 = 1x4 = [1 1]T r4 = 0
Exemple de donnees nonlineairement separables
−0.5 0 0.5 1 1.5−0.5
0
0.5
1
1.5
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 9 / 46
Reseau pour le probleme du XOR
X
X
Xx1
x2
h(x)
2
2
-1
-1
-1
1,5
1
1-1,5
−0.5 0 0.5 1 1.5−0.5
0
0.5
1
1.5
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 10 / 46
Topologies de reseaux
Selon la topologie de reseau utilise, differentes frontieres de decisionssont possibles
I Reseau avec une couche cachee et une couche de sortie : frontieresconvexes
I Deux couches cachees ou plus : frontieres concavesF Le reseau de neurones est alors un approximateur universel
Nombre de poids (donc de neurones) determine directement lacomplexite du classifieur
I Determination de la bonne topologie est souvent ad hoc, par essais eterreurs
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 11 / 46
Formes de frontieres de decision
50 CHAPITRE 5. PERCEPTRON MULTICOUCHE
Entrée
p
-1
R
a1
Couche sigmoïde
a1 = logsig(W1p − b1)
W1
b1
+ n1
S1 x 1
S1 x RS1 x 1
S1 x 1
S1
R x 1a2
Couche linéaire
a2 = purelin(W2a1 − b2)
W2
b2
+ n2
S2 x 1
S2 x 1
S2 x 1
S2
S2 x S1
-1
FIG. 5.10 – Reseau multicouche permettant de faire de l’approximation de fonction.
(a) (b) (c) (d)
FIG. 5.11 – Exemples de frontieres de decision : (a) convexe ouverte ; (b) convexe fermee ; (c)concave ouverte ; et (d) concave fermee.
couche cachee. Intuitivement, un peu a la facon des series de Fourier qui utilisent des sinus et co-sinus, cette preuve passe par la demonstration que l’on peut approximer n’importe quelle fonctiond’interet par une combinaison lineaire de sigmoıdes.
5.3.3 Classification
Pour faire de la classification, on utilisera des reseaux soit a deux, soit a trois couches de neu-rones sigmoıdes. On peut montrer qu’une seule couche cachee suffit a engendrer des frontieres dedecision4 convexes, ouvertes ou fermees, de complexite arbitraire, alors que deux couches cacheespermettent de creer des frontieres de decision concaves5 ou convexes, ouvertes ou fermees, decomplexite arbitraire. La figure 5.11 montre en deux dimensions differents types de frontieres dedecision. Intuitivement, on veut voir que la premiere couche cachee d’un tel reseau sert a decouperl’espace d’entree a l’aide de frontieres de decision lineaires, comme on l’a vu pour le perceptronsimple, la deuxieme couche sert a assembler des frontieres de decision non- lineaires6 convexes en
4Notez bien qu’une frontiere de decision n’est pas necessairement une fonction !5Une courbe (surface) convexe ne comporte aucun changement dans le signe de la courbure, alors qu’une courbe
concave implique un point d’inflexion.6Les non- linearites proviennent des sigmoıdes !
Exemples de frontieres de decision : (a) convexe ouverte ; (b) convexefermee ; (c) concave ouverte ; et (d) concave fermee
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 12 / 46
Nombre de neurones sur la couche cachee
-10
1
-1
0
1
00.511.52
1 2 3 4 5
1
2
3
4
5
x1
x2
y1
y2
y1
y2
y3
input
2-2-1 2-3-1
1-1
-1
-1
patternsnot separated
patternsseparated
FIGURE 6.12. Seven patterns from a two-dimensional two-category nonlinearly sepa-rable classification problem are shown at the bottom. The figure at the top left shows thehidden unit representations of the patterns in a 2-2-1 sigmoidal network with bias fullytrained to the global error minimum; the linear boundary implemented by the hidden-to-output weights is marked as a gray dashed line. Note that the categories are almostlinearly separable in this y1y2-space, but one training point is misclassified. At the topright is the analogous hidden unit representation for a fully trained 2-3-1 network withbias. Because of the higher dimension of the hidden layer representation, the categoriesare now linearly separable; indeed the learned hidden-to-output weights implement aplane that separates the categories. From: Richard O. Duda, Peter E. Hart, and David G.Stork, Pattern Classification. Copyright c© 2001 by John Wiley & Sons, Inc.
Tire de R.O. Duda, P.E. Hart, D.G. Stork, Pattern Classification, Wiley Interscience, 2001.
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 13 / 46
Nombre de neurones sur la couche cachee
M = 1
0 1
−1
0
1 M = 3
0 1
−1
0
1 M = 10
0 1
−1
0
1
1-1-1 1-3-1 1-10-1Tire de C. M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006.
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 14 / 46
Retropropagation des erreurs
Apprentissage avec le perceptron multicouche : determiner les poidsw,w0 de tous les neurones
Retropropagation des erreursI Apprentissage par descente du gradientI Couche de sortie : correction guidee par l’erreur entre les sorties
desirees et obtenuesI Couches cachees : correction selon les sensibilites (influence du neurone
sur l’erreur dans la couche de sortie)
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 15 / 46
Retropropagation des erreurs
Xf
1
Xf
1
...
Xf
1
...X
f
Xf
1
1
· · ·
· · ·
wj,R
atj
wj,0
ytj
wj,1�tj
�t1 = et
1yt1(1 � yt
1)
�tK = et
KytK(1 � yt
K)�tR
�t1
yt1
ytR
w1,j
wK,j
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 16 / 46
Valeurs de sortie des neurones
Valeur y tj du neurone j pour la donnee xt
y tj = f(at
j ) = f
(R∑
i=1
wj ,iyti + wj ,0
)
I f : fonction d’activation du neuroneI at
j =∑R
i=1 wj,iyti + wj,0 : sommation ponderee des entrees du neurone
I wj,i : poids du lien connectant le neurone j au neurone i de la coucheprecedente
I wj,0 : biais du neurone jI y t
i : sortie du neurone i de la couche precedente pour la donnee xt
I R : nombre de neurones sur la couche precedente
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 17 / 46
Erreur de la couche de sortie
Un ensemble de donnees X = {xt ,rt}Nt=1, avec rt = [r t
1 r t2 . . . r t
K ]T ,ou r t
j = 1 si xt ∈ Cj , autrement r tj = 0
Erreur observee pour donnee xt sur neurone j de la couche de sortie
etj = r t
j − y tj
Erreur quadratique observee pour donnee xt sur les K neurones de lacouche de sortie (un neurone par classe)
E t =1
2
K∑
j=1
(etj )2
Erreur quadratique moyenne observee pour les donnees du jeu X
E =1
N
N∑
t=1
E t
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 18 / 46
Correction de l’erreur pour la couche de sortie
Correction des poids par descente du gradient de l’erreur quadratiquemoyenne
∆wj ,i = −η ∂E
∂wj ,i= − η
N
N∑
t=1
∂E t
∂wj ,i
L’erreur du neurone j depend des neurones de la couche precedenteI Developpement en utilisant la regle du chaınage des derivees
( ∂f∂x = ∂f
∂y∂y∂x )
∂E t
∂wj,i=
∂E t
∂etj
∂etj
∂y tj
∂y tj
∂atj
∂atj
∂wj,i
∂E t
∂wj,0=
∂E t
∂etj
∂etj
∂y tj
∂y tj
∂atj
∂atj
∂wj,0
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 19 / 46
Calcul des derivees partielles
Developpement avec fonction d’activation sigmoıde (y tj = 1
1+exp(−atj )
)
∂E t
∂etj
=∂
∂etj
1
2
K∑l=1
(etl )2 = et
j
∂etj
∂y tj
=∂
∂y tj
r tj − y t
j = −1
∂y tj
∂atj
=∂
∂atj
1
1 + exp(−atj )
=exp(−at
j )
[1 + exp(−atj )]2
=1
1 + exp(−atj )
exp(−atj ) + 1− 1
1 + exp(−atj )
= y tj (1− y t
j )
∂atj
∂wj,i=
∂
∂wj,i
R∑l=1
wj,l ytl + wj,0 = y t
i
∂atj
∂wj,0=
∂
∂wj,0
R∑l=1
wj,l ytl + wj,0 = 1
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 20 / 46
Apprentissage pour la couche de sortie
Apprentissage des poids de la couche de sortie
∆wj ,i = − ηN
N∑
t=1
∂E t
∂wj ,i= − η
N
N∑
t=1
∂E t
∂etj
∂etj
∂y tj
∂y tj
∂atj
∂atj
∂wj ,i
=η
N
N∑
t=1
etj y
tj (1− y t
j )y ti
Apprentissage des biais de la couche de sortie
∆wj ,0 = − ηN
N∑
t=1
∂E t
∂wj ,0= − η
N
N∑
t=1
∂E t
∂etj
∂etj
∂y tj
∂y tj
∂atj
∂atj
∂wj ,0
=η
N
N∑
t=1
etj y
tj (1− y t
j )
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 21 / 46
Regle du delta
Poser un delta δtj , qui corresponds au gradient local du neurone j
pour la donnee xt
δtj = et
j ytj (1− y t
j )
∆wj ,i =η
N
N∑
t=1
δtj y
ti
∆wj ,0 =η
N
N∑
t=1
δtj
Formulation utile pour correction de l’erreur sur les couches cachees
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 22 / 46
Correction de l’erreur pour les couches cachees
Gradient de l’erreur pour les couches cachees
∂E t
∂wj ,i=∂E t
∂y tj
∂y tj
∂atj
∂atj
∂wj ,i
Seul ∂E t
∂y tj
change,∂y t
j
∂atj
et∂at
j
∂wj,isont les memes que sur la couche de
sortieI Erreur pour un neurone de la couche cachee depend de l’erreur des
neurones k de la couche suivante (retropropagation des erreurs)
E t =1
2
∑
k
(etk )2
∂E t
∂y tj
=∂
∂y tj
1
2
∑
k
(etk)2 =
∑
k
etk
∂etk
∂y tj
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 23 / 46
Correction de l’erreur pour les couches cachees
∂E t
∂y tj
=∂
∂y tj
1
2
∑
k
(etk)2 =
∑
k
etk
∂etk
∂y tj
=∑
k
etk
∂etk
∂atk
∂atk
∂y tj
=∑
k
etk
∂(r tk − y t
k)
∂atk
∂ (∑
l wk,lytl + wk,0)
∂y tj
=∑
k
etk [−y t
k(1− y tk)]wk,j
δtk = et
k [y tk(1− y t
k)]
∂E t
∂y tj
= −∑
k
δtkwk,j
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 24 / 46
Correction de l’erreur pour les couches cachees
Correction de l’erreur correspondante
∂E t
∂wj ,i=
∂E t
∂y tj
∂y tj
∂atj
∂atj
∂wj ,i
= −[∑
k
δtkwk,j
]y t
j (1− y tj )y t
i
δtj = y t
j (1− y tj )∑
k
δtkwk,j
∆wj ,i = −η ∂E
∂wj ,i= − η
N
N∑
t=1
∂E t
∂wj ,i=η
N
N∑
t=1
δtj y
ti
∆wj ,0 = −η ∂E
∂wj ,0= − η
N
N∑
t=1
∂E t
∂wj ,0=η
N
N∑
t=1
δtj
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 25 / 46
Retropropagation des erreurs
Xf
1
Xf
1
...
Xf
1
...X
f
Xf
1
1
· · ·
· · ·
wj,R
atj
wj,0
ytj
wj,1�tj
�t1 = et
1yt1(1 � yt
1)
�tK = et
KytK(1 � yt
K)�tR
�t1
yt1
ytR
w1,j
wK,j
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 26 / 46
Apprentissage par lots et en ligne
Apprentissage par lotsI Guide par l’erreur quadratique moyenne (E = 1
N
∑t E
t)I Correction des poids une fois a chaque epoque, en calculant l’erreur
pour tout le jeu de donneesI Relative stabilite de l’apprentissage
Apprentissage en ligneI Correction des poids pour chaque presentation de donnees, donc N
corrections de poids par epoqueI Guide par l’erreur quadratique de chaque donnee (E t)I Requiert la permutation de l’ordre de traitement a chaque epoque pour
eviter les mauvaises sequencesI Apprentissage en ligne est plus rapide que par lots, mais avec risque de
plus grandes instabilites
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 27 / 46
Saturation des neurones
Plage operatoire des neurones avec fonction sigmoıde autour de 0I Pour valeurs de a faibles fsig (a)→ 0, et pour valeurs de a elevee,
fsig (a)→ 1
fsig (1) = 0,7311, fsig (5) = 0,9933, fsig (10) ≈ 1
Pour valeurs grandes/petites, disons x < −10 ou x > 10, gradientpratiquement nul
I Apprentissage extremement lent
Valeurs d’entrees, les xt , doivent etre normalisees au prealable dans[−1, 1]
I Typiquement, normalisation selon valeurs min et max du jeu dedonnees pour chaque dimension
I Appliquer la meme normalisation aux donnees evaluees (ne pasrecalculer la normalisation)
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 28 / 46
Valeurs desirees en sortie
En classement, valeurs desirees r ti ∈ {0, 1}
I Souffre egalement du probleme de saturation des neurones avecfonction sigmoıde
I On vise a approximer les r ti avec les neurones de la couche de sortie
fsig (a) = 0 ⇒ a→ −∞, fsig (a) = 1 ⇒ a→∞
Solution : transformer les valeurs desirees en valeurs r ti ∈ {0,05, 0,95}
I Si xt ∈ Ci alors r ti = 0,95
I Autrement r ti = 0,05
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 29 / 46
Initialisation des poids
Les poids et biais d’un perceptron multicouche sont initialisesaleatoirement
I Typiquement, on initialise les poids et biais uniformement dans[−0,5, 0,5]
wj,i ∼ U(−0,5, 0,5), ∀i ,j
Perceptron multicouche est donc un algorithme stochastiqueI D’une execution a l’autre, on n’obtient pas necessairement les memes
resultats
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 30 / 46
Algorithme de retropropagation
1 Normaliser donnees d’entraınement x ti ∈ [−1,1] et sortie desirees r t
j ∈ {0,05, 0,95}2 Initialiser les poids et biais aleatoirement, wi,j ∈ [−0,5, 0,5]
3 Tant que le critere d’arret n’est pas atteint, repeter :
1 Calculer les sorties observees en propageant les donnees vers l’avant2 Calculer les erreurs observees sur la couche de sortie
etj = r t
j − y tj , j = 1, . . . ,K , t = 1, . . . ,N
3 Ajuster les poids et biais en retropropageant l’erreur observee
wj,i = wj,i + ∆wj,i = wj,i +η
N
∑
t
δtj y
ti
wj,0 = wj,0 + ∆wj,0 = wj,0 +η
N
∑
t
δtj
ou le gradient local est defini par :
δtj =
{et
j ytj (1− y t
j ) si j ∈ couche de sortiey t
j (1− y tj )∑
k δtkwk,j si j ∈ couche cachee
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 31 / 46
Surapprentissage et critere d’arret
Nombre d’epoques : facteurdeterminant pour lesurapprentissage
Critere d’arret : lorsque l’erreursur l’ensemble de validationaugmente (generalisation)
Requiert utilisation d’une partiedes donnees de l’ensemble pourla validation
J/n
epochs
trainingtest
validation
1 2 3 4 5 6 7 8 9 10 11
FIGURE 6.6. A learning curve shows the criterion function as a function of the amountof training, typically indicated by the number of epochs or presentations of the full train-ing set. We plot the average error per pattern, that is, 1/n
∑np=1 Jp. The validation error
and the test or generalization error per pattern are virtually always higher than the train-ing error. In some protocols, training is stopped at the first minimum of the validationset. From: Richard O. Duda, Peter E. Hart, and David G. Stork, Pattern Classification.Copyright c© 2001 by John Wiley & Sons, Inc.
Tire de R.O. Duda, P.E. Hart, D.G. Stork,Pattern Classification, Wiley Interscience, 2001.
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 32 / 46
Momentum
Regle du delta generalisee
wj ,i (n) = wj ,i (n − 1) +η
N
∑
t
δtj y
ti + α∆wj ,i (n − 1)
wj ,0(n) = wj ,0(n − 1) +η
N
∑
t
δtj + α∆wj ,0(n − 1)
Facteur ∆wj ,i (n − 1) est la correction effectuee au poids/biais al’epoque precedente
Parametre α ∈ [0,5, 1] est nomme momentum
Donne une « inertie » a la descente du gradient, en incluant unecorrection provenant des iterations precedentes
Avec momentum, le facteur ∆wj ,i (n − 1) depend lui-meme de lacorrection de l’iteration precedente ∆wj ,i (n − 2), et ainsi de suite
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 33 / 46
Momentum
w1
J(w)
stoch
astic
w. momen
tum
FIGURE 6.18. The incorporation of momentum into stochastic gradient descent byEq. 37 (red arrows) reduces the variation in overall gradient directions and speeds learn-ing. From: Richard O. Duda, Peter E. Hart, and David G. Stork, Pattern Classification.Copyright c© 2001 by John Wiley & Sons, Inc.
Tire de R.O. Duda, P.E. Hart, D.G. Stork, Pattern Classification, Wiley Interscience, 2001.
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 34 / 46
Regression avec perceptron multicouche
Algorithme de retropropagation developpe ici pour fonction detransfert sigmoıde, pour le classement
I D’autres fonctions de transfert peuvent etre utiliseesF Fonction lineaire : flin(a) = aF Fonction tangente hyperbolique : ftanh(a) = tanh(a)F Fonction ReLU (rectified linear unit) : fReLU (a) = max(0,a)
I En fait, toutes fonctions continues derivables sur R peuvent etreutilisees
Perceptron multicouche approprie pour de la regressionI Topologie conseillee : une couche cachee avec fonction sigmoıde et une
couche de sortie avec fonction lineaireI Critere de l’erreur quadratique moyenne approprie pour la regression
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 35 / 46
Methode du deuxieme ordre
La descente du gradient est une methode du premier ordre (deriveespremieres)
Possibilite de faire mieux avec des methodes du deuxieme ordreMethode de Newton
I Basee sur l’expansion de la serie de Taylor du deuxieme ordre,x′ = x + ∆x un point dans le voisinage de x
F (x′) = F (x + ∆x) ≈ F (x) +∇F (x)T ∆x +1
2∆xT∇2F (x)∆x = F (x)
I Recherche un plateau dans l’erreur quadratique F (x)
∂F (x)
∂x= ∇F (x) +∇2F (x)∆x = 0
∆x = −(∇2F (x))−1∇F (x)
I Calcul de l’inverse de la matrice Hessienne ((∇2F (x))−1) couteux encalculs
I Methode du gradient conjugue evite le calcul de l’inverse de la matriceHessienne
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 36 / 46
Fonctions de base radiale
Fonctions de base radiale (RBF : Radial Basis Functions)
φi (x) = exp
[−‖x−mi‖2
2s2i
]
Consiste en une fonction gaussienne centree sur mi avec une influencelocale parametree par si
I A strictement parler, ce n’est pas une densite de probabilite de loimultinormale (
∫∞−∞ φi (x)dx 6= 1)
Idee : chaque fonction gaussienne capture un groupe de donnees dansun certain voisinage
Avec R fonctions gaussiennes, projection dans un espace a Rdimensions
φ = [φ1 . . . φR ]T : RD → RR
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 37 / 46
Discrimination avec fonctions gaussiennes
Discrimination avec R fonctions gaussiennes (K classes)
hj (x) =R∑
i=1
wj ,iφi (x) + wj ,0 =R∑
i=1
wj ,i exp
[−‖x−mi‖2
2s2i
]+ wj ,0
Parametres du discriminant a estimerI Positions mi des fonctions gaussiennesI Etalement si des fonctions
F Frequent de le partager entre les fonctions gaussiennes, si = s, ∀i
I Poids wj,i des fonctions gaussiennesF Poids wj,i lie la j-ieme classe a la i-ieme fonction gaussienneF Peut etre fixe a des constantes, wi = ±1, selon l’association entre
fonctions gaussiennes et classes
I Biais wj,0 des sortiesF Avec poids egaux, ex. wj,i = ±1, biais peut etre nul, wj,0 = 0
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 38 / 46
Reseau RBF et retropropagation
Reseau RBF peut etre vu comme un cas particulier d’un perceptronmulticouche
I Une couche cachee avec fonction gaussienneI Couche de sortie avec fonction lineaire
Developpement des equations pour mettre a jour les mi , wj , wj ,0 etmeme si avec descente du gradient est une instance de l’algorithmede retropropagation des erreurs
I Corrige d’abord les poids wj et wj,0 sur la couche de sortieI Corrige ensuite les positions des centres mi et etalements si
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 39 / 46
Reseau RBF comme reseau de neurones
...
...
D entrées R neurones gaussiennes
X
X
1
X
1
...1
K neurones linéaires en sortie
x1
x2
x3
xD
s1
s2
sR
m1
m2
mR
�1(x)
�2(x)
�R(x)
w1,0
w2,0
wK,0
w1,1
w1,2
w1,3
w2,1
w2,2
w2,3
wK,1
wK,2
wK,3
h1(x)
h2(x)
hK(x)
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 40 / 46
Apprentissage avec descente du gradient (wj et wj ,0)
Critere d’erreur quadratique
E(w,w0|X ) =1
N
N∑t=1
1
2
K∑j=1
(etj )2 =
1
2N
N∑t=1
K∑j=1
[r tj −
(R∑
i=1
wj,iφi (xt ) + wj,0
)]2
Derivee partielle pour wi et wi ,0
∂E
∂wj,i= −
1
N
N∑t=1
[r tj −
(R∑
i=1
wj,iφi (xt ) + wj,0
)]φi (xt ) = −
1
N
N∑t=1
etj φi (xt )
∂E
∂wi,0= −
1
N
N∑t=1
[r tj −
(R∑
i=1
wj,iφi (xt ) + wj,0
)]= −
1
N
N∑t=1
etj
Descente du gradient pour wj ,i = wj ,i + ∆wj ,i , i = 0, . . . ,K
∆wj ,i = −η ∂E
∂wj ,i=η
N
N∑
t=1
etj φi (xt), ∆wj ,0 = −η ∂E
∂wj ,0=η
N
N∑
t=1
etj
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 41 / 46
Apprentissage avec descente du gradient (mi)
Derivee partielle pour mi = [mi ,1 mi ,2 · · · mi ,D ]T
∂φi (xt)
∂mi ,k=
∂ exp[−‖xt−mi‖2
2s2i
]
∂mi ,k=
(x tk −mi ,k)
s2i
exp
[−‖x
t −mi‖2
2s2i
]
=(x t
k −mi ,k)
s2i
φi (xt)
∂E
∂mi ,k= − 1
N
N∑
t=1
K∑
j=1
wj ,i
[r tj −
(R∑
i=1
wj ,iφi (xt) + wj ,0
)]∂φi (xt)
∂mi ,k
= − 1
N
N∑
t=1
K∑
j=1
etj wj ,i
(x tk −mi ,k)
s2i
φi (xt)
Apprentissage : mi ,k = mi ,k + ∆mi ,k , i = 1, . . . ,R, k = 1, . . . ,D
∆mi ,k = −η ∂E
∂mi ,k=η
N
N∑
t=1
K∑
j=1
etj wj ,i
(x tk −mi ,k)
s2i
φi (xt)
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 42 / 46
Apprentissage avec descente du gradient (si)
Derivee partielle pour si
∂φi (xt)
∂si=
∂ exp[−‖xt−mi‖2
2s2i
]
∂si= 2‖xt −mi‖2
2s3i
exp
[−‖x
t −mi‖2
2s2i
]
=‖xt −mi‖2
s3i
φi (xt)
∂E
∂si= − 1
N
N∑
t=1
K∑
j=1
wj ,i
[r tj −
(R∑
i=1
wj ,iφi (xt) + wj ,0
)]∂φi (xt)
∂si
= − 1
N
N∑
t=1
K∑
j=1
etj wj ,i
‖xt −mi‖2
s3i
φi (xt)
Apprentissage : si = si + ∆si , i = 1, . . . ,R
∆si = −η∂E∂si
=η
N
N∑
t=1
K∑
j=1
etj wj ,i
‖xt −mi‖2
s3i
φi (xt)
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 43 / 46
Apprentissage en bloc et hybride
Apprentissage en bloc de reseau RBFI Apprentissage en bloc de wj , wj,0, mi et si par descente du gradient
peut etre relativement lourd, computationnellement parlantI Convergence lente vers resultats satisfaisants
Apprentissage hybrideI 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. Gagne 44 / 46
Scikit-learn
Depuis version 0.18 (fin septembre 2016), MLP est disponible dansscikit-learn
I Plus necessaire d’utiliser scikit-neuralnetwork pour les devoirs !I Scikit-learn utilise certaines avancees des reseaux profonds (mais pas
toutes)I Pas d’acceleration GPU pour les calculs, rigidite des modeles utilisables
neural_network.MLPClassifier : perceptron multicouche pour leclassement
I Minimise entropie croisee pour du classement avec des methodesbasees sur le gradient
Eentr = −∑
t
r t log y t + (1− r t) log(1− y t)
neural_network.MLPRegressor : perceptron multicouche pour laregression
I Minimise l’erreur quadratique avec des methodes basees sur le gradient
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 45 / 46
Parametres de MLPClassifier et MLPRegressor
hidden_layer_sizes (tuple) : nombre de neurones sur chaque couche cachee (defaut :(100,))
activation (string) : ‘identity’ (lineaire), ‘logistic’ (sigmoıde), ‘tanh’ et ‘relu’ (defaut :‘relu’)
solver (string) : ‘lbfgs’ (quasi-Newton), ‘sgd’ (descente du gradient stochastique),‘adam’ (sgd avec determination automatique du taux d’apprentissage) (defaut : ‘adam’)
alpha (float) : parametre de la regularisation L2 des poids (defaut : 0,0001)
batch_size (int) : taille des lots pour chaque mise a jour (defaut : min(200,N))
learning_rate_init (float) : taux d’apprentissage initial (defaut : 0,001)
learning_rate (string) : ‘constant’, ‘invscaling’ (learning rate init / pow(t, power t)),‘adaptive’ (taux actuel reduit lorsque apprentissage stagne) (defaut : ‘constant’)
max_iter (int) : nombre maximal d’epoques (defaut : 200)
tol (float) : tolerance, arret de l’apprentissage si gain < tolerance pour plus de deuxepoques (defaut : 10−4)
momentum (float) : momentum pour la descente du gradient (defaut : 0,9)
early_stopping (bool) : arret lorsque erreur sur ensemble de validation ne baisse plus(defaut : False)
validation_fraction (float) : portion des donnees utilisees pour la validation avec l’earlystopping (defaut : 0,1)
GIF-4101 / GIF-7005 (U. Laval) Perceptron multicouche C. Gagne 46 / 46