Algorithms
Algorithms
Stephan Clémençon,
[Link]@[Link]
Sommaire
2/1
Introduction
Intervenants
3/1
Introduction
Algorithmes de Classification
Moyennes locales, arbres de classification
Perceptron, SVM et réseaux de neurones
Méthodes ensemblistes : bagging, boosting et forêts
aléatoires
Classification multi-classe
Algorithmes de Régression
Adapter les algorithmes de classification à la régression
(arbres de régression, etc.)
Autres Problèmes Supervisés
Régression ordinale, ranking
4/1
Introduction
Y = label/étiquette dans Y ⊂ R
Fonction de perte : ` : Y × Y → R+
Sommaire
6/1
Classification binaire
Classification binaire
`(y , z) = I{y 6= z}
Risque d’erreur :
L(g ) = P{Y 6= g (X )}
7/1
Approches Paramétriques
-
Rappels
Régression logistique
Modélisation explicite de
η(x) = P(Y = +1 | X = x) ∈]0, 1[
η(x)
Transformée logistique : f (x) = logit η(x) = log( 1−η(x) )
e f (x)
Transformée inverse : η(x) = 1+e f (x)
p 1
log( ) − (µ+ − µ− )t Γ−1 (µ+ − µ− ) + x t Γ−1 (µ+ − µ− ) > 0
1−p 2
w w yx
( )←( ) + ρ( i i )
θ θ yi
Sommaire
17/1
Approches Non
Paramétriques
-
Moyennes Locales et
Arbres de Classification
Une méthode nonparamétrique simple :
les K -plus proches voisins
{xσ(1) , . . . , xσ(K ) }
L(CK −NN ) − L∗ → 0, as n → ∞
Mais...
La vitesse est arbitrairement lente
Si
Pn
= +1}Kh (x − Xi ) > ni=1 I{Yi = −1}Kh (x − Xi ),
P
i=1 I{Yi
prédire Y = +1. Prédire Y = −1 sinon.
η (x)} − 1,
Cette règle correspond au classifieur ”plug-in” 2I{e
où Pn
I{Yi = +1}Kh (x − Xi )
ηe(x) = i=1 Pn
i=1 Kh (x − Xi )
est l’estimateur de Nadaraya-Watson estimator de la
probabilité a posteriori.
Argument statistique : Si η est une fonction ”régulière”, ηe
peut être un meilleur estimateur que ηb (de plus faible variance
mais... biaisé)
Arbres de classification : l’algorithme CART
et ȲR = −1 sinon
C0,0
X2 C1,0
X1
”Faire pousser l’arbre”
Mesures d’impureté :
erreur de classification
indice de Gini
entropie
Arbres de classification : l’algorithme CART
Arbres de classification : l’algorithme CART
Interprétabilité, visualisation
Variables qualitatives
Données incomplètes
Randomisation
Scissions diagonales
Asymétrisation de l’erreur/impureté
Variables qualitatives
Données incomplètes
Randomisation
Scissions diagonales
Asymétrisation de l’erreur/impureté
Sommaire
33/1
Ensemble Learning
–
Bagging, Boosting et
Forêts Aléatoires
En bref
En classification :
L’agrégation bootstrap d’un bon classifieur l’améliore,
mais ...
celle d’un mauvais classifieur peut le détériorer encore !
Boosting
AdaBoost - Freund & Schapire (1995)
L’ingrédient pour un ”apprentissage lent”, résistant au
surapprentissage : une méthode de classification ”faible”
L
Heuristique :
appliquer L à des versions pondérées de l’échantillon original
accroı̂tre le poids des observations mal classées par la règle
prédictive courante
agréger les classifieurs de façon non uniforme
(un bon prédicteur ne devrait pas être construit à partir de
quelques données aberrantes)
C2(X)
Weighted
sample
C3(X)
Weighted
sample
…
tirer
P un échantillon d’apprentissage avec la distribution
i ωi δ(Xi ,Yi )
Le (f ) = E[exp(−Yf (X ))]
Solution optimale :
∗ 1 η(X )
f (X ) = log
2 1 − η(X )
Forward stagewise additive modelling
Heuristique : raffiner la règle prédictive courante fm−1 (x) en
ajoutant αm Cm (x), avec αm ∈ R et Cm (x) ∈ {−1, +1}
Comment choisir αm et Cm (x) de façon à minimiser le risque
empirique exponentiel ?
Xn
arg min exp (−Yi (fm−1 (Xi ) + αC (Xi ))) =?
α, C i=1
e α errm + e −α (1 − errm ),
Sommaire
49/1
Machines à Vecteurs Supports (SVM)
Séparateur linéaire
Définition
Soit x ∈ Rp
f (x) = signe(wT x + b)
L’équation : wT x + b = 0 définit un hyperplan dans l’espace
euclidien Rp
50/1
Machines à Vecteurs Supports (SVM)
51/1
Machines à Vecteurs Supports (SVM)
Critère de marge
52/1
Machines à Vecteurs Supports (SVM)
Critère de marge
53/1
Machines à Vecteurs Supports (SVM)
Comment déterminer w et b ?
Maximiser la marge ρ(w) tout en séparant les données de part
et d’autre de H1 et H−1
Séparer les données bleues (yi = 1) : wT xi + b ≥ 1
Séparer les données rouges (yi = −1) : wT xi + b ≤ −1
54/1
Machines à Vecteurs Supports (SVM)
Référence
Boser, B. E. ; Guyon, I. M. ; Vapnik, V. N. (1992). ”A training
algorithm for optimal margin classifiers”. Proceedings of the fifth
annual workshop on Computational learning theory - COLT ’92. p.
144.
55/1
Machines à Vecteurs Supports (SVM)
56/1
Machines à Vecteurs Supports (SVM)
Problème du type :
minx f (x)
s.c. g (x) ≤ 0
Ici, g (x) linéaire
f strictement convexe
57/1
Machines à Vecteurs Supports (SVM)
Lagrangien
1 X
L(w, b, α) = ||w||2 + αi (1 − yi (wT xi + b))
2
i
∀i, αi ≥ 0
58/1
Machines à Vecteurs Supports (SVM)
Conditions de Karush-Kunh-Tucker
En l’extremum, on a
n
X
∇w L(w) = w − αi yi xi = 0
i=1
Xn
∇b L(b) = − αi yi = 0
i=1
∀i, αi ≥ 0
T
∀i, αi [1 − yi (w xi + b)] = 0
59/1
Machines à Vecteurs Supports (SVM)
X 1X
L(α) = αi − αi αj yi yj (xT
i xj )
2
i i,j
Maximiser
P L sous les contraintes αi ≥ 0 et
i αi yi = 0, ∀i = 1, . . . , n
Faire appel à un solveur quadratique
60/1
Machines à Vecteurs Supports (SVM)
61/1
Machines à Vecteurs Supports (SVM)
Vecteurs ”supports”
62/1
Machines à Vecteurs Supports (SVM)
63/1
Machines à Vecteurs Supports (SVM)
64/1
Machines à Vecteurs Supports (SVM)
65/1
Machines à Vecteurs Supports (SVM)
66/1
Machines à Vecteurs Supports (SVM)
67/1
Machines à Vecteurs Supports (SVM)
Quelques remarques
certaines données support peuvent donc être de l’autre côté
des hyperplans H1 ou H−1
C est un hyperparamètre qui contrôle le compromis entre la
complexité du modèle et le nombre d’erreurs de classification
du modèle.
68/1
Machines à Vecteurs Supports (SVM)
69/1
Machines à Vecteurs Supports (SVM)
70/1
Machines à Vecteurs Supports (SVM)
Remarque
71/1
Machines à Vecteurs Supports (SVM)
Remarque 1 : apprentissage
72/1
Machines à Vecteurs Supports (SVM)
Astuce du noyau
73/1
Machines à Vecteurs Supports (SVM)
74/1
Machines à Vecteurs Supports (SVM)
75/1
Machines à Vecteurs Supports (SVM)
Pn FonctionT
h du type
P:n
h(x) = i=1 βi ϕ(x) ϕ(xi ) = i=1 βi k(x, xi ),
avec k : X × X → R un noyau positif défini.
75/1
Machines à Vecteurs Supports (SVM)
Noyaux
Définition
Soit X un ensemble. Soit k :X × X → R, une fonction symétrique.
La fonction k est appelée noyau positif défini si et seulement si
quel que soit le sous-ensemble fini {x1 , . . . , xm } de X et le vecteur
colonne cP de Rm ,
c Kc = m
T
i,j=1 ci cj k(xi , xj ) ≥ 0
76/1
Machines à Vecteurs Supports (SVM)
Théorème de Moore-Aronzajn
Théorème de Moore-Aronzajn
Soit K un noyau positif défini. Alors, il existe un unique espace de
Hilbert F pour lequel k est un noyau reproduisant :
∀x ∈ X , hf (·), k(·, x)iF = f (x)
On a en particulier : hk(·, x), k(·, x 0 )iF = k(x, x 0 )
77/1
Machines à Vecteurs Supports (SVM)
Théorème de Moore-Aronzajn
Théorème de Moore-Aronzajn
Soit K un noyau positif défini. Alors, il existe un unique espace de
Hilbert F pour lequel k est un noyau reproduisant :
∀x ∈ X , hf (·), k(·, x)iF = f (x)
On a en particulier : hk(·, x), k(·, x 0 )iF = k(x, x 0 )
NB :Cela veut dire qu’on peut toujours choisir ϕ(x) = k(·, x)
Important : un noyau peut admettre plusieurs fonctions de
caractérisques et espaces correspondants mais un seul est RKHS
(espace de Hilbert à noyau reproduisant).
77/1
Machines à Vecteurs Supports (SVM)
Noyaux
78/1
Machines à Vecteurs Supports (SVM)
79/1
Machines à Vecteurs Supports (SVM)
80/1
Machines à Vecteurs Supports (SVM)
Astuce du noyau
On remarque que ϕ(x1 )T ϕ(x0 ) peut se calculer sans travailler dans
R3
Je peux définir k(x, x0 ) = ϕ(x)T ϕ(x0 ) = (xT x0 )2
81/1
Machines à Vecteurs Supports (SVM)
82/1
Machines à Vecteurs Supports (SVM)
Régression
83/1
Machines à Vecteurs Supports (SVM)
Régression
84/1
Machines à Vecteurs Supports (SVM)
85/1
Machines à Vecteurs Supports (SVM)
s.c.
∀i = 1, . . . n, yi − f (xi ) ≤ ε + ξi
∀i = 1, . . . n, f (xi ) − yi ≤ ε + ξi∗
∀i = 1, ξi ≥ 0, ξi∗ ≥ 0
avec f (x) = w T ϕ(x) + b
Cas général : ϕ feature map associée à un noyau défini positif k.
86/1
Machines à Vecteurs Supports (SVM)
∗ ∗ ∗
P P
min
P α,α
∗
i,j (αi − αi )(αj − αj )k(xi , xj ) + ε i (αi + αi ) −
∗
i (αi − αi )
i yP
s.c. Pi (αi − αi∗ ) = 0 et 0 ≤ αi ≤ C et 0 ≤ αi∗ ≤ C
w = ni=1 (αi − αi∗ )ϕ(xi )
Solution
n
X
f (x) = (αi − αi∗ )k(xi , x) + b
i=1
87/1
Machines à Vecteurs Supports (SVM)
88/1
Réseaux de neurones
Sommaire
89/1
Réseaux de neurones
Neurone
92/1
Réseaux de neurones
93/1
Réseaux de neurones
94/1
Réseaux de neurones
95/1
Réseaux de neurones
Agenda
96/1
Réseaux de neurones
97/1
Réseaux de neurones
par exemple :
98/1
Réseaux de neurones
99/1
Réseaux de neurones
Φ(x)1 = AND(x¯1 , x2 )
Φ(x)2 = AND(x1 , x¯2 )
Maintenant, calculer :
f (x) = g (Φ(x)T w + b)
100/1
Réseaux de neurones
Approximateur universel
101/1
Réseaux de neurones
Approximateur universel
101/1
Réseaux de neurones
M
(2)
X
hMLP (x) = wj zj (12)
j=0
zj = tanh(aj ) (13)
p
(1)
X
aj = wji xi (14)
i=0
102/1
Réseaux de neurones
e a − e −a
h(a) = tanh(a) = (15)
e a + e −a
h0 (a) = 1 − h(a)2 (16)
103/1
Réseaux de neurones
104/1
Réseaux de neurones
M
(2)
X
hc (x) = g ( wjc zj ) (17)
j=0
zj = g (aj ) (18)
p
(1)
X
aj = wji xi (19)
i=0
1
avec g (t) = 1+exp(−1/2t) .
105/1
Réseaux de neurones
N
X
L(W ; S) = `(h(xn ), yn ))
n=1
Régression :
`(h(xn ), yn ) = (h(xn ) − yn )2
Classification (maximiser la vraisemblance) : On interprète
fc (x) = p(y = c|x) (plusieurs sorties : on peut utiliser la fonction
softmax )
`(h(x), y ) = − log fy (x)
Importante remarque : L est non convexe et possède de nombreux
minima locaux
Le mieux que nous puissions faire, c’est trouver un bon
minimum local
C’est principalement pour cette raison que les MLP ont été
pendant longtemps abandonés en faveur des SVM/SVR plus
106/1 faciles à optimiser
Réseaux de neurones
Algorithme d’optimisation
La rétropropagation du gradient
L’idée est d’appliquer un algorithme de descente du gradient :
on rétropropage une erreur à travers chacune des couches, en
débutant par la dernière couche,
On utilise la règle de dérivation en chaı̂ne :
∂L(W ) ∂L(W ) ∂aj
(1) = ∂aj (1) pour pouvoir corriger les poids de la
∂wji ∂wji
couche cachée.
Une fois toutes les corrections calculées, on met à jour les
poids du réseau.
L’algorithme peut s’appliquer globalement ou localement
(nous allons voir ce que cela signifie)
107/1
Réseaux de neurones
La rétropropagation du gradient
Références :
Y. LeCun : Une procédure d’apprentissage pour réseau à seuil
asymmétrique (a Learning Scheme for Asymmetric Threshold
Networks), Proceedings of Cognitiva 85, 599-604, Paris, France,
1985.
Rumelhart, D. E., Hinton, G. E., and Williams, R. J. (1986)
Learning representations by back-propagating errors. Nature, 323,
533–536.
108/1
Réseaux de neurones
109/1
Réseaux de neurones
PN
C(θ) = n=1 cn (θ)
1 E = 1000 ;
2 ε= petite valeur
3 θ0 valeur initiale ; t = 0 ;
4 Tant que (E > ε)
PN ∂cn (θ t )
θt+1 ← θt − ηt n=1 ∂θ t
calculer E = L(θt+1 )
5 Fournir θ courant
110/1
Réseaux de neurones
Choix de ηk
Théorème P :
Si la série ( k ηk ) diverge et si ( k ηk2 ) converge alors
P
l’algorithme de gradient converge vers un minimum local.
111/1
Réseaux de neurones
PN
C(θ) = n=1 cn (θ)
1 E = 1000 ;
2 ε= petite valeur
3 θ0 valeur initiale ; t = 0 ;
4 nbcycle = 0
5 Tant que (E ≥ ε) et (nbcycle < 500)
nbcycle = nbcycle + 1
pour ` = 1 à N
Tirer uniformément un indice n ∈ {1, . . . , N}
t
θt+1 ← θt − ηt ∂c∂θ
n (θ )
t
calculer E = L(θt+1 )
112/1
Réseaux de neurones
PN
C(θ) = n=1 cn (θ)
1 E = 1000 ;
2 ε= petite valeur
3 θ0 valeur initiale ; t = 0 ;
4 nbcycle = 0
5 Tant que (E ≥ ε) et (nbcycle < 500)
nbcycle = nbcycle + 1
Tirer uniformément M fois un indice n ∈ {1, . . . , N}
t
θt+1 ← θt − ηt ∂c∂θ
M (θ )
t
calculer E = L(θt+1 )
113/1
Réseaux de neurones
∂` ∂` ∂h(x)
(2)
= (20)
∂wj ∂h(x) ∂w (2)
j
∂` ∂` ∂h(x)
(1)
= (21)
∂wji ∂h(x) ∂w (1)
ji
114/1
Réseaux de neurones
∂` ∂` ∂h(x)
(2)
= (22)
∂wj ∂h(x) ∂w (2)
j
∂`
= h(x) − y (23)
∂h(x)
(2) P (2)
∂h(x) ∂g (wj zj + k6=j wk zk )
(2)
= (2)
(24)
∂wj ∂wj
(25)
115/1
Réseaux de neurones
∂` ∂` ∂h(x)
(1)
= (26)
∂wji ∂h(x) ∂w (1)
ji
P
∂h(x) (2) ∂g ( k wjk xk )
(1)
= wj (1)
(27)
∂wji ∂wji
∂h(x) X (2)
(1)
= (1 − g ( wjk xk )2 )wj xi (28)
∂wji k
116/1
Réseaux de neurones
117/1
Réseaux de neurones
Early Stopping
Une première méthode de régularisation a été proposée dans
les années 90 : il s’agit d’arrêter a priori l’apprentissage
prématurément avant le sur-apprentissage : on évite de se
rapprocher trop près d’un minimum !
Régularisation
On peut plus P rigoureusement définir :
L(W , Sapp = n `(h(xn ), yn ) + λ2 ||w (2),∗ ||2 + λ1 ||w (1),∗ ||2
(2) (1) (2)
On évitera de régulariser w0 , wj0 et w0i . Le ∗ signifie qu’on
ne considère pas ces coordonnées-là.
(1) 2
En pratique, on note que : ||w (1),∗ ||2 =
P
ji,j6=0,i6=0 (wji ) .
118/1
Réseaux de neurones
Sélection de modèles
119/1
Réseaux de neurones
Pour
Flexibilité au niveau des sorties : plusieurs classes, etc..
Technique éprouvé depuis 1985
Algorithme de gradient stochastique se plie bien aux besoins
du BIG DATA
Bénéficie des architectures GPU
PLUG and PLAY : on peut enchaı̂ner différents traitements
dans un même paradigme
Contre
Fonction de perte non convexe : pas de minimum global
Descente de gradient nécessite souvent de nombreux ajustements
Pas de cadre théorique
Beaucoup de développements ad hoc
120/1
Réseaux de neurones
Image Y. Bengio
121/1
Réseaux de neurones
122/1
Réseaux de neurones
123/1
Réseaux de neurones
124/1
Réseaux de neurones
Dropout
Auto-encodeurs
125/1
Réseaux de neurones
126/1
Réseaux de neurones
Une interprétation :
Si on dispose de m neurones au total, c’est comme si on apprenait
avec 2m réseaux clairsemés et au moment du test, on superpose
tous ces réseaux en un seul avec lequel on prédit.
Les neurones ne peuvent s’adapter les uns aux autres
127/1
Réseaux de neurones
128/1
Réseaux de neurones
129/1
Réseaux de neurones
Autoencodeurs
Autoencodeurs
Un autoencodeur (aussi appelé réseau diabolo) est un réseau à une
couche d’entrée, une ou plusieurs couches cachées et une couche
de sortie. Ce type de réseau cherche à construire une
représentation interne (la couche du milieu) en apprenant à prédire
l’entrée à partir de celle-ci : x ≈ g (x).
130/1
Réseaux de neurones
Apprentissage d’autoencodeurs
131/1
Réseaux de neurones
etc...
Y. Le Cun.
133/1
Réseaux de neurones
Cortex visuel
134/1
Réseaux de neurones
135/1
Références
Sommaire
136/1
Références
137/1
Références
138/1
Références
Sommaire
139/1
Références
Références SVM
140/1
Références
141/1
Références
Questions ?
Merci !
142/1