• Aucun résultat trouvé

Neural Networks : Part I

N/A
N/A
Protected

Academic year: 2022

Partager "Neural Networks : Part I"

Copied!
80
0
0

Texte intégral

(1)

Neural Networks : Part I

[email protected]

2 f ´evrier 2018

(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

Historique et Principes g ´en ´eraux Pr ´e apprentissage

R ´eseaux convolutionnels Regularisation

ImageNet

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

Mise en œuvre

(3)

Introduction

Avantage

Fonctionne∀le nombre d’entr ´ees,∀le nombre de sorties Mod `ele pas forc ´ement lin ´eaire par rapport aux param `etres Performances `a l’ ´etat de l’art

Inconv ´enients

Le crit `ere doit ˆetre d ´erivable

Le param ´etrage et l’apprentissage demandent un peu d’exp ´erience ...

(4)

Introduction

Introduction

Les r ´eseaux de neurones permettent d’estimer une fonction f :

f :x →y

avecxT = [x1,x2, . . . ,xE]∈REune image, un texte, une mol ´ecule, etc.

Siy ∈RS, on parle der ´egression

Siy ∈ {C1,C2, . . . ,CS}, on parle declassification Dans ce cas, autant de neurones de sortie que de classe

→Sortiesd ´esir ´eesde la forme :ydT = [0,0, . . . ,1, . . . ,0]

Estimation de f :

Apprentissage des poids de connexion entre neurones Sur une base ´etiquet ´ee deNcouples

({x(1),y(1)}, . . . ,{x(n),y(n)}, . . . ,{x(N),y(N)})

(5)

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

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

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

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

Lorsqu’il y a beaucoup de couches : ”architectures profondes”

Lorsque des param `etres sont partag ´es : R ´eseau `a convolution (CNN) R ´eseau totalement interconnect ´e (Hopfield, Boltzmann)

R ´eseau r ´ecurrent (LSTM)

(9)

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

(10)

Principes g ´en ´eraux Topologies

R ´eseaux en couches (2)

Profondeur du r ´eseau

Une couche, fonction d’activation heaviside, une sortie :perceptron [Rosenblatt 1957]

Si plus d’une couche : couches dites

cach ´ees, perceptron multicouches Si beaucoup de couches : architectures profondes

Remarque : couche dite ”basse” = vers les entr ´ees

(11)

R ´eseaux convolutionnels

Poids partag ´es, connexions locales

Apprentissage de configurations particuli `eres

(12)

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

(13)

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

(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

Historique et Principes g ´en ´eraux Pr ´e apprentissage

R ´eseaux convolutionnels Regularisation

ImageNet

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

Mise en œuvre

(15)

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)

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

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)

(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

Historique et Principes g ´en ´eraux Pr ´e apprentissage

R ´eseaux convolutionnels Regularisation

ImageNet

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

Mise en œuvre

(19)

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)

(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

(21)

Plan

1 Introduction

2 Principes g ´en ´eraux Neurone formel Topologies

3 Apprentissage(s) Posons le probl `eme

R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches

4 Architectures profondes

Historique et Principes g ´en ´eraux Pr ´e apprentissage

R ´eseaux convolutionnels Regularisation

ImageNet

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

Mise en œuvre

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

(23)

Descente de Gradient (1)

Principe g ´en ´eral

On cherche lesWpermettant de minimiser une fonctionJ(W) Algorithme it ´eratif pour r ´egler lesW

Bas ´e sur le calcul de dJdW(W) qui donne la direction de la descente Condition : la fonctionJ doit ˆetre d ´erivable

(24)

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

Descente de Gradient (2)

Algorithme it ´eratif : On choisit unWt=0al ´eatoire

Bonne direction = celle o ´u le crit `ere baisse Avancer un peu, mais pas trop

W

t+1

W

t

− η dJ (W) dW

W

t

avec :

Wles param `etres ; η: le pas ; dJdW(W) W

t

: labonnedirection

(25)

Descente de Gradient (3)

Exemple de descentes de gradient 1D convexe/non convexe

3 2 1 0 1 2 3

0 1 2 3 4 5 6 7 8 9

3 2 1 0 1 2 3

1.0 0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5

(26)

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

Descente de Gradient (4)

Exemple de descentes de gradient 2D non convexe, 2 initialisations diff ´erentes

3 2 1 0 1 2

3 2 1 0 1 2

3 2 1 0 1 2

3 2 1 0 1 2

(27)

Les machines `a gradient (1)

Que cherche t’on `a minimiser ?

W = arg min

W J(Xapp,W,Yapp)) W = arg min

W

X

(x,y)∈(Xapp,Yapp)

J(x,W,y)

A chaque it ´eration de la descente on applique` Wt+1=Wt−ηt∆Wt

Attention

J(xi,W,yi)

∂Wk 6= J(xj,W,yj)

∂Wk

Comment appliquer la descente de gradient avec plusieurs exemples ?

(28)

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

Les machines `a gradient (2)

Deux strat ´egies sont possibles :

Apprentissage en bloc (batch-gradient)

∆Wi = 1 card(X)

X

(x,y)∈(X,Y)

∂J(x,W,y)

∂Wi

On met `a jour les param `etres une fois que les gradients de tous les exemples d’un bloc ont ´et ´e calcul ´es.

Le bloc(X,Y)est un sous-ensemble ou l’ensemble d’apprentissage complet. Un bloc n’est pas r ´eutilis ´e tant que les autres bloc n’ont pas ´et ´e utlis ´es.

Apprentissage en ligne (online-gradient)

∆Wi = ∂J(x,W,y)

∂Wi

A chaque exemple pr ´esent ´e, on met `a jour les param `etres. Ce qui correspond `a un bloc de taille 1, card(X) =1.

(29)

Les machines `a gradient (3)

Gradient stochastique (stochastic gradient)

On parle de gradient stochastique (stochastic gradient) lorsque les blocs sont pr ´esent ´es dans un ordre al ´eatoire. Comme pour le batchgradient, un bloc ne r ´eapparaˆıt uniquement lorsque tous les autres ont ´et ´e trait ´es.

G ´en ´eralement, on utilise :

Un gradient non-stochastique avec 1 seul bloc pour un petit nombre d’exemples

Un gradient stochastique en ligne pour un grand nombre d’exemples

(30)

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

Gradient descent : general algorithm

Fin duRappel, revenons `a notre r ´eseau `a une couche

(31)

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)

(32)

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

R ´eseau non lin ´eaire `a une couche (3)

Application du gradient dJ(W)

dW =−2

N

X

n=1

yd(n)−ϕ(Wx(n))

×ϕ0(Wx(n))x(n)

N ´ecessite ϕ d ´erivable

Sigmo¨ıde Tanh ReLU

Remarque : dans le cas d’une fonction identit ´e,ϕ0=1 : c¸a marche OK pour une couche, et pour plusieurs ?

(33)

Plan

1 Introduction

2 Principes g ´en ´eraux Neurone formel Topologies

3 Apprentissage(s) Posons le probl `eme

R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches

4 Architectures profondes

Historique et Principes g ´en ´eraux Pr ´e apprentissage

R ´eseaux convolutionnels Regularisation

ImageNet

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

Mise en œuvre

(34)

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

(35)

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

(36)

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 ?

(37)

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

(38)

Apprentissage(s) R ´eseaux multicouches

R ´eseaux multicouches (4)

On enchaine avec le calcul de : ∂J

∂wje

=

∂J∂z

j

×

∂α∂zj1

j

×

∂w∂α1j

je

∂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

(39)

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

(40)

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 ;

(41)

G ´en ´eralisation (Y.Lecun, voir cours du 12/02/16

1

)

R ´eseau Feedforward :

Empilement de couchesFi calculant une sortieHi `a partir d’une entr ´ee Hi−1, et ´eventuellement de param `etresWi et de la sortieY. Exemples :

Couche lin ´eaire :

Hi =Fi(Hi−1,Wi) =WiHi−1 Couche fonction d’activation

(f :tanh, ReLU, Softmax, etc.) : Hi =Fi(Hi−1) =f(Hi−1) Couche MSE :

Hi =Fi(Hi−1,Y) =||Hi−1−Y||2

MLP classique :

1. https://www.college-de-france.fr/site/yann-lecun/

course-2016-02-12-14h30.htm

(42)

Apprentissage(s) R ´eseaux multicouches

G ´en ´eralisation (2)

Gradients et Backprop

Ainsi, on peut faire abstraction des couches Calcul des gradients :

∂J

∂Hi−1

= ∂J

∂Hi × ∂Hi

∂Hi−1

Pour les couchesFi qui en comportent : Mise `a jour des poids

∂J

∂Wi = ∂J

∂Hi × ∂Hi

∂Wi

On applique ces deux ´equations de mani `ere r ´ecursive, de la sortie vers l’entr ´ee :

I le terme en bleu ´etant calcul ´e pr ´ec ´edemment

I les termes en magenta et vert sont `a instancier suivant le type de couche

(43)

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) =||Hi−1−Y||2donc :

∂Hi

∂Hi−1

=2×(Hi−1−Y)

(44)

Apprentissage(s) R ´eseaux multicouches

G ´en ´eralisation (4)

Algo de backprop generique pour L couches

foreach sample fori =Ldownto 1

∂J

∂Hi−1∂H∂J

i ×∂H∂Hi

i−1

∂J

∂Wi∂H∂J

i ×∂W∂Hi

i // si n ´ecessaire endfor

end foreach

(45)

R ´eseaux multicouches (6)

Dimensionnement

Combien de neurones par couches / Combien de couches ?

Th ´eor `eme d’approximation universelle : ”Une seule couche non lin ´eaire suffit pour estimer n’importe quelle fonctionf,

pourvu que :J → ∞etN → ∞” [Lippman 87]

Solution : rajoutons des couches !

,Backprop g ´en ´eralisable avec plusieurs couches cach ´ees ,Fronti `eres de d ´ecision plus complexes

,Repr ´esentation de haut niveau des donn ´ees

/Mais l’ ´energie de l’erreur est trop faible pour modifier les couches basses

→ Deep learning !

(46)

Architectures profondes Historique et Principes g ´en ´eraux

Plan

1 Introduction

2 Principes g ´en ´eraux Neurone formel Topologies

3 Apprentissage(s) Posons le probl `eme

R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches

4 Architectures profondes

Historique et Principes g ´en ´eraux Pr ´e apprentissage

R ´eseaux convolutionnels Regularisation

ImageNet

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

Mise en œuvre

(47)

MLP vs. SVM vs. Architectures profondes

1985 - 1995 : l’essor des r ´eseaux de neurones

Emergence de nombreuses applications industrielles : Reconnaissance d’ ´ecriture, de la parole, etc.

1995 - 2005 : La suppr ´ematie des Support Vector Machines

Classifieurs aux bases th ´eoriques fortes

Excellentes capacit ´es de g ´en ´eralisation, perf. `a l’ ´etat de l’art R ´eseaux de neurones en sommeil . . .

2006 - 20 ? ? : Le retour des r ´eseaux de neurones

Hinton, G. E., Osindero, S. and Teh, Y. A fast learning algorithm for deep belief nets. Neural Computation, 18, pp 1527-1554 (2006)

R ´eseaux de neurones profonds

Architectures connues, nouveaux algo d’apprentissage

Performances permettant d’envisager de nouvelles applications

(48)

Architectures profondes Historique et Principes g ´en ´eraux

Architectures profondes : principe

R ´eseau feedforward comportantΛcouches, avecΛ>2

Wλmatrice des poids entre couchesλ−1 etλ

Avantages

Meilleure discrimination

Permet d’apprendre l’extraction de caract ´eristiques

Inconv ´enients

Plus de param `etres : n ´ecessite plus de donn ´ees

Disparition du gradient x ∈RE

◦ ◦ ◦ ◦ ◦ ◦ ◦

◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦

◦ ◦ ◦ ◦ ◦◦

◦ ◦ ◦ ◦ ◦ y ∈RS

W1 W2 W3 WΛ−1 WΛ

layer 1 layer 2 layerΛ−1

layerΛ

(49)

Le ”deep learning”, c’est quoi ?

Ensemble de m ´ethodes pour apprendre des r ´eseaux profonds, malgr ´e le vanishing gradient

M ´ethodes souvent assez empiriques, assise th ´eorique pas toujours d ´emontr ´ee

Mod `eles imposant pouvant comporter des millions de param `etres Apprentissage n ´ecessitant des ressources de calcul importantes (GPU) Performances potentiellement tr `es ´elev ´ees

(50)

Architectures profondes Historique et Principes g ´en ´eraux

La lutte contre le vanishing gradient

Vanishing gradient

Neurones satur ´es des couches hautes

”→gradient d’erreur tend vers 0 Apprentissage inefficace

Comment coutourner le vanishing gradient ?

Pr ´e-apprentissage

Convolutional Neural Networks (CNN) ReLU

Regularisation : Dropout, Batch normalization, Tikhonov Feeling, exp ´erience & Tuning de param `etres !

(51)

Plan

1 Introduction

2 Principes g ´en ´eraux Neurone formel Topologies

3 Apprentissage(s) Posons le probl `eme

R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches

4 Architectures profondes

Historique et Principes g ´en ´eraux Pr ´e apprentissage

R ´eseaux convolutionnels Regularisation

ImageNet

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

Mise en œuvre

(52)

Architectures profondes Pr ´e apprentissage

Pr ´e apprentissage (1)

Principe

R ´eseau feedforward comportantΛcouches, avecΛ>2

Wλmatrice des poids entre couchesλ−1 etλ backprop insuffisante→comment faire ?

Apprentissage en deux temps

Apprentissage des couches dites basses, en non supervis ´e

I Utilisation des autoencodeurs

I Couches dites de mod `eles

Apprentissage des derni `eres couches en supervis ´e

I Backpropagation

I Couches dites de decision

x ∈RE

◦ ◦ ◦ ◦ ◦ ◦ ◦

◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦

◦ ◦ ◦ ◦ ◦◦

◦ ◦ ◦ ◦ ◦ y ∈RS

W1 W2 W3 WΛ−1 WΛ

layer 1 layer 2 layerΛ−1

layerΛ

(53)

Pr ´e apprentissage (2)

Auto Associateurs (AA)

Un AA cherche `a apprendre ses propres entr ´ees : on veutyd =x Apprentissage d’un encodeure(x)et d’un d ´ecodeurd((e(x)) R ´eseau `a une couche cach ´eeeet une couche de sortied Crit `ere :J = (ˆx−x)2= (d(e(x))−x)2

Si le nombre de neurones deeest

<E:

Compression, repr ´esentation parcimonieuse dex

x

◦ ◦ ◦ ◦ ◦

◦ ◦ ◦ ◦ ◦◦

xˆ=d(e(x))

e d

(54)

Architectures profondes Pr ´e apprentissage

Pr ´e apprentissage (3) : Apprentissage

pre-training

Apprendre un AA surx.

Gardere1(x) =H1, jeterd1(e1(x)) Apprendre un nouvel AA sure1(x) Gardere2(e1(x)) =H2, jeterd2 etc.

fine-tuning

d ´everrouiller tous lesHλ rajouter une ou

plusieurs couches backpropagation sur l’ensemble du r ´eseau

(55)

Plan

1 Introduction

2 Principes g ´en ´eraux Neurone formel Topologies

3 Apprentissage(s) Posons le probl `eme

R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches

4 Architectures profondes

Historique et Principes g ´en ´eraux Pr ´e apprentissage

R ´eseaux convolutionnels Regularisation

ImageNet

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

Mise en œuvre

(56)

Architectures profondes R ´eseaux convolutionnels

Convolutional neural networks (1)

R ´eseaux de neurones convolutionnels

R ´eseau feedforward o `u chaque neurone est uniquement connect ´e `a un sous ensemble deoneurones de la couche pr ´ec ´edente.

Les poids sont partag ´es entre les neurones,sauf les biais

# param d’une couche de taillemversn:(m+1)∗n→o+n w1

w2 w3 w1

w2

w3

w1

w2

w3

[email protected] Neural Networks : Part I 2 f ´evrier 2018 56 / 80

(57)

Convolutional neural networks (2)

R ´eseaux de neurones convolutionnels

M ´ecanisme de poids partag ´es = apprentissage de filtres qui convoluent l’image d’entr ´ee

Moins de param `etres, meilleure g ´en ´eralisation

Plut ˆot destin ´e `a traiter les images, mais pas seulement (texte, etc.) Apprentissage de filtres par backprop classique

FIGURE–Filtres d’un CNN [Krizhevsky et al.]

(58)

Architectures profondes R ´eseaux convolutionnels

Convolutional neural networks (3)

Couches convolutionnelles :

G ´en ´eralement plusieurs convolutions `a chaque ´etage

Alternance des couches de Conv et de Pooling pour concentrer l’information spatialement

Couches hautes denses (ou Full Connex.) pour ´etablir la classification ou la r ´egression

Voir aussi l’excellente anim. au milieu du cours de stanford : http://cs231n.github.io/convolutional-networks/

(59)

Convolutional neural networks (4)

Exemple de CNN : VGG16

Caract ´eristiques

16 couches : 13 couches de conv. + pooling, 3 denses

138M de param `etres dont 124M ( 90%) pour les 3 couches denses

(60)

Architectures profondes Regularisation

Plan

1 Introduction

2 Principes g ´en ´eraux Neurone formel Topologies

3 Apprentissage(s) Posons le probl `eme

R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches

4 Architectures profondes

Historique et Principes g ´en ´eraux Pr ´e apprentissage

R ´eseaux convolutionnels Regularisation

ImageNet

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

Mise en œuvre

(61)

Rectified Linear Units (ReLU)

Id ´ee : ´eviter la saturation des unit ´es pour avoir plus de Gradient

FIGURE–ReLUmax(0,x)and Softplusln(1+ex)

(62)

Architectures profondes Regularisation

Dropout (1)

Dropout [Hinton, G. et al. 2012]

Pendant l’apprentissage ; supprimer al ´eatoirement `a chaque it ´eration des connections selon une probabilit ´ep.

En d ´ecision, multiplier les poids par # actual disconnections

# iterations (6=p).

(63)

Dropout (2)

Remarques

Peut ˆetre appliqu ´e sur les entr ´ees, sur les connections ou sur les neurones

Revient `a entraˆıner de nombreux mod `eles diff ´erents et `a les combiner en d ´ecision

Bruitage du mod `ele pour mieux g ´en ´eraliser

FIGURE–Reuters dataset

[email protected] Neural Networks : Part I 2 f ´evrier 2018 63 / 80

(64)

Architectures profondes Regularisation

Batch normalization

Principe

Normaliser Les donn ´ees en entr ´ee du r ´eseauetentre chaque couche Normalisation par dimension

En app :param `etres bas ´es sur le les statistiques du batchB En test :param `etres bas ´es sur les statistiques de la base d’app compl `ete

x0 = x−µB q

σ2B+

o `ux est une seule dimension

r ´etropropagation

N ´ecessite ∂L∂x.⇒comment calculer ∂xL `a partir de ∂x∂L0?

(65)

R ´etropropagation avec batch normalization

Moyenne et variance d ´ependent de x

xi0= xi−µB(xi) q

σB2(xi) +

o `ux est une seule feature (un scalaire), eti ∈ Best un exemple.

∂J

∂xi = ∂J

∂xi0 1 q

σB2+ + 1

m ∂J

∂σB22(xi−µB) + ∂J

∂µB

∂J

∂σB2 = −1

2 σ2B+−3/2

m

X

i=1

∂J

∂xi0(xi−µB)

∂J

∂µB

= − 1

q σB2 +

m

X

i=1

∂J

∂xi0 − 1 m

∂J

∂σB2

m

X

i=1

2(xi−µB)

wheremis the number of examples inB.

(66)

Architectures profondes Regularisation

R ´egularisation de Tikhonov

Sch ´ema g ´en ´eral

Crit `ere de performance combin ´e avec une contrainte sur les solutions possibles :

J(w) =X

i

J(yi,f(xi;w)) +λ.Ω(w)

Norme L2 :Ω(wout) =P

d||wd||2

(AKA ridge regression & weight decay) Norme L1 :Ω(wout) =P

d|wd| Avec un nombre d’unit ´e infini :

L1 : boosting L2 : SVM

(67)

Plan

1 Introduction

2 Principes g ´en ´eraux Neurone formel Topologies

3 Apprentissage(s) Posons le probl `eme

R ´eseau lin ´eaire `a une couche R ´eseau non lin ´eaire `a une couche R ´eseaux multicouches

4 Architectures profondes

Historique et Principes g ´en ´eraux Pr ´e apprentissage

R ´eseaux convolutionnels Regularisation

ImageNet

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

Mise en œuvre

(68)

Architectures profondes ImageNet

La comp ´etition ImageNet [Krizhevsky 2012]

ImageNet

>14M d’images, 1000+ classes (objets, animaux, sc `enes, etc.) Images couleur 512∗512

(69)

Object classification

FIGURE–ImageNet [Krizhevsky 2012]

(70)

Architectures profondes ImageNet

Les architectures pour traiter ImageNet

VGG16, VGG19, AlexNet, GoogleNet, Inception, ResNet (L>150 !), etc.

performance : de l’ordre de qq % d’erreur en 2015 (3.52% pour resnet)

(71)

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

(72)

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

(73)

Avantages et Inconv ´enients

Avantages

Un RdN approxime des probabilit ´es `a posteriorip(Ci/x) Tr `es rapide en d ´ecision

Supporte tr `es bien les grandes dimensions (E>qq centaines) Performances : architectures profondes `a l’ ´etat de l’art sur la majorit ´e des probl `emes d’intelligence artificielle

Inconv ´enients

Param ´etrisation

Apprentissage long et parfois difficile `a contr ˆoler (minimum locaux) N ´ecessite bcp de donn ´ees

(74)

R ´eseaux de neurones dans la pratique Param ´etrisation

Param ´etrisation/choix du r ´eseau

Nombre de couches

Probl `eme ”simple”, carac disponibles : MLP avec 1 ou 2 couches Sinon : Architecture profonde : Pas de caract ´eristiques `a extraire,, mais plus d’hyperparam `etres/

Si image/vid ´eo : CNN / LSTM (Cf. prochain cours) Si s ´equence (texte, signal, etc.) : LSTM

Nombre de neurones couches cach ´ees

Classique : moyenne g ´eom ´etrique ou arithm ´etique de (E,S) Avec des deep : + difficile, premi `ere couche + grande queE

Fonction d’activation ϕ

Privil ´egier la ReLU, Softmax en derni `ere couche,tanhou sigmoide pour les RNN (Cf. prochain cours) ;

(75)

Param ´etrisation/choix du r ´eseau

R ´eglage du pas (voir cours Gradient)

pas fixe : petit ( 10−3, 10−4, 10−5, ...) pas adaptatif : diminue avec les it ´erations

line search : calcul du pas ”id ´eal” `a chaque it ´eration

M ´ethode du deuxi `eme ordre (gradient conjugu ´e), + de calculs

Choix du crit `ere J

Classification : plut ˆot cross entropy Regression : plut ˆot MSE

(76)

R ´eseaux de neurones dans la pratique Param ´etrisation

Les donn ´ees

DATA DATA DATA DATA DATA DATA DATA DATA The more, the better !

Centr ´ees r ´eduites : c’est mieux Attention aux bases non balanc ´ees M ´elanger les donn ´ees

Online/batch/mini batch App/Valid/Test

Data augmentation

Datasets publics

Rarement le dataset id ´eal pour notre probl `eme Mais peuvent ˆetre utilis ´es `a travers le transfer learning

ImageNet, Rimes, MNIST, STREET dataset (num ´eros google), OpenHart, etc.

(77)

Mise en œuvre

∃ de nombreuses librairies

La plupart sont bas ´ees sur Theano (python, Montreal, RIP)aet TensorFlow (Google)b

Keras (python)https://keras.io/

Torch7 (lua) (NEC)http://torch.ch/

pybrain (python, TUM Munich)http://pybrain.org/

Caffe (Berkeley)http://caffe.berkeleyvision.org/

a. http://deeplearning.net/software/theano/

b. https://www.tensorflow.org

Exemple de code Keras pour vgg16 :code/vgg16.py

(78)

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

...

(79)

Bibliographie

Quelques pointeurs int ´eressants pour aller plus loin :

Les cours de Yann Lecun au coll `ege de France

https://www.college-de-france.fr/site/yann-lecun/

Chaine Youtube de H. Larochelle :http://tinyurl.com/lpkvjm4 Cours tr `es p ´edagogique sur les CNN (Stanford) :

http://cs231n.github.io/convolutional-networks/

Livre de Ian Goodfellow, Yoshua Bengio and Aaron Courville : ”Deep Learning”, MIT Press

https://mitpress.mit.edu/books/deep-learning

(80)

Bibliographie

Bibliographie

F. Rosenblatt. Principles of Neurodynamics. New York : Spartan, 1962.

C.M. Bishop. Neural networks for pattern recognition, Oxford : Oxford University Press, 1995.

D.E. Rumelhart, G.E. Hinton and R.J. Williams. Learning internal representations by error propagation. Parallel Distributed Processing Explorations in the Microstructure of Cognition. MIT Press, Bradford Books, vol. 1, pp. 318-362, 1986.

S. Belharbi, C. Chatelain, R. H ´erault, S. Adam, S. Thureau, M. Chastan, and R. Modzelewski, ”Spotting L3 slice in CT scans using deep

convolutional network and transfer learning”, Computers in Biology and Medicine, vol. 87, pp. 95-103, 2017.

Soufiane Belharbi, Cl ´ement Chatelain, Romain H ´erault, S ´ebastien Adam : Input/Output Deep Architecture for Structured Output Problems.

CoRR abs/1504.07550 (2015)

Références

Documents relatifs

fd descripteur ouvert en ´ecriture buf adresse base zone m´emoire count nombre d’octets ` a ´ecrire Renvoie -1 : erreur. &gt; 0: nombre d’octets ´ecrits (6 count) 0 ssi count = 0

◮ Pour savoir si un descripteur est ´eligible, tester sa pr´esence dans la liste avec FD_ISSET. ◮ Si on boucle sur select, il faut chaque fois reconstruire

– protocole UDP pour SOCK_DGRAM – protocole TCP pour SOCK_STREAM Fermeture d’une socket : avec close.. Attachement ` a

Demande bloquante de connexion au serveur : connect Puis dialogue sur la socket avec le serveur : read et write.. Les primitives

On peut demander ` a bind un port libre par 0 : struct sockaddr_in adr;. adr.sin_port =

Principe : le client se connecte, envoie une requˆete ; le serveur envoie une r´eponse puis d´econnecte le client. 1.1 : possibilit´e de maintenir

int regexec (const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags);. preg expression compil´ee par regcomp string chaˆıne `

Cˆot´e client : ssh pour ouvrir un shell ou un tunnel sftp pour transf´erer des fichiers scp pour copier des fichiers Cˆot´e serveur : d´emon sshd. Installer sur