45
Support Vector Machine Jean-Marc Martinez CEA Saclay [email protected] Notes de cours [email protected] Support Vector Machine 1

Svm 7

Embed Size (px)

Citation preview

Page 1: Svm 7

Support Vector Machine

Jean-Marc Martinez

CEA [email protected]

Notes de cours

[email protected] Support Vector Machine 1

Page 2: Svm 7

Probleme lineairement separableMarge du separateurOptimisation quadratique sous contraintes lineaires

Probleme non lineairement separableOptimisation quadratique sous contraintes lineairesInterpretation de la solution optimaleModele de predictionCalcul de la margeSyntheseProgrammation Scilab

SVM non lineairesIntroduction aux SVM non lineairesSvm a noyauxExemplesProgrammation Scilab

Conclusions

Annexes : methodes d’optimisation sous contraintesOptimisation sous contraintes egaliteOptimisation sous contraintes inegalite

[email protected] Support Vector Machine 2

Page 3: Svm 7

Classification supervisee

Pour un probleme de classification supervisee a 2 classeslineairement separables, l’apprentissage consiste a determiner unhyperplan separateur. En codant l’appartenance du point x ∈ Rd

aux 2 classes par (−1,+1), le probleme se met sous la forme :determiner les coefficients (w, b) de l’hyperplan defini dans Rd telsque la fonction de prediction se code par :

y(x;w, b) = signe(wTx + b)

La base d’exemples est {(x1, y1), . . . , (xn, yn)} ou xi represente lesd coordonnees du point i associe au choix yi ∈ {−1,+1}. Leprobleme etant lineairement separable, il existe un hyperplan (w, b)tel que pour tous les points :

yi (wTxi + b) > 0

[email protected] Support Vector Machine 3

Page 4: Svm 7

Hyperplan a marge optimale

Afin d’avoir un classifieur robuste, retenons celui defini parl’hyperplan le plus eloigne des points xi . Cela revient a maximiserla distance des points xi a l’hyperplan. La distance d’un point xi al’hyperplan (w, b) est :

d(xi ) =|wTxi + b|||w||

Les parametres (w, b) verifiant les n contraintes, sont definis a uneconstante pres. Retenons les solutions (w, b) telles que :

mini|wTxi + b| = 1

Pour determiner l’hyperplan le plus eloigne des points, separateur amarge optimale, il faut donc maximiser la distance minimale, celarevient a minimiser ||w||.

[email protected] Support Vector Machine 4

Page 5: Svm 7

LagragienLa recherche des parametres de l’hyperplan (w, b) se met sous laforme d’un lagrangien : minimiser ||w||2 sous les contraintes∀i = 1, 2, . . . , n yi (w

Txi + b) >= 1.

L(w, b,µ) =1

2||w||2 −

n∑i=1

µi [yi (wTxi + b)− 1]

avec les 2 conditions de Karush-Kuhn-Tucker

(a) : µi [yi (wTxi + b)− 1] = 0, (b) : µi ≥ 0

La fonction a minimiser et les contraintes son convexes (pointselle), la solution s’obtient en recherchant le minimun dulagrangien par rapport a (w, b) et son maximum par rapport a µ.La solution (w∗, b∗,µ∗) verifie :

∇wL(w, b,µ) = w −∑n

i=1 µiyixi = 0∇bL(w, b,µ) = −

∑ni=1 µiyi = 0

[email protected] Support Vector Machine 5

Page 6: Svm 7

Probl‘eme dual

On obtient la forme duale en exprimant les variables primales(w∗, b∗) en fonction des variables duales µ :

L(w∗, b∗,µ) =1

2||w∗||2 −

n∑i=1

µi [yi (w∗Txi + b∗)− 1]

=1

2

n∑i=1

n∑j=1

µiµjyiyjxTi xj

−n∑

i=1

µi [yi (n∑

j=1

µjyjxTj xi + b)− 1]

⇒ L(µ) =n∑

i=1

µi −1

2

n∑i ,j=1

µiµjyiyjxTi xj

qu’on doit maximiser par rapport a µ sous les contraintes µi ≥ 0et

∑ni=1 µiyi = 0.

[email protected] Support Vector Machine 6

Page 7: Svm 7

Minimisation quadratique sous contraintes lineaires

Le probleme se met donc sous forme classique d’une recherche d’unminimun d’une fonction quadratique sous contraintes lineaires. Ennotant K la matrice n× n d’elements yiyjx

Ti xj , le probleme devient

µ∗ = arg minµ

[1

2µTKµ− 1Tµ]

sous les contraintes µi ≥ 0 et∑

i µiyi = 0. La resolution permetde determiner les valeurs optimales µ∗. Seules les composantesµi > 0 contribuent a la definition de l’hyperplan. Notons Svl’ensemble des indices de ces composantes :

w∗ =n∑

i=1

µ∗i yixi =∑s∈Sv

µ∗sysxs

La definition du separateur ne depend que des points xs .

[email protected] Support Vector Machine 7

Page 8: Svm 7

Calcul du seuil

La condition de Karush-Kuhn-Tucker (a) implique que tous lespoints supports verifient ys(wTxs + b) = 1. Le seuil b peut doncetre calcule par un des points supports ou par l’ensemble enprenant la moyenne (plus precis numeriquement). En notant |Sv | lenombre de points supports, la valeur b∗ est calculee par :

b∗ =1

|Sv |∑s∈Sv

(ys −w∗Txs)

Le modele de prediction est alors :

y(x;w∗, b∗) = signe(w∗Tx + b∗)

Cette methode se ramene a la selection de quelques points notesxs qui contribuent a la definition de l’hyperplan. Ces points sontles supports a la construction de l’hyperplan. D’ou le nom donne acette methode, SVM pour Support Vector Machine.

[email protected] Support Vector Machine 8

Page 9: Svm 7

Calcul de la marge

La marge est egale a 1/||w||. Rappelons que le vecteur w s’exprimea partir des points supports : w =

∑j∈Sv µjyjxj . Pour chaque

point support i ∈ Sv , on a yi (wTxi + b) = 1. D’ou :

yi (∑j∈Sv

µjyjxTj xi + b) = 1⇒ yi

∑j∈Sv

µjyjxTj xi = 1− yib

D’ou la valeur de la marge 1/||w|| donnee a partir de :

⇒ ||w||2 =∑i∈Sv

µiyi∑j∈Sv

µjyjxTi xj =

∑i∈Sv

µi (1− yib)

=∑i∈Sv

µi − b∑i∈Sv

µiyi =∑i∈Sv

µi

⇒ 1

||w||=

1√∑i∈Sv µi

[email protected] Support Vector Machine 9

Page 10: Svm 7

SVM lineaire - Illustration

yi = +1

yi = −1����������������

� ��

� ��

f

ff

ff

f f f

����������������

~v v v

v v

��������������

@@@R

@@@R

@@@I

wTx + b = +1wTx + b = 0

wTx + b = −1

@@@

marge1

||w||

SVM a 3 vecteurs support, ceux pour lesquels la contrainte estactive ys(wTxs + b) = 1

[email protected] Support Vector Machine 10

Page 11: Svm 7

Echantillon lineairement separableClasse 1 : 100 points ∼ N ([1; 0], 0.02) Classe 2 : 50 points ∼ N ([0; 1], 0.04)

Points supports pour le calcul des paramtres du separateur (w∗, b∗)

[email protected] Support Vector Machine 11

Page 12: Svm 7

Cas non lineairement separableLorsque les 2 classes ne sont pas lineairement separables, certainescontraintes ne seront pas satisfaites. Pour cela on introduit desvariables auxiliaires ξi ≥ 0, i = 1, 2, . . . , n permettant de relacherles contraintes :

yi (wTxi + b) ≥ 1− ξi , i = 1, 2, . . . , n

ou ξi est l’ecart (eventuel) a la contrainte yi (wTxi + b) ≥ 1. On

cherchera donc a minimiser egalement la somme des ecarts ξi . Lecritere devient :

1

2||w||2 + C

n∑i=1

ξi

ou C est un hyper parametre caracterisant le compromis entre unemarge optimale et le nombre d’erreurs de classement. Les petitesvaleurs de C permettent d’obtenir un modele de prediction pluslisse en negligeant les outliers (donnees bruitees). Une validationcroisee permet de fixer sa valeur.

[email protected] Support Vector Machine 12

Page 13: Svm 7

LagrangienEn notant µi , νi les multiplicateurs de Lagrange, le Lagrangien est :

L(w, b, ξ,µ,ν) =1

2||w||2+C

∑i

ξi−∑i

µi (ξi+yi (wTxi+b)−1)−

∑i

νiξi

La fonction a minimiser et les contraintes sont convexes(conditions du point selle). Les conditions imposees par leminimum par rapport aux variables primales (w, b) et ξ :

∇wL = w −∑

i µiyixi∇bL = −

∑i µiyi

∇ξi L = C − µi − νi , i = 1, . . . , n

La valeur optimale sur w est donc w∗ =∑

i µiyixi . Les autresconditions imposent

∑i µiyi = 0 et µi + νi = C , i = 1, . . . , n avec

les contraintes sur les variables duales µi , νi ≥ 0. On devra assurerla contrainte :

0 ≤ µi ≤ C

et on prendra νi fonction de µi par νi = C − µi ≥ [email protected] Support Vector Machine 13

Page 14: Svm 7

Probleme dual

L(w∗, b∗, ξ∗,µ,ν) =1

2||w∗||2 + C

∑i

ξ∗i

−∑i

µi (ξ∗i + yi (w

∗Txi + b∗)− 1)−∑i

νiξ∗i

=1

2

n∑i,j=1

µiµjyiyjxTi xj +

∑i

ξ∗i (C − µi − νi ) + b∗∑i

µiyi

+∑i

µi −∑i

[µiyixi∑j

µjyjxj ]

=∑i

µi −1

2

n∑i,j=1

µiµjyiyjxTi xj

On obtient la meme expression que celle d’un problemelineairement separable. La seule modification porte sur la bornesuperieure des µi :

0 ≤ µi ≤ C

[email protected] Support Vector Machine 14

Page 15: Svm 7

Interpretation

Rappelons les conditions de Karush-Kuhn-Tucker :

µi [yi (wTxi + b) + ξi − 1] = 0

νiξi = 0

sous les contraintes 0 ≤ µi ≤ λ et µi + νi = C .

I Si µi = 0 et donc νi = C . La contrainte ξi ≥ 0 est donc activeξi = 0 et comme yi (w

Txi + b) + ξi − 1 ≥ 0 on ayi (w

Txi + b) ≥ 1

I Si 0 < µi < C et donc νi > 0. Les 2 contraintes sont activesyi (w

Txi + b) + ξi − 1 = 0 et ξi = 0. D’ou yi (wTxi + b) = 1

I Si µi = C et donc νi = 0. La contrainte associee a µi estdonc active ⇒ yi (w

Txi + b) + ξi − 1 = 0 et comme ξi ≥ 0 ona yi (w

Txi + b) ≤ 1 et l’exemple sera mal classe si ξi > 1.

[email protected] Support Vector Machine 15

Page 16: Svm 7

Hyperplan separateur

Comme pour le cas lineairement separable en notant, la solutionoptimale (w∗, b∗) s’exprime en fonction des seuls vecteurs supportsxs :

w∗ =∑s∈Sv

µ∗sysxs

Pour le calcul du parametre de seuil optimal b∗, il faut retenir lespoints supports pour lesquels w∗Txs + b = ys . Ces pointscorrespondent aux valeurs 0 < µi < C . En notant Sb ce sousensemble et |Sb| le nombre de ses elements, le seuil optimal b∗ secalcule par :

b∗ =1

|Sb|∑s∈Sb

(ys −w∗Txs)

[email protected] Support Vector Machine 16

Page 17: Svm 7

Calcul de la margePour les vecteurs supports µi > 0 on a yi (w

Txi + b) = 1− ξi . D’ou

yi (∑j∈Sv

µjyjxTj xi + b) = 1− ξi ⇒ yi

∑j∈Sv

µjyjxTj xi = 1− ξi − byi

D’ou la valeur de la marge 1/||w|| donnee a partir de :

⇒ ||w||2 =∑i∈Sv

µiyi∑j∈Sv

µjyjxTi xj =

∑i∈Sv

µi (1− ξi − byi )

=∑i∈Sv

µi −∑i∈Sv

(C − νi )ξi − b∑i∈Sv

µiyi

=∑i∈Sv

µi − C∑i∈Sv

ξi

⇒ 1

||w||=

1√∑i∈Sv (µi − Cξi )

On retrouve la marge optimale dans le cas ou le probleme estlineairement separable, c’est a dire lorsque les ξi s’annulent.

[email protected] Support Vector Machine 17

Page 18: Svm 7

Echantillon non lineairement separableClasse 1 : 100 points ∼ N ([1; 0], 0.1) Classe 2 : 50 points ∼ N ([0; 1], 0.05)

Points supports pour le calcul de w∗ dont 3 notes ⊗ pour le calcul de b∗

[email protected] Support Vector Machine 18

Page 19: Svm 7

Construction d’un SVM lineaireA partir d’une base d’exemples {(xi , yi = ±1), i = 1, . . . , n}, lesparametres d’un SVM codant un separateur lineaire (w, b)s’obtiennent a partir de la resolution d’un probleme de minimisationd’une forme quadratique (Kn×n d’elements yiyjx

Ti xj) :

minµ

[1

2µTKµ− 1Tµ]

sous les contraintes lineaires 0 ≤ µi ≤ C et∑

i µiyi = 0. Ennotant Sv les indices pour lesquels µi 6= 0, et Sb ⊂ Sv les indicesdes points pour lesquels µi < C , les parametres optimauxs’obtiennent par :

w∗ =∑s∈Sv

µ∗sysxs

b∗ =1

|Sb|∑s∈Sb

(ys −w∗Txs)

[email protected] Support Vector Machine 19

Page 20: Svm 7

La fonction quapro de Scilab

La toolbox quapro de Scilab telechargeable via Internet permet deresoudre des problemes de minimisation quadratiques souscontraintes lineaires (meme si la matrice K est singuliere).

Exemple : minimisation de∑d

i=1 x2i sous la contrainte∑d

i=1 xi = 2.5 :

// Minimisation de 0.5 x^T K x + p x

d = 4;

K = eye(d,d); // matrice identite

p = zeros(d,1); // ici pas de termes lineaires

C = ones(1,d); // vecteur ligne de 1 pour la contrainte d’egalite

b = 2.5;

ci = []; // pas de contraintes min sur les xi

cs = []; // pas de contraintes max sur les xi

me = 1; // 1 contrainte egalite

// x est la solution, lagr les parametres de Lagrange et le critere

[x, lagr, critere] = quapro(K, p, C, b, ci, cs, me);

[email protected] Support Vector Machine 20

Page 21: Svm 7

Programmation Scilab d’un SVM Lineaire

En notant :

I Y le vecteur ligne de composantes yi ,

I K la matrice de taille n × n d’elements yiyjxTi xj ,

I mu le vecteur des n inconnues µi ,

I Zero et Un les vecteurs colonnes de composantes respectives0, 1 et C l’hyperparametre gerant la violation des contraintes

La solution optimale codee par le vecteur mu s’obtient par quapro :

[mu, lagr, critere] = quapro(K, -Un, Y, 0, Zero, C * Un, 1);

Une aide en ligne permet d’acceder aux exemples de la fonctionquapro.

[email protected] Support Vector Machine 21

Page 22: Svm 7

Programmation Scilab d’un SVM Lineaire (suite)

I Les n premieres composantes du vecteur lagr(1 :n) permettentd’exprimer si les bornes 0 ≤ µi ≤ C sont atteintes.

1. mu(i) = 0 ⇒ lagr(i) < 02. 0 < mu(i) < C ⇒ lagr(i) = 03. mu(i) > 0 ⇒ lagr(i) > 0

I Compte tenu des imprecisions numeriques, la selection despoints supports se fera par :

sv = find(mu > 1.e-10);

I Le sous ensemble sb ⊂ sv des points permettant de calculer leseuil b correspond aux valeurs des composantes de mustrictement positives et n’ayant pas atteint la borne maximaleC. Compte tenu egalement des imprecisions numeriques :

sb = find(mu > 1.e-10 & mu < 0.99 * C);

[email protected] Support Vector Machine 22

Page 23: Svm 7

Fonction Scilab SvmLin()

function [w, b, sv, sb, psi, marge]= SvmLin(X, Y, C)

// Fonction SvmLin : separateur lineaire signe( w’ * x + b)

// X,Y : points matrice d x n, sorties vecteur 1 x n

// C : hyperparametre gerant la violation des contraintes

// w , b : parametres de l’hyperplan

// sv : indices des points supports => X(:,sv)

// sb : indices des points servant a calculer b => w’ * X(:,sb) + b = Y(sb)

// psi , marge : ecarts (eventuels) aux contraintes et marge

[d,n] = size(X); Zero = zeros(n, 1); Un = ones(n, 1);

K = (X’ * X) .* (Y’ * Y);

[mu, lagr, critere] = quapro(K, -Un, Y, 0, Zero, C * Un, 1);

sv = find(mu > 1.e-10);

w = X(:,sv) * (mu(sv) .* Y(sv)’);

sb = find(mu > 1.e-10 & mu < 0.99 * C);

if sb ~= [] then b = mean(Y(sb) - w’ * X(:,sb));

else b = mean(Y(sv) - w’ * X(:,sv)); end;

psi = max(0. , 1 - Y(sv) .* (w’ * X(:,sv) + b));

den = sum(mu(sv)) - C * sum(psi);

if den <= %eps then marge = -1;

else marge = 1. / sqrt(den); end

endfunction

[email protected] Support Vector Machine 23

Page 24: Svm 7

Introduction aux SVM non lineaires

Le classifieur a ete defini a partir de produits scalaires entre lesvecteurs supports de l’espace d’entree. Nous avons vu pourl’exemple du XOR ( probleme non lineairement separable dans R2)que des transformations polynomiales des entrees

(x1, x2)→ (x1, x2, x21 , x

22 , x1x2)

permettent la construction d’un separateur lineaire dans l’espacetransforme de dimension 5.

[email protected] Support Vector Machine 24

Page 25: Svm 7

Espace de re-description

Illustration de l’application de l’espace des entrees x ∈ X → φ ∈ Hvers l’ espace de re-description (generalement de plus grandedimension) de facon a lineariser la classification.

Entrees X

Re-description φ

@@@@@R

������

uuu

uuuuuuuuuuuu

@@@@@R

������

Hyperplan Optimaldans l’espacede re-description

[email protected] Support Vector Machine 25

Page 26: Svm 7

Introduction aux SVM non lineaires (suite)

Pour l’exemple du XOR, considerons la transformation polynomialesuivante de degre 2 :

x = (x1, x2)→ φ(x) = (1,√

2x1,√

2x2, x21 , x

22 ,√

2x1x2)

On a la propriete suivante φ(xi )Tφ(xj) = (1 + xTi xj)

2. L’interet decette approche est de remplacer le calcul des produits scalairesdans l’espace des z (calculs lourds en grande dimension) par unefonction k : X × X → R :

k(xi , xj) = (1 + xTi xj)2

sans expliciter la transformation φ(x). Par exemple si x ∈ Rp lepolynome multidimensionnel de degre d comporte (p + d)!/p!d!monomes (nombre de composantes de φ).L’evaluation deφ(xi )

Tφ(xj) sera plus complexe que celle de (1 + xTi xj)d .

[email protected] Support Vector Machine 26

Page 27: Svm 7

Introduction aux methodes a noyaux

On se restreint a une classe particuliere pour les fonctions k , lesnoyaux s.d.p., symetriques definis positifs.

Un noyau defini positif sur un ensemble X est une fonction K quiassocie a deux objets de X un nombre reel, la similarite :

K : X × X → R

On exige la symetrie et la positivite. Pour toute sequence finiex1, x2, . . . , xn, la matrice K d’elements k(xi , xj) (matrice de Gram)est definie positive : ∀α ∈ Rn : αTKα ≥ 0.

Quelques exemples de noyaux definis positifs pour X = Rd

I lineaire K (x, y) = xTy,

I polynomial K (x, y) = (1 + xTy)d

I gaussien K (x, y) = exp[−||x− y||2/(2σ2)]

[email protected] Support Vector Machine 27

Page 28: Svm 7

Espaces de Hilbert a noyaux reproduisants

Un noyau defini positif K permet de construire un espace. Munid’un produit scalaire, c’est un espace de Hilbert HK a noyaureproduisant appele RKHS, Reproducing Kernel Hilbert Space

Le RKHS se definit tres simplement par ses elements (desfonctions) et par un produit scalaire (entre fonctions).

1. ∀x ∈ X , Kx = K (x, .) ∈ HK

2. < Kx,Ky >= K (x, y)

Interet est de pouvoir travailler sur des espaces de tres grandedimension, voire de dimension infinie.

[email protected] Support Vector Machine 28

Page 29: Svm 7

Espaces de Hilbert a noyaux reproduisants (suite)A tout x est associe un element de HK :

φ : X → HK φ(x) = K (x, .)

Dans le cas d’une dimension infinie pour H, φ(x) est une fonction.

Dans HK , Les produits scalaires entre φ(xi ) et φ(xj) sontremplaces par k(xi , xj) :

< φ(xi ), φ(xj) >HK= K (xi , xj)

c’est le fameux kernel trick, l’astuce du noyau

I Le choix d’un noyau defini positif permet donc de travaillerdans des espaces de dimension plus grand (voire infini) defacon a rendre le probleme plus lineairement separable

I Il n’est pas necessaire d’expliciter les fonctions de l’espace derepresentation (kernel trick).

I On reprend donc les formules etablies pour le SVM lineaire eton remplace les produits scalaires xTi xi par < φ(xi ), φ(xj) >HK

egaux aux elements K (xi , xj) de la matrice de similarite.

[email protected] Support Vector Machine 29

Page 30: Svm 7

SVM a noyaux (1)

I Fonction de prediction dans l’espace de re-description, espacedes fonctions φ(x) du RKHS

y(x;w∗, b∗) = signe(< w∗, φ(x) >HK+b∗)

I La solution w∗ est une fonction du RKHS definie par a partirdes points supports Sv

w∗ =∑s∈Sv

µ∗sysφ(xs)

I Le seuil b∗ est defini par les point supports Sb ⊂ Sv verifiantles predictions

b∗ =1

|Sb|∑s∈Sb

(ys− < w∗, φ(xs) >HK)

[email protected] Support Vector Machine 30

Page 31: Svm 7

SVM a noyaux (2)

I La solution s’exprime comme dans le cas lineaire a partir de laresolution d’une minimisation quadratique sous contrainteslineaires.

µ∗ = arg minµ

1

2

∑i ,j

µiµjyiyj < φ(xi ), φ(xj) >HK−∑i

µi

0 ≤ µi ≤ C ,∑i

µiyi = 0

I Et via le kernel trick les produits scalaires sont remplaces parles elements de la matrice de similarite

µ∗ = arg minµ

1

2

∑i ,j

µiµjyiyjK (xi , xj)−∑i

µi

[email protected] Support Vector Machine 31

Page 32: Svm 7

SVM a noyaux (3)

I calcul de la fonction de prediction :

y(x;w∗, b∗) = signe(< w∗, φ(x) >HK+b∗)

= signe(<∑s∈Sv

µ∗sysφ(xs), φ(x) >HK+b∗)

= signe(∑s∈Sv

µ∗sys < φ(xs), φ(x) >HK+b∗)

= signe(∑s∈Sv

µ∗sysK (xs , x) + b∗)

I Toute prediction en x s’exprime a partir d’une combinaisonlineaire des similarites entre x et les points supports xs . Ennotant α∗s = µ∗sys :

y(x;α∗, b∗) = signe(∑s∈Sv

α∗sK (xs , x) + b∗)

[email protected] Support Vector Machine 32

Page 33: Svm 7

Exemple avec noyau polynomial degre 2 puis 3

Points de la classe 1 : y = +1 , points de la classe 2 : y = −1

[email protected] Support Vector Machine 33

Page 34: Svm 7

Un autre exemple

I 2 classes imbriquees, une definie par 4 points (square, y = −1)contenue dans l’autre definie par les points (cross, y = +1)

I La visualisation porte sur les sorties transformees par lafonction tangente hyperbolique y → (1− e−y )/(1 + e−y )

[email protected] Support Vector Machine 34

Page 35: Svm 7

La fonction noyau polynomial

function K = KerPol(X1, X2, degre)

// Noyau polynomial (1 + x1’ * x2)^degre

// X1 : points matrice d x n1

// X2 : points matrice d x n2

// degre : degre du polynome

// K : matrice n1 x n2

n1 = size(X1,2);

n2 = size(X2,2);

K = zeros(n1,n2);

for i=1:n1

x = X1(:,i);

K(i,:) = (1 + x’ * X2) .^ degre;

end

endfunction

[email protected] Support Vector Machine 35

Page 36: Svm 7

La fonction noyau gaussien

function K = KerGauss(X1, X2, sigma)

// Noyau gaussien

// X1 : points matrice d x n1

// X2 : points matrice d x n2

// sigma : ecart-type

// K : matrice n1 x n2

n1 = size(X1,2);

n2 = size(X2,2);

K = zeros(n1,n2);

for i=1:n1

d = X1(:,i) * ones(1, n2) - X2;

s = sum(d .* d, 1);

K(i,:) = exp(-s/ sigma^2);

end

endfunction

[email protected] Support Vector Machine 36

Page 37: Svm 7

Programmation du SVM avec noyau

function [alpha, b, sv, sb, psi, marge]= SvmKernel(X, Y, Kernel, C)

// X,Y : points matrice d x n, sorties vecteur 1 x n

// Kernel : structure definissant le noyau

// Kernel.f : la fonction

// Kernel.p : les parametres

// C : hyperparametre gerant la violation des contraintes

// alpha , b : parametres du predicteur

// sv : indices des points supports => X(:,sv)

// sb : indices des points servant a calculer b => X(:,sb)

// psi , marge : ecarts (eventuels) aux contraintes et marge

[d,n] = size(X); Zero = zeros(n, 1); Un = ones(n, 1);

K = Kernel.f(X, X, Kernel.p) .* (Y’ * Y);

[mu, lagr, critere] = quapro(K, -Un, Y, 0, Zero, C * Un, 1);

sv = find(mu > 1.e-10);

sb = find(mu > 1.e-10 & mu < 0.99 * C);

alpha = mu(sv) .* Y(sv)’;

Kt = Kernel.f(X(:,sv), X(:,sv), Kernel.p);

if sb ~= [] then Ktb = Kernel.f(X(:,sb), X(:,sv), Kernel.p);

b = mean(Y(sb)’ - Ktb * alpha);

else b = mean(Y(sv)’ - Kt * alpha); end;

psi = max(0., 1 - Y(sv)’ .* ( Kt * alpha + b ));

den = sum(mu(sv)) - C * sum(psi);

if den <= %eps then marge = -1;

else marge = 1. / sqrt(den); end;

endfunction

[email protected] Support Vector Machine 37

Page 38: Svm 7

Conclusions et references

I SVM outil efficace notamment en classification supervisee

I Outils methodes a noyaux pour representer des fonctions

I Sites : http :/www.svms.org/tutorials ethttp :/www.support-vector-machines.org ou on trouve denombreux tutorials et references comme ceux de B. Scholkopf,des cours comme ceux de J.Ph. Vert.

I Logiciels gratuits comme SVMLight surhttp ://svmlight.joachims.org

[email protected] Support Vector Machine 38

Page 39: Svm 7

Optimisation sous contraintes egalites

Soit une fonction f : x ∈ Rn →∈ R. Recherche du minimum de fsous les contraintes gi (x) = 0, i = 1, . . . ,m. On suppose f , gdifferentiables. On construit le Lagrangien :

L(x,λ) = f (x) +m∑i=1

λigi (x)

ou λi sont les multiplicateurs de Lagrange. Si le probleme a unesolution x∗ c’est a dire si minx f (x) = f (x∗) sous les contraintes,on a les conditions necessaires :

∇Lx(x∗,λ∗) = ∇xf (x∗) +∑m

i=1 λi∇xgi (x∗) = 0

∇λL(x∗,λ∗) = gi (x∗) = 0, i = 1, . . . ,m

Exercice : Dans Rn calculer la distance euclidienne du point u al’hyperplan defini par wTx + b = 0.

[email protected] Support Vector Machine 39

Page 40: Svm 7

Optimisation sous contraintes inegalites (1)Soit une fonction f : x ∈ Rn →∈ R. Recherche du minimum de fsous les contraintes gi (x) ≤ 0, i = 1, . . . ,m. On suppose f , gdifferentiables. On construit le Lagrangien :

L(x,µ) = f (x) +m∑i=1

µigi (x)

ou µi sont les multiplicateurs de Lagrange. Si le probleme a unesolution x∗ c’est a dire si minx f (x) = f (x∗) sous les contraintes,conditions de Karusch, Kuhn et Tucker :

∇xf (x∗) +m∑i=1

µi∇xgi (x∗) = 0

gi (x∗) ≤ 0, i = 1, . . . ,m

µ∗i ≥ 0, i = 1, . . . ,m

µ∗i gi (x∗) = 0, i = 1, . . . ,m

[email protected] Support Vector Machine 40

Page 41: Svm 7

Optimisation sous contraintes inegalites (2)

De µ∗i gi (x∗) = 0, on en deduit soit µ∗i = 0 soit gi (x

∗) = 0. Lorsquele multiplicateur de Lagrange n’est pas nul, lacontrainte est dite active.

µ∗i > 0⇒ gi (x∗) = 0

Exercice : Minimum de x21 − 2x1 + x2

2 + 1 sous les contraintesx1 + x2 ≤ 0, x2

1 − 4 ≤ 0.

[email protected] Support Vector Machine 41

Page 42: Svm 7

Point selle (1)

Dans certains problemes d’optimisation sous contraintes, lorsqu’ilssont de type point selle la recherche de la solution se trouvesimplifiee.Soient U et V des ensembles et L : U × V → R une fonction. Ondit qu’un couple (u∗, v∗) est un point selle si u∗ est un minimumde U pour la fonction L(., v∗) et si v∗ est un un maximum sur Vpour la fonction L(u∗, .).

L(u∗, v) ≤ L(u∗, v∗) ≤ L(u, v∗)

Theoreme du point selle : Si (u∗, v∗) est un point selle de L surU × V , alors :

L(u∗, v∗) = supv∈V

infu∈U

L(u, v) = infu∈U

supv∈V

L(u, v)

[email protected] Support Vector Machine 42

Page 43: Svm 7

Point selle (2)

On a les inegalites dans les 2 sens.

I Probleme primal On connaıt v∗ on est ramene au problemesans contraintes L(u∗, v∗) = infu∈U L(u, v∗)

I Probeme dual Pour trouver v∗, on definit la fonctionH(v) = infu∈U L(u, v) puis on cherche son maximum H(v∗)et on a L(u∗, v∗) = H(v∗).

Theoreme : Si u∗ est une solution du probleme min J(u) sousg(u) ≤ 0 (m contraintes) avec J et g convexes, alors il existe unmultiplicateur v∗ ∈ Rm

+ tel que le couple (u∗, v∗) soit solution duprobleme du point selle :

minu

maxv≥0{L(u, v) = J(u) + vTg(u)}

[email protected] Support Vector Machine 43

Page 44: Svm 7

Point selle (3)

[email protected] Support Vector Machine 44

Page 45: Svm 7

Exercice d’un Point SelleExercice : Minimum de (1/2)xTAx sous Cx ≤ d ou A est unematrice symetrique definie positive n × n et C une matrice m × nde rang plein m < nOn construit le Lagrangien :

L(x,µ) =1

2xTAx + µT (Cx− d)

La fonction cout et la contrainte sont convexes.

∇xL = Ax + CTµ

Le minimum par rapport a x :

x∗ = −A−1CTµ

On obtient la fonctionnelle duale a maximiser

H(µ) = −1

2µTCA−1CTµ− µTd

sous µi ≥ [email protected] Support Vector Machine 45