• Aucun résultat trouvé

1Réseaux de neuronesIFT 725Réseaux de neurones multicouchesParPierre-Marc JodoinSéparationlinéaire2grands advantages. Unefoisl’entraînementterminé, 1.Plus besoinde donnéesd’entraînement2.Classification esttrèsrapide(produitscalaireentre 2 vecteurs)

N/A
N/A
Protected

Academic year: 2022

Partager "1Réseaux de neuronesIFT 725Réseaux de neurones multicouchesParPierre-Marc JodoinSéparationlinéaire2grands advantages. Unefoisl’entraînementterminé, 1.Plus besoinde donnéesd’entraînement2.Classification esttrèsrapide(produitscalaireentre 2 vecteurs)"

Copied!
77
0
0

Texte intégral

(1)

Réseaux de neurones

IFT 725

Réseaux de neurones multicouches

Par Pierre-Marc Jodoin

Séparation linéaire

2 grands advantages. Une fois l’entraînement terminé, 1. Plus besoin de données d’entraînement

2. Classification est très rapide (produit scalaireentre 2 vecteurs)

x1

x2

(2D et 2 classes)

poids biais

 x 1 yw

 x 1 yw

w

  x w x

y

w

  

T

 

' '

0

2 2 1 1 0

x w

x w w

x w x w w x y

T T w

(2)

Neurone

Produit scalaire + fonction d’activation sg

x1

x2

1

w1

w2

w0

x1

x2

Perceptron

(2D et 2 classes)

Fonction de coût perceptron (loss) et gradient

x

wT yw x sign

 

wTx1,1

 x 1 yw

 x 1 yw

w

 

  

M x

n n D

M x

T n D

n n

x t w

E

x w t w

E

Mest l'ensembledesdonnéesmalclassées

Neurone

Produit scalaire + fonction d’activation sg

x1

x2

1

w1

w2

w0

x1

x2 wTx

Hinge Loss

(2D et 2 classes)

Fonction de coût SVM (hinge loss) et gradient

Fonction de coût SVM (hinge loss) et gradient

 x sign

 

wTx1,1

yw

 x 1 yw

 x 1 yw

w

   

  

M x

n n D

N

n

T n D

n

x t w

E

x w t w

E

1

1 , 0 max

(3)

Régression logistique

(2D, 2 classes)

Nouvelle fonction d’activation : sigmoïde logistique

Neurone

1

w1

w2

w0

x1

x2

x1

x2 yw(x)0.5

  t

t e

1

1

 

 

 

1

ln 1 ln 1

N

D n W n n W n

n

E W t y x t y x

 

 

  

 

1 N

D W n n n

n

E W y x t x

Fonction de coût (loss) et gradient x

wT yw x

 

wTx [0,1]

 

x 1 yw

 

x 1

yw

w

Perceptron Multiclasse

( )

T

y x

W

  W x 

(2D et 3 classes)

 

 

 

 

2 1 2 , 2 1 , 2 0 , 2

2 , 1 1 , 1 0 , 1

2 , 0 1 , 0 0 ,

0

1

) (

x x w w

w

w w

w

w w

w x

y

W

x2

1 1 ,

w0

2 ,

w0

0 ,

w0 1 ,

w1

2 ,

w1

0 ,

w1 1 ,

w2

2 ,

w2

0 ,

w2

 x yWi i

max ,

arg x1

0

W x T

max est )

0(

, x

yW

max est )

2(

, x

yW

max est )

1(

, x

yW

1

W x T

2

W x T

(4)

max est )

0(

, x

yW

max est )

2(

, x

yW

max est )

1(

, x

yW

Perceptron Multiclasse

Exemple

 

 

 

 

 

2 1 . 1

1 9 . 4 4

6

1 . 4 4 . 2 4

5 . 0 6 . 3 2 )

( x

y

W

Classe 0

Classe 1

(1.1, -2.0)

 

 

 2 . 8

6 . 9

9 . 6

Classe 2

Perceptron Multiclasse

Fonction de coût (Perceptron loss – One-VS-One)

  

n

n

T T

D j n t n

x M

E W W x W x

Somme sur l’ensemble des données mal classées

Score de la classe faussement prédite par le modèle

Score de la bonne classe

n t

n j

W x x E

W E

n

 

   

 

(5)

 

 

 

 

 

1 4 . 0

1 9 . 4 4

6

1 . 4 4 . 2 4

5 . 0 6 . 3 2 )

( x

y

W

Classe 0

Classe 1 Classe 2

Perceptron Multiclasse

Exemple d’entraînement (h=1)

FAUX!

0 . 4 , 1, 0

n

n

t

x 

 

 

 5 . 0

1 . 7

6 . 1

9

0 . 4 , 1 . 0, 0

n

n

t

x 

x

n

w w 

0

 

0

 

 

 

 

 

 

 



5 . 0

0 . 4

0 . 1 1

4 . 0

1 5

. 0

6 . 3

0 . 2

 

 

 

 

 

 

9 . 3

6 . 3

0 . 7 1

4 . 0

1 9

. 4

0 . 4

0 . 6 x

n

w w 

2

 

2

 

Perceptron Multiclasse

Exemple d’entraînement (h=1)

10

(6)

Descente de gradient stochastique (version naïve, batch_size = 1) Initialiser W

k=0, i=0 DO k=k+1

FOR n = 1 to N

IF THEN /* donnée mal classée*/

UNTIL toutes les données sont bien classées.

n t t

n j j

x w w

x w w

n n

h h

W max arg Txn

j

ti

j

Perceptron Multiclasse

(One-VS-One)

Perceptron Multiclasse

Fonction de coût (Perceptron loss – One-VS-All)

Somme sur l’ensemble des données mal classées

Score d’une classe

Score de la bonne classe

     

M

x j t

n T t n T j D

n n

nx W x W W

E

 

  , 0 max

Somme sur l’ensemble des classes autre que la cible

(7)

Perceptron Multiclasse

Fonction de coût (Perceptron loss – One-VS-All)

     

M

x j t

n T t n T j D

n n

nx W x W W

E

 

  , 0 max

ZÉROpour chaque classe dont le score est inférieur au score de la bonne classe

Perceptron Multiclasse

Fonction de coût (Perceptron loss – One-VS-All)

     

M

x j t

n T t n T j D

n n

nx W x W W

E

 

  , 0 max

 

 

n

T n tn T n i n

T n tn T n j

t i

x n W x W t

x n W x W j

W x E W x

E

 

 

0 1

0 1

1 1

sinon 0

0

si 1

11 0

n T t n T j x

W x W

x W x

W n

n T tn n T j

Où 1 est une fonction binaire:

(8)

Descente de gradient stochastique (version naïve, batch_size = 1) Initialiser W

k=0, i=0 DO k=k+1

FOR n = 1 to N

FOR j=1 to NB_CLASSES THEN IF AND THEN

UNTIL toutes les données sont bien classées.

n t t

n j j

x w w

x w w

n n

h h

tn

j

Perceptron Multiclasse

(One-VS-All)

T 1

T n j n

t x W x

Wn

Au TP1, implanter la version naïve + la version vectorisée sans boucles for

Hinge Multiclasse

Fonction de coût (Hinge loss - One-VS-one)

Score de la classe faussement prédite par le modèle

Score de la bonne classe Somme sur l’ensemble des

données

 

n

n T t n T y

D W W x W x

E n

 

  1 , 0 max

n t

n j

W x x E

W E

n

 

   

 

TP1

(9)

Hinge Multiclasse

Fonction de coût (Hinge loss - One-VS-All)

     

n j t

n T t n T j D

n

nx W x W W

E    

1 , 0 max

Somme sur l’ensemble des

données Score de la bonne classe

Somme sur l’ensemble des classes autre que la cible

Score d’une classe

Hinge Multiclasse

sinon 0

et 1 si

sinon 0

1 si

T T

T T

n n

j n t n x W

n j n t n x W

t j x W x W E x

x W x W E x

n n

j

n n n

t

Fonction de coût (Hinge lossouSVM loss)

     

n j t

n T t n T j D

n

nx W x W W

E    

1 , 0 max

(10)

Descente de gradient stochastique (version naïve, batch_size = 1) Initialiser W

k=0, i=0 DO k=k+1

FOR n = 1 to N

IF THEN /* donnée mal classée*/

UNTIL toutes les données sont bien classées.

n t t

n j j

x w w

x w w

n n

h h

W max arg Txn

j

ti

j

Hinge Multiclasse

(One-VS-One)

Au TP1, implanter la version naïve + la version vectorisée sans boucles for

Softmax exp

norm

exp exp

0T

0 2 T

0

( )

j W x

W W x

j

y x e

e

 

  0

W x T

1

W x T

2

W x T

Régression logistique multiclasse

1T

1 2 T

0

( )

j W x

W W x

j

y x e

e

 

  2T

2 2 T

0

( )

j W x

W W x

j

y x e

e

 

 

x2

1 1 ,

w0

2 ,

w0

0 ,

w0 1 ,

w1

2 ,

w1

0 ,

w1 1 ,

w2

2 ,

w2

0 ,

w2

x1

(11)

Softmax exp

norm

exp exp

c W x

P

,

0|

c W x

P

,

1|

c W x

P

,

2|

x2

1 1 ,

w0

2 ,

w0

0 ,

w0 1 ,

w1

2 ,

w1

0 ,

w1 1 ,

w2

2 ,

w2

0 ,

w2

x1

0

W x T

1

W x T

2

W x T

Régression logistique multiclasse

0T

0 2 T

0

( )

j W x

W W x

j

y x e

e

 

 

1T

1 2 T

0

( )

j W x

W W x

j

y x e

e

 

  2T

2 2 T

0

( )

j W x

W W x

j

y x e

e

 

 

 

 

 

 

 

 

 

 

 

0000000001

t truck' '

0000000010 t

ship' '

0000000100 t

horse' '

0000001000 t

frog' '

0000010000 t

dog' '

0000100000 t

deer' '

0001000000 t

cat' '

0010000000 t

bird' '

0100000000 t

' automobile '

1000000000 t

airplane' '

Étiquettes de classe : one-hot vector

Régression logistique multiclasse

(12)

Régression logistique multiclasse

     

1

W 1

N

D n W n kn

n

E x y x t

N

  

   

1 1

W ln

k

N K

D kn W n

n k

E t y x

  

Fonction de coût est uneentropie croisée(cross entropy loss)

Tous les détails du gradient de l’entropie croisée :

info.usherbrooke.ca/pmjodoin/cours/ift603/softmax_grad.html Au tp1: implanter une version naïve avec des boucles for

et une version vectorisée SANS bouble for.

(13)

15 22 , 2

44 56

x t

2.15

exp norm

1.24

(Softmax)

Hinge loss One-VS-All

Entropie croisée Score

Score

W

x 

56 44 22

15 1

03 . 0 2 . 0 45 . 0 0 . 0 3 . 0

16 . 0 05 . 0 2 . 0 7 . 0 2 . 0

05 . 0 1 . 0 05 . 0 01 . 0 7 . 2



28 . 0

86 . 0

15 . 0



28 . 0

86 . 0

15 . 0

 

 

0,0.57max0,1.58

max

1 28 . 0 86 . 0 , 0 max

1 28 . 0 15 . 0 , 0 max

32 . 1

36 . 2

86 . 0

29 . 0

52 . 0

19 .

0  

29 . 0 ln

15 22 , 2

44 56

x t

1.58

exp norm

1.24

(Softmax)

Hinge loss One-VS-One

Entropie croisée Score

Score

W

x 

56 44 22

15 1

03 . 0 2 . 0 45 . 0 0 . 0 3 . 0

16 . 0 05 . 0 2 . 0 7 . 0 2 . 0

05 . 0 1 . 0 05 . 0 01 . 0 7 . 2



28 . 0

86 . 0

15 . 0



28 . 0

86 . 0

15 . 0

 

0,1.58

max

1 28 . 0 86 . 0 , 0 max

32 . 1

36 . 2

86 . 0

29 . 0

52 . 0

19 .

0  

29 . 0 ln

(14)

 

min

arg E

D

W

W

Fonction de perte

Régularisation

Constante

  W W ou W

1 2

R 

En général L1 ou L2

 

 R W

Maximum a posteriori

Régularisation

Optimisation

k E

k

k1][ ][ ]

[ w

w

h

Gradient de la function de coût Taux d’apprentissage ou “learning rate”.

Descente de gradient

Optimisation par Batch Initialiser w

k=0 FAIRE k=k+1

JUSQU’À ce que toutes les données sont bien classées ou k==MAX_ITER

 

i i k] Ex h[

w w Descente de gradient stochastique

Initialiser w k=0 FAIRE k=k+1

FOR n = 1 to N

JUSQU’À ce que toutes les données soient bien classées ou k==MAX_ITER

 n kEx

w h[] w

k

k] cst/

[

h

Parfois

(15)

Maintenant, rendons le réseau profond

2D, 2Classes, Régression logistique linéaire

30

x1 1

w2

w1

w0

x2

Couche d’entrée (3 « neurones »)

Couche de sortie (1 neurone avec sigmoïde) x

wT yw x

 

wTxR

(16)

2D, 2Classes, Réseau à 1 couche cachée

Maintenant, ajoutons arbitrairement 3 neurones

x2

1 1 ,

w0

2 ,

w0

0 ,

w0 1 ,

w1

2 ,

w1

0 ,

w1 1 ,

w2

2 ,

w2

0 ,

w2

x1

Couche d’entrée (3 « neurones »)

1èrecouche (3 neurones)

 

w0TxR

 

wTxR

1

 

w2TxR

x

wT

0

x wT

2

x wT

1

2D, 2Classes, Réseau à 1 couche cachée

Puisque les poids sont entre la couche d’entrée et la première couche on va les identifier à l’aide de l’indice [0]

x2

1

x1

] 0 [

2 ,

w0

] 0 [

2 ,

w2 ] 0 [

2 ,

w1 ] 0 [

0 ,

w0

] 0 [

0 ,

w2 ] 0 [

0 ,

w1 ] 0 [

1 ,

w0

] 0 [

1 ,

w2 ] 0 [

1 ,

w1

Couche d’entrée (3 « neurones »)

1èrecouche (3 neurones)

x w[0]T

0

x w[0]T

2

x w[0]T

1

w[00]Tx

R

w[20]Tx

R

w1[0]Tx

R

(17)

x2

1

x1

] 0 [

2 ,

w0

] 0 [

2 ,

w2 ] 0 [

2 ,

w1 ] 0 [

0 ,

w0

] 0 [

0 ,

w2 ] 0 [

0 ,

w1 ] 0 [

1 ,

w0

] 0 [

1 ,

w2 ] 0 [

1 ,

w1

NOTE: à la sortie de la première couche, on a 3 réelscalculés ainsi

[0] [0] [0]

0,0 0,1 0,2 0

[0] [0] [0]

1,0 1,1 1,2 1

[0] [0] [0]

2,0 2,1 2,2

1

w w w x

w w w x

w w w

     

     

     

         

 

2D, 2Classes, Réseau à 1 couche cachée

w[00]Tx

R

w[20]Tx

R

w1[0]Tx

R

x w[0]T

0

x w[0]T

2

x w[0]T

1

x2

1

x1

] 0 [

2 ,

w0

] 0 [

2 ,

w2 ] 0 [

2 ,

w1 ] 0 [

0 ,

w0

] 0 [

0 ,

w2 ] 0 [

0 ,

w1 ] 0 [

1 ,

w0

] 0 [

1 ,

w2 ] 0 [

1 ,

w1

NOTE: représentation plus simple de la sortie de la 1èrecouche (3 réels)

W x [0]

2D, 2Classes, Réseau à 1 couche cachée

w[00]Tx

R

w[20]Tx

R

w1[0]Tx

R

x w[0]T

0

x w[0]T

2

x w[0]T

1

(18)

x2

1

x1

] 0 [

2 ,

w0

] 0 [

2 ,

w2 ] 0 [

2 ,

w1 ] 0 [

0 ,

w0

] 0 [

0 ,

w2 ] 0 [

0 ,

w1 ] 0 [

1 ,

w0

] 0 [

1 ,

w2 ] 0 [

1 ,

w1

Si on veut effectuer une classification 2 classes via une régression logistique(donc une fonction coût par « entropie croisée ») on doit ajouterun neurone de sortie.

] 1 [

w0 ] 1 [

w1 ] 1 [

w2

[1]T [0]

W W x

Couche d’entrée (3 « neurones »)

1èrecouche cachée (3 neurones)

Couche de sortie (1 neurone)

2D, 2Classes, Réseau à 1 couche cachée

x w[0]T

0

x w[0]T

2

x w[0]T

1 yW x

w[1]T

W[0]x

 

R

x2

1

x1

] 0 [

2 ,

w0

] 0 [

2 ,

w2 ] 0 [

2 ,

w1 ] 0 [

0 ,

w0

] 0 [

0 ,

w2 ] 0 [

0 ,

w1 ] 0 [

1 ,

w0

] 0 [

1 ,

w2 ] 0 [

1 ,

w1

] 1 [

w0 ] 1 [

w1 ] 1 [

w2

[1]T [0]

W W x

x1 1

x0

Allègement visuel

2D, 2Classes, Réseau à 1 couche cachée

W[0]

x w[0]T

0

x w[0]T

2

x w[0]T

1 yW x

w[1]T

W[0]x

 

R

 x

w

W x

 

R

yW [1]T [0]

] 1

w[

Références

Documents relatifs

On peut faire la même chose mais en linéarisant le filtre et en « matriçant » l’entrée. Exercice à la maison, voir comment cette 2 e approche s’applique au

Bloc de 4 couches convolutionnelles denses avec 3 filtres chaque (fonctions d’activation omises pour alléger la figure)..

Girshick et al, “Rich feature hierarchies for accurate object detection and semantic segmentation”, CVPR 2014 72. R-CNN [Girshick et

“Show, Attend, and Tell: Neural Image Caption Generation with Visual Attention”, ICML 2015.. Kelvin Xu, Jimmy Lei Ba, Jamie Kiros, Kyunghyun Cho, Aaron Courville, Ruslan

“Show, Attend, and Tell: Neural Image Caption Generation with Visual Attention”, ICML 2015.. Kelvin Xu, Jimmy Lei Ba, Jamie Kiros, Kyunghyun Cho, Aaron Courville, Ruslan

A Style-Based Generator Architecture for Generative Adversarial Networks, CVPR 2019.

A Style-Based Generator Architecture for Generative Adversarial Networks, CVPR 2019.

Grâce à une équipe de recherches de grande classe, où plus de dix années Lucien Vantroys joua un rôle essentiel, les problèmes ont été peu à peu énumérés, puis étudiés,