M2 STIM -Identification & aide `a la d ´ecision
R ´eseaux de Neurones
clement.chatelain@insa-rouen.fr
26 janvier 2017
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 1 / 69
Sommaire
1 Introduction
2 Principes g ´en ´eraux Neurone formel Topologies
3 Apprentissage(s) Posons le probl `eme
R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches
4 Architectures profondes DNN simples
R ´eseaux r ´ecurrents R ´eseaux convolutionnels Exemples d’architectures
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 2 / 69
Introduction
Introduction
Avantage
Fonctionne∀le nombre d’entr ´ees,∀le nombre de sorties Mod `ele pas forc ´ement lin ´eaire par rapport aux param `etres Et surtout ... c¸a marche tr `es bien !
Inconv ´enients
Le crit `ere doit ˆetre d ´erivable
Le param ´etrage et l’apprentissage demandent un peu d’ ´exp ´erience ...
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 3 / 69
Introduction
Introduction
Les r ´eseaux de neurones permettent d’estimer une fonction f :
f :x →y avecxT = [x1,x2, . . . ,xE]∈RE Siy ∈RS, on parle der ´egression
Siy ∈ {C1,C2, . . . ,CS}, on parle declassification Dans ce cas, autant de neurones de sortie que de classe
→Sortiesd ´esir ´eesde la forme :ydT = [0,0, . . . ,1, . . . ,0]
Estimation de f :
Apprentissage des poids de connexion entre neurones Sur une base ´etiquet ´ee deNcouples
({x(1),y(1)}, . . . ,{x(n),y(n)}, . . . ,{x(N),y(N)})
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 4 / 69
Principes g ´en ´eraux
Principes g ´en ´eraux
Id ´ee g ´en ´erale des R ´eseaux de neurones :
combiner de nombreuses fonctions ´el ´ementaires pour former des fonctions complexes.
Apprendre les liens entre ces fonctions simples `a partir d’exemples
´etiquet ´es
Analogie (un peu commerciale) avec le cerveau : Fonctions ´el ´ementaires = neurones
Connexion = synapse
Apprentissage des connexions = la connaissance
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 5 / 69
Principes g ´en ´eraux Neurone formel
Le neurone formel [McCulloch et Pitts, 1943]
Unit ´e ´el ´ementaire : neurone formel
E entr ´eesxe, sortiey
Somme des entr ´eesxepond ´er ´ee par despoidswe:
α=
E
X
e=1
wexe+b=
E
X
e=0
wexe avec x0=1 Une fonction d’activationϕ, lin ´eaire ou non :
y =ϕ(α) =ϕ PE
e=0wexe
ϕlin ´eaire : hyperplan s ´eparateur ;ϕnon lin ´eaire : hyperbole dimensionE
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 6 / 69
Principes g ´en ´eraux Neurone formel
Le neurone formel [McCulloch et Pitts, 1943]
Diff ´erentes fonctions d’activation
Elles introduisent un intervalle sur lequel le neurone est activ ´e fonction identit ´e
heaviside :ϕ(x) =0 six <0, 1 sinon sigmoide :ϕ(x) =1+e1−x
tanh :ϕ(x) = eexx−e+e−x−x =e2x−1
e2x+1
fonction noyau (gaussienne) ReLU
heaviside - tanh - gaussienne - ReLU
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 7 / 69
Principes g ´en ´eraux Topologies
Topologies
Il existe de nombreuses mani `ere d’organiser les neurones en r ´eseau :
R ´eseau en couches (adaline, perceptron, perceptron multicouches, RBF)
R ´eseau totalement interconnect ´e (Hopfield, Boltzmann) R ´eseau r ´ecurrent (LSTM)
R ´eseau `a convolution (TDNN, SDNN)
R ´eseau avec beaucoup de couches ! (architectures profondes)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 8 / 69
Principes g ´en ´eraux Topologies
R ´eseaux en couches (1)
Chaque neurone d’une couche est connect ´e `a tous les neurones des couches pr ´ec ´edentes et suivantes
R ´eseaux ditsfeedforward: propagation des entr ´ees de couches en couches vers la sortie
Structure la plus r ´epandue
Algorithmes d’apprentissage des poids efficaces
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 9 / 69
Principes g ´en ´eraux Topologies
R ´eseaux en couches (2)
Variantes
Une couche, fonction d’activation heaviside, une sortie :perceptron [Rosenblatt 1957]
Si plus d’une couche : couches dites
cach ´ees, perceptron multicouches Si beaucoup de couches : architectures profondes
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 10 / 69
Principes g ´en ´eraux Topologies
R ´eseaux totalement interconnect ´es
R ´eseaux de Hopfield, Machines de Boltzmann
Tous les neurones sont connect ´es entre eux Difficile `a entrainer
N’a jamais vraiment prouv ´e son utilit ´e sur des probl `emes r ´eels
→int ´er ˆet essentiellement th ´eorique
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 11 / 69
Principes g ´en ´eraux Topologies
R ´eseaux r ´ecurrents
Adapt ´e aux s ´equences
Permet de prendre en compte le contexte
On calculey(n)`a partir de :
I x(n)les entr ´ees courantes
I y(n−1)les sorties de l’exemple pr ´ec ´edent
(provenant d’une m ˆeme s ´equence) Hypoth `ese'Markovienne
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 12 / 69
Principes g ´en ´eraux Topologies
R ´eseaux convolutionnels
Poids partag ´es, connexions locales
Apprentissage de configurations particuli `eres
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 13 / 69
Apprentissage(s) Posons le probl `eme
Plan
1 Introduction
2 Principes g ´en ´eraux Neurone formel Topologies
3 Apprentissage(s) Posons le probl `eme
R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches
4 Architectures profondes DNN simples
R ´eseaux r ´ecurrents R ´eseaux convolutionnels Exemples d’architectures
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 14 / 69
Apprentissage(s) Posons le probl `eme
Notations (1)
Les donn ´ees
On dispose d’une base ´etiquet ´ee deNcouples{x(n),yd(n)}
X∈RE×N,Yd ∈RS×N
X={x(n)}=
x1(n)
... xE(n)
=
x1(1) . . . x1(N) ... . .. xe(n) ... xE(1) . . . xE(N)
Yd ={yd(n)}=
y1d(n)
... yEd(n)
=
y1d(1) . . . y1d(N) ... . .. ysd(n) ... ySd(1) . . . ySd(N)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 15 / 69
Apprentissage(s) Posons le probl `eme
Notations(2)
Le r ´eseau (en couche)
E entr ´ee,Ssorties
Le r ´eseau comporteΛcouches
Wλmatrice des poids entre couchesλ−1 etλ On appelerayd(n)la sortied´esir ´ee pour l’exemplen
Si :
- la coucheλ−1 contientni neurones - la coucheλnj neurones,
alors : Wλ={wji}=
w11 . . . w1i . . . w1ni wj1 ... wji ... wjni wnj1 . . . wnji . . . wnjni
x ∈RE
◦ ◦ ◦ ◦ ◦ ◦ ◦
◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦
◦ ◦ ◦ ◦ ◦◦
◦ ◦ ◦ ◦ ◦ y ∈RS
W1 W2 W3 WΛ−1 WΛ
layer 1 layer 2 layerΛ−1
layerΛ
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 16 / 69
Apprentissage(s) Posons le probl `eme
Le probl `eme
Rappel : on souhaite estimer f :
Apprentissage sur la base des poids de connexion entre neuronesW
→ Crit `ere
Crit `ere des moindres carr ´es (d ´erivable) :
J(W) =
N
X
n=1
e(n)Te(n) avec e(n) =
y(n)−yd(n) Qu’on peut r ´e ´ecrire en sommant sur les sorties :
J(W) =
S
X
s=1 N
X
n=1
(es(n))2=
S
X
s=1
J(Ws) (1)
Aveces(n) = ys(n)−ysd(n)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 17 / 69
Apprentissage(s) R ´eseau lin ´eaire `a une couche
Plan
1 Introduction
2 Principes g ´en ´eraux Neurone formel Topologies
3 Apprentissage(s) Posons le probl `eme
R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches
4 Architectures profondes DNN simples
R ´eseaux r ´ecurrents R ´eseaux convolutionnels Exemples d’architectures
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 18 / 69
Apprentissage(s) R ´eseau lin ´eaire `a une couche
R ´eseau lin ´eaire `a une couche (1)
Une couche de neurones avec une fonction d’activationϕ=identit ´e
poids :W={wse}=
W1T
... WST
=
w11 . . . w1E ... wse ... wS1 . . . wSE
Propagation 1 ex. sur une sortie :ys(n) =WsTx(n)
ys
=
ws1 . . . wsE
×
x1
.. . xE
Propagation 1 ex. sur toutes les sorties :y(n) =Wx(n)
y1
.. . yS
=
w11 . . . w1E
..
. wse
.. .
wS1 . . . wSE
×
x1
.. . xE
PropagationNex. surSsortie :Y=WX
y d1(1) . . . . . . y d1(N) ..
. ..
. y ds(n) .. . y dS(1) . . . . . . y dS(N)
=
w11 . . . w1E
..
. wse
.. .
wS1 . . . wSE
×
x1(1) . . . . . . x1(N)
.. .
... xe(n) .. .
xE(1) . . . . . . xE(N)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 19 / 69
Apprentissage(s) R ´eseau lin ´eaire `a une couche
R ´eseau lin ´eaire `a une couche (3)
SiY=WX, alorsYT =XTWT ...
... qui est de la formeY =XΘ, en remplacantXetYpar leur transpos ´ees, etΘparWT
En appliquant les MC, on obtientWTMC = (XXT)−1XYT D’ou :WMC =YXT(XTX)−1
Conclusion
Apprentissage OK avec les MC, mais : Pas de non lin ´earit ´e = pas terrible Une seule couche = pas terrible
(XTX) `a inverser : potentiellement tr `es lourd (mais MC r ´ecursifs possibles)
Introduction d’une fonctionϕnon lin ´eaire
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 20 / 69
Apprentissage(s) R ´eseau non lin ´eaire `a une couche
Plan
1 Introduction
2 Principes g ´en ´eraux Neurone formel Topologies
3 Apprentissage(s) Posons le probl `eme
R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches
4 Architectures profondes DNN simples
R ´eseaux r ´ecurrents R ´eseaux convolutionnels Exemples d’architectures
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 21 / 69
Apprentissage(s) R ´eseau non lin ´eaire `a une couche
R ´eseau non lin ´eaire `a une couche (1)
Introduction d’une fonction ϕ non lin ´eaire
On a doncY=ϕ(WX), et les MC ne sont plus applicables
On va appliquer une m ´ethode de descente de gradient→rappels !
Algorithme it ´eratif : On choisit unWt=0al ´eatoire Bonne direction = celle o ´u le crit `ere baisse
Avancer un peu, mais pas trop
W
t+1← W
t− η d J (W) dW
Wt
avec :
Wles param `etres ; η: le pas ; dJdW(W) W
t
: labonnedirection
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 22 / 69
Apprentissage(s) R ´eseau non lin ´eaire `a une couche
R ´eseau non lin ´eaire `a une couche (2)
Crit `ere
Pour un r ´eseau `a une couche contenant une FNLϕ:y(n) =ϕ(Wx(n)) Le crit `ere s’ ´ecrit donc :
J(W) =
N
X
n=1
yd(n)−ϕ(Wx(n))2
On d ´erive pour appliquer le gradient :Wt+1←Wt−η dJdW(W) Wt
dJ(W)
dW = −2
N
X
n=1
yd(n)−ϕ(Wx(n))
×dϕ(Wx(n)) dW
= −2
N
X
n=1
yd(n)−ϕ(Wx(n))
×ϕ0(Wx(n))x(n)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 23 / 69
Apprentissage(s) R ´eseau non lin ´eaire `a une couche
R ´eseau non lin ´eaire `a une couche (3)
Application du gradient dJ(W)
dW =−2
N
X
n=1
yd(n)−ϕ(Wx(n))
×ϕ0(Wx(n))x(n)
Deux cas de figure :
Si ϕ n’est pas d ´erivable (ex. heaviside) : c¸a ne marche pas !
Approximation lin ´eaire de la d ´eriv ´ee : algo adaline [Widrow & Hoff 1960]
dJ(W) dW =−2
N
X
n=1
yd(n)−ϕ(Wx(n))
×x(n)
Si ϕ est d ´erivable (ex. sigmoide, tanh) : c¸a marche !
Dans ce cas on applique la descente de gradient
Remarque : dans le cas d’une fonction identit ´e,ϕ0=1 : c¸a marche OK pour une couche, et pour plusieurs ?
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 24 / 69
Apprentissage(s) R ´eseaux multicouches
Plan
1 Introduction
2 Principes g ´en ´eraux Neurone formel Topologies
3 Apprentissage(s) Posons le probl `eme
R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches
4 Architectures profondes DNN simples
R ´eseaux r ´ecurrents R ´eseaux convolutionnels Exemples d’architectures
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 25 / 69
Apprentissage(s) R ´eseaux multicouches
R ´eseaux multicouches (1)
C’est le perceptron multicouches (PMC ou MLP)
→Couches dites cach ´ees
FNLϕ, peuvent ˆetre6=suivant les couches
Exemple d’un r ´eseau `a deux couches
E entr ´ee,Ssorties,J neurones en couche cach ´ee
W1∈RJ×Epoids entre lesx et la couche 1 W2∈RS×J poids entre les couches 1 et 2 z(n)∈RJ : variable interm ´ediaire
ϕ1: sigmoide ;ϕ2: softmax x(n)∈RE
◦ ◦ ◦ ◦ ◦ ◦ ◦
◦ ◦ ◦ ◦ ◦ y(n)∈RS
z(n)
J =7 S=5
W1={wje} W2={wsj}
W1={wje}=
w11 . . . w1E
wj1 . .. wjE
wJ1 . . . wJE
W2={wsj}=
w11 . . . w1J
ws1 . .. wsJ
wS1 . . . wSJ
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 26 / 69
Apprentissage(s) R ´eseaux multicouches
R ´eseaux multicouches (2)
Propagation d’un exemple :
couche 1 : somme pond ´er ´eeα1j =P
ewjexe, puiszj =ϕ1 α1j) couche 2 : somme pond ´er ´eeα2s =P
jwsjzj, puisys=ϕ2 α2s)
Apprentissage : R ´etropropagation du gradient [Rumelhart 86]
Initialiser lesWλau hasard
1 Propager un exemplex(n)pour calculery(n)
2 Calculer l’erreur(yd(n)−y(n))
3 R ´etropropager le crit `ereJ = (yd(n)−y(n))2 `a traversW2...
4 ... puis `a traversW1
On passe tous les exemples de la base, et on it `ere tant qu’on n’est pas satisfait
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 27 / 69
Apprentissage(s) R ´eseaux multicouches
R ´eseaux multicouches (3)
Chaque sortie s’ ´ecrit :
ys=ϕ2
X
j
wsjϕ1 X
e
wjexe
!
Doncle crit `ereJ =1/2P
s(ysd−ys)2d ´epend de(wje, ϕ1,wsj, ϕ2).
Apprentissage de w
jeet w
sj:
Descente de gradient :
wje t+1←wje t−η ∂J
∂wje wje t
et wsj t+1←wsj t−η ∂J
∂wsj wsj t
Probl `eme : comment calculer les d ´eriv ´ees partielles du crit `ere ?
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 28 / 69
Apprentissage(s) R ´eseaux multicouches
R ´eseaux multicouches (3)
On commence par le calcul de : ∂J
∂wsj
=
∂J∂ys
×
∂α∂ys2s
×
∂w∂α2ssj
∂J
∂ys = ∂
∂ys 1 2
S
X
s=1
(ysd−ys)2=−(ysd−ys)
∂ys
∂α2s = ∂
∂α2sϕ2(α2s) =ϕ20(α2s)
∂α2s
∂wsj = ∂
∂wsj
J
X
j=1
wsjzj =zj
Finalement : ∂w∂J
sj
= −(y
sd− y
s) × ϕ
20(α
2s) × z
j= Erreur
sz
jCette quantit ´e repr ´esente l’erreur sur la sortiesdue au neuronej
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 29 / 69
Apprentissage(s) R ´eseaux multicouches
R ´eseaux multicouches (4)
On enchaine avec le calcul de : ∂J
∂wje
=
∂J∂zj
×
∂α∂zj1j
×
∂α1 j
∂wje
∂J
∂zj
= X
s
∂J
∂α2s
×∂α2s
∂zj
1er terme : rouge*vert du slide pr´ec´edent
= X
s
−(ysd−ys)×ϕ20(α2s)× ∂
∂zj
X
j
wsjzj
=−X
s
(ysd−ys)×ϕ20(α2s)×wsj
∂zj
∂α1j = ∂
∂α1jϕ1(α1j)=ϕ10(α1j) ∂α1j
∂wje
= ∂
∂wje
X
e
wjexe=xe
Finalement :
∂J
∂wje
= − P
s
(y
sd− y
s) × ϕ
20(α
2s) × w
sj× ϕ
10(α
1j) × x
e= Erreur
jx
eCette quantit ´e repr ´esente l’erreur sur le neuronej due `a l’entr ´eee
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 30 / 69
Apprentissage(s) R ´eseaux multicouches
R ´eseaux multicouches (5)
On r ´ecapitule :
Algorithm 1Backpropagation algorithm η←0.001
W1←rand(J,E) W2←rand(S,J)
while(erreurApp≤)do forn=1→Ndo
propagatex(n): computez(n)andy(n) computeErrorS
W2←W2−η∗ErrorS∗z(n) computeErreurJ
W1←W1−η∗ErrorJ∗x(n) end for
end while
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 31 / 69
Apprentissage(s) R ´eseaux multicouches
R ´eseaux multicouches (5’)
On r ´ecapitule, en matlab :
Function grad = retropropag(x,yd,W1,W2) ...
a1 = [x ones(n,1)]*W1 ; x1 = tanh(a1) ; a2 = [x1 ones(n,1)]*W2 ; y = a2 ; errorS = -(yd-y).*(1-y.*y) ;
GradW2 = [x1 ones(n,1)]’* errorS ;
errorJ = (w2(1 :n2-1, :)*errorS’)’.*(1-x1.*x1) ; GradW1 = [x ones(n,1)]’* errorJ ;
w1 = w1 - pas1 .* GradW1 ; w2 = w2 - pas2 .* GradW2 ;
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 32 / 69
Apprentissage(s) R ´eseaux multicouches
G ´en ´eralisation (Y.Lecun, voir cours du 12/02/16
1)
R ´eseau Feedforward :
Empilement de couchesFi calculant une sortieHi `a partir d’une entr ´ee Hi−1, et ´eventuellement de param `etresWi et de la sortieY. Exemples :
Couche lin ´eaire :
Hi =Fi(Hi−1,Wi) =WiHi−1
Couche fonction d’activation
(f :tanh, ReLU, Softmax, etc.) : Hi =Fi(Hi−1) =f(Hi−1) Couche MSE :
Hi =Fi(Hi−1,Y) =||WiHi−1−Y||2
MLP classique :
1. https://www.college-de-france.fr/site/yann-lecun/
course-2016-02-12-14h30.htm
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 33 / 69
Apprentissage(s) R ´eseaux multicouches
G ´en ´eralisation (2)
Gradients et Backprop
Ainsi, on peut faire abstraction des couches Calcul des gradients :
∂J
∂Hi−1 = ∂J
∂Hi × ∂Hi
∂Hi−1
Pour les couchesFi qui en comportent : Mise `a jour des poids
∂J
∂Wi = ∂J
∂Hi × ∂Hi
∂Wi
On applique ces deux ´equations de mani `ere r ´ecursive :
I le terme en bleu ´etant calcul ´e pr ´ec ´edemment
I les termes en magenta et vert sont `a instancier suivant le type de couche
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 34 / 69
Apprentissage(s) R ´eseaux multicouches
G ´en ´eralisation (3)
Instanciation des F
iles plus courants :
Couche lin ´eaire :Hi =Fi(Hi−1,Wi) =WiHi−1donc :
∂Hi
∂Hi−1
=Wi ; ∂Hi
∂Wi
=Hi−1
Couche activation :Hi =Fi(Hi−1) =f(Hi−1) avecf :tanh, sigmoide, ReLU, Softmax, etc. donc :
∂Hi
∂Hi−1
=f0(Hi−1)
Couche MSE :Hi =Fi(Hi−1,Y) =||WiHi−1−Y||2donc :
∂Hi
∂Hi−1
=2Wi ×(WiHi−1−Y)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 35 / 69
Apprentissage(s) R ´eseaux multicouches
G ´en ´eralisation (4)
Algo de backprop generique pour L couches
foreach sample fori =1 toL
∂J
∂Hi−1 ← ∂H∂J
i ×∂H∂Hi
i−1
∂J
∂Wi ← ∂H∂J
i ×∂W∂Hi
i // si n ´ecessaire endfor
end foreach
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 36 / 69
Apprentissage(s) R ´eseaux multicouches
R ´eseaux multicouches (6)
Remarques :
On peut sommer les erreurs de plusieurs exemples et r ´etropropager une seule fois
→mode online/Batch/minibatch
Question du pas ... 2 `eme ordre ? Cf. cours gradient
Quand stopper l’algorithme ? Attention au surapprentissage
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 37 / 69
Apprentissage(s) R ´eseaux multicouches
R ´eseaux multicouches (7)
Dimensionnement
Combien de neurones par couches / Combien de couches ? Une seul couche suffit pour estimer n’importe quelle fonctionf, pourvu que :J → ∞etN → ∞[Lippman 87]
Solution : rajoutons des couches !
,Backprop g ´en ´eralisable avec plusieurs couches cach ´ees ,Fronti `eres de d ´ecision plus complexes
,Repr ´esentation de haut niveau des donn ´ees
/Mais l’ ´energie de l’erreur est trop faible pour modifier les couches basses
→ Deep learning !
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 38 / 69
Architectures profondes DNN simples
Plan
1 Introduction
2 Principes g ´en ´eraux Neurone formel Topologies
3 Apprentissage(s) Posons le probl `eme
R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches
4 Architectures profondes DNN simples
R ´eseaux r ´ecurrents R ´eseaux convolutionnels Exemples d’architectures
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 39 / 69
Architectures profondes DNN simples
MLP vs. SVM vs. Architectures profondes
1985 - 1995 : l’essor des r ´eseaux de neurones
Emergence de nombreuses applications industrielles : Reconnaissance d’ ´ecriture, de la parole, etc.
1995 - 2005 : La suppr ´ematie des Support Vector Machines
Classifieurs aux bases th ´eoriques fortes
Excellentes capacit ´es de g ´en ´eralisation, perf. `a l’ ´etat de l’art R ´eseaux de neurones = has been . . .
2006 - 20 ? ? : Le retour des r ´eseaux de neurones
Hinton, G. E., Osindero, S. and Teh, Y. A fast learning algorithm for deep belief nets. Neural Computation, 18, pp 1527-1554 (2006)
R ´eseaux de neurones profonds
Architectures connues, nouveaux algo d’apprentissage
Performances permettant d’envisager de nouvelles applications
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 40 / 69
Architectures profondes DNN simples
Architectures profondes (1)
Principe
R ´eseau feedforward comportantΛcouches, avecΛ>2
Wλmatrice des poids entre couchesλ−1 etλ backprop insuffisante→comment faire ?
Apprentissage en deux temps
Apprentissage des couches dites basses, en non supervis ´e
I Utilisation des autoencodeurs
I Couches dites de mod `eles
Apprentissage des derni `eres couches en supervis ´e
I Backpropagation
I Couches dites de decision
x ∈RE
◦ ◦ ◦ ◦ ◦ ◦ ◦
◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦
◦ ◦ ◦ ◦ ◦◦
◦ ◦ ◦ ◦ ◦ y ∈RS
W1 W2 W3 WΛ−1 WΛ
layer 1 layer 2 layerΛ−1
layerΛ
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 41 / 69
Architectures profondes DNN simples
Architectures profondes (2)
Auto Associateurs (AA)
Un AA cherche `a apprendre ses propres entr ´ees : on veutyd =x Apprentissage d’un encodeure(x)et d’un d ´ecodeurd((e(x)) R ´eseau `a une couche cach ´eeeet une couche de sortied Crit `ere :J = (ˆx−x)2= (d(e(x))−x)2
Si le nombre de neurones deeest
<E:
Compression, repr ´esentation parcimonieuse dex
x
◦ ◦ ◦ ◦ ◦
◦ ◦ ◦ ◦ ◦◦
xˆ=d(e(x))
e d
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 42 / 69
Architectures profondes DNN simples
Architectures profondes (3) : Apprentissage
pre-training
Apprendre un AA surx.
Gardere1(x) =H1, jeterd1(e1(x)) Apprendre un nouvel AA sure1(x) Gardere2(e1(x)) =H2, jeterd2 etc.
fine-tuning
d ´everrouiller tous lesHλ rajouter une ou
plusieurs couches backpropagation sur l’ensemble du r ´eseau
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 43 / 69
Architectures profondes R ´eseaux r ´ecurrents
Plan
1 Introduction
2 Principes g ´en ´eraux Neurone formel Topologies
3 Apprentissage(s) Posons le probl `eme
R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches
4 Architectures profondes DNN simples
R ´eseaux r ´ecurrents R ´eseaux convolutionnels Exemples d’architectures
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 44 / 69
Architectures profondes R ´eseaux r ´ecurrents
R ´eseaux de neurones et s ´equences
Comment traiter des S ´equences avec des r ´eseaux de neurones ?
Parole, ´ecriture, cours de la bourse, image (2D), etc.
Signaux de taillevariable→n ´ecessit ´e de classifieursdynamiques
1 `ere solution : r ´eseaux de neurones / classifieur dynamique
R ´eseaux de neurones / Hidden Markov Model
= classification locale / mod ´elisation de s ´equence
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 45 / 69
Architectures profondes R ´eseaux r ´ecurrents
2 `eme solution : R ´eseaux r ´ecurrents (1)
Connexions r ´ecurrentes
Permet de prendre en compte le contexte
On calculey(n) `a partir dex(n)ety(n−1)les sorties de l’observation pr ´ec ´edente
Question :
Comment apprendre les poids des connexions r ´ecurrentes ?
1 BackProp Through Time (BPTT)
2 Real Time Recurrent Learning (RTRL)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 46 / 69
Architectures profondes R ´eseaux r ´ecurrents
R ´eseaux r ´ecurrents (2)
Backpropagation Through Time (BPTT)
Id ´ee : d ´eplier le r ´eseauRpour l’approximer par un r ´eseau non r ´ecurrentR∗
Structure temporelle→structure spatiale surk pas
Les poids des connexions r ´ecurrentes sont copi ´es et attribu ´es `a des connexions non r ´ecurrentes deR∗.
Les copies des connexions poss `edent toutes la m ˆeme pond ´eration.
Les premiers neurones rouges et bleus sont initialis ´es au hasard
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 47 / 69
Architectures profondes R ´eseaux r ´ecurrents
R ´eseaux r ´ecurrents (3)
Backpropagation Through Time (BPTT), suite
Une fois d ´epli ´e, on applique une backprop classique
→k limit ´e = contexte limit ´e ...
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 48 / 69
Architectures profondes R ´eseaux r ´ecurrents
R ´eseaux r ´ecurrents (4)
Real Time Recurrent Learning (RTRL) [Williams 1989]
La sortie du neuronej recoit :
tous lesx(t)de la couche pr ´ec ´edente pond ´er ´es parwje tous lesy(t−1)de sa couche pond ´er ´es par deswjj0
yj(t) =ϕ
E
X
e=0
wjexe(t) +
J
X
j0=0
wjj0yj0(t−1)
RTRL : apprentissage
Crit `ereJ = (yjd−yj)2 Calcul des ∂w∂J
sj
,
∂w∂Jje
et
∂w∂Jjj0 pour appliquer le gradientclassique deuxi `eme ordre possible
Complexit ´e importanteO(N4)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 49 / 69
Architectures profondes R ´eseaux r ´ecurrents
BLSTM
Bidirectionnal Long Short Term Memory
A. Graves and J. Schmidhuber. Offline handwriting recognition with multidimensional recurrent neural networks. NIPS, 2009
Mod ´elisation des d ´ependences `a court/long terme Neurone formel avec m ´emoire (cell) + gates Apprentissage par BPTT
Ex. de Perf HWR : 83%→91%WER
Et aussi : Utilisation en g ´en ´eration. D ´emo :
http://www.cs.toronto.edu/˜graves/handwriting.html
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 50 / 69
Architectures profondes R ´eseaux convolutionnels
Plan
1 Introduction
2 Principes g ´en ´eraux Neurone formel Topologies
3 Apprentissage(s) Posons le probl `eme
R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches
4 Architectures profondes DNN simples
R ´eseaux r ´ecurrents R ´eseaux convolutionnels Exemples d’architectures
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 51 / 69
Architectures profondes R ´eseaux convolutionnels
Convolutional neural network (1)
R ´eseaux de neurones convolutionnels
Destin ´e `a traiter les images
M ´ecanisme de poids partag ´es→moins de param `etres, meilleure g ´en ´eralisation
Apprentissage de filtres par backprop classique
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 52 / 69
Architectures profondes R ´eseaux convolutionnels
Convolutional neural network (2)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 53 / 69
Architectures profondes Exemples d’architectures
Plan
1 Introduction
2 Principes g ´en ´eraux Neurone formel Topologies
3 Apprentissage(s) Posons le probl `eme
R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches
4 Architectures profondes DNN simples
R ´eseaux r ´ecurrents R ´eseaux convolutionnels Exemples d’architectures
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 54 / 69
Bibliographie
La comp ´etition ImageNet
ImageNet
>14M d’images, 1000 classes (objets, animaux, sc `enes, etc.) Images couleur 512∗512
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 55 / 69
Bibliographie
Les architectures pour traiter ImageNet
VGG16, VGG19, AlexNet, GoogleNet, ResNet (L>150 !), etc.
performance : de l’ordre de qq % d’erreur en 2015 (3.52% pour resnet)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 56 / 69
Bibliographie
Transfer learning
Comment faire quand on a peu de donn ´ees ?
Utiliser un r ´eseau pr ´e-appris (AlexNet, VGG16, etc.) sur une tr `es grosse base (ImageNet)
Fit des donn ´ees et des couches de sorties R ´eapprentissage sur le nouveau jeu de donn ´ees
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 57 / 69
Bibliographie
Caption Generation
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 58 / 69
Bibliographie
Semantic Segmentation (1)
Etiquetage des pixels d’une image ´
Nombreuses applications en CV : automobile, m ´edical, etc.
Probl `eme `a sorties structur ´ees (ciel est souvent au dessus de l’herbe) T ˆache difficile car dimension des entr ´ees et des sorties importantes
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 59 / 69
Bibliographie
Semantic Segmentation (2)
SegNet (d ´emo surhttp://mi.eng.cam.ac.uk/projects/segnet/), detectNet, etc.
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 60 / 69
Bibliographie
Semantic Segmentation (3)
Input/Output Deep Architecture [4, 5]
1 Pr ´eapprentissage des entr ´ees = repr ´esentation des donn ´ees
2 Pr ´eapprentissage des sorties = app. des connaissances a priori
3 Fine tuning = apprentissage classique du lien entre entr ´ees et sorties
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 61 / 69
R ´eseaux de neurones dans la pratique
Plan
1 Introduction
2 Principes g ´en ´eraux
3 Apprentissage(s)
4 Architectures profondes
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 62 / 69
R ´eseaux de neurones dans la pratique
Avantages et Inconv ´enients
Avantages
Un RdN approxime des probabilit ´es `a posteriorip(Ci/x) Tr `es rapide en d ´ecision
Supporte tr `es bien les grandes dimensions (E>qq centaines) Performances : architectures profondes `a l’ ´etat de l’art sur plusieurs probl `emes
Inconv ´enients
Param ´etrisation
Apprentissage long et parfois difficile `a contr ˆoler (minimum locaux) N ´ecessite bcp de donn ´ees
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 63 / 69
R ´eseaux de neurones dans la pratique Param ´etrisation
Param ´etrisation/choix du r ´eseau
Nombre de couches
Probl `eme ”simple”, carac disponibles : MLP avec 1 ou 2 couches Sinon : Architecture profonde : Pas de caract ´eristiques `a extraire,, mais plus d’hyperparam `etres/
Si image/vid ´eo : CNN / LSTM
Si s ´equence (texte, signal, etc.) : LSTM
Nombre de neurones couches cach ´ees
Classique : moyenne g ´eom ´etrique ou arithm ´etique de (E,S) Avec des deep : + difficile, premi `ere couche + grande queE
Fonction d’activation ϕ
Old school :tanh, sigmoide ; new : ReLU (Rectified Linear Unit)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 64 / 69
R ´eseaux de neurones dans la pratique Param ´etrisation
Param ´etrisation/choix du r ´eseau
R ´eglage du pas (voir cours Gradient)
pas fixe : petit ( 10−3, 10−4, 10−5, ...) pas adaptatif : diminue avec les it ´erations
line search : calcul du pas ”id ´eal” `a chaque it ´eration
M ´ethode du deuxi `eme ordre (gradient conjugu ´e), + de calculs
Les donn ´ees
Centr ´ees r ´eduites : c’est mieux
Taille de la base d’app : the more, the better (>E2/ classe) Attention aux bases non balanc ´ees
M ´elanger les donn ´ees
Choix du crit `ere
Classification : plut ˆot cross entropy Regression : plut ˆot MSE
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 65 / 69
R ´eseaux de neurones dans la pratique Param ´etrisation
Les donn ´ees
DATA DATA DATA DATA DATA DATA DATA DATA The more, the better !
Centr ´ees r ´eduites : c’est mieux Attention aux bases non balanc ´ees M ´elanger les donn ´ees
Online/batch/mini batch App/Valid/Test
Datasets publics
Assez rares
Souvent diff ´erents de notre probl `eme
Mais peuvent ˆetre utilis ´es `a travers le transfer learning
ImageNet, Rimes, MNIST, STREET dataset (num ´eros google), etc.
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 66 / 69
R ´eseaux de neurones dans la pratique Mise en œuvre
Mise en œuvre, pointeurs
∃ de nombreuses librairies
La plupart sont bas ´ees sur Theano (python, Montreal)aet TensorFlow (Google)b
Keras (python)https://keras.io/
Torch7 (lua) (NEC)http://torch.ch/
pybrain (python, TUM Munich)http://pybrain.org/
Caffe (Berkeley)http://caffe.berkeleyvision.org/
a. http://deeplearning.net/software/theano/
b. https://www.tensorflow.org
Pointeurs int ´eressants :
Les cours de Yann Lecun au coll `ege de France
https://www.college-de-france.fr/site/yann-lecun/
Chaine Youtube de H. Larochelle :http://tinyurl.com/lpkvjm4
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 67 / 69
R ´eseaux de neurones dans la pratique Mise en œuvre
Exercices
Exercice A : MLP from scratch
Coder en matlab/octave un MLP `a 1 couche cach ´ee, sans librairie Tester les hyperparam `etres :η; nb d’it ´eration, nb de neurones, etc.
Base ? MNIST
Exercice B : Utilisation de tensorFlow + Keras
Tester les CNN pour une t ˆache de classif Tester le transfer learning
Tester les RNN ...
Exercice C : Utilisation sur un pb perso
Pr ´ediction r ´esultats sportifs, de temp ´erature Apprendre au r ´eseau `a parler
...
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 68 / 69
R ´eseaux de neurones dans la pratique Mise en œuvre
Bibliographie
F. Rosenblatt. Principles of Neurodynamics. New York : Spartan, 1962.
C.M. Bishop. Neural networks for pattern recognition, Oxford : Oxford University Press, 1995.
D.E. Rumelhart, G.E. Hinton and R.J. Williams. Learning internal representations by error propagation. Parallel Distributed Processing Explorations in the Microstructure of Cognition. MIT Press, Bradford Books, vol. 1, pp. 318-362, 1986.
J. Lerouge, R. Herault, C. Chatelain, F. Jardin, and R. Modzelewski,
”Ioda : an input output deep architecture for image labeling”, Pattern recognition, vol. 48, iss. 9, p. 2847-2858, 2015.
Soufiane Belharbi, Cl ´ement Chatelain, Romain H ´erault, S ´ebastien Adam : Input/Output Deep Architecture for Structured Output Problems.
CoRR abs/1504.07550 (2015)
clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 69 / 69