Sunteți pe pagina 1din 16

Support Vector Machines (Masinile cu suport vectorial )

Masinile cu suport vectorial reprezint o metod de clasificare introdus n anul 1992 de


ctre Boser, Guyon si Vapnik . Clasificatorul care foloseste aceast tehnic este folosit
att n bioinformatic ct si n alte discipline, datorit acuratetei ridicate si a abilittii de a
se descurca bine atunci cnd ntlneste date cu multe dimensiuni, cum ar fi expresii ale
genelor, dar si pentru flexibilitatea n modelarea diferitelor surse de date.
Masinile cu suport vectorial apartin unei categorii generale de metode cu
nucleu. O astfel de metod este un algoritm care depinde de date doar prin produse
scalare. Cnd este necesar, produsul scalar poate fi nlocuit de o functie nucleu, care
calculeaz acest produs scalar ntr-un posibil spatiu de caracteristici multidimensional.
Aceast abordare are dou avantaje. Primul dintre ele este capacitatea de a genera decizii
neliniare asupra limitelor folosind metode construite pentru clasificatorii liniari. Al doilea
avantaj l constituie faptul c folosirea functiilor nucleu permit utilizatorului s aplice un
clasificator datelor care nu au o reprezentare a spatiului vectorial de dimensiune fix.
Printre primele exemple de astfel de date n bioinformatic se numr ADN-ul si
structura proteinelor.
Folosirea masinilor cu suport vectorial necesit o ntelegere n profunzime a
modului n care acestea functioneaz. Cnd se antreneaz un algoritm de masini cu suport
vectorial, practicantul trebuie s ia un anumit numr de decizii importante: cum vor fi
datele preprocesate, ce fel de nucleu se va folosi si, n final, setarea parametrilor att
pentru nucleu ct si pentru masinile cu suport vectorial. Alegerile uniforme pot conduce
la o performant sczut.

2.2 Definitia formal a problemei


Masinile cu suport vectorial construiesc un hiperplan sau o multime de hiperplane
ntr-un spatiu cu mai multe dimensiuni sau cu un numr infinit de dimensiuni, care pot fi
utilizate pentru clasificare, regresie sau alte sarcini. Intuitiv, o bun separare este obtinut
de hiperplanul care are cea mai mare distant pn la cea mai apropiat dat de
antrenament reprezentat indiferent de clasa din care aceasta face parte (numit si marj

functional), avnd n vedere c n general cu ct este mai mare marja, cu att este mai
redus eroarea de generalizare a clasificatorului.
Chiar dac problema initial este specificat ntr-un spatiu finit dimensional, se
ntmpl de multe ori ca multimile care trebuie distinse s nu fie separabile liniar n acel
spatiu. Din acest motiv a fost propus ca spatiul finit original s fie potrivit ntr-unul mai
mare ca dimensiune, separarea fiind probabil mai usor de fcut n acest nou spatiu. Pentru
a pstra un efort computational rezonabil, potrivirile folosite de schemele masinilor cu
suport vectorial sunt construite n asa fel nct s poat asigura c produsele scalare vor
putea fi calculate cu usurint n ceea ce priveste variabilele din spatiul original, prin
selectate s satisfac cerintele problemei.

definirea unei functii nucleu

Hiperplanele din spatiul cu mai multe dimensiuni sunt definite prin multimi de puncte al
cror produs scalar cu un vector din acel spatiu este constant. Vectorii care definesc
hiperplanurile pot fi alesi ca fiind combinatii liniare cu parametrii

ai imaginilor

vectorilor de caracteristici care exist n baza de date. Folosind aceast alegere a


hiperplanului, punctele

din spatiul caracteristicilor care sunt potrivite n hiperplan sunt

definite prin relatia


pe msur ce

. n cazul n care

creste si mai mult fat de

de apropiere al punctului de test

devine mai mic

, fiecare element din sum msoar gradul

fat de punctul corespunztor din baza de date

. n

aceste conditii, suma nucleelor poate fi utilizat n vederea msurrii apropierii relative al
fiecrui punct de test n comparatie cu punctul original apartinnd uneia dintre multimile
ce trebuie distinse.

SVM sunt modele de invatare supervizata cu algoritmi de invatare asociati care


analizeaza date si recunosc tipare (patterns), folositi in clasificare si regresie. Fiind dat un
set de date de antrenare, fiecare observatie apartinand unei clase din doua clase posibile,
un algoritm SVM construieste un model care asigneaza noi exemple unei clase sau alteia.
Modelarea matematica a SVM
Consideram o populatie ale carei obiecte sunt studiate din punctul de vedere a n
caracteristici (atribute). Un obiect este reprezentat de un punct ( x1 ,...,xn ) R n ,
x1 ,...,xn fiind valorile celor n caracteristici pentru obiectul studiat.
2

Populatia este impartita in doua clase E1 , E2 (disjuncte).


Punerea problemei
Se fac r observatii (masuratori) asupra unui esantion din populatie. Dupa cum am
vazut, observatiile sunt reprezentate de puncte din R n .
Datele de intrare obtinute (numite si date de antrenare, de instruire) se impart in doua
clase D1 E1 , D2 E 2 .
( D D1 D2 =datele de intrare)
Se pune problema clasificarii unor date noi: pe baza unui algoritm, pornind de la datele
de antrenare, sa se spuna daca o observatie noua este in E1 sau in E 2 .
D=spatiul intrarilor
Spatiul intrarilor este linear separabil daca exista un hiperplan H al lui R n ce separa D1 si
D2 .
Dificulti n rezolvarea problemelor de clasificare
1. Pentru clasificare se pot utiliza mai muli separatori ai claselor.

2. Spatiul intrarilor nu este liniar separabil.

Support vector machines (SVM) sunt modele de invatare supervizata ce raspund


problemei de clasificare de mai sus.

Metoda SVM liniara


SVM =linear separabil daca spatiul intrarilor este linear separabil.
Presupunem ca datele de intrare sunt linear separabile.
Observatie: Pot exista mai multe hiperplane ce separa D1 de D2 .

- H 1 nu separa planele
- H 2 le separa la o distanta mica intre clase
- H 3 le separa la o distanta maxima
Alegerea hiperplanului separator H se face pe baza urmatorului criteriu:
Cu cat hiperplanul H este la o distanta mai mare de multimile de date initiale D1 si
D2 , cu atat clasificarea noilor observatii (realizata de hiperplanul H) va fi mai buna
(mai vizibila).

Observatie Fiecare hiperplan ce separa D1 de D2 conduce la o clasificare distincta a


noilor observatii.
Vom formaliza ideile expuse mai sus.
Multimea datelor de intrare este pusa sub forma {( x1 , y1 ),...,( xr , yr )}.
x i este un vector input din R n
yi {1,1} este o eticheta a clasei lui x i (class label)
yi 1 : clasa pozitiva ( D1 )
yi 1 : clasa negativa ( D2 )
Interpretare: daca H: w x b 0 este un hiperplan ce separa D1 si D2 , atunci
1 daca w x b 0
yi
1 daca w x b 0

Consideram un hiperplan separator H: w x b 0 si alte doua hiperplane separatoare:


H : w x b
H : w x b
Observatie: H, H , H sunt hiperplane paralele.
Calculam distantele intre aceste hiperplane:
b b
H : w x b

d d (H , H )


w
w
H : w x b
H : w x b
b b

d d (H , H )


w
w
H : w x b

d d (H , H )

b (b )
w

2
w

H , H sunt echidistante fata de H


d d d = margin
Observatie: Putem considera (prin impartire la ) ca H , H sunt de forma:

H : w x b 1
.

H
:
w

2
1
1
In acest caz: d
, d
, d
.
w
w
w
Atunci criteriul enuntat mai sus ne spune ca trebuie sa il alegem pe H (adica pe w si
2
pe b) astfel incat d
sa fie maximizata.
w
Se ajunge la urmatoarea problema de optimizare patratica.
Sa se determine w R n si b R astfel incat
2

max w

(1) w xi b 1, daca y i 1 ( xi din D1 )


w x b 1, daca y 1 ( x din D )
i
i
i
2

Problema (1) este echivalenta cu:


2

w
min
(2)
2
y ( w x b) 1, pentru i 1,...,r
i
i
Reamintim: Conditiile Kuhn-Tucker pentru problema de optimizare:
( f , f i : R n R functii convexe si diferentiabile)

min f ( x)

f i ( x) 0, i 1,...,r
x 0, k 1,...n
k
sunt:
L
x 0, k 1,...,n
k
f i ( x) 0, i 1,...r
0, i 1,...,r
i
i f i ( x) 0, i 1,...,r

unde x ( x1 ,..., xn ) si
r

L( x1 ,...,xn ;1 ,..., r ) f ( x) i f i ( x)
i 1

Scriem problema (2) sub forma:


1 n 2

min

wk
(3)
2 k 1
1 y ( w x b) 0, i 1,...,r
i
i

Scriem lagrangeanul:
L(w, b, ) L(w1 ,...,wn , b;1 ,..., r )
1 n 2 r
i [1 yi ( w xi b)]
wk
2 k 1
i 1
r
n
1 n
wk2 i [1 yi ( wk xik b)]
2 k 1
i 1
k 1
xi ( xi1 ,...,xin )
Scriem conditiile Kuhn-Tucker pentru problema de optim (3)
r
r
L
wk i yi xik 0 , k=1,,n [ w i yi xi 0 ] scriere vectoriala
wk
i 1
i 1
r
L
i yi 0
b i 1
i 0, i 1,...,r

1 yi (w xi b) 0, i 1,...,r
i [1 yi (w xi b)] 0, i 1,...,r
Rescriem aceste conditii:
r

i y i xi 0

i 1

r
i y i 0
i 1
(4) i 0
conditii necesare si suficiente conform
y ( w x b) 1 0, i 1,...,r
i
i
i [ y i ( w xi b) 1] 0, i 1,...,r

observatiei ulterioare
Observatie In general, conditiile Kuhn-Tucker (4) sunt necesare. In cazul unei probleme
de optim, in care functia obiectiv este convexa si restrictiile sunt liniare, conditiile KuhnTucker sunt si suficiente. In cazul problemei (3), aceste conditii sunt indeplinite.
Deci (4) ne da conditii necesare si suficiente pentru optimul problemei (3).
Observatie Daca i 0 atunci yi (w xi b) 1 (din ultima egalitate (4)). Aceasta
inseamna ca xi H sau xi H .
Asemenea puncte x i se numesc vectori suport.
Se considera acum problema duala: este o problema de maxim in care functia obiectiv
este chiar lagrangeanul.
7

Mai intai trebuie sa exprimam lagrangeanul numai in functie de 1 ,..., r .


Scriem lagrangeanul sub forma:
1 2 r
L( w, b, ) w i [1 yi ( w xi b)]
2
i 1
r
r
r
1
w w i i y i ( w xi ) b i y i
2
i 1
i 1
i 1
r
r
1
i w w i y i ( w xi )
2
i 1
i 1
r

( i yi 0 )
i 1

Cum w i y i xi si produsul scalar este linear in fiecare argument


i 1

i 1

j 1

w w ( i yi xi ) ( j y j x j ) i j yi y j ( xi x j )
i 1r

w x i ( j y j x j ) xi j y j ( xi x j )
j 1

j 1

i 1

i 1

j 1

i yi (w xi ) i yi ( j y j ( xi x j ))

i , j 1

y i y j ( xi x j )

Inlocuind mai sus


r

(5) LD (1 ,..., r ) L(w, b, ) i


i 1

1 r
i j y i y j ( xi x j )
2 i , j 1

Problema duala va fi:


max LD ( 1 ,..., r )
r

(6) y i i 0
i 1
i 0, i 1,...,r
Dupa ce rezolvam problema de optim (2), daca 1 ,..., r este solutia optima, calculam pe
r

w i y i xi .
i 1

Calculul lui b
Fie SV=multimea vectorilor suport (: corespunzatori i 0 )
Atunci
r

w i y i xi =
i 1

y x

xi SV

[ xi SV i 0 ]

Fie xk un vector suport. Conform ultmei relatii din (4):


k [ yk (w xk b) 1] 0
Cum k 0 , rezulta

yk (w xk b) 1 0
yk (w xk b) 1 | y k

yk2 (w xk b) yk

yk2 1 w xk b yk
Deci b y k w xk
Clasificarea noilor observatii
Fie w R n , b R determinati prin rezolvarea problemei de optim. Consideram functia
f : R n R f ( x) w x b i yi ( xi x) b
xi SV

Daca z R este o noua observatie, calculam sign f(z)


sign f(z)=1 z D1 partea pozitiva
sign f(z)=-1 z D2 partea negativa
f se numeste functie clasificator.
n

Cazul neliniar
Consideram cazul cand datele de intrare {( x1 , y1 ),...,( xr , yr )} nu pot fi separate printr-un
hiperplan. In acest caz se procedeaza in doi pasi:
se transforma spatiul initial al datelor (input space) intr-un alt spatiu (feature space), in
care datele vor fi separabile printr-un hiperplan.
se aplica formularile si tehnicile din cazul liniar
X=input space, F=feature space
X R n , F R m , cu mn
: X F aplicatie neliniara
Prin transformarea , datele initiale {( x1 , y1 ),...,( xr , yr )}se transforma in
{(( x1 ), y1 ),...,(( xr ), yr )}.

Obs. In cazul de mai sus, feature space X are aceeasi dimensiune 2 cu input space F. In
general, F are dimensiune mai mare ca X.
Pentru datele transformate {(( x1 ), y1 ),...,(( xr ), yr )}
(corespunzatoare lui (3)) se scrie

w
min
(7)
2
1 y ( w ( x ) b) 0
i
i

problema

de

minim

Recapitulam, pentru problema (7), etapele algoritmului prezentat in cazul liniar.


Etapa 1
Se considera lagrangeanul problemei duale (cf. (8))
r
1 r
(8) LD (1 ,..., r ) i i j yi y j (( xi ) ( x j ))
2 i , j 1
i 1
si problema duala:
max LD ( 1 ,..., n )
n

(9) y i i 0
i 1
i 0
Se calculeaza solutia optima 1 ,.., n a problemei (9)
Etapa 2
Se calculeaza vectorul
ri

(10) w i yi ( xi )
i 1

Etapa 3
Se calculeaza numarul real (pentru un k 0 )
r

b y k w ( xk ) y k ( i yi ( xi )) ( xk )
i 1

(11) b y k i yi ( xi ) ( xk )
i 1

Se formeaza functia de separare


f ( x ) w ( x ) b
Cf. (10) si (11) functia de separare se mai scrie
r

f ( x) ( i yi ( xi )) ( x) y k i yi (( xi ) ( xk ))
i 1

i 1

i 1

i 1

i yi (( xi ) ( x)) i yi (( xi ) ( xk )) y k

De unde
r

(12) f ( x) i yi [( xi ) ( x) ( xi ) ( xk )] y k
i 1

Observatie importanta Inspectand formulele (8), (11) si (12), se vede ca nu este


nevoie sa cunoastem valorile ( xi ),i 1,...,r , ci numai produsele scalare
( xi ) ( x j ) si ( xi ) ( x) .
Functia de transformare poate sa conduca la date de dimensiuni mari, deci la calcule
costisitoare.
Pe baza observatiei precedente putem introduce notiunea de nucleu.
O functie K : R n R n R este nucleu al functiei : R n R m daca pentru orice doi
vectori x, z R n , K ( x, z ) ( x) ( z ) .
Daca K este nucleu al lui atunci formulele (8), (11) si (12) se scriu

10

1 r
(8) LD (1 ,..., r ) i i j yi y j K ( xi , x j )
2 i , j 1
i 1
r

(11) b y k i yi K ( xi , xk )
i 1

(12) f ( x) i yi [ K ( xi , x) K ( xi , xk )] y k
i 1

( k 0 )

Conform (8), (12), daca K este un nucleu al functiei atunci procedam astfel
(I)
Se determina solutiile optime 1 ,..., r ale problemei de maxim
max LD ( 1 ,..., r )
r

(13) y i i 0
i 1
i 0,i 1,...,r
unde LD (1 ,..., r ) are forma (8).
(II)
Cu 1 ,..., r determinate la I, se formeaza functia clasificator f data de (12).
Daca x R n este o noua observatie atunci
sign f(x)=1 x se afla in partea pozitiva D1
sign f(x)=-1 x se afla in partea negativa D2
Exemplu Se considera transformarea : R 2 R 3 , ( x1 , x2 ) ( x12 , x22 , 2x1 x2 ) .
Luam functia K : R 2 R 2 R , K ( x, z) ( x z) 2 produs scalar
Fie x ( x1 , x2 ) , z ( z1 , x2 ) . Atunci

K ( x, z) ( x z) 2 ( x1 z1 x2 z 2 ) 2
x12 z12 2x1 z1 x2 z 2 x22 z 22

( x12 , x22 , 2x1 x2 ) ( z12 , z 22 , 2z1 z 2 )


( x ) ( z )
Rezulta ca functia K este nucleu al lui .

Apendix1 . Elemente de geometrie a lui R n


n

Fie x, y R , x y xi y i produsul scalar al vectorilor x ( x1 ,...,xn ), y ( y1 ,..., yn )


n

i 1

x, x

i 1

d ( x, y ) x y

2
i

norma lui x

(x
i 1

yi ) 2 distanta dintre x si y

Hiperplan in R : o multime de forma H {x R n | a x b}unde a (a1 ,...,an ) R n ,


bR
n

11

ax b
n

a x
i 1

b ecuatia hiperplanului H

Cazuri particulare
a)n=2
a1 x1 a2 x2 b (in plan, hiperplanele sunt dreptele)
b) n=3
a1 x1 a2 x2 a3 x3 b (in plan, hiperplanele sunt planele)
Fie hiperplanul H: a x b si punctul p ( p1 ,..., pn ) R n
Distanta de la p la hiperplanul H: d ( p, H ) min d ( p, x)
xH

Proppozitia 1 d ( p, H )

a p b
a

a p
i 1

Definitie Doua hiperplane H1 : a x b , H 2 : a x c se numesc hiperplane paralele.


Propozitia 2 Fie H1 : a x b , H 2 : a x c doua hiperplane paralele.

p, q H 2 d ( p , H 1 ) d ( q , H 2 )

bc
a

Demonstratie
a p b cb
d ( p, H 1 )

a
a
d ( q, H 1 )

aq b
a

cb
a

p, q H 2 a p c a q (vezi Figura A)
Conform Propozitiei 2, toate punctele de pe H 2 sunt echidistante fata de hiperplanul H 1 :
bc
anume la distanta
.
a
Prin definitie, distanta dintre hiperplanele H 1 si H 2 este d ( H 1 , H 2 )

bc
a

Fie D1 , D2 R n , D1 D2 . Spunem ca hiperplanul H: a x b separa multimile


D1 , D2 daca

D1 {x R n | a x b}
D2 {x R n | a x b}

Figura B

12

H1

x2

H2
d (q, H1 )

q
d ( p, H1 )

x1

Figura A

x2

D1

D2

x1

Figura B

13

APENDIX2

Clasificare nonlineara

Algoritmul initial propus de Vapnik in 1963 era un clasificator liniar. In 1992, Bernhard
E. Boser, Isabelle M. Guyon si Vladimir N. Vapnik au propus o metoda de a crea
clasificatori neliniari aplicand abordarea kernel pentru a determina distanta maxima
dintre hiperplane. Algoritmul rezultat este similar, numai ca produsul scalar este inlocuit
prin o functie kernel neliniara. Hiperplanul se transforma intr-un spatiu multidimensional
al atributelor, numit feature space. Functia kernel poate fi:

Polinomiala (omogena): k ( xi , x j ) ( xi x j ) d

Polinomiala (neomogena): k ( xi , x j ) ( xi x j 1) d

Gaussiana (Gaussian Radial Basis): k ( xi , x j ) exp( xi x j ) , pentru >0.

Uneori se considera

.
2 2
Tangenta hiperbolica: k ( xi , x j ) tanh(lxi x j c) , pentru anumiti l>0 si c<0, cu

tanh(x)

e2x 1
.
e2x 1

Kernelul este legat de transformarea ( xi ) prin ecuatia k ( xi , x j ) ( xi ) ( x j ) Valoarea


w apartine spatiului transformat, cu w i yi ( xi ) . Produsul scalar cu w poate fi
i

calculat ca: w ( x) i yi k ( xi , x) . In general nu exista o valoare w astfel


i

incat w ( x) k (w, x) .

14

Pentru a construi un hiperplan optim, SVM foloseste un algoritm de antrenare iterativ,


care minimizeaza o functie eroare. Dupa forma functiei eroare, modelele SVM se impart
in 4 grupe distincte:

Classification SVM Type 1 (= C-SVM classification)

Classification SVM Type 2 (= nu-SVM classification)

Regression SVM Type 1 (= epsilon-SVM regression)

Regression SVM Type 2 (= nu-SVM regression)

In continuare rezumam fiecare model.


Classification SVM Type 1
Antrenarea presupune minimizarea functiei eroare:
N
1 T
w w Ci
2
i 1
Cu restrictia
yi (wT ( xi ) b) 1 i , i 0, i 1, N
C=constanta
w =vectorul coeficientilor
b=constanta
=parametri pentru date inseparabile
N=nr. de observatii ale setului de antrenare
yi =1 =etichetele claselor

x i =variabilele independente
Functia kernel transforma datele din inputuri (independente) in spatiul atributelor (feature
space).
CLASSIFICATION SVM TYPE 2

Se minimizeaza functia eroare:


1 T
1 N
w w i
2
N i 1
Cu restrictia
yi (wT ( xi ) b) i , i 0, i 1, N , 0
Intr-o regresie SVM, trebuie sa estimam dependenta functionala intre variabila dependenta
y si o multime de variabile independente x. Presupune, ca alte probleme de regresie, ca

15

relatia dintre variabilele independente si dependente este data de o functie determinista f la


care se adauga un zgomot.

Regresie SVM
y=f(x)+zgomot
Scopul este de a gasi o forma functionala pentru f care poate face predictii corecte asupra
unor noi observatii. In functie de forma functiei eraore, exista doua tipuri de modele de
regresie SVM.
REGRESSION SVM TYPE 1

Functia eroare este:


N
N
1 T
w w C i C i*
2
i 1
i 1
pe care o minimizam sub restrictiile:
wT ( xi ) b yi i*

yi wT ( xi ) bi i

i , i* 0, i 1, N
REGRESSION SVM TYPE 2

Functia eroare este:


1 T
1 N
w w C ( ( i i* ))
2
N i 1
pe care o minimizam sub restrictiile:
wT ( xi ) b yi i*

yi wT ( xi ) bi i

i , i* 0, i 1, N , 0

16

S-ar putea să vă placă și