4. Tukivektorikoneet Tukivektorikoneen (Support Vector Machine, SVM) keskeiset piirteet: Tehdään lineaarista luokittelua (tai regressiota) korkeaulotteisessa piirreavaruudessa. Laskentaa tehostetaan käyttämällä ydinfunktiota. Lineaarisen luokittelijan valinnassa maksimoidaan marginaalia ennustustarkkuuden parantamiseksi. 38
Ydinfunktio Käytämme edelliseltä luennolta tuttua kernel-trikkiä epälineaarisen ongelman muuntamiseen lineaariseksi. Olkoon Hilbertin avaruus H piirreavaruus, Φ: X H piirrekuvaus ja k: X X R vastaava ydinfunktio. Merkintöjen yksinkertaistamiseksi kirjoitamme jatkossa φ(x) = z (ja φ(x i ) = z i jne.). Sisätulot, ja normit ovat Hilbertin avaruudessa H, ellei muuta mainita. 39
Suurimman marginaalin hypertaso Olkoon w H ja b R. Muistetaan, että pisteen z etäisyys hypertasosta { z H w, z + b = 0 } on w, z + b. w Parametrit w ja b määrittelevät myös luokittelijan h(z; w, b) = { 1 jos w, z + b 0 1 muuten. Jos (z i, y i ) on datapiste, missä z i H ja y i { 1,+1 }, niin h( ; w, b) luokittelee pisteen oikein jos y i ( w, z i + b) > 0 väärin jos y i ( w, z i + b) < 0. 40
Yhdistämällä etumerkin ja etäisyyden saamme datapisteen (z, y) marginaalin hypertasomme suhteen: y( w, z + b). w Datapisteen (z i, y i ) marginaalin tulkinta: positiivinen marginaali: luokittelija oikeassa negatiivinen marginaali: luokittelija tekee virheen itseisarvo suuri: luokittelija varma luokituksesta itseisarvo pieni: luokittelija epävarma luokituksesta. Tarkastelemme nyt tilannetta, jossa data on piirreavaruudessa lineaarisesti erottuvaa eli joillakin w ja b kaikki datapisteet (z i, y i ) saavat positiivisen marginaalin. 41
Lineaarisesti erottuvalla datalla on ääretön määrä erilaisia hypertasoja, jotka kaikki luokittelevat opetusdatan oikein. Luonteva ajatus on valita näistä se, joka on mahdollisimman turvallinen siinä mielessä, että mikään datapiste ei ole lähelläkään tulla väärin luokitelluksi. Menettelylle voidaan esittää myös tilastotieteellisiä perusteluja. Siis haluamme, että kaikki marginaalit ovat suuria positiivisia lukuja. Tämä johtaa pienimmän marginaalin maksimointiin: valitaan parametreiksi ( ) 1 (w, b ) = arg max w,b w min (y i( w, z + b)). 1 i N 42
Olkoon µ = min 1 i N (y i( w, z i + b )) optimiratkaisun normeeramaton marginaali. Sijoitus w αw, b αb millä tahansa α > 0 jättää arvon 1 w min 1 i N (y i( w, z i + b)) muuttumattomaksi. Valitaan α = 1/µ; oletuksen mukaan µ > 0. Saadaan w = w /µ ja b = b /µ, joilla optimoitavan funktion arvo on sama kuin alkuperäisillä w ja b. Siis myös w ja b ovat ratkaisuja alkuperäiseen optimointiongelmaan, ja lisäksi min 1 i N ( yi ( w, z i + b ) ) = 1. 43
Voimme kirjoittaa alkuperäisen ongelman ( ) 1 maksimoi w min (y i( w, z + b)) 1 i N muotoon ( ) 1 maksimoi w min (y i( w, z + b)) 1 i N rajoitteella y i ( w, z i + b) 1 kaikilla 1 i N. Ottamalla ehto huomioon ja vaihtamalla maksimointi minimoimiseksi saadaan neliöllinen optimointiongelma Optimointiongelma 4.1: Muuttujat w H, b R minimoi w 2 rajoitteella y i ( w, z i + b) 1 kaikilla 1 i N 44
Konveksi optimointi (pikakertaus) Olkoot f ja p funktioita R d R. Tarkastellaan ongelmaa Optimointiongelma 4.2: Muuttujat w R d minimoi f(x) rajoitteella p(x) 0 Intuitiivinen tulkinta: hiukkanen liukuu pitkin maanpintaa, jonka korkeutta f esittää pisteessä x hiukkaseen kohdistuu painovoima f(x) viivaa p(x) = 0 pitkin kulkee aita, joka ei päästä hiukkasta ulos aidan tukivoima on kohtisuorassa aitaan nähden ja sisääpäin tukivoima λ p(x) jollain λ 0 ei tukivoimaa ellei hiukkanen koske aitaan jos λ 0 niin p(x) = 0, eli λp(x) = 0. 45
Jos hiukkasen on tasapainossa pisteessä, x, voimien summa on nolla eli f(x ) + λ p(x ) = 0 λ 0 λp(x ) = 0 Kohtuullisten säännöllisyysehtojen vallitessa nämä ovat välttämättömiä ehtoja sille, että x on optimointiongelman ratkaisu. Jos ongelma on lisäksi konveksi eli f ja p ovat konvekseja, ylläolevat ehdot ovat riittäviä sille, että x on optimointiongelman ratkaisu. Funktio g: R d R on konveksi, jos g(αx + (1 α)y) αg(x) + (1 α)g(y) kaikilla x, y ja kaikilla 0 α 1. Riittävä ehto konveksiudelle on, että toinen derivaatta on kaikkialla ei-negatiivinen. 46
Yleinen muoto konveksille optimointiongelmalle on Optimointiongelma 4.3: muuttujat x R d missä minimoi f(x) rajoitteilla p i (x) 0 kun i = 1,..., m q j (x) = 0 kun j = 1,..., n f ja p 1,..., p m ovat konvekseja funktioita R d R q 1,..., q n ovat affiineja funktioita R d R eli muotoa q j (x) = w j, x + b j joillain w j R d ja b j R. Tämän ongelman Lagrangen funktio on m L(x; λ, β) = f(x) + λ i p i (x) + n β j q j (x), missä uusia muuttujia λ i ja β j sanotaan Lagrangen kertoimiksi. j=1 47
Tiettyjen säännöllisyysehtojen vallitessa x on konveksin optimointiongelman (4.jotain) ratkaisu, jos ja vain jos se toteuttaa Karush-Kuhn-Tucker-ehdot (KKT): L(x; λ, β) = 0 (10) p i (x ) 0 kun i = 1,..., m (11) q j (x ) = 0 kun j = 1,..., n (12) λ i 0 kun i = 1,..., m (13) λ i p i (x ) = 0 kun i = 1,..., m (14) missä ehdon (1) gradientti on muuttujien x suhteen. Ei-konvekseille ongelmille KKT-ehdot ovat kohtuullisten säännöllisyysehtojen vallitessa välttämättömät, mutta eivät riittävät. 48
Ongelman duaalifunktio on g: R m R n R { }, missä g(λ, β) = inf L(x; λ, β) x R d = inf x R d f(x) + m λ i p i (x) + n β j q j (x). Duaalifunktio on konkaavi, vaikkei primaali olisikaan konveksi. Määrittelemme nyt duaaliongelman: Optimointiongelma 4.4: muuttujat λ R m, β R n maksimoi g(λ, β) j=1 rajoitteella λ i 0 kun i = 1,..., m. 49
Aina kun x toteuttaa rajoitteet ja λ i 0, pätee g(λ, β) f(x). Olkoot x ja (λ, β ) primaalin ja duaalin ratkaisut. Tiettyjen säännöllisyysehtojen vallitessa konveksille ongelmalle pätee vahva duaalisuus: ja lisäksi g(λ, β ) = f(x ), x = arg min x R d L(x; λ, β ) 50
Saamme siis erään reseptin konveksin optimointiongelman ratkaisemiseksi: 1. Muodosta Lagrangen funktio L. 2. Ratkaise alkuperaiset muuttujat Lagrangen kertoimien avulla: x (λ, β) = arg min x R d 3. Muodosta duaalifunktio: L(x; λ, β). g(λ, β) = L(x (λ, β); λ, β). 4. Maksimoi duaalifunktio; saat Lagrangen kertoimien optimiarvot (λ, β ). 5. Suora sijoitus antaa alkuperäisten muuttujien optimiarvon: x = x (λ, β ). Käytännössä tämä ei usein toimi näin suoraviivaisesti, vaan vaiheessa 2 saadaan joitain ehtoja, joista vaiheessa 5 alkuperäiset muuttujat voidaan päätellä. 51
Esimerkki 4.5: Halutaan minimoida f(x, y) = (x 3) 2 + (y 3) 2 rajoitteella p(x, y) 0, missä p(x, y) = 2x + 3y 5. Muodostetaan Lagrangen funktio L(x, y, λ) = (x 3) 2 + (y 3) 2 + λ(2x + 3y 5). Ratkaistaan x ja y Lagrangen kertoimen λ avulla: { x y L(x, y, λ) = 0 L(x, y, λ) = 0 { x = 3 λ y = 3 3 2 λ. 52
Muodostetaan duaalifunktio (3 λ, 3 32 ) λ, λ g(λ) = L Maksimoidaan duaalifunktio: g (λ) = 0 λ = 20 13 Sijoitetaan takaisin primaaliin: λ = 20 13 Saadaan optimiarvo f ( 19 13, 9 ) 13 = 13 4 λ2 + 10λ. g(λ) = 100 13. { x = 3 λ = 19 13 y = 3 3 2 λ = 9 13. = 100 13. 53
Kovan marginaalin tukivektorikone Edellä johdettu marginaalin maksimointi voidaan esittää seuraavasti: Optimointiongelma 4.6: Muuttujat w H, b R minimoi 1 2 w 2 rajoitteella 1 y i ( w, z i + b) 0 kaikilla 1 i N. Saatavaa algoritmia sanotaan kovan marginaalin tukivektorikoneeksi, koska marginaalirajoite on ehdoton. Näemme jatkossa myös pehmeän marginaalin tukivektorikoneen, joka sopii paremmin kohinaiselle datalle. Muodostetaan Lagrangen funktio: L(w, b, a) = 1 2 w 2 + a i (1 y i ( w, z i + b)), missä Lagrangen kertoimilla a 1,..., a N on rajoitteet a i 0 a i (1 y i ( w, z i + b)) = 0. 54
Eliminoidaan alkuperäiset muuttujat Lagrangen funktiosta L(w, b, a) = 1 2 w 2 + asettamalla derivaatat nollaan: a i (1 y i ( w, z i + b)) L w = 0 w = L b = 0 a i y i z i a i y i = 0. Sijoittamalla nämä L:ään saadaan duaalifunktio L(a) = a i 1 2 j=1 a i a j t i t j z i, z j. 55
Ottamalla huomioon z i = φ(x i ) saadaan duaalifunktio lausutuksi ydinfunktion avulla: L(a) = a i 1 2 j=1 Tehtävänä on maksimoida tämä rajoitteilla a i 0 a i y i = 0. a i a j t i t j k(x i, x j ). kun i = 1,..., N Tämä on (etumerkin vaihdon jälkeen) normaali neliöllinen optimointiongelma. Huomaa, että ydinfunktion semidefiniittisyysehdon takia L on konkaavi. 56
Neliölliseen optimointiin on runsaasti hyviä ohjelmistoja. Tässä kuitenkin muuttujien a i lukumäärä N on sama kuin otoskoko, eli jopa kymmeniä tuhansia. Ongelmia voi siis tulla. Tätä nimenomaista ongelmaa varten on kehitetty algoritmeja, jotka hyödyntävät ongelman erityispiirteitä ja ovat yleensä ilmaisjakelussa verkossa (kernel-machines.org). Viimeaikaisia konferenssiartikkeleita selaamalla saa jonkinlaisen käsityksen tarjonnasta. Silti suurten aineistojen käsittelemiseen voi mennä päiviä. 57
Oletetaan nyt, että duaaliongelman ratkaisu a on löydetty. Olkoot w ja b vastaava primaalin ratkaisut. Tarkastellaan rajoitteita: a i 0 y i ( w, z i + b) 1 0 a i (y i ( w, z i + b) 1) = 0. Koska w = N a iy i z i, piirrevektorit z i kontribuoi lopputulokseen vain jos a i 0. Näitä z i sanotaan tukivektoreiksi. Tukivektorilla z i pätee y i ( w, z i + b) = 1 eli se on tasan etäisyydellä 1 luokittelijan hypertasosta. Siis tukivektorit puristavat hypertason paikalleen niin, ettei se mahdu liikkumaan ilman että jokin tukivektori tunkeutuisi yksikkömarginaalin sisäpuolelle. Tyypillisesti tukivektoreita on vain vähäinen osa syötteistä. 58
Kun saadaan uusi x X, malli ennustaa sen luokaksi y = sign( w, φ(x) + b) ( N ) = sign a i y i z i, φ(x) + b ( ) = sign a i y i k(x i, x) + b. i S missä S = { i a i 0 } on tukivektorien indeksijoukko. Arvon b laskemiseksi todetaan, että jos a i 0 niin y i j S a j y j k(x j, x i ) + b = 1. Tästä saadaan b valitsemalla mitkä tahansa x i ja y i, joilla a i 0. 59
Numeerisesti vakaampaa on kertoa y i j S a j y j k(x j, x i ) + b = 1 puolittain luvulla y i ja ottaa huomioon yi 2 = 1. Summaamalla yli joukon S saadaan b = 1 ti y j a j k(x j, x i ). S i S j S 60
Pehmeän marginaalin tukivektorikone Riittävän rikkaassa piirreavaruudessa melkein mikä tahansa data on lineaarisesti erottuvaa. Tämä ei tarkoita, että oppimisvirhe kannattaisi aina painaa nollaan, sillä ylisovittamisen vaara on ilmeinen. Olkoon f(x) = w, φ(x) + b funktio, jota malli käyttää luokitukseen. Kovan marginaalin tukivektorikoneen voidaan tulkita minimoivan virhefunktiota { 0 jos yf(x) 1 E (y, f(x)) = muuten. Pehmeän marginaalin tukivektorikoneen virhefunktiona on { 0 jos yf(x) 1 E hinge (y, f(x)) = 1 yf(x) muuten. Siis virhefunktio alkaa kasvaa lineaarisesti, kun marginaali putoaa alle sallitun. Tämä voidaan kirjoittaa muotoon E hinge (y, f(x)) = max {0,1 yf(x) }. 61
Virhefunktiota E hinge (y i, f(x i )) ei sellaisenaan ole mukava käsitellä numeerisessa optimoinnissa, koska se ei ole jatkuvasti derivoituva. Otamme käyttöön apumuuttujat ξ i, joiden intuitiivinen tulkinta on ξ i = E hinge (y i, f(x i )). Minimoimme siis funktiota ξ i, joka on uusien muuttujien suhteen lineaarinen. Haluttu muuttujien tulkinta saadaan aikaan rajoitteilla ξ i 0 ξ i 1 y i f(x i ). Koska ξ i on minimoitavana, saadaan haluttu tulos ξ i = max {0,1 y i f(x i ) }. 62
Koska virhefunktiossa E hinge on tavoitemarginaaliksi kiinnitetty 1, myös funktiota f on jollain lailla rajoitettava. Muuten funktion f kertominen positiivisella vakiolla muuttaisi virhefunktiota, mutta jättäisi mallin ennusteet ennalleen, mikä ei olisi mielekästä. Teemme tämän säännöllistämällä, jolloin optimointiongelmasta tulee lopulta samankaltainen kuin kovan marginaalin tapauksessa. Minimoimme siis funktiota C ξ i + 1 2 w 2, i=i missä C > 0 on vakio. Käytännössä C määrätään ristiinvalidoinnilla. Suuri C saa mallin ylisovittamaan, pieni C alisovittamaan. Rajalla C saadaan kovan marginaalin tukivektorikone. Rajalla C 0 saadaan datasta riippumatta aina ulos pelkkää nollaa. 63
Ongelma tulee muotoon Optimointiongelma 4.7: Muuttujat w H, b R, ξ R N minimoi C ξ i + 1 2 w 2 i=i rajoitteilla 1 y i ( w, z i + b) ξ i 0 kaikilla 1 i N ξ i 0 kaikilla 1 i N. Lagrangen funktio on L(w, b, ξ; a, µ) = C ξ i + 1 2 w 2 µ i ξ i + i=i a i (1 y i ( w, z i + b) ξ i ), missä a i 0 ja µ i 0 ovat Lagrangen kertoimet. 64
Eliminoidaan alkuperäiset muuttujat duaalin muodostamiseksi: L w = 0 w = L b = 0 a i y i z i a i y i = 0 L ξ i = 0 C a i µ i = 0. Koska a i 0 ja ξ i 0, viimeinen ehto implikoi 0 a i C. 65
Sijoittamalla edellisen kalvon tulokset Lagrangen funktioon saadaan duaalifunktio L(a) = a i 1 a i a j y i y j k(x i, x j ), 2 j=1 missä otimme ydinfunktion käyttöön kuten kovan marginaalin tapauksessa. Muuttujat µ i eliminoituivat. Rajoitteet ovat nyt 0 a i C a i y i = 0. 66
Duaalin numeerista ratkaisemista ja parametrin b laskemista koskee sama kuin kovan marginaalin tapauksessa. Oleellisin ero kovan marginaalin tapaukseen on laatikkorajoite 0 a i C. Kovalla marginaalilla rajoite oli vain 0 a i. Intuitiivisesti laatikkorajoite estää mitään yhtä piirrevektoria saamasta liian suurta painoa. Kovan marginaalin tapauksessa jos jokin piirrevektori z i olisi jäämässä marginaalin sisään, sen painoa a i ollaan valmiit kasvattamaan mielivaltaisen paljon, jotta hypertaso saadaan riittävälle etäisyydelle. 67
Kuten kovan marginaalin tapauksessa, sanomme että z i on tukivektori, jos a i 0. Primaalin KKT-ehdoista saadaan tukivektorille z i y i ( w, z i + b) = 1 ξ i 1, eli tavoitemarginaali 1 ei ainakaan ylity. Jos a i < C, niin µ i > 0, jolloin edelleen KKT-ehdosta µ i ξ i = 0 seuraa ξ i = 0 eli z i saa marginaalin tasan 1. Nillä tukivektoreilla z i, joilla marginaali on aidosti pienempi kuin 1, pätee a i = C. Jos ξ i > 1, niin z i saa negatiivisen marginaalin eli tulee väärin luokitelluksi. 68
ν-tukivektorikone Käytännössä pehmeän marginaalin tukivektorikoneen käyttöä hankaloittaa, että vakion C arvolla ei ole mitään intuitiivista merkitystä. Tätä varten ν-tukivektorikoneessa otetaan käyttöön intuitiivisempi parametrisointi. Valitaan 0 < ν < 1 ja otetaan lähtökohdaksi Optimointiongelma 4.8: Muuttujat w H, b R, ξ R N, ρ R minimoi C N ξ i + 1 2 w 2 Cνρ i=i rajoitteilla ρ y i ( w, z i + b) ξ i 0 kaikilla 1 i N ρ 0 ξ i 0 kaikilla 1 i N. Olemme siis ottaneet marginaalin ρ mukaan optimoitavaksi muuttujaksi sen sijaan, että se olisi kiinteästi 1. 69
Samaan tapaan kuin edellä saadaan duaaliongelma Optimointiongelma 4.9: maksimoi 1 2 a i a j y i y j k(x i, x j ) i=i j=1 rajoitteilla 0 a i C/N kaikilla 1 i N a i y i = 0 a i Cν. Nyt huomataan, että vakion C muuttaminen arvoon C = αc muuttaisi ratkaisussa a i -muuttujia tekijällä α ja kohdefunktio arvoa tekijällä α 2, mutta ei muuttaisi luokittelijaa. Siis parametrin C valinnalla ei ole väliä. Yksinkertaisuuden vuoksi valitsemme C = 1. 70
Valinnan C = 1 jälkeen rajoitteet ovat 0 a i 1/N a i y i = 0 a i ν. Tämä on samanlainen laatikkorajoite kuin alkuperäisessä pehmeän marginaalin tukivektorikoneessa. Jos y i ( w, z i + b) < ρ, sanomme että vektori z i on marginaalivirhe. Tällöin ξ i > 0 ja a i = 1/N analogisesti pehmeän marginaalin tukivektorikoneen kanssa. Katsomalla hieman tarkemmin rajoitteita ja niiden suhdetta primaaliin voidaan osoittaa, että marginaalivirheitä voi olla korkeintaan νn kappaletta. Siis parametri ν voidaan asettaa vastaamaan sopivaksi katsottua marginaalivirheiden osuutta. 71
Mitä jäi käsittelemättä: tukivektorikoneen ja ydinten sovellukset regressioon, PCA:han, moniluokkaiseen luokitteluun, yksiluokkaiseen luokitteluun,... ydinfunktiot verkoille, teksteille,... tukivektorikoneen yleistysvirheen matemaattinen analyysi optimointialgoritmit. Lisämateriaalia: J. Shawe-Taylor ja N. Cristianini: Kernel Methods for Pattern Analysis. paljon ydinkonstruktioita, ajantasainen teoriakatsaus S. Boyd ja L. Vandenberghe: Convex Optimization. eräs hyvä katsaus optimointiteoriaan kernel-machines.org: artikkeleita, koodia, dataa 72