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
Historique et Principes g ´en ´eraux Pr ´e apprentissage
R ´eseaux convolutionnels Regularisation
ImageNet
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
Introduction
Avantage
Fonctionne∀le nombre d’entr ´ees,∀le nombre de sorties Mod `ele pas forc ´ement lin ´eaire par rapport aux param `etres Performances `a l’ ´etat de l’art
Inconv ´enients
Le crit `ere doit ˆetre d ´erivable
Le param ´etrage et l’apprentissage demandent un peu d’exp ´erience ...
Introduction
Introduction
Les r ´eseaux de neurones permettent d’estimer une fonction f :
f :x →y
avecxT = [x1,x2, . . . ,xE]∈REune image, un texte, une mol ´ecule, etc.
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)})
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
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
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
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)
Lorsqu’il y a beaucoup de couches : ”architectures profondes”
Lorsque des param `etres sont partag ´es : R ´eseau `a convolution (CNN) R ´eseau totalement interconnect ´e (Hopfield, Boltzmann)
R ´eseau r ´ecurrent (LSTM)
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
Principes g ´en ´eraux Topologies
R ´eseaux en couches (2)
Profondeur du r ´eseau
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
Remarque : couche dite ”basse” = vers les entr ´ees
R ´eseaux convolutionnels
Poids partag ´es, connexions locales
Apprentissage de configurations particuli `eres
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
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
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
Historique et Principes g ´en ´eraux Pr ´e apprentissage
R ´eseaux convolutionnels Regularisation
ImageNet
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
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)
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Λ
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)
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
Historique et Principes g ´en ´eraux Pr ´e apprentissage
R ´eseaux convolutionnels Regularisation
ImageNet
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
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)
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
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
Historique et Principes g ´en ´eraux Pr ´e apprentissage
R ´eseaux convolutionnels Regularisation
ImageNet
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
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 !
Descente de Gradient (1)
Principe g ´en ´eral
On cherche lesWpermettant de minimiser une fonctionJ(W) Algorithme it ´eratif pour r ´egler lesW
Bas ´e sur le calcul de dJdW(W) qui donne la direction de la descente Condition : la fonctionJ doit ˆetre d ´erivable
Apprentissage(s) R ´eseau non lin ´eaire `a une couche
Descente de Gradient (2)
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− η dJ (W) dW
W
t
avec :
Wles param `etres ; η: le pas ; dJdW(W) W
t
: labonnedirection
Descente de Gradient (3)
Exemple de descentes de gradient 1D convexe/non convexe
3 2 1 0 1 2 3
0 1 2 3 4 5 6 7 8 9
3 2 1 0 1 2 3
1.0 0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5
Apprentissage(s) R ´eseau non lin ´eaire `a une couche
Descente de Gradient (4)
Exemple de descentes de gradient 2D non convexe, 2 initialisations diff ´erentes
3 2 1 0 1 2
3 2 1 0 1 2
3 2 1 0 1 2
3 2 1 0 1 2
Les machines `a gradient (1)
Que cherche t’on `a minimiser ?
W∗ = arg min
W J(Xapp,W,Yapp)) W∗ = arg min
W
X
(x,y)∈(Xapp,Yapp)
J(x,W,y)
A chaque it ´eration de la descente on applique` Wt+1=Wt−ηt∆Wt
Attention
J(xi,W,yi)
∂Wk 6= J(xj,W,yj)
∂Wk
Comment appliquer la descente de gradient avec plusieurs exemples ?
Apprentissage(s) R ´eseau non lin ´eaire `a une couche
Les machines `a gradient (2)
Deux strat ´egies sont possibles :
Apprentissage en bloc (batch-gradient)
∆Wi = 1 card(X)
X
(x,y)∈(X,Y)
∂J(x,W,y)
∂Wi
On met `a jour les param `etres une fois que les gradients de tous les exemples d’un bloc ont ´et ´e calcul ´es.
Le bloc(X,Y)est un sous-ensemble ou l’ensemble d’apprentissage complet. Un bloc n’est pas r ´eutilis ´e tant que les autres bloc n’ont pas ´et ´e utlis ´es.
Apprentissage en ligne (online-gradient)
∆Wi = ∂J(x,W,y)
∂Wi
A chaque exemple pr ´esent ´e, on met `a jour les param `etres. Ce qui correspond `a un bloc de taille 1, card(X) =1.
Les machines `a gradient (3)
Gradient stochastique (stochastic gradient)
On parle de gradient stochastique (stochastic gradient) lorsque les blocs sont pr ´esent ´es dans un ordre al ´eatoire. Comme pour le batchgradient, un bloc ne r ´eapparaˆıt uniquement lorsque tous les autres ont ´et ´e trait ´es.
G ´en ´eralement, on utilise :
Un gradient non-stochastique avec 1 seul bloc pour un petit nombre d’exemples
Un gradient stochastique en ligne pour un grand nombre d’exemples
Apprentissage(s) R ´eseau non lin ´eaire `a une couche
Gradient descent : general algorithm
Fin duRappel, revenons `a notre r ´eseau `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)
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)
N ´ecessite ϕ d ´erivable
Sigmo¨ıde Tanh ReLU
Remarque : dans le cas d’une fonction identit ´e,ϕ0=1 : c¸a marche OK pour une couche, et pour plusieurs ?
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
Historique et Principes g ´en ´eraux Pr ´e apprentissage
R ´eseaux convolutionnels Regularisation
ImageNet
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
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
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
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 ?
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
Apprentissage(s) R ´eseaux multicouches
R ´eseaux multicouches (4)
On enchaine avec le calcul de : ∂J
∂wje
=
∂J∂zj
×
∂α∂zj1j
×
∂w∂α1jje
∂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
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
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 ;
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) =||Hi−1−Y||2
MLP classique :
1. https://www.college-de-france.fr/site/yann-lecun/
course-2016-02-12-14h30.htm
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, de la sortie vers l’entr ´ee :
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
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) =||Hi−1−Y||2donc :
∂Hi
∂Hi−1
=2×(Hi−1−Y)
Apprentissage(s) R ´eseaux multicouches
G ´en ´eralisation (4)
Algo de backprop generique pour L couches
foreach sample fori =Ldownto 1
∂J
∂Hi−1 ← ∂H∂J
i ×∂H∂Hi
i−1
∂J
∂Wi ← ∂H∂J
i ×∂W∂Hi
i // si n ´ecessaire endfor
end foreach
R ´eseaux multicouches (6)
Dimensionnement
Combien de neurones par couches / Combien de couches ?
Th ´eor `eme d’approximation universelle : ”Une seule couche non lin ´eaire 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 !
Architectures profondes Historique et Principes g ´en ´eraux
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
Historique et Principes g ´en ´eraux Pr ´e apprentissage
R ´eseaux convolutionnels Regularisation
ImageNet
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
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 en sommeil . . .
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
Architectures profondes Historique et Principes g ´en ´eraux
Architectures profondes : principe
R ´eseau feedforward comportantΛcouches, avecΛ>2
Wλmatrice des poids entre couchesλ−1 etλ
Avantages
Meilleure discrimination
Permet d’apprendre l’extraction de caract ´eristiques
Inconv ´enients
Plus de param `etres : n ´ecessite plus de donn ´ees
Disparition du gradient x ∈RE
◦ ◦ ◦ ◦ ◦ ◦ ◦
◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦
◦ ◦ ◦ ◦ ◦◦
◦ ◦ ◦ ◦ ◦ y ∈RS
W1 W2 W3 WΛ−1 WΛ
layer 1 layer 2 layerΛ−1
layerΛ
Le ”deep learning”, c’est quoi ?
Ensemble de m ´ethodes pour apprendre des r ´eseaux profonds, malgr ´e le vanishing gradient
M ´ethodes souvent assez empiriques, assise th ´eorique pas toujours d ´emontr ´ee
Mod `eles imposant pouvant comporter des millions de param `etres Apprentissage n ´ecessitant des ressources de calcul importantes (GPU) Performances potentiellement tr `es ´elev ´ees
Architectures profondes Historique et Principes g ´en ´eraux
La lutte contre le vanishing gradient
Vanishing gradient
Neurones satur ´es des couches hautes
”→gradient d’erreur tend vers 0 Apprentissage inefficace
Comment coutourner le vanishing gradient ?
Pr ´e-apprentissage
Convolutional Neural Networks (CNN) ReLU
Regularisation : Dropout, Batch normalization, Tikhonov Feeling, exp ´erience & Tuning de param `etres !
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
Historique et Principes g ´en ´eraux Pr ´e apprentissage
R ´eseaux convolutionnels Regularisation
ImageNet
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
Architectures profondes Pr ´e apprentissage
Pr ´e apprentissage (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Λ
Pr ´e apprentissage (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
Architectures profondes Pr ´e apprentissage
Pr ´e apprentissage (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
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
Historique et Principes g ´en ´eraux Pr ´e apprentissage
R ´eseaux convolutionnels Regularisation
ImageNet
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
Architectures profondes R ´eseaux convolutionnels
Convolutional neural networks (1)
R ´eseaux de neurones convolutionnels
R ´eseau feedforward o `u chaque neurone est uniquement connect ´e `a un sous ensemble deoneurones de la couche pr ´ec ´edente.
Les poids sont partag ´es entre les neurones,sauf les biais
# param d’une couche de taillemversn:(m+1)∗n→o+n w1
w2 w3 w1
w2
w3
w1
w2
w3
[email protected] Neural Networks : Part I 2 f ´evrier 2018 56 / 80
Convolutional neural networks (2)
R ´eseaux de neurones convolutionnels
M ´ecanisme de poids partag ´es = apprentissage de filtres qui convoluent l’image d’entr ´ee
Moins de param `etres, meilleure g ´en ´eralisation
Plut ˆot destin ´e `a traiter les images, mais pas seulement (texte, etc.) Apprentissage de filtres par backprop classique
FIGURE–Filtres d’un CNN [Krizhevsky et al.]
Architectures profondes R ´eseaux convolutionnels
Convolutional neural networks (3)
Couches convolutionnelles :
G ´en ´eralement plusieurs convolutions `a chaque ´etage
Alternance des couches de Conv et de Pooling pour concentrer l’information spatialement
Couches hautes denses (ou Full Connex.) pour ´etablir la classification ou la r ´egression
Voir aussi l’excellente anim. au milieu du cours de stanford : http://cs231n.github.io/convolutional-networks/
Convolutional neural networks (4)
Exemple de CNN : VGG16
Caract ´eristiques
16 couches : 13 couches de conv. + pooling, 3 denses
138M de param `etres dont 124M ( 90%) pour les 3 couches denses
Architectures profondes Regularisation
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
Historique et Principes g ´en ´eraux Pr ´e apprentissage
R ´eseaux convolutionnels Regularisation
ImageNet
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
Rectified Linear Units (ReLU)
Id ´ee : ´eviter la saturation des unit ´es pour avoir plus de Gradient
FIGURE–ReLUmax(0,x)and Softplusln(1+ex)
Architectures profondes Regularisation
Dropout (1)
Dropout [Hinton, G. et al. 2012]
Pendant l’apprentissage ; supprimer al ´eatoirement `a chaque it ´eration des connections selon une probabilit ´ep.
En d ´ecision, multiplier les poids par # actual disconnections
# iterations (6=p).
Dropout (2)
Remarques
Peut ˆetre appliqu ´e sur les entr ´ees, sur les connections ou sur les neurones
Revient `a entraˆıner de nombreux mod `eles diff ´erents et `a les combiner en d ´ecision
Bruitage du mod `ele pour mieux g ´en ´eraliser
FIGURE–Reuters dataset
[email protected] Neural Networks : Part I 2 f ´evrier 2018 63 / 80
Architectures profondes Regularisation
Batch normalization
Principe
Normaliser Les donn ´ees en entr ´ee du r ´eseauetentre chaque couche Normalisation par dimension
En app :param `etres bas ´es sur le les statistiques du batchB En test :param `etres bas ´es sur les statistiques de la base d’app compl `ete
x0 = x−µB q
σ2B+
o `ux est une seule dimension
r ´etropropagation
N ´ecessite ∂L∂x.⇒comment calculer ∂∂xL `a partir de ∂x∂L0?
R ´etropropagation avec batch normalization
Moyenne et variance d ´ependent de x
xi0= xi−µB(xi) q
σB2(xi) +
o `ux est une seule feature (un scalaire), eti ∈ Best un exemple.
∂J
∂xi = ∂J
∂xi0 1 q
σB2+ + 1
m ∂J
∂σB22(xi−µB) + ∂J
∂µB
∂J
∂σB2 = −1
2 σ2B+−3/2
m
X
i=1
∂J
∂xi0(xi−µB)
∂J
∂µB
= − 1
q σB2 +
m
X
i=1
∂J
∂xi0 − 1 m
∂J
∂σB2
m
X
i=1
2(xi−µB)
wheremis the number of examples inB.
Architectures profondes Regularisation
R ´egularisation de Tikhonov
Sch ´ema g ´en ´eral
Crit `ere de performance combin ´e avec une contrainte sur les solutions possibles :
J(w) =X
i
J(yi,f(xi;w)) +λ.Ω(w)
Norme L2 :Ω(wout) =P
d||wd||2
(AKA ridge regression & weight decay) Norme L1 :Ω(wout) =P
d|wd| Avec un nombre d’unit ´e infini :
L1 : boosting L2 : SVM
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
Historique et Principes g ´en ´eraux Pr ´e apprentissage
R ´eseaux convolutionnels Regularisation
ImageNet
5 R ´eseaux de neurones dans la pratique Param ´etrisation
Mise en œuvre
Architectures profondes ImageNet
La comp ´etition ImageNet [Krizhevsky 2012]
ImageNet
>14M d’images, 1000+ classes (objets, animaux, sc `enes, etc.) Images couleur 512∗512
Object classification
FIGURE–ImageNet [Krizhevsky 2012]
Architectures profondes ImageNet
Les architectures pour traiter ImageNet
VGG16, VGG19, AlexNet, GoogleNet, Inception, ResNet (L>150 !), etc.
performance : de l’ordre de qq % d’erreur en 2015 (3.52% pour resnet)
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
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
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 la majorit ´e des probl `emes d’intelligence artificielle
Inconv ´enients
Param ´etrisation
Apprentissage long et parfois difficile `a contr ˆoler (minimum locaux) N ´ecessite bcp de donn ´ees
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 (Cf. prochain cours) 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 ϕ
Privil ´egier la ReLU, Softmax en derni `ere couche,tanhou sigmoide pour les RNN (Cf. prochain cours) ;
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
Choix du crit `ere J
Classification : plut ˆot cross entropy Regression : plut ˆot MSE
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
Data augmentation
Datasets publics
Rarement le dataset id ´eal pour notre probl `eme Mais peuvent ˆetre utilis ´es `a travers le transfer learning
ImageNet, Rimes, MNIST, STREET dataset (num ´eros google), OpenHart, etc.
Mise en œuvre
∃ de nombreuses librairies
La plupart sont bas ´ees sur Theano (python, Montreal, RIP)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
Exemple de code Keras pour vgg16 :code/vgg16.py
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
...
Bibliographie
Quelques pointeurs int ´eressants pour aller plus loin :
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 Cours tr `es p ´edagogique sur les CNN (Stanford) :
http://cs231n.github.io/convolutional-networks/
Livre de Ian Goodfellow, Yoshua Bengio and Aaron Courville : ”Deep Learning”, MIT Press
https://mitpress.mit.edu/books/deep-learning
Bibliographie
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.
S. Belharbi, C. Chatelain, R. H ´erault, S. Adam, S. Thureau, M. Chastan, and R. Modzelewski, ”Spotting L3 slice in CT scans using deep
convolutional network and transfer learning”, Computers in Biology and Medicine, vol. 87, pp. 95-103, 2017.
Soufiane Belharbi, Cl ´ement Chatelain, Romain H ´erault, S ´ebastien Adam : Input/Output Deep Architecture for Structured Output Problems.
CoRR abs/1504.07550 (2015)