• Aucun résultat trouvé

R ´eseaux de Neurones

N/A
N/A
Protected

Academic year: 2022

Partager "R ´eseaux de Neurones"

Copied!
69
0
0

Texte intégral

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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+1Wt−η 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

(24)

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

(25)

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

(26)

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

(27)

Apprentissage(s) R ´eseaux multicouches

R ´eseaux multicouches (2)

Propagation d’un exemple :

couche 1 : somme pond ´er ´eeα1j =P

ewjexe, puiszj1 α1j) couche 2 : somme pond ´er ´eeα2s =P

jwsjzj, puisys2 α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

(28)

Apprentissage(s) R ´eseaux multicouches

R ´eseaux multicouches (3)

Chaque sortie s’ ´ecrit :

ys2

 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

je

et 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

(29)

Apprentissage(s) R ´eseaux multicouches

R ´eseaux multicouches (3)

On commence par le calcul de : ∂J

∂wsj

=

∂J∂y

s

×

∂α∂ys2

s

×

∂w∂α2s

sj

∂J

∂ys = ∂

∂ys 1 2

S

X

s=1

(ysd−ys)2=−(ysd−ys)

∂ys

∂α2s = ∂

∂α2sϕ22s) =ϕ202s)

∂α2s

∂wsj = ∂

∂wsj

J

X

j=1

wsjzj =zj

Finalement : ∂w∂J

sj

= −(y

sd

− y

s

) × ϕ

20

2s

) × z

j

= Erreur

s

z

j

Cette 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

(30)

Apprentissage(s) R ´eseaux multicouches

R ´eseaux multicouches (4)

On enchaine avec le calcul de : ∂J

∂wje

=

∂J∂z

j

×

∂α∂zj1

j

×

∂α

1 j

∂wje

∂J

∂zj

= X

s

∂J

∂α2s

×∂α2s

∂zj

1er terme : rouge*vert du slide pr´ec´edent

= X

s

−(ysd−ys)×ϕ202s)× ∂

∂zj

X

j

wsjzj

=−X

s

(ysd−ys)×ϕ202s)×wsj

∂zj

∂α1j = ∂

∂α1jϕ11j)=ϕ101j) ∂α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

j

x

e

Cette 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

(31)

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

W2W2−η∗ErrorS∗z(n) computeErreurJ

W1W1−η∗ErrorJ∗x(n) end for

end while

clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 31 / 69

(32)

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

(33)

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

(34)

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

(35)

Apprentissage(s) R ´eseaux multicouches

G ´en ´eralisation (3)

Instanciation des F

i

les 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

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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∂J

je

et

∂w∂J

jj0 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

(50)

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

(51)

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

(52)

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

(53)

Architectures profondes R ´eseaux convolutionnels

Convolutional neural network (2)

clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 53 / 69

(54)

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

(55)

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

(56)

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

(57)

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

(58)

Bibliographie

Caption Generation

clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 58 / 69

(59)

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

(60)

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

(61)

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

(62)

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

(63)

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

(64)

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

(65)

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

(66)

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

(67)

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

(68)

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

(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

Références

Documents relatifs

La suite du stage sera une ´ etude algorithmique compl` ete (i.e. ´ ecriture, preuve et analyse d’algorithmes) pour r´ epondre ` a un probl` eme de service (on peut par

D’inspiration biologique, les neurones artificiels sont des petites unit´ es de traitement compos´ es d’une ou plusieurs entr´ ees, d’une sortie et d’un corps de cellule

Coder en matlab/octave un MLP `a 1 couche cach ´ee, sans librairie Tester les hyperparam `etres : η ; nb d’it ´eration, nb de neurones dans la couche cach ´ee,

Ce syst`eme est constitu´e de deux sous syst`emes identiques (premi`ere machine avec son stock et seconde machine avec son stock) chacun produisant un type de pi`eces diff´erent.

Combin´ ees avec une attaque sur un service r´ eseau (httpd par exemple), elles peuvent donner des acc` es privil´ egi´ es ` a un attaquant, ou provoquer un d´ eni de service comme

Dans la figure 8.a, nous remarquons que l’utilit´e moyenne des approches ´etudi´ees varie tr`es peu en fonction de la taille du r´eseau. Nous observons ´egalement ici que

Chaque r´ eseau poss` ede une adresse de diffusion ou broadcast (conventionnellement avec les bits de poids faibles ` a 1 ), qui permet de diffuser un paquet IP ` a toutes les machines

Dans ce projet, cette valuation repr´ esentera soit une dur´ ee (ou plus g´ en´ eralement un coˆ ut ou poids) pour le probl` eme du plus court chemin, soit une capacit´ e, pour