Méthodes analogiques - Benjamin Piwowarski`s website

Transcription

Méthodes analogiques - Benjamin Piwowarski`s website
Polytech - Intelligence Artificielle
KNN, K-Means, et Machine à Vecteur de Support
Benjamin Piwowarski
23 mars 2016
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
1 / 26
K-Nearest Neighbors et K-means
Plan
1
K-Nearest Neighbors et K-means
K-Means
K-NN
2
Machine à Vecteur de Support (SVM)
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
2 / 26
K-Nearest Neighbors et K-means
K-Means
K-Nearest Neighbors et K-means
K-Means
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
3 / 26
K-Nearest Neighbors et K-means
K-Means
Utilisation en clustering
Le même principe peut être utilisé pour grouper les données {xk } de façon
non supervisée. Un algorithme très simple et très utilisé est l’algorithme des
K-moyennes (K-means).
On choisit un nombre K de groupes (clusters) et on leur associe un
point xi au hasard
puis on répète :
chaque xi est
associé au groupe le plus proche, i.e. g (i) tel que
xi − mg (i) est minimum
on recalcule les centres des groupes mk ← moyenne {xi |g (i) = k}
jusqu’à convergence (pas de changement)
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
4 / 26
K-Nearest Neighbors et K-means
K-Means
Utilisation en clustering
Cela correspond à la fonction de coût suivante :
g , m = arg min
g ,m
Benjamin Piwowarski
X
d(xi , mg (i) )
i
E8-ESI - KNN et SVM
23 mars 2016
5 / 26
K-Nearest Neighbors et K-means
K-Means
Utilisation en clustering
Cela correspond à la fonction de coût suivante :
g , m = arg min
g ,m
X
d(xi , mg (i) )
i
en clair = cela minimise la distance de chaque point xi avec le centre mg (i)
de son groupe g (i)
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
5 / 26
K-Nearest Neighbors et K-means
K-Means
Applications : grouper des documents
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
6 / 26
K-Nearest Neighbors et K-means
K-Means
Applications : Représenter
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
7 / 26
K-Nearest Neighbors et K-means
K-NN
K-Nearest Neighbors et K-means
K-NN
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
8 / 26
K-Nearest Neighbors et K-means
K-NN
Exemple : KNN
source : Wikipedia
Paramètres
fθ = k-plus-proches voisins
θ = ensemble des exemples d’apprentissage
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
9 / 26
K-Nearest Neighbors et K-means
K-NN
Généralisation
K =1
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
10 / 26
K-Nearest Neighbors et K-means
K-NN
Généralisation
K =2
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
11 / 26
K-Nearest Neighbors et K-means
K-NN
Généralisation
K =3
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
12 / 26
K-Nearest Neighbors et K-means
K-NN
Généralisation
Benjamin Piwowarski
K =5
E8-ESI - KNN et SVM
23 mars 2016
13 / 26
K-Nearest Neighbors et K-means
K-NN
Généralisation
K = 20
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
14 / 26
K-Nearest Neighbors et K-means
K-NN
Généralisation
K = 200
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
15 / 26
K-Nearest Neighbors et K-means
K-NN
Problématique du jour
Constat
1-NN est un modèle :
Trop complexe (VC-dimension = infinie)
Qui possède beaucoup trop de paramètres
Problématique
Quel modèle (de classification) utiliser qui soit :
Simple
Peu de paramètres
Efficace
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
16 / 26
K-Nearest Neighbors et K-means
K-NN
Problématique du jour
Constat
1-NN est un modèle :
Trop complexe
Qui possède beaucoup trop de paramètres
Problématique
Quel modèle (de classification) utiliser qui soit :
Simple
Peu de paramètres
Efficace
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
17 / 26
Machine à Vecteur de Support (SVM)
Plan
1
K-Nearest Neighbors et K-means
2
Machine à Vecteur de Support (SVM)
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
18 / 26
Machine à Vecteur de Support (SVM)
Introduction
Classification binaire (mais peut être étendu)
« Généralisation » de K-NN
Années 1990
Théorie de Vapnik (= généralisation)
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
19 / 26
Machine à Vecteur de Support (SVM)
Cas linéairement séparable
Le classifieur est défini par son vecteur normal w et son biais b
h(x) = w > x + b
Si h(x) = w > x + w0 ≥ 0, alors l’exemple est positif ; négatif sinon
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
20 / 26
Machine à Vecteur de Support (SVM)
Optimisation
Minimiser la marge (plus la marge est haute, plus la capacité du modèle est
grande)
||w ||2
Sous contraintes
wxi + b
≥ 1 si yi = 1
⇔ yi (wxi + b) ≥ 1
wxi + b ≤ −1 si yi = −1
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
21 / 26
Machine à Vecteur de Support (SVM)
Cas non linéairement séparable
Minimiser la marge
X
1
||w ||2 + C
ξi
2
i
Sous contraintes
(
wxi + b ≥ 1 − ξi
si yi = 1
wxi + b ≤ −1 + ξi si yi = −1
⇔ yi (wxi + b) ≥ 1 − ξi
avec ξi ≥ 0
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
22 / 26
Machine à Vecteur de Support (SVM)
Version duale
Utilisation du Lagrangien avec ξi ≥ 0 et αi ≥ 0 : minimiser
p
X
X
1
L(w , b, α, ξ) = kw k2 + C
ξi +
αi (1 − ξi − yi (wxi + b))
2
i
i=1
Conditions de Karush-Kuhn-Tucker (KKT) dans ce cas :
∂L
∂wi
(w ∗ , ξ ∗ , b ∗ , α∗ ) = 0 et
∂L
∂b
(w ∗ , ξ ∗ , b ∗ , α∗ ) = 0
1 − ξi∗ − yi (w ∗ xi + b ∗ ) ≤ 0
αi∗ ≥ 0
αi∗ (1 − ξi∗ − yi (w ∗ xi + b ∗ )) = 0
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
23 / 26
Machine à Vecteur de Support (SVM)
Version duale
Maximiser
X
αi −
i
X
αi αj yi yj xi> xj
i,j
avec les contraintes C ≥ αk ≥ 0 et
La solution est de la forme
h(x) =
p
X
P
k
αk yk = 0.
αk yk x > xk + b
k=1
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
24 / 26
Machine à Vecteur de Support (SVM)
Nature de la solution
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
25 / 26
Machine à Vecteur de Support (SVM)
Noyaux
RBF (Radial Basis Function)
kx1 − x2 k
k (x1 , x2 ) = exp −
2σ 2
Benjamin Piwowarski
E8-ESI - KNN et SVM
23 mars 2016
26 / 26