Upload
luc-gilles
View
123
Download
3
Embed Size (px)
Citation preview
Chapitre 4
Perceptron multicouche
Plan
4- Perceptron multicouche Intro: labo 2 Erreur et gradient d’erreur Rétro-propagation du gradient
d’erreur Algorithme Choix des paramètres Exemples
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 3
Découverte
L.P.J. Veelenturf, Analysis and applications of Neural Networks, Prentice Hall, 1995. Couvre à fond le perceptron, le
perceptron multicouche et SOM Traitement complet, mais plutôt
math (théorèmes, axiomes) K. Swingler, Applying Neural
Networks, Academic Press, 1996. 1 seul modèle: perceptron
multicouche Guide pratique Plusieurs exemples
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 4
Laboratoire 2: Primitives d’une image
Extraction des primitives
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 5
1- Construction du réseau
Réseau à rétro-propagation
NI = 3x3
Nh = 6
No = 1
Entrée
Couche cachée
Sortie (arête)
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 6
Extraction des primitives
Sous-image pour l’apprentissage
Construction d’une base d’apprentissage
2- Choix d’une base d’apprentissage
586 vecteurs 3x3 d’apprentissage sont sélectionnés (distance euclidienne plus grande que 0,17)
3- Apprentissage4- Généralisation
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 9
4- Réseaux multicouches Algorithme de BP
x1
x2
xn
xN
Couche d’entrée
Couche cachée 1
Couche cachée 2
Couche de sortie
X S
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 10
Réseaux Madaline
x2
x1
Z2
Z1
Y
X2
X1
1
1 1b1
v1
w11
w21
w12
w22
v2
b3
b2
Plans de classification convexes
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 11
Réseaux mono et multicouches
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 12
Théorème de Kolmogorov (1963)
« Un perceptron à 3 couches comprenant N(2N+1) neurones utilisant des fonctions non-linéaires continûment croissantes peut approximer toute fonction continue de N variables »
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 13
Dimensions pour répondre à un problème
de reconnaissance de formes ?
x1
x2
xn
xN
MN
s1
sm
sM
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 14
Comment associer une sortie à chaque classe ?Classe « m » : X Cm sm=1, et sm’=0 si mm’
Quelle est la nature des sorties ?Neurone de McCulloch&Pitts
sorties bipolaires +1 et -1 sorties binaires +1 et 0
Comment réaliser l’apprentissage des poids synaptiques ?
Algorithme du gradient fonctions «dérivables»
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 15
Problèmes avec l’approche de Rosenblatt
- L’apprentissage avec un algorithme de descente de gradient et une fonction de Heaviside = un Dirac et des zéros presque partout
Mais on doit tout de même utiliser une fonction non-linéaire pour l’activation sinon le perceptron multicouche se comporterait comme un perceptron linéaire !
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 16
ta 2e+1
1 = ) t f( -
« Légère » modification du modèle proposé par McCulloch & Pitts
0
0,2
0,4
0,6
0,8
1
1,2
t
f(t)a = 0.5
a =1.0
a = 1.5
Fonction seuil
la fonction sigmoïde
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 17
Nouveau paramètre à régler : la pente de la fonction sigmoïde
L’algorithme de la rétropropagation du gradient
Base d’apprentissage étiquetée
B = {( Xk, Dk), k=1, 2, …, K}
Xk=(x1(k), .., xn(k), .., xN(k)), k=1, 2, .., K une forme d’entrée
Dk=(d1(k), .., d m(k), .., d M(k)) {0, 1}M vecteur de sortie désirée correspondant
à Xk
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 18
x1(k)
Xk vj,n wm,j
yj(k) sm(k)
s1(k)
sM(k)
Couche cachéecomportant J neurones
Sk
Vecteur de sortie obtenu
Vecteur d’entrée
x2(k)
xn(k)
xN(k)
Cas d’une couche cachée
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 19
Algorithme de descente du gradient classique :Fonction du coût à minimiser : Coût(p)
P(n)
Coût(p)
p
P (n+1)
P(n+1) = P(n) + )(
)(nPp
pCoût∂
∂
Fonction du coût à minimiser : Coût(p1, p2 ,…., pL )
Pl(n+1) = Pl(n) + n)(
),...,,...,1
(
lP
lp
Lp
lppCoût
∂∂
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 20
Fonction du coût : Erreur quadratique instantanée
€
Ek = 1
2 (dm(k)
m =1
M∑ − ym(k))2
pour les poids synaptiques wm,j
€
Δ wm, j
= η hj(k) δ
m(k)
Wm,j
Erreur liée à sm
€
δm
(k) = (dm
(k) − sm
(k)) ′ f ( wm, j
hj(k)
j =1
L∑ )
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 21
Notion de gradient
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 22
pour les poids synaptiques vj,i
€
Δ vj,n
= η xn (k) δ j (k)
vj,n ?
€
δ j (k) = ′ f (net j(k)) δm
(k) wm, j
m =1
M∑
j
'δ
δ1
δm
δM
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 23
Le déroulement de l'algorithme de la rétropropagation du gradient
La propagation directe 1. La forme Xk est présentée à l'entrée du réseau
2. Calcul des hj(k), j= 1, 2, .., J, et ym(k), m= 1, 2, .., M
3. Calcul des δm(k), m= 1, 2, .., M
La rétropropagation 1. Rétropropagation et calcul de δj, j=1,2, … ,J
2. Actualisation des poids wm,j
3. Actualisation des poids vj,n
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 24
Réf. : Zurada (1992)
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 25
Réf. : Zurada (1992)
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 26
Interprétation du réseau multicouches
Point de vue probabiliste :
Sm(X) fCm/X : densité de probabilité a posteriori
Théorème de Ruck
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 27
Point de vue extraction de primitives
Extraction des primitives
Discrimination linéaire
. .
. . **
**
*0
0
000
0
0 ... .
* ****00 00
00.
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 28
MLP à une couche cachée
X1
Xvj,n
wm,j
Zj
Ym
Y1
YM
Couche cachée J neurones
Y
Vecteur de sortie M neurones
Vecteur d’entréeN neurones
X2
Xn
XN
Z1
ZJ
1 1
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 29
La propagation directe
Calcul des Zj Calcul des Ym
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 30
La rétropropagation
Adaptation des poids synaptiques wjk
€
Δwmj
= η zjδm
j,k
Erreur liée à Yk
€
δm
= tm − ym( ) ′ f y_inm( ) = t k − yk( ) ′ f w m0 + z jw mjj=1
J
∑ ⎛ ⎝ ⎜ ⎞
⎠ ⎟
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 31
Adaptation des poids synaptiques vij
€
Δvjn
= η xn
δj
vj,n
?Erreur liée à Zj
La rétropropagation
Comment calculer ?
€
δj
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 32
j
δ
δ1
δk
δM
Adaptation des poids synaptiques vij
La rétropropagation
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 33
ALGORITHME: RÉSUMÉ
1 debut initialisation des poids du MLP
2 faire propagation directe: pour chaque vecteur de donnée
3 - Affecter Xk= xn (n=1,..,N); envoyer les signaux aux neurones cachés
4 - Chaque neurone caché calcule son entrée
2 - Appliquer sa fonction d’activation pour calculer sa sortie
3 - Chaque neurone de sortie calcule son entrée
7 - Appliquer sa fonction d’activation pour calculer sa sortie
8 rétropropagation: chaque neurone de sortie reçoit son étiquette tm
9 - calculer les gradient
10 - calculer les incréments*
11 - rétropropager les gradients vers la couche cachée qui précède
€
z_inj=vj0+ xnvjnn=1
N∑
€
zj=f z_inj( )
€
y_inm=wm0+ zjwmjj=1
J∑
( )kk y_infy =
€
δm = tm−ym( )f ' y_inm( )
€
Δwmj = ηzjδm
€
δm
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 34
€
vjn(new)← Δvjn+vjn(old);wmj (new)←Δwmj+wmj (old)
12 - chaque neurone cachée calcule son correspondant selon
13 - chaque neurone caché calcule son gradient
14 - calculer les incréments *
15 - mise à jour des poids et biais* selon
16 jusqu’à critère d’arrêt satisfait
10 retourner les poids du MLP11 fin
€
δ_inj
€
δ_inj= δmwmjm=1
M∑
€
δj = δ_injf ' z_inj( )
€
Δvjn = ηxnδj
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 35
Résumé: propagation directe
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 36
Résumé: rétro-propagation du gradient
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 37
Exercice
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 38
6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1) (réf. Fausett, Prentice Hall, 1994)
Z2Z1
Y
X2X1
11
1 0.5
0.7
-0.4 -0.2
0.3
0.1
-0.3
0.60.4
1. Net de la couche cachée
z_in1 = 0.4 + (0.0) (0.7) + (1.0) (-0.2) = 0.2
z_in2 = 0.6 + (0.0) (-0.4) + (1.0) (0.3) = 0.9
Propagation avant
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 39
6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25.
Z2Z1
Y
X2X1
11
1 0.5
0.7
-0.4 -0.2
0.3
0.1
-0.3
0.60.4
2. Out de la couche cachée
z1 = 1 / (1+ exp (- z_in1)) = 0.550
z2 = 1 / (1+ exp (- z_in2)) = 0.711
Propagation avant
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 40
6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25.
Z2Z1
Y
X2X1
11
1 0.5
0.7
-0.4 -0.2
0.3
0.1
-0.3
0.60.43. Net de la couche de sortie
y_in = -0.3 + (z1) (0.5) + (z2) (0.1) = 0.046
Propagation avant
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 41
6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25.
Z2Z1
Y
X2X1
11
1 0.5
0.7
-0.4 -0.2
0.3
0.1
-0.3
0.60.4
1. Net de la couche cachée
z_in1 = 0.4 + (0.0) (0.7) + (1.0) (-0.2) = 0.2
z_in2 = 0.6 + (0.0) (-0.4) + (1.0) (0.3) = 0.9
2. Out de la couche cachée
z1 = 1 / (1+ exp (- z_in1)) = 0.550
z2 = 1 / (1+ exp (- z_in2)) = 0.711
3. Net de la couche de sortie
y_in = -0.3 + (z1) (0.5) + (z2) (0.1) = 0.046
4. Out de la couche de sortie
y = 1 / (1+ exp (- y_in)) = 0.511
Propagation avant
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 42
6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25.
Z2Z1
Y
X2X1
11
1 0.5
0.7
-0.4 -0.2
0.3
0.1
-0.3
0.60.4
5. Erreur
t - y = 1 – 0.511 = 0.489
6. δ
δ = (t – y) (y) (1 - y) = 0.122
Rétro-propagation
δ
ta
Δ b
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 43
6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25.
8. δ j1
δ j1 δ k) (w1) (z1) (1 - z1) = 0.015
9. δ j2
Rétro-propagation
δ j2 δ k) (w2) (z2) (1 - z2) = 0.0025
Z2Z1
Y
X2X1
11
1
0.7
-0.4 -0.2
0.3
0.60.4
δk
δ j1 δ j2(0.5)
(0.1)
(-0.3) 0.5168
0.1217
-0.2695
∑=
m
1kjkkwd
Dans le cas général :
Dérivée de f (z_inj)
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 44
6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25.
Z2Z1
Y
X2X1
11
1 0.5168
0.7
-0.4 -0.2
0.3
0.1217
-0.2695
0.60.4
Rétro-propagation
7. Δ wjk
Δ w01 = () (δk) = 0.0305
Δ w11 = () (δk) (z1) = 0.0168
Δ w21 = () (δk) (z2) = 0.0217
δk
Δ wjk
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 45
6.1 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (0,1). D=1 et =0,25.
Z2Z1
Y
X2X1
11
1
0.7
-0.4 -0.19620.3006
0.60060.438
10. Δ vnp
Rétro-propagation
0.0168 0.0217
0.0305
δ j1 δ j2
(-0.3)
Δ v01 = () (δ j1) = 0.038
Δ v11 = () (δ j1) (x1) = 0.0
Δ v21 = () (δ j1) (x2) = 0.038
Δ v02 = () (δ j2) = 0.0006
Δ v12 = () (δ j2) (x1) = 0.0
Δ v22 = () (δ j2) (x2) = 0.0006
Δ vn1 Δ vn2
GPA-779 Application des réseaux de neurones et des systèmes expertsCours #4 - 46
Exercice à faire:6.2 : Trouver les nouveaux poids du réseau de la figure ci-dessous si on présente le vecteur d’apprentissage (-1,1) et on utilise une sigmoïde bipolaire comme fonction d’activation
Z2Z1
Y
X2X1
11
1 0.5
0.7
-0.4 -0.2
0.3
0.1
-0.3
0.60.4
Seuls changent la dérivée de la fonction d’activation bipolaire et la mise à jour des poids entre l’entrée et la couche cachée.
Pour le détail voir 6.1