• Aucun résultat trouvé

R´eseaux de neurones

N/A
N/A
Protected

Academic year: 2022

Partager "R´eseaux de neurones"

Copied!
35
0
0

Texte intégral

(1)

Objectif

apprendre des classifieurs “plus riches” que lin ´eaire

apprendre la transformation non-lin ´eaire

algorithme: r ´etropropagation d’erreur

r ´egularisation – s ´election de mod `ele

(2)

-1 1

-1 1

1 1 1 1 .5

-1.5 .7 -1 -.4

x1 x2

x1

x2

z=+1

z=-1

z=-1

0 1

-1 0

1 -1

0 1

-1

0 1

-1 0

1 -1

0 1

-1 0

1 -1

0 1 -1

-1

R2

R2

R1

y1 y2

zk

wkj

wji x1

x1

x2

x1

x2

y1 y2

sortie k

entr´ee i cach´ee j biais

(3)

Neurone cach ´e

entr ´ee = activation de r ´eseau:

netj =

d

i=1

wjixi+wj0 =

d

i=0

wjixi =wtjx

sortie:

yj = f(netj)

exemple: f(net) =signe(net) =

1 si net 0

1 si net < 0

f(·): fonction d’activation ou non-lin ´earit ´e

w: vecteur des poids “synaptiques”

(4)

Neurone de sortie

entr ´ee:

netk =

nH

j=1

wk jyj+wk0 =

nH

j=0

wk jyj = wtky

sortie:

zk = f(netk)

(5)

La puissance expressive des r ´eseaux de neurones g

k

( x ) = f

nH

j=1

w

k j

f

d

i

=1

w

ji

x

i

+ w

j0

+ w

k0

erreur d’approximation

toutes les fonctions continues peuvent ˆetre approch ´ees

mais: nH ∞ pour une approximation exacte

(6)

La puissance expressive des r ´eseaux de neurones

y1

y2

y4 y3

y3 y4

y2 y1

x1 x2

z1 z1

x1 x2

(7)

La puissance expressive des r ´eseaux de neurones

x1 x2

x1

x2

...

x1 x2

R1

R2

R1

R2

R2 R1

x2

x1

deux couches

trois couches

(8)

R ´etropropagation d’erreur

descente de gradient

r `egle de chaˆıne

extension de l’algorithme LMS

(9)

R ´etropropagation d’erreur

wkj z1

wji

z2 zk zc

... ...

... ...

... ...

... ...

x1 x2

...

xi

...

xd

z

x1 x2 xi xd

y1 y2 yj yn

H

t1 t2 tk tc

t

x

sortie

entr´ee objectif

sortie

entr´ee cach´ee

(10)

R ´etropropagation d’erreur

erreur d’entraˆınement:

J(w) = 1 2

c k

=1

(tk−zk)2 = 1

2tz2

descente de gradient:

w= η∂J

w; ∆wpq = η ∂J

wpq

mise `a jour des poids:

w(m+1) = w(m) +∆w(m)

(11)

Couche de sortie

J

wk j = ∂J

netk

netk

wk j = −δk

netk

wk j = −δkyj

sensibilit ´e:

δk = J

netk = J

zk

zk

netk = (tk−zk)f(netk)

r ´esultat final:

wk j = ηδkyj =η(tk−zk)f(netk)yj

(12)

Couche cach ´ee

J

wji = ∂J

yj

yj

netj

netj

wji = ∂J

yj f(netj)xi

premier terme:

J

yj = ∂

yj 1

2

c k

=1

(tk−zk)2

=

c

k=1

(tk−zk)∂zk

yj

=

c

k=1

(tk−zk) ∂zk

netk

netk

yj

=

c

k=1

(tk−zk)f(netk)wk j

=

c

k=1

δkwk j

(13)

Couche cach ´ee

J

wji = ∂J

yj

yj

netj

netj

wji = ∂J

yj f(netj)xi

r ´esultat final:

wji =ηδjxi = η c

k

=1

wk jδk

f(netj)

δj

xi

(14)

R ´etropropagation des sensibilit ´es

wkj ω1

... ...

ω2 ω3 ωk ωc

wij

δ1 δ2 δ3 δk δc

δj

sortie

entr´ee cach´ee

(15)

Protocoles d’entraˆınement

stochastique: mise `a jour apr `es chaque point d’entraˆınement tir ´e par hasard

(en-ligne: comme stochastique, mais chaque point est trait ´e seule- ment une fois)

RETROPROPAGATIONSTOCHASTIQUE,η)

1 initialiser w 2 faire

3 x Dn choisi par hasard 4 wji ←wji+ηδjxi

5 wk j wk j+ηδkyj 6 jusqu’ `aJ(w)< Θ 7 retourner w

(16)

Protocoles d’entraˆınement

batch: mise `a jour apr `es avoir trait ´e tous les points d’entraˆınement

plusieurs ´epoques

(17)

RETROPROPAGATIONBATCH(Θ,η)

1 initialiser w 2 faire

3 ∆wji wk j 0 4 pour m = 1 `a n faire

5 x xm

6 ∆wji wji+ηδjxi 7 ∆wk j wk j+ηδkyj 8 wji wji+∆wji

9 wk j wk j+∆wk j 10 jusqu’ `a J(w)< Θ 11 retourner w

(18)

Courbes d’apprentissage

ensemble d’entraˆınement

ensemble de test: ´evaluation de la performance

ensemble de validation: ajuster les param `etres (par exemple: nombre d’ ´epoques)

(19)

Courbes d’apprentissage

J/n

test validation

1 2 3 4 5 6 7 8 9 10 11

entraˆınement

´epoques

(20)

Surface d’erreur

-4 -3 -2 -1 0 1 2 3 4

-100

0

100 -40

-20 0

20 40 0

0.25 0.5 0.75 1

w0

w1 x1

x0,y0

w1

x1 y1

w2 z1

R1 x* R2

w0

J(w)

(21)

Surface d’erreur

-100

0

100

-40 -20

0 20

40

0 0.25

0.5 0.75 1

w0

w1 J(w)

x1 x0,y0

w1

y1 w2 z1

w0

-4 -3 -2 -1 0 1 2 3 4

x1

R1 x* R2

(22)

Repr ´esentation des poids

extraction des traits, filtrage

...

...

...

points d’entraˆınement

poids d’entr´ee-`a-cach´ee appris

(23)

La fonction d’activation

non-lin ´eaire

born ´ee

continue et lisse

monotone (?)

lin ´eaire sur les petites entr ´ees

(24)

La fonction sigmo¨ıde

f(x) = atanh(bx) = a

1−ebx 1+ebx

; a= 1.716; b = 2/3

-4 -2 2 4 net

-.1 .1 f ''(net)

-4 -2 2 4 net

-1.5 -1 -.5 .5 1 1.5

f(net)

-4 -2 2 4 net

.2 .3 .4 .5 f '(net)

.1 0

(25)

D ´etails pratiques

normaliser l’entr ´ee: µ= 0,σ= 1

valeurs d’objectif: ±1

entraˆınement avec bruit (σ 1)

fabriquer des donn ´ees suppl ´ementaires

nombre d’unit ´es cach ´ees

initialisation des poids – apprentissage uniforme: U[−1/√

d,1/√ d]

(26)

D ´etails pratiques

taux d’apprentissage

impulsion (momentum)

weight decay

indices

terminer au plus t ˆot (early stopping)

nombre de couches cach ´ees

autres fonctions de crit `ere

(27)

Normaliser l’entr ´ee: µ = 0 , σ = 1

transformation blanchissante

´egaliser le poids des attributs

Valeurs d’objectif: ± 1

au milieu intervalle dynamique de la fonction d’activation

Fabriquer des donn ´ees suppl ´ementaires

Entraˆınement avec bruit ( σ 1)

(28)

Nombre d’unit ´es cach ´ees

r ´egularisation – s ´election de mod `ele

r `egle heuristique: n/10

en utilisant un ensemble de validation

(29)

Initialisation des poids

apprentissage uniforme: les poids sont appris `a la m ˆeme vitesse

netj [−1,1]

d param `etres al ´eatoires uniformes dans [−w˜,w˜]

variance de la somme w˜ d

w˜ =1/√ d

couche de sortie: w˜ = 1/√ nH

(30)

Taux d’apprentissage

η = ηopt

w

J

η < ηopt

w*

J J J

η > 2ηopt

w* w w

w* w

w*

ηopt < η < 2 ηopt

(31)

Taux d’apprentissage

2J

w2w = ∂J

w

ηopt =

2J

w2 1

(32)

Taux d’apprentissage

J

w* w η = ηopt

w w*

w 0

J

w

(33)

Impulsion (momentum)

w(m+1) =w(m) + (1α)∆w(m) +α∆w(m−1)

Weight decay

wnew = wold(1ε)

Je f = J(w) + ε

wtw

Je f = J(w) + ε 2η

i,j

w2i j/(wtw) 1+w2i j/(wtw)

Terminer au plus t ˆot (early stopping)

(34)

Indices

ω1 ω2 ω3 ωc h1

...

h2 sortie

cach´ee

entr´ee

categories indices

(35)

R ´esum ´e

approximation universelle

r ´etropropagation d’erreur = LMS + descente de gradient (r `egle de chaˆıne)

r ´egularisation, validation – s ´election de mod `ele

batch vs. stochastique, ´epoques

indices

Références

Documents relatifs

Sur le document r´ eponse donn´ e en annexe 2, ` a rendre avec la copie, tracer, sans justifier, la section du cube par le plan (IJK) o` u K est un point du segment [BF].. Sur

Q 2.5 Ecrire une macro verification qui demande ` a l’utilisateur de saisir un nombre compris entre 0 et 1023, convertit ce nombre en binaire en le stockant dans la feuille de

Propri´ et´ e (caract´ erisation des nombres r´ eels) : Un nombre complexe est r´eel si et seulement si sa partie imaginaire est nulle, i.e... Cette correspondance biunivoque entre C

L’ordinateur de la batterie Patriot repr´esente les nombres par des nombres `a virgule fixe en base 2 avec une pr´ecision de 23 chiffres apr`es la virgule. L’horloge de la

Pour calculer les valeurs propres d’une matrice, calculer le polynˆ ome caract´ eristique de fa¸con na¨ıve n’est pas forc´ ement une bonne id´ ee : si on n’a pas de logiciel

L’intensit´e ´electrique correspond ` a la quantit´e de charges electriques qui traverse une section de conduc- teur par unit´e de temps.. i

Coder en matlab/octave un MLP `a 1 couche cach ´ee, sans librairie Tester les hyperparam `etres : η ; nb d’it ´eration, nb de neurones dans la couche cach ´ee,

cach ´ees , perceptron multicouches Si beaucoup de couches : architectures profondes.. clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 10