• Aucun résultat trouvé

R ´eseaux de Neurones

N/A
N/A
Protected

Academic year: 2022

Partager "R ´eseaux de Neurones"

Copied!
60
0
0

Texte intégral

(1)

M2 STIM -Identification & aide `a la d ´ecision

R ´eseaux de Neurones

clement.chatelain@insa-rouen.fr

21 janvier 2016

clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 21 janvier 2016 1 / 60

(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 Autres architectures Architectures profondes R ´eseaux r ´ecurrents R ´eseaux convolutionnels L ´egos

5 R ´eseaux de neurones dans la pratique Param ´etrisation

Mise en œuvre

(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 21 janvier 2016 3 / 60

(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)})

(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 21 janvier 2016 5 / 60

(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

(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 sigmo¨ıde :ϕ(x) = 1

1+e−x

tanh :ϕ(x) = eexx−e+e−x−x =e2x−1

e2x+1

fonction noyau (gaussienne)

heaviside - sigmo¨ıde - tanh - gaussienne

clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 21 janvier 2016 7 / 60

(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)

(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 21 janvier 2016 9 / 60

(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

(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 21 janvier 2016 11 / 60

(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

(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 21 janvier 2016 13 / 60

(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 Autres architectures Architectures profondes R ´eseaux r ´ecurrents R ´eseaux convolutionnels L ´egos

5 R ´eseaux de neurones dans la pratique Param ´etrisation

Mise en œuvre

(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 21 janvier 2016 15 / 60

(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Λ

(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 21 janvier 2016 17 / 60

(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 Autres architectures Architectures profondes R ´eseaux r ´ecurrents R ´eseaux convolutionnels L ´egos

5 R ´eseaux de neurones dans la pratique Param ´etrisation

Mise en œuvre

(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 21 janvier 2016 19 / 60

(20)

Apprentissage(s) R ´eseau lin ´eaire `a une couche

R ´eseau lin ´eaire `a une couche (2)

Calcul de l’erreur

Erreur sur une sortie pour 1 exemple :

es(n) =ysd(n)−WsTx(n) Crit `ere :

J(W) =

S

X

s=1 N

X

n=1

ysd(n)−WsTx(n)2

Apprentissage des poids ?

On a donc un probl `eme lin ´eaire par rapport aux param `etresY=WX avec un crit `ere des moindres carr ´es

solution des moindres carr ´es ! Rappel :

SiY =XΘet queXTX est inversible, alorsΘMC= (XTX)−1XTY Attention: formulation l ´eg `erement diff ´erente

(21)

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’o `uWMC =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 21 janvier 2016 21 / 60

(22)

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 Autres architectures Architectures profondes R ´eseaux r ´ecurrents R ´eseaux convolutionnels L ´egos

5 R ´eseaux de neurones dans la pratique Param ´etrisation

Mise en œuvre

(23)

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 21 janvier 2016 23 / 60

(24)

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)

(25)

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. sigmo¨ıde, 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 21 janvier 2016 25 / 60

(26)

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 Autres architectures Architectures profondes R ´eseaux r ´ecurrents R ´eseaux convolutionnels L ´egos

5 R ´eseaux de neurones dans la pratique Param ´etrisation

Mise en œuvre

(27)

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: sigmo¨ıde ;ϕ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 21 janvier 2016 27 / 60

(28)

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

(29)

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 21 janvier 2016 29 / 60

(30)

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

(31)

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 21 janvier 2016 31 / 60

(32)

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

(33)

Apprentissage(s) R ´eseaux multicouches

R ´eseaux multicouches (5’)

On r ´ecapitule, en matlab :

clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 21 janvier 2016 33 / 60

(34)

Apprentissage(s) R ´eseaux multicouches

R ´eseaux multicouches (6)

Remarques :

On peut sommer les erreurs sur toute la base et r ´etropropager une seule fois :

→modeBatch(plus rapide)

Question du pas ... 2 `eme ordre ? Cf. cours gradient

Quand stopper l’algorithme ? Attention au surapprentissage

(35)

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 21 janvier 2016 35 / 60

(36)

Autres architectures Architectures profondes

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 Autres architectures Architectures profondes R ´eseaux r ´ecurrents R ´eseaux convolutionnels L ´egos

5 R ´eseaux de neurones dans la pratique Param ´etrisation

Mise en œuvre

(37)

Autres architectures Architectures profondes

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 21 janvier 2016 37 / 60

(38)

Autres architectures Architectures profondes

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Λ

(39)

Autres architectures Architectures profondes

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 21 janvier 2016 39 / 60

(40)

Autres architectures Architectures profondes

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

(41)

Autres architectures Architectures profondes

Architectures profondes (4) : Exemple d’application

Apprentissage en trois ´etapes [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 21 janvier 2016 41 / 60

(42)

Autres architectures 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 Autres architectures Architectures profondes R ´eseaux r ´ecurrents R ´eseaux convolutionnels L ´egos

5 R ´eseaux de neurones dans la pratique Param ´etrisation

Mise en œuvre

(43)

Autres architectures 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 21 janvier 2016 43 / 60

(44)

Autres architectures 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)

(45)

Autres architectures 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 21 janvier 2016 45 / 60

(46)

Autres architectures 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 ...

(47)

Autres architectures 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 21 janvier 2016 47 / 60

(48)

Autres architectures 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 complexe, avec un m ´ecanisme de gate Apprentissage par BPTT

Ex. de Perf HWR : 83%→91%WER

(49)

Autres architectures R ´eseaux r ´ecurrents

BLSTM (2)

Utilisation en g ´en ´eration

D ´emohttp://www.cs.toronto.edu/˜graves/handwriting.html

clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 21 janvier 2016 49 / 60

(50)

Autres architectures 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 Autres architectures Architectures profondes R ´eseaux r ´ecurrents R ´eseaux convolutionnels L ´egos

5 R ´eseaux de neurones dans la pratique Param ´etrisation

Mise en œuvre

(51)

Autres architectures R ´eseaux convolutionnels

Convolutionnal 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 21 janvier 2016 51 / 60

(52)

Autres architectures R ´eseaux convolutionnels

Convolutionnal neural network (2)

(53)

Autres architectures L ´egos

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 Autres architectures Architectures profondes R ´eseaux r ´ecurrents R ´eseaux convolutionnels L ´egos

5 R ´eseaux de neurones dans la pratique Param ´etrisation

Mise en œuvre

clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 21 janvier 2016 53 / 60

(54)

Bibliographie

Combinaison d’architectures

(55)

R ´eseaux de neurones dans la pratique

Plan

1 Introduction

2 Principes g ´en ´eraux

3 Apprentissage(s)

4 Autres architectures

5 R ´eseaux de neurones dans la pratique Param ´etrisation

Mise en œuvre

clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 21 janvier 2016 55 / 60

(56)

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

(57)

R ´eseaux de neurones dans la pratique Param ´etrisation

Param ´etrisation/choix du r ´eseau

Nombre de couches

Avec des caract ´eristiques : MLP avec 1 ou 2 couches

Sinon : Architecture profonde : Pas de caract ´eristiques `a extraire,, mais plus d’hyperparam `etres/

Si besoin de rejet de distance : Radial Basis Function : neurones = gaussiennes

Si s ´equence : r ´eseau r ´ecurrent ou MLP coupl ´e `a classifieur dynamique

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 ϕ

fonction non lin ´eaire,tanh, sigmo¨ıde, c¸a ne change pas grand chose ...

clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 21 janvier 2016 57 / 60

(58)

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−2, 10−3, 10−4, ...) 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 : au moinsE2 ´el ´ements par classe Attention aux bases non balanc ´ees. Solutions :

I Compenser les proba a posteriorip(Ci/x)par 1/p(Ci)avecp(Ci) probabilit ´e `a priori de la la classeCi:Marche pas

I Echantillonner les donn ´ees des classes sur-repr ´esent ´ees´

I Dupliquer les ´echantillons sous-repr ´esent ´e

I Pendant l’apprentissage, pond ´erer les erreurs des exemples par 1/p(Ci)

(59)

R ´eseaux 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 :

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, etc.

Base ? MNIST

clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 21 janvier 2016 59 / 60

(60)

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)

Références

Documents relatifs

1) Montrer que le triangle ABC est équilatéral. 2)

Dans la section pr´ec´edente nous donnions la m´ethode uti- lis´ee pour construire une image d’index (peu ´eloign´e de la luminance de l’image couleur originale) et une palette

Notons que si nous utilisons toutes les donn´ees pour la TOD inverse nous obtenons un PSNR de 37.62 dB pour la carte de texture et un PSNR infini pour la carte d’altitude puisque

• ensemble de validation: ajuster les param `etres (par exemple: nombre d’ ´epoques).. • Repr ´esentation

Le but d’un r´ eseau de neurones est de repr´ esenter une fonction y(x; b w) (plus g´ en´ erale que dans le mod` ele lin´ eaire) pour la r´ egression ou la classification

L’objectif global du stage est l’´etude des syst`emes instantan´ement stabilisants r´esistants aux fautes byzantines permanentes1. La premi`ere partie du stage consistera en

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

cach ´ees , perceptron multicouches Si beaucoup de couches : architectures profondes.. clement.chatelain@insa-rouen.fr R ´eseaux de Neurones 26 janvier 2017 10