perceptronmulticouches/ · " usure et dégradation des composants dans le système !descente...

12
13-07-31 1 CHAPTER 11: PerceptronMulticouches HMM : Exercice Considérer le HMM suivant: 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

Upload: others

Post on 04-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

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

Page 2: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

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

Page 3: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

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.

Page 4: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

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.

Page 5: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

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 ∑∈

−+= )(η

Page 6: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

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

Page 7: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

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)

Page 8: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

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

Page 9: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

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

Page 10: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

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

Page 11: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

13-07-31

11

Sur-apprentissage Nombre de pondérations: H (d+1)+(H+1)K

Page 12: PerceptronMulticouches/ · " Usure et dégradation des composants dans le système !Descente du gradient stochastique : Mise à jour après une seul exemple ! Règle de mise à jour

13-07-31

12

Réduction de la dimensionalité