• 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
-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
• Neurone cach ´e
• entr ´ee = activation de r ´eseau:
netj =
∑
di=1
wjixi+wj0 =
∑
di=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”
• Neurone de sortie
• entr ´ee:
netk =
∑
nHj=1
wk jyj+wk0 =
∑
nHj=0
wk jyj = wtky
• sortie:
zk = f(netk)
• La puissance expressive des r ´eseaux de neurones g
k( x ) = f
nH∑
j=1w
k jf
di
∑
=1w
jix
i+ w
j0+ w
k0• erreur d’approximation
• toutes les fonctions continues peuvent ˆetre approch ´ees
• mais: nH →∞ pour une approximation exacte
• La puissance expressive des r ´eseaux de neurones
y1
y2
y4 y3
y3 y4
y2 y1
x1 x2
z1 z1
x1 x2
• 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
• R ´etropropagation d’erreur
• descente de gradient
• r `egle de chaˆıne
• extension de l’algorithme LMS
• R ´etropropagation d’erreur
wkj z1
wji
z2 zk zc
... ...
... ...
... ...
... ...
x1 x2
...
xi...
xdz
x1 x2 xi xd
y1 y2 yj yn
H
t1 t2 tk tc
t
x
sortie
entr´ee objectif
sortie
entr´ee cach´ee
• R ´etropropagation d’erreur
• erreur d’entraˆınement:
J(w) = 1 2
c k
∑
=1(tk−zk)2 = 1
2t−z2
• descente de gradient:
∆w= −η∂J
∂w; ∆wpq = −η ∂J
∂wpq
• mise `a jour des poids:
w(m+1) = w(m) +∆w(m)
• 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
• 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
= −
∑
ck=1
(tk−zk)∂zk
∂yj
= −
∑
ck=1
(tk−zk) ∂zk
∂netk
∂netk
∂yj
= −
∑
ck=1
(tk−zk)f(netk)wk j
=
∑
ck=1
δkwk j
• Couche cach ´ee
∂J
∂wji = ∂J
∂yj
∂yj
∂netj
∂netj
∂wji = ∂J
∂yj f(netj)xi
• r ´esultat final:
∆wji =ηδjxi = η c
k
∑
=1wk jδk
f(netj)
δj
xi
• R ´etropropagation des sensibilit ´es
wkj ω1
... ...
ω2 ω3 ωk ωc
wij
δ1 δ2 δ3 δk δc
δj
sortie
entr´ee cach´ee
• 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
• Protocoles d’entraˆınement
• batch: mise `a jour apr `es avoir trait ´e tous les points d’entraˆınement
• plusieurs ´epoques
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
• 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)
• Courbes d’apprentissage
J/n
test validation
1 2 3 4 5 6 7 8 9 10 11
entraˆınement
´epoques
• 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)
• 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
• Repr ´esentation des poids
• extraction des traits, filtrage
...
...
...
points d’entraˆınement
poids d’entr´ee-`a-cach´ee appris
• La fonction d’activation
• non-lin ´eaire
• born ´ee
• continue et lisse
• monotone (?)
• lin ´eaire sur les petites entr ´ees
• La fonction sigmo¨ıde
f(x) = atanh(bx) = a
1−e−bx 1+e−bx
; 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
• 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]
• 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
• 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)
• Nombre d’unit ´es cach ´ees
• r ´egularisation – s ´election de mod `ele
• r `egle heuristique: n/10
• en utilisant un ensemble de validation
• 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
• Taux d’apprentissage
η = ηopt
w
J
η < ηopt
w*
J J J
η > 2ηopt
w* w w
w* w
w*
ηopt < η < 2 ηopt
• Taux d’apprentissage
• ∂2J
∂w2∆w = ∂J
∂w
• ηopt =
∂2J
∂w2 −1
• Taux d’apprentissage
Jw* w η = ηopt
w w*
∆w 0
∂J
∂w
• Impulsion (momentum)
• w(m+1) =w(m) + (1−α)∆w(m) +α∆w(m−1)
• Weight decay
• wnew = wold(1−ε)
• Je f = J(w) + ε
2ηwtw
• Je f = J(w) + ε 2η
∑
i,j
w2i j/(wtw) 1+w2i j/(wtw)
• Terminer au plus t ˆot (early stopping)
• Indices
ω1 ω2 ω3 ωc h1
...
h2 sortie
cach´ee
entr´ee
categories indices
• 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