Upload
others
View
8
Download
0
Embed Size (px)
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