apprentissage supervisé e” (link) - agroparistech · 2018-03-22 · topologie typique flot des...
TRANSCRIPT
Apprentissage Supervisé
l Réseaux de Neurones l SVM l Aller plus loin
24/02/2016
1
Antoine CORNUÉJOLS
AgroParisTech
Équipe “Learning and INtegration of Knowledge” (LINK)
http://www.agroparistech.fr/ufr-info/membres/cornuejols/
24/02/2016 2
Plan de la journée
Rappels sur l’apprentissage supervisé
1. Les réseaux de neurones
2. Les réseaux de neurones profonds (le « deep learning »)
3. Les SVM ( Séparateurs à Vastes Marges )
Pour aller plus loin
24/02/2016 3
Historique (très limité)
Mise en évidence des neurones Camillio Golgi et Ramon Y Cajal (~ 1870) ; les synapses (dans les années 1930)
Modélisation formelle Mc Culloch & Pitt (1943) : 1er modèle du neurone formel
Hebb (1949) : règle d’apprentissage par renforcement de couplage synaptique
Premiers modèles informatiques ADALINE (Widrow-Hoff, 1960)
Perceptron (Rosenblatt, 1958-1962)
Analyse par Minsky et Papert (1969)
Nouveau connexionnisme
Hopfield (1982) : réseau bouclé
Perceptron Multi-Couche (1985)
« Reservoir computing » (2003)
Les réseaux de neurones profonds
« Spiking Neurons » networks
24/02/2016 4
Apprentissage de séparatrice non linéaire :
Les réseaux de neurones multi-couches
24/02/2016 5
Neural network application
ALVINN drives 70 mph on highways
Slide credit : T.Michell 24/02/2016 6
Neural network application
Slide credit : Andrew Ng.
24/02/2016 7
Composants et structure
d’un PMC
24/02/2016 8
Topologie typique
Flot des signaux
Entrée : xk
Couche d'entrée Couche de sortieCouche cachée
Sortie : yk
Sortie désirée : uk
Le perceptron multi-couche
24/02/2016 9
Pour chaque neurone :
wjk : poids de la connexion de la cellule j à la cellule k ak : activation de la cellule k g : fonction d’activation
g(a) = 11 + e− a
yl = g wjk φ jj= 0, d∑
⎛
⎝ ⎜
⎞
⎠ ⎟ = g(ak )
Fonction à base radiale
Fonction sigmoïde
Fonction à seuil
Fonction à rampe
Activation ai
Sortie zi
+1
+1
+1
g’(a) = g(a)(1-g(a))
Le Perceptron Multi-Couches : propagation
24/02/2016 10
Fonctions d’activation
24/02/2016 11
Exemple de réseau (simulateur JavaNNS)
24/02/2016 12
L’apprentissage
dans les Perceptrons Multi-Couches
24/02/2016 13
Calcul de poids
Entrée x1 Entrée x2 Sortie y
0 0 0
0 1 1
1 0 1
1 1 0
Calcul de la fonction XOR
x2
x1 !"!#
!$
!%
!&
!'
!( !)!*
y
�
i
wi xi
y
!!
"
"
Saurez-vous trouver les poids wi ?
24/02/2016 14
Objectif :
Algorithme (rétro-propagation de gradient) : descente de gradient
Algorithme itératif :
Cas hors-ligne (gradient total) :
où :
Cas en-ligne (gradient stochastique) :
w( t ) = w( t−1) − η∇ Ew(t )
wij (t) = wij (t −1)−η(t) 1m
∂RE (xk ,w)∂wijk=1
m
∑
wij (t) = wij (t −1)−η(t) ∂RE(xk,w)∂wij
RE(xk,w) = [tk − f (xk ,w)]2
€
w * = argminw
1m
y(xl ; w) − u(xl )[ ]2
l=1
m
∑
Le Perceptron Multi-Couches : apprentissage
24/02/2016 15
Descente de gradient
24/02/2016 16
Backprop and partial derivation
24/02/2016 17
Back-Prop • Compute!gradient!of!examplegwise!loss!wrt!
parameters!!
• Simply!applying!the!deriva8ve!chain!rule!wisely!
• If*compuKng*the*loss(example,*parameters)*is*O(n)*computaKon,*then*so*is*compuKng*the*gradient*
61!
Backprop and partial derivation
Simple chain rule
24/02/2016 18
Simple Chain Rule
62!
Backprop and partial derivation
Multiple chain rule
24/02/2016 19
Multiple Paths Chain Rule
63!
Backprop and partial derivation
Multiple chain rule generalized
24/02/2016 20
Multiple Paths Chain Rule - General
…$
64!
Backprop and partial derivation
Multiple chain rule in flow graph
24/02/2016 21
Chain Rule in Flow Graph
…$
…$
…$
Flow!graph:!any!directed!acyclic!graph!!node!=!computa8on!result!!arc!=!computa8on!dependency!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!=!successors!of!!
65!
1. Evaluation de l’erreur Ej (ou E) due à chaque connexion :
Idée : calculer l’erreur sur la connexion wji en fct de l’erreur après la cellule j
Pour les cellules de la couche de sortie :
Pour les cellules d’une couche cachée :
∂ El
∂ wij
δk = ∂ El
∂ ak = g' (ak )
∂ El
∂ yk = g' (ak ) ⋅ uk(xl) − yk( )
δ j = ∂ El
∂ aj =
∂ El
∂ ak
∂ ak∂ ajk
∑ = δ k
∂ ak∂ zj
∂ zj∂ ajk
∑ = g' (aj ) ⋅ wjk δkk∑
∂ El
∂ wij
= ∂ El
∂ aj ∂ aj∂ wij
= δ j zi
PMC : la rétro-propagation de gradient
22
ai : activation de la cellule i
zi : sortie de la cellule i
δi : erreur attachée à la cellule i
w ij ji k yk
Cellule de sortie Cellule cachée
δk
a k a j
δj w jk
zjzi
PMC : la rétro-propagation de gradient
23 Master ISI / Cours ISI-3 – Réseaux de neurones artificiels
2. Modification des poids
On suppose gradient à pas (constant ou non ): η(t)
Si apprentissage stochastique (après présentation de chaque exemple)
Si apprentissage total (après présentation de l’ensemble des exemples)
€
Δwij = η(t) δ j yi
€
Δwij = η(t) δ jn zi
n
n=1
m
∑
PMC : la rétro-propagation de gradient
24 Master ISI / Cours ISI-3 – Réseaux de neurones artificiels
j : neurone de sortie
1. Présentation d’un exemple parmi l’ensemble d’apprentissage
Séquentielle, aléatoire, en fonction d’un critère donné
2. Calcul de l’état du réseau
3. Calcul de l’erreur = fct(sortie - sortie désirée) (e.g. = (yl - ul)2)
4. Calcul des gradients
Par l’algorithme de rétro-propagation de gradient
5. Modification des poids synaptiques
6. Critère d’arrêt
Sur l’erreur. Nombre de présentation d’exemples, ...
7. Retour en 1
Le Perceptron Multi-Couches : apprentissage
24/02/2016 25
x
ai(x) = wjxj
j=1
d
∑ +w0
yi(x) = g(ai(x))
ys (x) = wjsyjj=1
k
∑ys(x)
wis
k neurones sur la couche cachée
. . .x1 x2 x3 xd
w1 w2 w3wd
yi(x)
x0
w0Biais
. . .y (x)1
Le PMC : passes avant et arrière (résumé)
24/02/2016 26
x
ys(x)
wis
. . . x 1 x 2 x 3 x d
w 1 w 2 w 3 w d
y i ( x )
x 0
w 0 B i a i s
. . . y ( x ) 1
δs = g' (as ) (us−ys )
δ j = g' (aj ) wjsδ scellules scouchesuivante
∑
wis(t +1) = wis(t) − η(t)δ sai
wei (t +1) = wei(t) − η(t )δ iae
Le PMC : passes avant et arrière (résumé)
24/02/2016 27
Efficacité en apprentissage
En O(w) pour chaque passe d’apprentissage, w = nb de poids
Il faut typiquement plusieurs centaines de passes (voir plus loin)
Il faut typiquement recommencer plusieurs dizaines de fois un apprentissage en partant
avec différentes initialisations des poids
Efficacité en reconnaissance Possibilité de temps réel
PMC : La rétro-propagation de gradient
24/02/2016 28
Illustration
24/02/2016 29
Illustration
24/02/2016 30
Illustration
24/02/2016 31
Illustration
24/02/2016 32
Questions pratiques
24/02/2016 33
Questions
• « Batch » ou « en-ligne » ?
• Réglage du pas d’apprentissage - Fixe
- Variable : méthode du moment
- Méthodes de 2ème ordre : calcul du Hessien, …
• Critère d’arrêt ?
• La « calibration » de la sortie
• Codage de la couche de sortie ?
• Quelle architecture ?
24/02/2016 34
Réglage du pas d’apprentissage
Techniques
Ajout d’un moment
Méthode de 2ème ordre Apprentissage(s) Reseau non lineaire a une couche
Reseau non lineaire a une couche (1)Introduction d’une fonction ⇥ non lineaire
On a donc Y = ⇥(WX), et les MC ne sont plus applicablesOn va appliquer une methode de descente de gradient ⇤ rappels !
Algorithme iteratif :On choisit un Wt=0 aleatoireBonne direction = celle ou le criterebaisseAvancer un peu, mais pas trop
Wt+1 ⇥ Wt � �dJ (W)
dW
����Wt
avec :W les parametres ; � : le pas ; dJ (W)
dW
���Wt
: la � bonne ⇥direction
[email protected] () Reseaux de Neurones 9 fevrier 2012 23 / 49
Apprentissage(s) Reseaux multicouches
Reseaux multicouches (6)
Remarques :On peut sommer les erreurs sur toute la base et retropropager uneseule fois :� mode Batch (plus rapide)Question du pas ... 2eme ordre ? Cf. cours gradientQuand stopper l’algorithme ? Attention au surapprentissage
[email protected] () Reseaux de Neurones 9 fevrier 2012 33 / 49
24/02/2016 35
La « calibration » de la sortie
Comment obtenir une probabilité en sortie ?
Une solution :
Utilisation d’un signal d’erreur par entropie croisée
24/02/2016 36
1 neurone de sortie
{0,1}
[0,1]
. . .x1 x2 x3 xd
w1 w2 w3wd
x0
w0Biais
. . .
Le codage de la couche de sortie
• Erreur quadratique • Probabilité [0,1] Critère entropique
24/02/2016 37
1 neurone de sortie
{0,1, …, c}
[0,1]
n (≤ c) neurones de sortie
1 neurone / classe
Code correcteur d’erreur
Exemple :
❏ Reconnaissance de caractères manuscrits
❏ Reconnaissance de locuteurs
. . .x1 x2 x3 xd
w1 w2 w3wd
yi(x)
x0
w0Biais
. . .y (x)1
x
y(x)
Le codage de la couche de sortie
24/02/2016 38
ECOC
Apprendreàdis+nguer26le1res
Codage
Sur5bits?
Sur10bits!
h1 h2 h3 h4 h5 h6 h7 h8 h9 h10
A 0 0 0 0 0 0 0 0 0 0 B 0 0 0 0 1 0 1 0 1 1 C 0 0 0 1 0 1 0 1 0 1
46
4
24/02/2016 39
ECOC
Onapprend10classifieursbinaires
Oncalculeh1(x),h2(x),h3(x),h4(x),h5(x),h6(x),h7(x),h8(x),h9(x),h10(x)
OndécodeH(x)parplusprochevoisin/aucodagedeA,B,C,…
h1 h2 h3
h4 h5 h6 h7 h8 h9 h10
A 0 0 0 0 0 0 0 0 0 0 B 0 0 0 0 1 0 1 0 1 1 C 0 0 0 1 0 1 0 1 0 1
24/02/2016 40
Critère d’arrêt
Optima locaux
Différence entre « batch » et « en-ligne »
Danger : le sur-apprentissage (« over-fitting »)
24/02/2016 41
Éviter le
Sur-apprentissage
24/02/2016 42
La régression et le sur-apprentissage
24/02/2016 43
Évaluation empirique
Le sur-apprentissage
• Courbespour1000exemples
• Etpour2000exemples?
24/02/2016 44
L’apprentissage
de représentations
24/02/2016 45
Cliquez et modifiez le titre
Analyse
Rôle des couches cachées
24/02/2016 46
Rôle de la couche cachée
24/02/2016 47
Rôle de la couche cachée
24/02/2016 48
[Le Cun et al., 1989, ...] (ATT Bell Labs : très forte équipe)
≈ 10000 exemples de chiffres manuscrits
Segmentés et redimensionnés sur matrice 16 x 16
Technique des poids partagés (“weight sharing”)
Technique du optimal brain damage
99% de reconnaissance correcte (sur l’ensemble d’apprentissage)
9% de rejet (pour reconnaissance humaine)
Application aux codes postaux (Zip codes)
24/02/2016 49
La base de données
24/02/2016 50
1234567890
Matrice 16 x 16 12 détecteursde traits (8 x 8)
12 détecteursde traits (4 x 4)
30 cellules
10 cellulesde sortie
Réseaux à convolution : Application aux codes postaux
24/02/2016 51
Exemples d’erreurs de prédiction
24/02/2016 52
Réseau connexionniste pour la reconnaissance de chiffres manuscrits
24/02/2016 53
Application aux codes postaux (Zip codes)
24/02/2016 54
1. Méthode d’induction supervisée très générale
Très grand champ d’application. Famille de modèles très souple.
Certainement pas un modèle biologique
2. Apprentissage demandant du soin
Choix de l’architecture
Apprentissage lent, sujet à minima locaux
3. « Opacité »
Difficile d’interpréter les réseaux appris
Difficile de mettre de la connaissance a priori
A retenir
24/02/2016 55
Références bibliographiques
AntoineCORNUÉJOLSetLaurentMICLETAppren<ssagear<ficiel.ConceptsetalgorithmesEyrolles,2010
G.Dreyfusetal.Appren<ssagesta<s<que.Réseauxdeneurones.Cartestopologiques.MachinesàvecteurssupportEyrolles,2008.(Malgréle+tregénéral,vraimentdédiéauxRNs)
SimonHAYKINNeuralNetworks.Acomprehensivefounda<onPren+ceHall,1999
SimonHAYKINNeuralNetworksandLearningMachinesPren+ceHall,2009.(Reallydifferentfromthe1999’sone)
24/02/2016 56