perceptronmulticouches/ · " usure et dégradation des composants dans le système !descente...
TRANSCRIPT
13-07-31
1
CHAPTER 11:
Perceptron Multicouches
HMM : Exercice n Considérer le HMM suivant:
n Utiliser l’algorithme de Viterbi pour déterminer la séquence d’état qui a généré la séquence R,B,V,R,V,R.
0.3
0.7
0.5
0.5
1
P(B) = 0.3 P(R) = 0.5 P(V) = 0.2
P(B) = 0.4 P(R) = 0.3 P(V) = 0.3
P(B) = 0.2 P(R) = 0.4 P(V) = 0.4
! = [1, 0, 0]
Réseau de neurones
Source: http://intelligenceatpe.e-monsite.com/pages/le-cerveau-et-la-moelle-epiniere/fonctionnement-general-des-reflexes.html
13-07-31
2
Perceptron
[ ][ ]Td
Td
Td
jjj
x,...,x,
w,...,w,w
wxwy
1
10
01
1=
=
=+=∑=
x
w
xw
(Rosenblatt, 1962)
Que fait un Perceptron
n Régression: y=wx+w0
w w0
y
x
x0=+1
y
x
Perceptron
∑∑=
n
iii xw
0
o =1 si wixi ! 0
i=0
n
"
0 sinon
#
$%
&%
w1
w2
wn
x1
x2
xn
w0
x0=1
Classification • Entrée: un vecteur de valeurs réelles • Sortie: combinaison linéaire de ses entrées. La sortie vaut:
• +1: si le résultat est plus grand qu’un seuil (w0); • -1 : si la sortie est fausse
13-07-31
3
Perceptron
Représentation formelle:
Le perceptron permet de classifier les instances d’un ensemble s’ils sont linéairement séparables.
o x1,..., x2( ) =si w0 +w1x1 +w2x2 + ! ! !+wnxn " 0#1 sinon$%&
Exemple: Perceptron
x1 x2 0 0
0 1 1 0 1 1
∑W1 = 0.5
W2 = 0.5
x1
x2
W0 =-0.8 X0 = 1
Déterminer la fonction du perceptron à partir des entrées de la table suivante:
Entraînement du perceptron
Algorithme #1 : Règle de base du perceptron Entrainement1( Exemples, η )
initialiser les poids à 0 tant que tous les exemples ne seront pas correctement classifiés
pour tous les exemples <x,t> Calculer la sortie o à partir de l’entré x pour tous les poids wi wi <- wi + η(t-o)xi
Fonctionne seulement si l’ensemble d’exemples est linéairement séparable.
13-07-31
4
Learning Boolean AND
Entrainement du perceptron Règle du delta n Cette approche assure une convergence même si l’ensemble
n’est pas linéairement séparable. n L’idée principale est d’utiliser le gradient dans la recherche du
vecteur de poids. n Règle importante puisqu’elle est à la base de l’algorithme
« backpropagation »
Entrainement du perceptron Règle du delta n Définissons une métrique permettant de mesurer l’erreur
d’entraînement:
2)(21)( ∑
∈
−=Dd
dd otwE
Où: – D est l’ensemble d’entraînement, – td est la sortie cible pour l’exemple d, – od est la sortie du perceptron pour l’exemple d.
13-07-31
5
Entrainement du perceptron Règle du delta n On cherche à minimiser l’erreur
n Comment fait-on pour calculer la direction dans laquelle on doit modifier w afin de minimiser l’erreur?
w1
E(w)
Exemple de l’erreur pour un vecteur w à une dimension.
Entrainement du perceptron Règle du delta
2)(21
ddDd ii
otww
E−= ∑
∈ δδ
δδ
2)(21∑∈
−=Dd
ddii
otww
Eδδ
δδ
)()(221
ddDd i
ddi
otw
otwE
−−= ∑∈ δ
δδδ
)()( ddDd i
ddi
xwtw
otwE
⋅−−=∑∈ δ
δδδ
))(( idDd
ddi
xotwE
∑∈
−−=δδ
Entrainement du perceptron Règle du delta n Règle d’entraînement:
n Algorithme:
idDd
ddii xotww ∑∈
−+= )(η
13-07-31
6
Entrainement du perceptron Règle du delta n Règle d’entraînement: n Algorithme:
idDd
ddii xotww ∑∈
−+= )(η
Delta( Exemples, η ) initialiser les poids à une valeur au hazard tant que la condition de terminaison n’est pas satisfaite
Initialiser chaque Δwi à 0 pour tous les exemples <x,t> Calculer la sortie o à partir de l’entré x pour tous les poids wi Δwi <- Δwi + η(t-o)xi
pour tous les poids wi
wi <- wi+ Δwi 16
K Sorties
oi =wiTx
yi =eoi
eokk!
choisir Ci
si yi =maxkyk
xy
xw
W=
=+=∑=
Tii
d
jjiji wxwy 0
1
Classification:
Régression:
Perceptron: Entraînement Regression n Régression (sortie linéaire):
( ) ( ) ( )[ ]( ) t
jttt
j
tTtttttt
xyrw
ryrr,E
−η=
−=−=
Δ
22
21
21
| xwxw
13-07-31
7
Apprentissage
( )( ) InpututActualOutpputDesiredOutctorLearningFaUpdate ⋅−⋅=
−=Δ tj
ti
ti
tij xyrw η
n Apprentissage en ligne (instances vues une par une) vs batch (tout l’échantillon) : ¨ Stockage de tout l’échantillon n’est pas nécessaire
¨ Problem peut changer au cours du temps
¨ Usure et dégradation des composants dans le système
n Descente du gradient stochastique : Mise à jour après une seul exemple
n Règle de mise à jour générique (règle LMS):
Classification
( )( ) ( ) ( )
( ) tj
tttj
ttttttt
tTt
xyrw
yryr,E
y
−=Δ
−−−−=
=
η
1 log 1 log |
sigmoid
rxw
xw
n Sortie sigmoid unique
n K>2 sortie softmax
{ }( )
( ) tj
ti
ti
tij
i
ti
ti
ttii
t
k
tTk
tTit
xyrw
yr,Ey
−=Δ
−== ∑∑η
log | exp
exprxw
xwxw
XOR
n Pas de w0, w1, w2 satisfont:
0
0
0
0
021
01
02
0
≤++
>+
>+
≤
www
ww
ww
w(Minsky and Papert, 1969)
13-07-31
8
XOR
W1,1 W
1,2
x1
x2
∑W1,0
1
∑W2,0
1
∑W3,0
1
W 2,1
W2,2
W3,1
W3,2
Exemple XOR
4.83 -4.63
x1
x2
Z1
-2.82
1
Z2
-2.74
1
y
-2.86
1
-4.83
4.6
5.73
5.83
Z1= 0*4.83 + 1*-4.83 - 2.82=-7.65 Oz1= 1/(1+e7.65) = 4.758x10-4
Z2= 0*-4.63 + 1*4.6 - 2.74= 1.86 Oz2= 1/(1+e-1.86) = 0.8652
y= 4.758x10-4*5.73 + 0.8652*5.83 - 2.86= 2.187 Oz2= 1/(1+e-2.187) = 0.8991 => 1
Entrées : x1 = 0 x2 = 1
Réseau multicouche
13-07-31
9
Entraînement des réseaux multicouche n Algorithme de rétro-propagation
¨ La régle du delta peut s’appliquer sur le nœud de sortie
¨ On ne connaît pas l’erreur sur les nœuds cachés
¨ Solution: n projeter l’erreur de la sortie vers l’entrée
n Ajuster les poids en conséquence
Algorithme de rétro-propagation
n Étape 1: ¨ Initialiser les poids avec des valeurs au hazard
n Étape 2: ¨ Appliquer une donnée d’entraînement au réseau de neurones
et calculer la sortie
n Étape 3: ¨ Calculer l’erreur de chacun des nœuds de sortie
!k = (tk !ok )(1!ok )okSortie voulue
Sortie obtenue
Dérivée de la fonction d’erreur
Erreur au nœud k
source :
Algorithme de rétro-propagation
n Étape 4: ¨ Calculer la correction des poids pour les nœuds de sorties
¨ Version stochastique:
wjk = wjk +!"kz j
facteur d’entraînement
Valeur du nœud j de la couche cachée
! jk =!"kz j
13-07-31
10
Algorithme de rétro-propagation
n Étape 5: ¨ Propager l’erreur sur les poids des nœuds de la couche cachée ¨ L’erreur d’entrée du jième nœud de la couche cachée est
¨ L’erreur du du jième nœud de la couche cachée est
!in j = !kwjkk=1
M
!
! j = oj (1!oj ) !kwjkk=1
M
"
Algorithme de rétro-propagation
n Étape 4: ¨ Calculer la correction des poids pour les nœuds de la
couche cachée
¨ Version stochastique:
wij = wij +!" j xi
!ij =!" jxi
Algorithme de rétro-propagation
n Étape 6 (version stochastique): ¨ Calculer la correction des poids pour les nœuds de la
couche cachée
n Étape 7: ¨ Vérifier la convergence
¨ Arrêter l’algorithme si une condition de convergence a été atteinte
¨ Sinon, on reprend à l’étape 2
wij = wij +!ij
13-07-31
11
Sur-apprentissage Nombre de pondérations: H (d+1)+(H+1)K
13-07-31
12
Réduction de la dimensionalité