´ M2 STIM - Identification & aide a` la decision
´ Reseaux de Neurones
[email protected]
21 janvier 2016
[email protected]
´ Reseaux de Neurones
21 janvier 2016
1 / 60
Sommaire 1
Introduction
2
´ eraux ´ Principes gen Neurone formel Topologies
3
Apprentissage(s) ` Posons le probleme ´ ´ Reseau lineaire a` une couche ´ ´ Reseau non lineaire a` une couche ´ Reseaux multicouches
4
Autres architectures Architectures profondes ´ ´ Reseaux recurrents ´ Reseaux convolutionnels ´ Legos
5
´ Reseaux de neurones dans la pratique ´ Parametrisation Mise en œuvre
[email protected]
´ Reseaux de Neurones
21 janvier 2016
2 / 60
Introduction
Introduction
Avantage ´ Fonctionne ∀ le nombre d’entrees, ∀ le nombre de sorties ` pas forcement ´ ´ ` Modele lineaire par rapport aux parametres ` bien ! Et surtout ... c¸a marche tres
´ Inconvenients ` doit etre ˆ ´ Le critere derivable ´ ´ erience ´ Le parametrage et l’apprentissage demandent un peu d’exp ...
[email protected]
´ Reseaux de Neurones
21 janvier 2016
3 / 60
Introduction
Introduction ´ Les reseaux de neurones permettent d’estimer une fonction f : f :x →y T
avec x = [x1 , x2 , . . . , xE ] ∈ RE ´ Si y ∈ RS , on parle de regression Si y ∈ {C1 , C2 , . . . , CS }, on parle de classification Dans ce cas, autant de neurones de sortie que de classe T ´ ees ´ de la forme : y d = [0, 0, . . . , 1, . . . , 0] → Sorties desir
Estimation de f : Apprentissage des poids de connexion entre neurones ´ ´ de N couples Sur une base etiquet ee ({x(1), y(1)}, . . . , {x(n), y(n)}, . . . , {x(N), y (N)})
[email protected]
´ Reseaux de Neurones
21 janvier 2016
4 / 60
´ eraux ´ Principes gen
´ eraux ´ Principes gen ´ gen ´ erale ´ ´ Idee des Reseaux de neurones : ´ ementaires ´ combiner de nombreuses fonctions el 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 : ´ ementaires ´ Fonctions el = neurones Connexion = synapse Apprentissage des connexions = la connaissance
[email protected]
´ Reseaux de Neurones
21 janvier 2016
5 / 60
´ eraux ´ Principes gen
Neurone formel
Le neurone formel [McCulloch et Pitts, 1943] ´ ementaire ´ Unite´ el : neurone formel ´ xe , sortie y E entrees ´ xe ponder ´ ee ´ par des poids we : Somme des entrees α=
E X e=1
we xe + b =
E X
we xe avec x0 = 1
e=0
´ Une fonction d’activation ϕ,lineaire ou non : P E y = ϕ (α) = ϕ e=0 we xe ´ ´ ´ ϕ lineaire : hyperplan separateur ; ϕ non lineaire : hyperbole dimension E
[email protected]
´ Reseaux de Neurones
21 janvier 2016
6 / 60
´ eraux ´ Principes gen
Neurone formel
Le neurone formel [McCulloch et Pitts, 1943] ´ Differentes fonctions d’activation Elles introduisent un intervalle sur lequel le neurone est active´ fonction identite´ heaviside : ϕ(x) = 0 si x < 0, 1 sinon sigmo¨ıde : ϕ(x) = tanh : ϕ(x) =
1 1+e−x
ex −e−x ex +e−x
=
e2x −1 e2x +1
fonction noyau (gaussienne)
heaviside - sigmo¨ıde - tanh - gaussienne
[email protected]
´ Reseaux de Neurones
21 janvier 2016
7 / 60
´ eraux ´ Principes gen
Topologies
Topologies
` d’organiser les neurones en Il existe de nombreuses maniere ´ reseau : ´ Reseau en couches (adaline, perceptron, perceptron multicouches, RBF) ´ Reseau totalement interconnecte´ (Hopfield, Boltzmann) ´ ´ Reseau recurrent (LSTM) ´ Reseau a` convolution (TDNN, SDNN) ´ Reseau avec beaucoup de couches ! (architectures profondes)
[email protected]
´ Reseaux de Neurones
21 janvier 2016
8 / 60
´ eraux ´ Principes gen
Topologies
´ Reseaux en couches (1) Chaque neurone d’une couche est connecte´ a` tous les neurones des ´ edentes ´ couches prec et suivantes ´ ´ de couches en Reseaux dits feedforward : propagation des entrees couches vers la sortie
´ Structure la plus repandue Algorithmes d’apprentissage des poids efficaces
[email protected]
´ Reseaux de Neurones
21 janvier 2016
9 / 60
´ eraux ´ Principes gen
Topologies
´ Reseaux en couches (2) Variantes Une couche, fonction d’activation heaviside, une sortie : perceptron [Rosenblatt 1957] Si plus d’une couche : couches dites cachees ´ , perceptron multicouches Si beaucoup de couches : architectures profondes
[email protected]
´ Reseaux de Neurones
21 janvier 2016
10 / 60
´ eraux ´ Principes gen
Topologies
´ ´ Reseaux totalement interconnectes ´ Reseaux de Hopfield, Machines de Boltzmann ´ entre eux Tous les neurones sont connectes Difficile a` entrainer ` ´ N’a jamais vraiment prouve´ son utilite´ sur des problemes reels ´ et ˆ essentiellement theorique ´ → inter
[email protected]
´ Reseaux de Neurones
21 janvier 2016
11 / 60
´ eraux ´ Principes gen
Topologies
´ ´ Reseaux recurrents ´ Adapte´ aux sequences Permet de prendre en compte le contexte On calcule y (n) a` partir de : I I
´ courantes x(n) les entrees y (n − 1) les sorties de l’exemple ´ edent ´ prec ˆ ´ (provenant d’une meme sequence)
` ' Markovienne Hypothese
[email protected]
´ Reseaux de Neurones
21 janvier 2016
12 / 60
´ eraux ´ Principes gen
Topologies
´ Reseaux convolutionnels ´ connexions locales Poids partages, ` Apprentissage de configurations particulieres
[email protected]
´ Reseaux de Neurones
21 janvier 2016
13 / 60
Apprentissage(s)
` Posons le probleme
Plan 1
Introduction
2
´ eraux ´ Principes gen Neurone formel Topologies
3
Apprentissage(s) ` Posons le probleme ´ ´ Reseau lineaire a` une couche ´ ´ Reseau non lineaire a` une couche ´ Reseaux multicouches
4
Autres architectures Architectures profondes ´ ´ Reseaux recurrents ´ Reseaux convolutionnels ´ Legos
5
´ Reseaux de neurones dans la pratique ´ Parametrisation Mise en œuvre
[email protected]
´ Reseaux de Neurones
21 janvier 2016
14 / 60
Apprentissage(s)
` Posons le probleme
Notations (1) ´ Les donnees ´ ´ de N couples {x(n), y d (n)} On dispose d’une base etiquet ee X ∈ RE×N , Yd ∈ RS×N
x1 (1) x1 (n) . .. .. X = {x(n)} = = . xE (n) xE (1)
... .. . ...
d d y1 (1) y1 (n) .. . d d .. Y = {y (n)} = = . yEd (n) ySd (1)
[email protected]
´ Reseaux de Neurones
x1 (N) .. xe (n) . ... xE (N)
... .. . ...
...
y1d (N) .. ysd (n) . d ... yS (N) ...
21 janvier 2016
15 / 60
Apprentissage(s)
` Posons le probleme
Notations(2) y ∈ RS
´ Le reseau (en couche) ´ S sorties E entree, ´ Le reseau comporte Λ couches λ
W matrice des poids entre couches λ − 1 et λ ´ ee ´ pour On appelera y d (n) la sortie desir l’exemple n Si : - la couche λ − 1 contient ni neurones - la couche λ nj neurones, alors : w11 . . . w1i . . . w1ni .. .. Wλ = {wji } = wj1 . wji . wjni wnj 1 . . . wnj i . . . wnj ni
[email protected]
´ Reseaux de Neurones
◦◦◦◦◦
layer Λ
Λ
W ◦ ◦ ◦ ◦ ◦◦
layer Λ − 1
Λ−1
W
W3 ◦◦◦◦◦◦◦◦◦
layer 2
2
W ◦◦◦◦◦◦◦ W x ∈ RE
layer 1
1
21 janvier 2016
16 / 60
Apprentissage(s)
` Posons le probleme
` Le probleme Rappel : on souhaite estimer f : Apprentissage sur la base des poids de connexion entre neurones W
` → Critere ` des moindres carres ´ (derivable) ´ Critere : J (W ) =
N X
e(n)T e(n)
avec e(n) = y (n) − y d (n)
n=1
´ Qu’on peut re´ ecrire en sommant sur les sorties : J (W ) =
S X N X
(es (n))2 =
s=1 n=1
S X
J (Ws )
(1)
s=1
Avec es (n) = ys (n) − ysd (n)
[email protected]
´ Reseaux de Neurones
21 janvier 2016
17 / 60
Apprentissage(s)
´ ´ Reseau lineaire a` une couche
Plan 1
Introduction
2
´ eraux ´ Principes gen Neurone formel Topologies
3
Apprentissage(s) ` Posons le probleme ´ ´ Reseau lineaire a` une couche ´ ´ Reseau non lineaire a` une couche ´ Reseaux multicouches
4
Autres architectures Architectures profondes ´ ´ Reseaux recurrents ´ Reseaux convolutionnels ´ Legos
5
´ Reseaux de neurones dans la pratique ´ Parametrisation Mise en œuvre
[email protected]
´ Reseaux de Neurones
21 janvier 2016
18 / 60
´ ´ Reseau lineaire a` une couche
Apprentissage(s)
´ ´ Reseau lineaire a` une couche (1) Une couche de neurones avec une fonction d’activation ϕ = identite´ W1T w11 . . . w1E .. poids : W = {wse } = ... = ... w . se
WST
wS1
wSE
...
Propagation 1 ex. sur une sortie : ys (n) = WsT x(n) x1
ys
=
ws1
wsE
...
×
. . .
xE
Propagation 1 ex. sur toutes les sorties : y (n) = Wx(n)
y1 . . . yS
=
w11 . . . wS1
w1E . . . wSE
...
wse ...
x1 . . .
×
xE
Propagation N ex. sur S sortie : Y = WX
y d (1) 1 . . . y d (1) S
... .
.
.
...
... ysd (n) ...
y d (N) 1 . . . y d (N) S
[email protected]
=
w11 . . . wS1
... wse ...
w1E . . .
x1 (1)
×
. . . xE (1)
wSE
´ Reseaux de Neurones
... .
.
. ...
...
x1 (N)
xe (n) ...
. . . xE (N)
21 janvier 2016
19 / 60
Apprentissage(s)
´ ´ Reseau lineaire a` une couche
´ ´ Reseau lineaire a` une couche (2) Calcul de l’erreur Erreur sur une sortie pour 1 exemple : es (n) = ysd (n) − WsT x(n) ` : Critere J (W ) =
S X N X
2 ysd (n) − WsT x(n)
s=1 n=1
Apprentissage des poids ? ` ´ ` On a donc un probleme lineaire par rapport aux parametres Y = WX ` des moindres carres ´ avec un critere ´ ! → solution des moindres carres Rappel : Si Y = X Θ et que X T X est inversible, alors ΘMC = (X T X )−1 X T Y ´ erement ` ´ Attention : formulation leg differente
[email protected]
´ Reseaux de Neurones
21 janvier 2016
20 / 60
Apprentissage(s)
´ ´ Reseau lineaire a` une couche
´ ´ Reseau lineaire a` une couche (3) Si Y = WX, alors YT = XT WT ... ... qui est de la forme Y = X Θ, en remplacant X et Y par leur ´ transposees, et Θ par WT En appliquant les MC, on obtient WTMC = (XX T )−1 XY T D’ou` WMC = YX T (X T X )−1
Conclusion Apprentissage OK avec les MC, mais : ´ Pas de non linearit e´ = pas terrible Une seule couche = pas terrible ` lourd (mais MC recursifs ´ (X T X ) a` inverser : potentiellement tres possibles) ´ Introduction d’une fonction ϕ non lineaire
[email protected]
´ Reseaux de Neurones
21 janvier 2016
21 / 60
Apprentissage(s)
´ ´ Reseau non lineaire a` une couche
Plan 1
Introduction
2
´ eraux ´ Principes gen Neurone formel Topologies
3
Apprentissage(s) ` Posons le probleme ´ ´ Reseau lineaire a` une couche ´ ´ Reseau non lineaire a` une couche ´ Reseaux multicouches
4
Autres architectures Architectures profondes ´ ´ Reseaux recurrents ´ Reseaux convolutionnels ´ Legos
5
´ Reseaux de neurones dans la pratique ´ Parametrisation Mise en œuvre
[email protected]
´ Reseaux de Neurones
21 janvier 2016
22 / 60
Apprentissage(s)
´ ´ Reseau non lineaire a` une couche
´ ´ Reseau non lineaire a` une couche (1) ´ Introduction d’une fonction ϕ non lineaire On a donc Y = ϕ(WX), et les MC ne sont plus applicables ´ On va appliquer une methode de descente de gradient → rappels !
´ Algorithme iteratif : ´ On choisit un Wt=0 aleatoire ` Bonne direction = celle ou` le critere baisse Avancer un peu, mais pas trop
Wt+1 avec : ` W les parametres ;
[email protected]
dJ (W) ← Wt − η dW Wt
η : le pas ;
dJ (W) dW
Wt
´ Reseaux de Neurones
: la bonne direction 21 janvier 2016
23 / 60
Apprentissage(s)
´ ´ Reseau non lineaire a` une couche
´ ´ Reseau non lineaire a` une couche (2) ` Critere ´ Pour un reseau a` une couche contenant une FNL ϕ : y (n) = ϕ (Wx(n)) ` s’ecrit ´ Le critere donc : J (W ) =
N X
y d (n) − ϕ (Wx(n))
2
n=1
´ On derive pour appliquer le gradient : Wt+1 ← Wt − η
dJ (W) dW
= −2
dJ (W) dW
Wt
N dϕ (Wx(n)) X y d (n) − ϕ (Wx(n)) × dW n=1
= −2
N X
y d (n) − ϕ (Wx(n)) × ϕ0 (Wx(n)) x(n)
n=1
[email protected]
´ Reseaux de Neurones
21 janvier 2016
24 / 60
Apprentissage(s)
´ ´ Reseau non lineaire a` une couche
´ ´ Reseau non lineaire a` une couche (3) Application du gradient N
X dJ (W) = −2 y d (n) − ϕ (Wx(n)) × ϕ0 (Wx(n))x(n) dW n=1
Deux cas de figure :
´ Si ϕ n’est pas derivable (ex. heaviside) : c¸a ne marche pas ! ´ ´ ee ´ : algo adaline [Widrow & Hoff 1960] Approximation lineaire de la deriv N X dJ (W) y d (n) − ϕ (Wx(n)) × x(n) = −2 dW n=1
´ Si ϕ est derivable (ex. sigmo¨ıde, tanh) : c¸a marche ! Dans ce cas on applique la descente de gradient ´ ϕ0 = 1 : c¸a marche Remarque : dans le cas d’une fonction identite, OK pour une couche, et pour plusieurs ?
[email protected]
´ Reseaux de Neurones
21 janvier 2016
25 / 60
Apprentissage(s)
´ Reseaux multicouches
Plan 1
Introduction
2
´ eraux ´ Principes gen Neurone formel Topologies
3
Apprentissage(s) ` Posons le probleme ´ ´ Reseau lineaire a` une couche ´ ´ Reseau non lineaire a` une couche ´ Reseaux multicouches
4
Autres architectures Architectures profondes ´ ´ Reseaux recurrents ´ Reseaux convolutionnels ´ Legos
5
´ Reseaux de neurones dans la pratique ´ Parametrisation Mise en œuvre
[email protected]
´ Reseaux de Neurones
21 janvier 2016
26 / 60
Apprentissage(s)
´ Reseaux multicouches
´ Reseaux multicouches (1) C’est le perceptron multicouches (PMC ou MLP) ´ → Couches dites cachees ˆ FNL ϕ, peuvent etre 6= suivant les couches y (n) ∈ RS
´ Exemple d’un reseau a` deux couches
◦◦◦◦◦
´ S sorties, J neurones en couche E entree, ´ cachee
2 z(n) W = {wsj } ◦◦◦◦◦◦◦ J=7
1
W ∈ RJ×E poids entre les x et la couche 1 W2 ∈ RS×J poids entre les couches 1 et 2 ´ z(n) ∈ RJ : variable intermediaire
W1 = {wje } x(n) ∈ RE
ϕ1 : sigmo¨ıde ; ϕ2 : softmax
w11
W1 = {wje } = w j1 wJ1
[email protected]
... .. . ...
w1E
wjE wJE
w11
W2 = {wsj } = w s1 wS1 ´ Reseaux de Neurones
S=5
... .. . ...
w1J
wsJ wSJ 21 janvier 2016
27 / 60
Apprentissage(s)
´ Reseaux multicouches
´ Reseaux multicouches (2) Propagation d’un exemple : 1 αj1 ) w x , puis z = ϕ e je j e P ´ ee ´ αs2 = j wsj zj , puis ys = ϕ2 αs2 ) couche 2 : somme ponder ´ ee ´ αj1 = couche 1 : somme ponder
P
´ Apprentissage : Retropropagation du gradient [Rumelhart 86] Initialiser les Wλ au hasard 1 2 3 4
Propager un exemple x(n) pour calculer y (n) Calculer l’erreur (y d (n) − y (n)) ´ ` J = (y d (n) − y (n))2 a` travers W2 ... Retropropager le critere ... puis a` travers W1
` tant qu’on n’est pas On passe tous les exemples de la base, et on itere satisfait
[email protected]
´ Reseaux de Neurones
21 janvier 2016
28 / 60
Apprentissage(s)
´ Reseaux multicouches
´ Reseaux multicouches (3) ´ Chaque sortie s’ecrit : ys = ϕ2
! X
wsj ϕ1
` J = 1/2 Donc le critere
d s (ys
wje xe
e
j
P
X
´ − ys )2 depend de (wje , ϕ1 , wsj , ϕ2 ).
Apprentissage de wje et wsj : Descente de gradient : wje t+1 ← wje t − η
∂J ∂wje wje
et t
wsj t+1 ← wsj t − η
∂J ∂wsj wsj
t
` ´ ees ´ partielles du critere ` ? Probleme : comment calculer les deriv
[email protected]
´ Reseaux de Neurones
21 janvier 2016
29 / 60
Apprentissage(s)
´ Reseaux multicouches
´ Reseaux multicouches (3) ∂J On commence par le calcul de : ∂w
sj
=
∂J ∂ys
×
∂ys ∂αs2
×
∂αs2 ∂wsj
S
=
∂ 1X d (ys − ys )2 = −(ysd − ys ) ∂ys 2
∂ys ∂αs2
=
∂ 2 2 0 ϕ (αs ) = ϕ2 (αs2 ) ∂αs2
∂αs2 ∂wsj
=
J ∂ X wsj zj = zj ∂wsj
∂J ∂ys
∂J Finalement : ∂w
sj
s=1
j=1
0
= −(ysd − ys ) × ϕ2 (αs2 ) × zj = Erreurs zj
´ Cette quantite´ represente l’erreur sur la sortie s due au neurone j
[email protected]
´ Reseaux de Neurones
21 janvier 2016
30 / 60
´ Reseaux multicouches
Apprentissage(s)
´ Reseaux multicouches (4) ∂J On enchaine avec le calcul de : ∂w
je
∂J ∂zj
=
X ∂J ∂αs2
s
=
X
×
−(ysd
∂αs2 ∂zj
=
=−
×
∂zj ∂αj1
×
∂αj1 ∂wje
1er terme : rouge*vert du slide pr´ec´edent
− ys ) × ϕ
20
(αs2 )
X d 0 ∂ X wsj zj = − (ys − ys ) × ϕ2 (αs2 ) × ws × ∂zj s j
∂αj1
0 ∂ 1 1 ϕ (αj ) = ϕ1 (αj1 ) ∂αj1
FinalementP : ∂J ∂wje
∂J ∂zj
s
∂zj ∂αj1
=
d s (ys
∂wje
=
∂ X wje xe = xe ∂wje e
0
0
− ys ) × ϕ2 (αs2 ) × wsj × ϕ1 (αj1 ) × xe = Erreurj xe
´ ´ e Cette quantite´ represente l’erreur sur le neurone j due a` l’entree
[email protected]
´ Reseaux de Neurones
21 janvier 2016
31 / 60
Apprentissage(s)
´ Reseaux multicouches
´ Reseaux multicouches (5) ´ On recapitule : Algorithm 1 Backpropagation algorithm η ← 0.001 W1 ← rand(J,E) W2 ← rand(S,J) while (erreurApp ≤ ) do for n = 1 → N do propagate x(n) : compute z(n) and y (n) compute ErrorS W2 ← W2 − η ∗ ErrorS ∗ z(n) compute ErreurJ W1 ← W1 − η ∗ ErrorJ ∗ x(n) end for end while
[email protected]
´ Reseaux de Neurones
21 janvier 2016
32 / 60
Apprentissage(s)
´ Reseaux multicouches
´ Reseaux multicouches (5’)
´ On recapitule, 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 ;
[email protected]
´ Reseaux de Neurones
21 janvier 2016
33 / 60
Apprentissage(s)
´ Reseaux multicouches
´ Reseaux multicouches (6) Remarques : ´ On peut sommer les erreurs sur toute la base et retropropager une seule fois : → mode Batch (plus rapide) ` Question du pas ... 2eme ordre ? Cf. cours gradient Quand stopper l’algorithme ? Attention au surapprentissage
[email protected]
´ Reseaux de Neurones
21 janvier 2016
34 / 60
Apprentissage(s)
´ Reseaux multicouches
´ Reseaux multicouches (7) Dimensionnement Combien de neurones par couches / Combien de couches ? Une seul couche suffit pour estimer n’importe quelle fonction f , pourvu que : J → ∞ et N → ∞ [Lippman 87]
Solution : rajoutons des couches ! ´ eralisable ´ ´ ,Backprop gen avec plusieurs couches cachees ` ´ ,Frontieres de decision plus complexes ´ ´ ,Representation de haut niveau des donnees ´ /Mais l’energie de l’erreur est trop faible pour modifier les couches basses
→ Deep learning !
[email protected]
´ Reseaux de Neurones
21 janvier 2016
35 / 60
Autres architectures
Architectures profondes
Plan 1
Introduction
2
´ eraux ´ Principes gen Neurone formel Topologies
3
Apprentissage(s) ` Posons le probleme ´ ´ Reseau lineaire a` une couche ´ ´ Reseau non lineaire a` une couche ´ Reseaux multicouches
4
Autres architectures Architectures profondes ´ ´ Reseaux recurrents ´ Reseaux convolutionnels ´ Legos
5
´ Reseaux de neurones dans la pratique ´ Parametrisation Mise en œuvre
[email protected]
´ Reseaux de Neurones
21 janvier 2016
36 / 60
Autres architectures
Architectures profondes
SVM vs. Architectures profondes ´ 1985 - 1995 : l’essor des reseaux de neurones Emergence de nombreuses applications industrielles : ´ Reconnaissance d’ecriture, de la parole, etc.
´ 1995 - 2005 : La supprematie des Support Vector Machines ´ Classifieurs aux bases theoriques fortes ´ de gen ´ eralisation, ´ ´ Excellentes capacites perf. a` l’etat de l’art ´ Reseaux de neurones = has been . . .
´ 2006 - 20 ? ? : Le retour des reseaux 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) ´ Reseaux de neurones profonds Architectures connues, nouveaux algo d’apprentissage Performances permettant d’envisager de nouvelles applications
[email protected]
´ Reseaux de Neurones
21 janvier 2016
37 / 60
Autres architectures
Architectures profondes
Architectures profondes (1) Principe
y ∈ RS
´ Reseau feedforward comportant Λ couches, avec Λ > 2 W λ matrice des poids entre couches λ − 1 et λ backprop insuffisante → comment faire ?
◦◦◦◦◦
layer Λ
Λ
W ◦ ◦ ◦ ◦ ◦◦
layer Λ − 1
Λ−1
W
Apprentissage en deux temps Apprentissage des couches dites basses, en non supervise´ I I
Utilisation des autoencodeurs ` Couches dites de modeles
` Apprentissage des dernieres couches en supervise´ I I
Backpropagation Couches dites de decision
[email protected]
´ Reseaux de Neurones
W3 ◦◦◦◦◦◦◦◦◦
layer 2
2
W ◦◦◦◦◦◦◦ W x ∈ RE
layer 1
1
21 janvier 2016
38 / 60
Autres architectures
Architectures profondes
Architectures profondes (2) Auto Associateurs (AA) ´ : on veut y d = x Un AA cherche a` apprendre ses propres entrees ´ Apprentissage d’un encodeur e(x) et d’un decodeur d((e(x)) ´ ´ e et une couche de sortie d Reseau a` une couche cachee ` : J = (xˆ − x)2 = (d(e(x)) − x)2 Critere xˆ = d(e(x)) Si le nombre de neurones de e est qq centaines) Supporte tres ´ Performances : architectures profondes a` l’etat de l’art sur plusieurs ` problemes
´ Inconvenients ´ Parametrisation ˆ Apprentissage long et parfois difficile a` controler (minimum locaux) ´ ´ Necessite bcp de donnees
[email protected]
´ Reseaux de Neurones
21 janvier 2016
56 / 60
´ Reseaux de neurones dans la pratique
´ Parametrisation
´ ´ Parametrisation/choix du reseau Nombre de couches ´ Avec des caracteristiques : MLP avec 1 ou 2 couches ´ Sinon : Architecture profonde : Pas de caracteristiques a` extraire ,, ` mais plus d’hyperparametres /
Si besoin de rejet de distance : Radial Basis Function : neurones = gaussiennes ´ ´ ´ Si sequence : reseau recurrent ou MLP couple´ a` classifieur dynamique
´ Nombre de neurones couches cachees ´ ´ ´ Classique : moyenne geom etrique ou arithmetique de (E,S) ` couche + grande que E Avec des deep : + difficile, premiere
Fonction d’activation ϕ ´ fonction non lineaire, tanh, sigmo¨ıde, c¸a ne change pas grand chose ...
[email protected]
´ Reseaux de Neurones
21 janvier 2016
57 / 60
´ Reseaux de neurones dans la pratique
´ Parametrisation
´ ´ Parametrisation/choix du reseau ´ Reglage du pas (voir cours Gradient) pas fixe : petit ( 10−2 , 10−3 , 10−4 , ...) ´ pas adaptatif : diminue avec les iterations ´ ´ line search : calcul du pas ”ideal” a` chaque iteration ´ ` ´ + de calculs Methode du deuxieme ordre (gradient conjugue),
´ Les donnees ´ reduites ´ Centrees : c’est mieux ´ ements ´ Taille de la base d’app : au moins E 2 el par classe ´ Attention aux bases non balancees. Solutions : I
I I I
Compenser les proba a posteriori p(Ci /x) par 1/p(Ci ) avec p(Ci ) probabilite´ a` priori de la la classe Ci : Marche pas ´ ´ des classes sur-represent ´ ´ Echantillonner les donnees ees ´ ´ Dupliquer les echantillons sous-represent e´ ´ Pendant l’apprentissage, ponderer les erreurs des exemples par 1/p(Ci )
[email protected]
´ Reseaux de Neurones
21 janvier 2016
58 / 60
´ Reseaux de neurones dans la pratique
Mise en œuvre
Mise en œuvre ∃ de nombreuses librairies : Torch3 (C++) / Torch5 (lua) (NEC) http://www.torch.ch/, http://torch5.sourceforge.net/ pybrain (python, TUM Munich) http://pybrain.org/ Theano (python, Montreal) http://deeplearning.net/software/theano/ Caffe (Berkeley) http://caffe.berkeleyvision.org/ TensorFlow (Google) https://www.tensorflow.org/versions/ master/get_started/index.html
Exercice : ´ sans librairie Coder en matlab/octave un MLP a` 1 couche cachee, ` ´ Tester les hyperparametres : η ; nb d’iteration, nb de neurones dans la ´ etc. couche cachee, Base ? MNIST
[email protected]
´ Reseaux de Neurones
21 janvier 2016
59 / 60
´ Reseaux 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, Clement Chatelain, Romain Herault, Sebastien Adam : Input/Output Deep Architecture for Structured Output Problems. CoRR abs/1504.07550 (2015)
[email protected]
´ Reseaux de Neurones
21 janvier 2016
60 / 60