Strojno učenje Metoda potpornih vektora (SVM Support Vector Machines) Tomislav Šmuc
Generativni i diskriminativni modeli Diskriminativni Generativni (Učenje linije koja razdvaja klase) Učenje modela za svaku pojedinu klasu 2
Diskriminativni algoritmi x 2 LDA C( x) arg max ( x) k C k x 2 { x : ( x) ( x)} k l QDA 6-Mar-13 TS: Strojno učenje Linearne metode & SVM 3
Koja hiper-ravnina je najbolja? Separabilni problem: Između točaka možemo provudi velik broj (beskonačan) ploha koje dobro razdvajaju primjere dvije klase 4
Metoda potpornih vektora (metoda jezgrenih funkcija) SVM - Support Vector Machines SVM nalazi hiper-ravninu koja ima najvedu marginu razdvajanja klasa margina - udaljenost između kritičnih točaka najbliže blizu plohi razdvajanja (en. decision boundary) Intuicija: Ako ne postoje točke blizu plohe razdvajanja, to znači da nemamo nesigurnih klasifikacijskih odluka!? 5
Druga intuicija Ako postavimo što je mogude vedi razmak (marginu) između dviju klasa, postoji manje mogudnosti izbora za funkciju razdvajanja kapacitet modela se smanjuje (manje šanse za overfitting)!! 6
SVM dakle maksimiziraju marginu m oko hiperravnine (plohe) razdvajanja. (en. large margin classifiers) Potporni vektori Kod SVM - funkcija odluke definirana je preko podskupa primjera iz skupa za učenje tzv. Potpornih vektora (en. support vectors) Problem određivanja SV: kvadratni optimizacijski problem (en. quadratic programming) Max. margina 7
Separabilni i neseparabilni problemi Ako se pokaže da problem nije linearno separabilan: - Dozvoljene su greške uz penaliziranje Osnovni princip ostaje: - Ploha razdvajanja u principu mora što bolje razdvajati klase TS: Strojno učenje Linearne metode & 6-Mar-13 8 SVM
SVM linearno separabilni podaci (2 klase) Geometrijska intuicija - konveksna ljuska (Convex hull) K.LJ. najmanji konveksni skup koji sadrži sve točke skupa točaka {x i } Za dani skup točaka {x i } K.LJ. je skup točaka definiran sa: Separabilni problem Neseparabilni problem za dva skupa {x i } i {y i } vrijedi ako se njihove K.LJ. ne preklapaju onda se radi o linearno separabilnom problemu! 9
SVM linearno separabilni podaci (2 klase) Geometrijska intuicija - Konveksne ljuske K.LJ. najmanji konveksni skup koji sadrži sve točke Zadatak nadi konveksnu ljusku za svaku od klasa Nadi dvije najbliže točke u dvije konveksne ljuske Odrediti ravninu koja prolazi između te dvije točke 10
Formalizacija- određivanje maksimalne margine w: normala na hiperravninu razdvajanja x i : primjer (točka) i y i : klasa primjera i ( +1/-1) Klasifikator je određen funkcijom sign(w T x i + b) margina x i je određena sa y i (w T x i + b) 11
Pojam - geometrijske margine Primjeri najbliže plohi su potporni vektori. Margina ρ plohe razdvajanja je širina razdvajanja između potpornih vektora suprotnih klasa x w r ρ Udaljenost između plohe i točke x r w T x b w 12
Linearni SVM - izvod Pretpostavimo da vrijedi da se sve točke nalaze na distanci 1 od plohe razdvajanja Tada vrijede dva ograničenja na skupu primjera za učenje {(x i,y i )} w T x i + b 1 ako je y i = 1 w T x i + b -1 ako je y i = -1 Za potporne vektore (točke koje se nalaze na margini), ove nejednakosti su jednakosti; S obzirom da je udaljenost svakog primjera od plohe razdvajanja: T w x b r w 2 Margina je: w TS: Strojno učenje Linearne metode & 6-Mar-13 13 SVM
Linearni SVM ρ w T x a + b = 1 Ploha razdvajanja w T x + b = 0 w T x b + b = -1 Uz ograničenja: min i=1,,n w T x i + b = 1 Dolazimo do vrijednosti za marginu razdvajanja: w T (x a x b ) = 2 ρ = x a x b = 2/ w w T x + b = 0 14
Linearni SVM - formulacija optimizacijskog problema Pronađi w i b tako da je 2 => maksimalna w a za sve zadane {(x i, y i )} mora vrijediti: w T x i + b 1 ako je y i =1; w T x i + b -1 ako je y i = -1 15
Linearni SVM - formulacija optimizacijskog problema Bolja formulacija kao minimizacijski problem (kvadratni optimizacijski problem uz ograničenja): min w = max (2/ w ) Nadi w i b - takve da je: Φ(w) =½ w T w je minimalno; A za sve {(x i,y i )} vrijedi : y i (w T x i + b) 1 16
Rješavanje optimizacijskog problema => optimizacija uz ograničenja Nađi w i b - takve da je: Φ(w) =½ w T w - minimalno; A za sve {(x i,y i )} vrijedi : y i (w T x i + b) 1 Ova formulacija minimizacija kvadratne funkcije uz linearna ograničenja (nejednakosti) Dobro poznati i rješivi problem puno (više ili manje složenih) algoritama za njihovo rješavanje (MATLAB, MATHEMATICA) Standardno za SVM - prevođenje u dualni problem u kojem se tzv. Lagrangeovim multiplikatorima (težinski faktori koji penaliziraju svako ograničenje iz primalnog problema) 17
Lagrange-ovi multiplikatori => optimizacija uz ograničenja x * 18
Lagrange-ovi multiplikatori => optimizacija uz ograničenja x A 19
Lagrange-ovi multiplikatori => optimizacija uz ograničenja Slučaj sa ograničenjem u obliku nejednakosti f(x) Slučaj sa ograničenjem u obliku jednakosti f(x) f(x) b) Ograničenje nije aktivno Min f(x) (neograničeni minimum) Min L(x) (ograničeni minimum f(x) 20
Lagrange-ovi multiplikatori => optimizacija uz ograničenja 21
Lagrange-ova funkcija i min-max dualnost Dualna formulacija: TS: Strojno učenje Linearne metode & 6-Mar-13 22 SVM
SVM - optimizacijski problem Dualna formulacija: Nadi λ 1 λ N tako da je: Q(λ) =Σ λ i - ½ΣΣ λ i λ j y i y j x it x j - maksimalno Te da vrijedi (1) Σ λ i y i = 0 - i,j =1,N (2) λ i 0 α i TS: Strojno učenje Linearne metode & 6-Mar-13 23 SVM
Rješenje optimizacijskog problema w =Σ λ i y i x i b= y k - w T x k za bilo koji x k za koji je α k 0 Svaki α i koji je različit od 0 zapravo znači da je taj x i potporni vektor. Konačno klasifikacijska funkcija ima ovaj oblik: f(x) = Σ λ i y i x it x + b Rješenje je proporcionalno sumi umnožaka - unutarnjih produkta x it x između nove točke (primjera) x i svih potpornih vektora x i! Treba zapamtiti i da je u rješavanju optimizacijskog problema također korišten produkt x it x j između svih parova točaka skupa za učenje. 24
Što ako problem nije linearno separabilan? Dodajemo nove varijable ξ i (en. slack variables) - dozvoljavanje krivih klasifikacija za teške ili šumovite primjere ξ i ξ i 25
Izvod SVM s mekanom marginom (en. Soft margin) Stara formulacija: Nađi w i b - takve da je: Φ(w) =½ w T w is minimalno; A za sve {(x i,y i )} vrijedi : y i (w T x i + b) 1 Nova formulacija sa ξ i : Nađi w i b - takve da je: Φ(w) =½ w T w + CΣξ i - minimalno; A za sve {(x i,y i )} vrijedi: y i (w T x i + b) 1 ξ i te da vrijedi ξ i 0 za sve i 26
Rješenje - SVM s mekanom marginom (en. Soft margin) Dualni problem za SVM s mekanom marginom : Nađi λ 1 λ N tako da je max Q(λ) =Σ λ i - ½ΣΣ λ i λ j y i y j x it x j Te da vrijedi (1) Σ λ i y i = 0 (2) 0 λ i C λ i I dalje vrijedi: x i sa λ i >0 su potporni vektori. U dualnoj formulaciji nema slack varijabli, samo ograničenje na λ (λ < C) Rješenje dualnog problema (soft margin): w =Σ λ i y i x i b= y k (1- ξ k ) - w T x k gdje je k = argmax λ k k w nije potreban kod procesa klasifikacije kao i prije! f(x) = λ i y i x it x + b 27
Klasifikacija Uz novu točku (x 1,x 2 ), Odrediti projekciju na normalu plohe razdvajanja: 2 dimenzije: p = w 1 x 1 +w 2 x 2 +b. To ustvari znači (wx + b = Σ λ i y i x it x + b) Dodatno => ako stavimo neku graničnu mjeru t >0 (pouzdanost) f > t: => 1 f < -t: => -1 Inače: suzdržan 28
Linearni SVM - sažetak Klasifikator je posebno određena ploha razdvajanja (en. separating hyperplane) Najvažnije točke - točke iz skupa za učenje koje definiraju plohu razdvajanja - potporni vektori Potporni vektori se pronalaze optimizacijskim algoritmima Rješavani problem je kvadratni optimizacijski problem s linearnim ograničenjima. U dualnoj formulaciji problema i rješenja potporni vektori odnosno točke iz skupa za učenje se pojavljuju u skalarnim produktima: Nađi λ 1 λ N tako da je Q(λ) =Σ λ i - ½ΣΣ λ i λ j y i y j x it x j (1) Σ λ i y i = 0 - maksimalno i vrijedi: (2) 0 λ i C λ i f(x) = Σ λ i y i x it x + b 29
Nelinearni SVM Za problem koji su linearno separabilni (i uz razumni šum) Linearni SVM je OK : No, što ako to ne vrijedi? 0 x 0 x mapiranje podataka u (još) više-dimenzionalni prostor? : x 2 0 TS: Strojno učenje SVM 6-Mar-13 30 x
Nelinearni SVM: prostori novih dimenzija (atributa) Osnovna ideja: originalni prostor varijabli možemo mapirati u novi-višedimenzionalni prostor - gdje de naš problem biti (linearno) separabilan (rješiv) Φ: x φ(x) 31
Kernel trik Linearni SVM - skalarni produkt između vektora K(x i,x j )=x it x j Transformacija kojom svaku točku mapiramo u neki novi prostor Φ: x φ(x) Sada bi skalarni produkt trebao izgledati drukčije: K(x i,x j )= φ(x i ) T φ(x j ) Kernel funkcija - funkcija koja korespondira nutarnjem produktu u nekom ekspandiranom prostoru novih varijabli 32
Kernel trik Primjer: originalni prostor 2-dimenzionalni vektori x=[x 1 x 2 ]; Neka je K(x i,x j )=(1 + x it x j ) 2, Pokažimo da vrijedi K(x i,x j )= φ(x i ) T φ(x j ), ako je φ(x) = [1, x 12, 2 x 1 x 2, x 2 2, 2x 1 2x 2 ] K(x i,x j )=(1 + x it x j ) 2,= 1+ x i12 x j1 2 + 2 x i1 x j1 x i2 x j2 + x i22 x j2 2 + 2x i1 x j1 + 2x i2 x j2 = = [1 x i1 2 2 x i1 x i2 x i2 2 2x i1 2x i2 ] T [1 x j1 2 2 x j1 x j2 x j2 2 2x j1 2x j2 ] = φ(x i ) T φ(x j ) 33
Kerneli Zašto? Omogudavaju pretvaranje neseparabilnih problema u separabilne. Mapiranje u bolje (reprezentacijski) višedimenzionalne prostore Uobičajeni kerneli Linearni K(x i,x j ) = (x it x j ) Polinomijalni K(x i,x j ) = (1+x it x j ) d RBF K xi x 2 2 ( xi,x j ) e j Sigmoid T K( x,x ) tanh( x x r) i j i j 34
Linearni SVM efekt različitih vrijednosti parametra C Prisjetimo se gdje smo vidjeli C Φ(w) =½ w T w + CΣξ i 35
Odabir kernela efekti Polinomni kerneli (C=const.) Linearni kernel polinom 2 stupnja polinom 5 stupnja 36
Odabir parametara kernela efekti Gaussian kernel, C=const. 37
Odabir parametara parametara kernela i faktora C RBF kernel, C=1, =1 RBF kernel, C=10, =1 RBF kernel, C=100, =1 RBF kernel, C=1, =10 RBF kernel, C=10, =10 RBF kernel, C=100, =10 38
SVM - Sa dvije klase na više klasa Vedina SVM metoda je za binarne klasifikacijske probleme Uobičajen pristup za višeklasne probleme je preko redukcije problema na više binarnih klasifikacijskih problema, npr. za K-klasni problem: Jedan-nasuprot-ostalih => (K binarnih klasifikatora) Svaki-protiv-svakog => (K*(K-1)/2 binarnih klasifikatora) ECOC Error Correcting Output Codes ( u jednom od slijededih predavanja) 39
SVM Regresija Problem 40
Karakteristike SVM-a Jedna od najboljih metoda strojnog učenja ukupno gledajudi Popularna i vrlo dobri rezultati text mining U praksi mnoge druge metode rade otprilike isto dobro Postoji mnogo komparacija koje to pokazuju Važno je: Razumijevanje i iskustvo za efektivno korištenju Odabir kernela, odabir parametara (C, parametri kernela) Dobro je kombinirati selekciju varijabli i SVM u praktičnim primjerima RapidMiner, Matlab, R (više SVM varijanti + vizualizacija) 41
Sažetak Definiranje plohe razdvajanja preko potpornih vektora Potporni vektor = kritične točke (primjeri) najbliži plohi razdvajanja Pojam kernela: Modan alat za mapiranje u visoko-dimenzionalne prostore, kao i (re)definiranje metrika sličnosti Samostalni paketi i okruženja koja imaju SVM: SVM Torch; SVMLight; LibSVM RapidMiner, WEKA, MATLAB, R... www.kernel-machines.org 42
Literatura SVM literatura i materijali The Elements of Statistical Learning Hastie, Tibshirani, Friedman (1st ed - ch. 11) A Tutorial on Support Vector Machines for Pattern Recognition (1998) Christopher J. C. Burges Christopher M. Bishop Pattern recognition and machine learning, Springer, 2006. Kristin P. Bennet and Campbell Support Vector Machines: Hype or Hallelujah? SIGKDD Explorations, vol. 2, 2000 A User's Guide to Support Vector Machines, Ben-Hur & Weston T. Joachims, Learning to Classify Text using Support Vector Machines. Kluwer, 2002. Classic Reuters data set: http://www.daviddlewis.com /resources /testcollections/reuters21578/ 43