Réseaux de neurones artificiels - GitHub Pages

Preview:

Citation preview

Réseaux de neurones artificiels

Amin Fehri1

09/01/2017

1Centre de Morphologie MathématiqueMines ParisTech

1

Plan

Introduction

Réseaux de neurones profonds

Optimisation et régularisation

Optimisation

Régularisation

Conclusion

2

Introduction

Objectif : régression ou classification

Classification

• Imagerie médicale : malade ou pas ?

• Reconnaissance de caractères ?

Régression

• Conduite automatique : position optimale de la roue

• Kinect : où sont les membres ?

Cela est aussi valable pour des sorties structurées.

3

Objectif : régression ou classification

Classification

• Imagerie médicale : malade ou pas ?

• Reconnaissance de caractères ?

Régression

• Conduite automatique : position optimale de la roue

• Kinect : où sont les membres ?

Cela est aussi valable pour des sorties structurées.

3

Reconnaissance d’objets

4

Reconnaissance d’objets

5

Réseaux de neurones profonds

Classifieur linéaire

• Base de données : paires (X (i),Y (i)), i = 1, ...,N.• X (i) ∈ Rn, Y (i) ∈ {−1,1}• Objectif : trouver w et b tels que signe(wT X (i) + b) = Y (i).

11. Figures : N. Leroux [2015]

6

Classifieur linéaire

• Base de données : paires (X (i),Y (i)), i = 1, ...,N.• X (i) ∈ Rn, Y (i) ∈ {−1,1}• Objectif : trouver w et b tels que signe(wT X (i) + b) = Y (i).

11. Figures : N. Leroux [2015]

6

Algorithme du perceptron (Rosenblatt, 1957)

• w0 = 0,b0 = 0

• Y (i) = signe(wT X (i) + b)

• wt+1 ← wt +∑

i(Y(i) − Y (i))X (i)

• bt+1 ← bt +∑

i(Y(i) − Y (i))

Demo linéairement séparable.

7

Certaines données ne sont pas linéairement séparables

L’algorithme du perceptron ne converge pas pour des donnéesnon linéairement séparables.

8

Non convergence de l’algorithme du perceptron

Perceptron non-linéairement séparable

• On a besoin d’un algorithme qui marche à la fois sur desdonnées séparables et non séparables.

9

Erreur de classification

Un bon classifieur minimise :

`(w) =∑

i

`i

=∑

i

`(Y (i),Y (i))

=∑

i

1signe(wT X (i)+b)6=Yi

10

Importance de la convexité

a) Fonction convexe, b) Fonction non convexe mais adaptée à unproblème d’optimisation

11

Fonction de coût

• L’erreur de classification n’est pas lisse.• La sigmoïde est lisse mais pas convexe.• La perte logistique est une borne supérieure convexe.• La hinge loss ressemble beaucoup à la logistique.

12

Fonction de coût

• L’erreur de classification n’est pas lisse.• La sigmoïde est lisse mais pas convexe.• La perte logistique est une borne supérieure convexe.• La hinge loss ressemble beaucoup à la logistique.

12

Fonction de coût

• L’erreur de classification n’est pas lisse.• La sigmoïde est lisse mais pas convexe.• La perte logistique est une borne supérieure convexe.• La hinge loss ressemble beaucoup à la logistique.

12

Fonction de coût

• L’erreur de classification n’est pas lisse.• La sigmoïde est lisse mais pas convexe.• La perte logistique est une borne supérieure convexe.• La hinge loss ressemble beaucoup à la logistique.

12

Résoudre des problèmes séparables ET non séparables

• Fonction logistique non-linéairement séparable

• Fonction logistique linéairement séparable

13

Classification non linéaire

Polynôme non-linéairement séparable

14

Classification non linéaire

• Features : X1,X2 → classifieur linéaire• Features : X1,X2,X1X2,X 2

1 , ...→ classifieur non-linéaire

15

Choisir les features

• Pour que ça fonctionne, on crée de nouveaux features :

• X i1X j

2 pour (i , j) ∈ [0,4] (p = 18)

• Est-ce que ça fonctionnerait avec moins de features ?

• Test avec X i1X j

2 pour (i , j) ∈ [0,3]

Polynôme non-linéairement séparable de degré 2

16

Une vue graphique des classifieurs

f (X ) = w1X1 + w2X2 + b

17

Une vue graphique des classifieurs

f (X ) = w1X1 + w2X2 + w3X 21 + w4X 2

2 + w5X1X2 + ...

18

Features non-linéaires

• Un classifieur linéaire appliqué à des transformationsnon-linéaires est non-linéaire

• Un classifieur non-linéaire repose sur des featuresnon-linéaires

• Lesquels choisir ?

• Hj = X pj1 X qj

2

• SVM : Hj = K (X ,X (j)) avec K fonction noyau

• Est-ce que les features doivent être prédéfinis ?

• Un réseau de neurones va apprendre les Hj

19

Features non-linéaires

• Un classifieur linéaire appliqué à des transformationsnon-linéaires est non-linéaire

• Un classifieur non-linéaire repose sur des featuresnon-linéaires

• Lesquels choisir ?

• Hj = X pj1 X qj

2

• SVM : Hj = K (X ,X (j)) avec K fonction noyau

• Est-ce que les features doivent être prédéfinis ?

• Un réseau de neurones va apprendre les Hj

19

Features non-linéaires

• Un classifieur linéaire appliqué à des transformationsnon-linéaires est non-linéaire

• Un classifieur non-linéaire repose sur des featuresnon-linéaires

• Lesquels choisir ?

• Hj = X pj1 X qj

2

• SVM : Hj = K (X ,X (j)) avec K fonction noyau

• Est-ce que les features doivent être prédéfinis ?

• Un réseau de neurones va apprendre les Hj

19

Features non-linéaires

• Un classifieur linéaire appliqué à des transformationsnon-linéaires est non-linéaire

• Un classifieur non-linéaire repose sur des featuresnon-linéaires

• Lesquels choisir ?

• Hj = X pj1 X qj

2

• SVM : Hj = K (X ,X (j)) avec K fonction noyau

• Est-ce que les features doivent être prédéfinis ?

• Un réseau de neurones va apprendre les Hj

19

Features non-linéaires

• Un classifieur linéaire appliqué à des transformationsnon-linéaires est non-linéaire

• Un classifieur non-linéaire repose sur des featuresnon-linéaires

• Lesquels choisir ?

• Hj = X pj1 X qj

2

• SVM : Hj = K (X ,X (j)) avec K fonction noyau

• Est-ce que les features doivent être prédéfinis ?

• Un réseau de neurones va apprendre les Hj

19

Algorithme pour réseau de neurones

• Choisir un exemple x

• Le transformer en x = Vx avec une matrice V

• Appliquer une transformation non-linéaire g à tous leséléments de x

• Calculer wT x + b

• Calculer wT x + b = wT Vx + b = wx + b

• Calculer wT x + b = wT g(Vx) + b 6= wx + b

20

Algorithme pour réseau de neurones

• Choisir un exemple x

• Le transformer en x = Vx avec une matrice V

• Appliquer une transformation non-linéaire g à tous leséléments de x

• Calculer wT x + b

• Calculer wT x + b = wT Vx + b = wx + b

• Calculer wT x + b = wT g(Vx) + b 6= wx + b

20

Algorithme pour réseau de neurones

• Choisir un exemple x

• Le transformer en x = Vx avec une matrice V

• Appliquer une transformation non-linéaire g à tous leséléments de x

• Calculer wT x + b

• Calculer wT x + b = wT Vx + b = wx + b

• Calculer wT x + b = wT g(Vx) + b 6= wx + b

20

Algorithme pour réseau de neurones

• Choisir un exemple x

• Le transformer en x = Vx avec une matrice V

• Appliquer une transformation non-linéaire g à tous leséléments de x

• Calculer wT x + b

• Calculer wT x + b = wT Vx + b = wx + b

• Calculer wT x + b = wT g(Vx) + b 6= wx + b

20

Réseaux de neurones

• Généralement, on utiliseHj = g(vT

j X )

• Hj : Unité cachée

• vj : Poids d’entrée

• g : Fonction de transfert

21

Réseaux de neurones

• Généralement, on utiliseHj = g(vT

j X )

• Hj : Unité cachée

• vj : Poids d’entrée

• g : Fonction de transfert

21

Fonctions de transfert

f (X ) =∑

j wjHj(X ) + b =∑

j wjg(vTj X )

• g est la fonction de transfert.

• g était auparavant une sigmoïde ou tanh

• Si g est une sigmoïde, chaque unité cachée est un softclassifier.

22

Fonctions de transfert

f (X ) =∑

j wjHj(X ) + b =∑

j wjg(vTj X )

• g est la fonction de transfert.

• g est désormais souvent la partie positive.

• On appelle cela une rectified linear unit (ReLU).

23

Réseaux de neurones

f (X ) =∑

j wjHj(X ) + b =∑

j wjg(vTj X )

24

Exemple sur le problème non-séparable

Réseau de neurones non-linéairement séparable 3

25

Entraîner un réseau de neurones

f (X ) =∑

j wjg(vTj X )

f (X ) =∑

j Wg(VX )

• Base de données : paires (X (i),Y (i)), i = 1, ...,N

• Objectif : trouver V et W pour minimiser∑i `(f (X

(i)),Y (i)) =∑

i `(Wg(VX (i)),Y (i))

• On peut le faire avec une descente de gradient.

26

Entraîner un réseau de neurones

f (X ) =∑

j wjg(vTj X )

f (X ) =∑

j Wg(VX )

• Base de données : paires (X (i),Y (i)), i = 1, ...,N

• Objectif : trouver V et W pour minimiser∑i `(f (X

(i)),Y (i)) =∑

i `(Wg(VX (i)),Y (i))

• On peut le faire avec une descente de gradient.

26

Entraîner un réseau de neurones

f (X ) =∑

j wjg(vTj X )

f (X ) =∑

j Wg(VX )

• Base de données : paires (X (i),Y (i)), i = 1, ...,N

• Objectif : trouver V et W pour minimiser∑i `(f (X

(i)),Y (i)) =∑

i `(Wg(VX (i)),Y (i))

• On peut le faire avec une descente de gradient.

26

Rétropropagation du gradient - trouver W

• Objectif : trouver V et W pour minimiser∑i `(Wg(VX (i)),Y (i))

• On doit calculer le gradient de`i(W ,V ) = `(Wg(VX (i)),Y (i))

• Dérivation de fonctions composées :

∂`i(W ,V )

∂W=∂`i(W ,V )

∂f (X )

∂f (X )

∂W

=∂`i(W ,V )

∂f (X )g(VX )T

27

Rétropropagation du gradient - trouver W

• Objectif : trouver V et W pour minimiser∑i `(Wg(VX (i)),Y (i))

• On doit calculer le gradient de`i(W ,V ) = `(Wg(VX (i)),Y (i))

• Dérivation de fonctions composées :

∂`i(W ,V )

∂W=∂`i(W ,V )

∂f (X )

∂f (X )

∂W

=∂`i(W ,V )

∂f (X )g(VX )T

27

Rétropropagation du gradient - trouver W

• Objectif : trouver V et W pour minimiser∑i `(Wg(VX (i)),Y (i))

• On doit calculer le gradient de`i(W ,V ) = `(Wg(VX (i)),Y (i))

• Dérivation de fonctions composées :

∂`i(W ,V )

∂W=∂`i(W ,V )

∂f (X )

∂f (X )

∂W

=∂`i(W ,V )

∂f (X )g(VX )T

27

Rétropropagation du gradient - trouver V

• On réécrit Wg(VX ) = WH avec H = g(VX ).

• Dérivation de fonctions composées :

∂`i(W ,V )

∂V=∂`i(W ,V )

∂f (X )

∂f (X )

∂V

=∂`i(W ,V )

∂f (X )

∂f (X )

∂H∂H∂V

= W∂`i(W ,V )

∂f (X )g′(VX )X T

28

Rétropropagation du gradient - trouver V

• On réécrit Wg(VX ) = WH avec H = g(VX ).

• Dérivation de fonctions composées :

∂`i(W ,V )

∂V=∂`i(W ,V )

∂f (X )

∂f (X )

∂V

=∂`i(W ,V )

∂f (X )

∂f (X )

∂H∂H∂V

= W∂`i(W ,V )

∂f (X )g′(VX )X T

28

Trouver une bonne transformation de x

• Hj(x) = g(vTj x)

• Est-ce que ce sont les bons Hj ? Que sait-on sur cela ?

• Théoriquement, un nombre fini de Hj est suffisant(théorème d’approximation universelle).

• Cela ne veut pas dire qu’il faut l’utiliser→ le nombre de Hj

nécessaire peut être excessivement grand.

29

Trouver une bonne transformation de x

• Hj(x) = g(vTj x)

• Est-ce que ce sont les bons Hj ? Que sait-on sur cela ?

• Théoriquement, un nombre fini de Hj est suffisant(théorème d’approximation universelle).

• Cela ne veut pas dire qu’il faut l’utiliser→ le nombre de Hj

nécessaire peut être excessivement grand.

29

Trouver une bonne transformation de x

• Hj(x) = g(vTj x)

• Est-ce que ce sont les bons Hj ? Que sait-on sur cela ?

• Théoriquement, un nombre fini de Hj est suffisant(théorème d’approximation universelle).

• Cela ne veut pas dire qu’il faut l’utiliser→ le nombre de Hj

nécessaire peut être excessivement grand.

29

Approfondir le réseau

• Hj(x) = g(vTj x)

• xj = g(vTj x)

• On peut aussi transformer x

30

Approfondir le réseau

• Hj(x) = g(vTj x)

• xj = g(vTj x)

• On peut aussi transformer x

30

De 2 à 3 couches

• On peut avoir autant de couches qu’on veut.

• Mais cela rend le problème d’optimisation plus dur.

31

De 2 à 3 couches

• On peut avoir autant de couches qu’on veut.

• Mais cela rend le problème d’optimisation plus dur.

31

De 2 à 3 couches

• On peut avoir autant de couches qu’on veut.

• Mais cela rend le problème d’optimisation plus dur.

31

Optimisation et régularisation

Plan

Introduction

Réseaux de neurones profonds

Optimisation et régularisation

Optimisation

Régularisation

Conclusion

32

Nécessité d’un apprentissage rapide

• Les réseaux de neurones ont besoin de beaucoupd’exemples (quelques millions ou plus).

• On doit pouvoir les utiliser rapidement.

33

Descente de gradient : méthode batch

• Pour calculer tous les paramètres, on a besoin deparcourir toutes les données.

• Cela peut être très coûteux.

• Que se passe-t’il si on a un nombre de données infini ?

34

Descente de gradient : méthode batch

• Pour calculer tous les paramètres, on a besoin deparcourir toutes les données.

• Cela peut être très coûteux.

• Que se passe-t’il si on a un nombre de données infini ?

34

Descente de gradient : méthode batch

• Pour calculer tous les paramètres, on a besoin deparcourir toutes les données.

• Cela peut être très coûteux.

• Que se passe-t’il si on a un nombre de données infini ?

34

Que faire alors ?

1. Supprimer des données ?2. Utiliser des méthodes d’approximation.

• Mise à jour des poids = moyenne des mises à jour pourtous les points.

• Est-ce que ces mises à jour sont vraiment différentes ?• Si non, comment peut-on apprendre plus rapidement ?

35

Que faire alors ?

1. Supprimer des données ?2. Utiliser des méthodes d’approximation.

• Mise à jour des poids = moyenne des mises à jour pourtous les points.

• Est-ce que ces mises à jour sont vraiment différentes ?• Si non, comment peut-on apprendre plus rapidement ?

35

Descente de gradient stochastique

• L(θ) = 1N∑

i `(θ,X(i),Y (i))

• θt+1 → θt − αtN∑

i∂`(θ,X (i),Y (i))

∂θ

• θt+1 → θt − αt∂`(θ,X (it ),Y (it ))

∂θ

• Que perd-t’on lorsque on met à jour les paramètres poursatisfaire à un seul exemple ?

36

Descente de gradient stochastique

• L(θ) = 1N∑

i `(θ,X(i),Y (i))

• θt+1 → θt − αtN∑

i∂`(θ,X (i),Y (i))

∂θ

• θt+1 → θt − αt∂`(θ,X (it ),Y (it ))

∂θ

• Que perd-t’on lorsque on met à jour les paramètres poursatisfaire à un seul exemple ?

36

Descente de gradient stochastique

• L(θ) = 1N∑

i `(θ,X(i),Y (i))

• θt+1 → θt − αtN∑

i∂`(θ,X (i),Y (i))

∂θ

• θt+1 → θt − αt∂`(θ,X (it ),Y (it ))

∂θ

• Que perd-t’on lorsque on met à jour les paramètres poursatisfaire à un seul exemple ?

36

Batch vs stochastique

• Pour les problèmes non-convexes, le stochastique marchele mieux.

37

Comprendre la fonction de perte des réseaux profonds

• Des études récentes disent que la plupart des minimalocaux sont proches du minimum global.

38

Plan

Introduction

Réseaux de neurones profonds

Optimisation et régularisation

Optimisation

Régularisation

Conclusion

39

Régulariser les réseaux profonds

• Les réseaux profonds ont de nombreux paramètres.• Comment éviter le surrapprentissage ?

• En régularisant les paramètres ?• En limitant le nombre d’unités• Dropout

40

Dropout

• Le surrapprentissage intervient quand chaque unitédevient trop spécialisée.

• L’idée est d’empêcher chaque unité de trop s’appuyer surles autres.

• Comment ?

41

Dropout - illustration

Dropout : A Simple Way to Prevent Neural Networks fromOverfitting

42

Dropout - conclusion

• En supprimant les unités au hasard, on force les autres àêtre moins spécialisées.

• Au moment du test, on utilise toutes les unités.

• Parfois présenté comme une méthode ensembliste.

43

Autres techniques utilisées

• Local response normalization

• Data augmentation

• Batch gradient normalization

44

Conclusion

Réseaux de neurones - Résumé

• Un classifieur linéaire dans un espace de features adaptépeut modéliser des frontières non-linéaires.

• Trouver un bon espace de représentation (features space)est essentiel.

• On peut définir cet espace à la main.

• On peut apprendre cet espace en utilisant moins defeatures.

• Apprendre cet espace est potentiellement compliqué(non-convexité).

45

Conclusions

• Les réseaux de neurones sont des modèles non-linéairescomplexes.

• Les optimiser est difficile.

• Il s’agit autant de théorie que d’ingénierie.

• Lorsqu’ils sont correctement paramétrés, ils peuventdonner de très bons résultats.

46

Bibliographie

• Deep Learning book http ://www-labs.iro.umontreal.ca/bengioy/DLbook/

• Dropout : A Simple Way to Prevent Neural Networks fromOverfitting, by Srivistave et al.

• Hugo Larochelle MOOChttps ://www.youtube.com/playlist ?list=PL6Xpj9I5qXYEcOhn7TqghAJ6NAPrNmUBH

• A Neural Network Playground http ://playground.tensorflow.org/

47

Recommended