Réseaux de Neurones - Clément Chatelain's Homepage

Jan 21, 2016 - f : x → y avec xT = [x1, x2,..., xE ] ∈ RE. Si y ∈ RS, on parle de régression. Si y ∈ {C1, C2,..., CS}, on parle de classification. Dans ce cas ...Missing:
5MB taille 0 téléchargements 33 vues
 ´ 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