Support Vector Machines Johannes Uén 86015-1450 tf05ju1@student.th.se Handedare: Petter Strandmark
Introduktion I projektet har teorin för Support Vector Machines (SVM) gåtts igenom och impementerats i MatLab. Träningen av SVMen är impementerade med hjäp av Sequentia Minima Optimization (SMO) som möjiggör träning även när antaet träningsdata är vädigt stort. För att sedan testa impementeringen har kassi- cering gjorts på standarddatabasen USPS. 1 Support Vector Machines SVM är en kassiceringsmetod som i dess enkaste form separerar data i två oika kasser. Teorin byggs upp från det enkaste faet med två kasser som kan separeras med ett hyperpan, ti faet med godtyckigt anta kasser som ej går att separera. x w. x - b = 1 w. x - b = 0 w. x - b = -1 w x 1 Figur 1: Geometrisk förkaring av era begrepp i häredningen när datan är tvådimensione, biden är från []. 1.1 Linjärt separabe data Träningsdatan är av formen (x 1, y 1 ),... (x, y ) x R n, y i { 1, 1}, där x i är en n-dimensione vektor innehåande data och y i anger viken kass datan tihör (-1 eer 1). De två kasserna kan man separera med ett n-dimensionet hyperpan, detta kan på an form skrivas som w x + b = 0, där w är panets normariktning och b förskjutningen från origo. Figur (1) visar ett sådant hyperpan i faet då datan enbart har två dimensioner. Vi inför nu även krav på hur ångt ifrån hyperpanet data tihörande de två kasserna får igga, detta görs genom att införa två nya hyperpan. Detta kan ses streckade injer i gur (1). Vi tvingar a data att igga på de två hyperpanen eer ängre bort, formet kan detta uttryckas för de punkter som tihör kassen y i = 1 som och de andra punkterna som tihör kassen y i = 1 som w x i + b 1 (1) w x i + b 1. () Detta kan snyggt skrivas om med hjäp av y i ti ett enda krav för aa punkter:
y i (w x i + b) 1. (3) Datan som igger precis på de två begränsande hyperpanen kaas supportvektorer. De uppfyer w x 1 + b = 1 och w x + b = 1 där x 1 är en supportvektor från den ena kassen och x är från den andra kassen. Detta kan skrivas som w (x 1 x ) =. Avståndet mean de två hyperpanen ges av w (x 1 x ) w = w. För att göra vår kassicering så robust som möjigt vi vi hitta det hyperpanet som maximerar avståndet mean panen, vi ska atså minimera w. Detta är ekvivaent med det ättare probemet att minimera 1 w w. Sammanfattningsvis får vi det kvadratiska minimeringsprobemet min w,b 1 w w under bivikoret y i (w x i + b) 1 (4) Viket ger oss Lagrangefunktionen: L (w, b, λ) = 1 w w λ i (y i (x i w + b) 1) (5) Vi passar nu även på att häreda det duaa probemet ti (4). Från [1] vet vi att den optimaa ösningen ti (4) måste uppfya Karush-Kuhn-Tucker (KKT) vikoren. Dvs b.a. att Detta ger oss L (w, b, λ) = 0 L (w, b, λ) w L (w, b, λ) b Sätter vi in (6) och (7) i Lagrange funktionen (5) får vi D (λ, x, y) = 1 j=1 = λ i y i = 0 (6) = w λ i y i x i = 0 w = λ i y i x i (7) λ i λ j y i y j x i x j j=1 λ i λ j y i y j x i x j λ i y i b + λ i Använder vi (6) och det faktum b är en skaär som går att ytta utanför summeringen får vi D (λ, x, y) = λ i 1 j=1 λ i λ j y i y j x i x j At beroende av w har försvunnit och direkt fås det duaa probemet som max λ λ i 1 j=1 λ iλ j y i y j x i x j under bivikoret λ i 0, i, och λ iy i = 0. (8) Det duaa probemet har fördeen att datan x enbart förekommer i en skaärprodukt. Om vi nu öser (8) och får fram λ kan vi räknade fram w från (7) som w = λ i y i x i. (9) 3
Från [1] hämtar vi compementary sackness principe, dvs att för de Langrangemutipikatorer som är aktiva ( 0) gäer ikhet i (1) och (), viket ger oss b som: w x i + b = 1 b = 1 w x i (10) för de i där motsvarande Langrangemutipikatorer λ i 0. Vi har nu fått ut ösningen ti vårat primaa probem från ösningen ti det duaa probemet. Vi kan nu tisut kassicera ny data x via besutsfunktionen. ( ) f (x) = sign ((w x) + b) = sign λ i y i x i x + b (11) Dvs vi kassicerar data i någon av kasserna 1 och 1, utifrån viken sida av vårat framräknade hyperpan datan igger. För att kassicera en okänd data x så behövs enbart supportvektorerna (den datan som har noskid agrangemutipikator). Eftersom dessa i de ara esta fa enbart består av bråkde av den totaa datamängden kommer supportvektorerna att vara gesa och därmed kommer skaärprodukten i (11) att kunna beräknas snabbt och därmed kommer det även gå snabbt att kassicera ny data. 1. Icke-injärt separabe data Om datan inte går att separera med ett hyperpan så kan man avbida datan med en oinjär funktion ti högre dimension och i denna högre dimension hitta ett hyperpan som separerar den. Om vi kaar funktionen som avbidar x på en högre dimension för φ (x), så ser vi att det duaa probemet (8) förekommer datapunkterna enbart innanför en skaärprodukt. Så istäet för att byta dimensionen på aa punkter, utföra skaärprodukt och byta tibaka dimensionen kan vi utföra skaärprodukten direkt i den högre dimensionen. Detta trick gör SVMs snabba. Vi inför kärnan K (x, y) := (φ (x) φ (y)). Det nns många exempe på kärnor som ämpar sig bra, t.ex de poyonomiea: K (x, y) = γ (x y) n, n Z +, γ > 0 (1) och de radiea basfunktionerna (RBF): K (x, y) = exp ( γ x y ) γ > 0 (13) För att visa att detta faktiskt hjäper oss betrakta kärnan K (x, y) = (x y) i det tvådimensionea faet x = (x 1, x ), y = (y 1, y ). Omskrivet bir detta (x y) = (x 1 y 1 + x y ) = x 1y 1 + x y + x 1 y 1 x y = ( x 1, x, x 1 x 1 ) ( y 1, y, y 1 y ) = (φ (x) φ (y)) Där vi identierar φ (x) = ( x 1, x, x 1 x 1 ). Dvs via denna skaärprodukt så går vi från R ti R 3 oinjärt. Ett exempe en oinjär avbidning kan ses i gur (). Om vi istäet för att använda oss φ (x) direkt bara använder oss av vår nya kärna kan det duaa probemet nu skrivas som maximera λ i 1 j=1 λ iλ j y i y j K (x i, x j ) under bivikoret λ i 0, i, och λ iy i = 0 på samma sätt kan nu b fås som b = y j i λ i y i K (x j, x i ) när λ j är aktivt ( 0). Samma procedur på vår besutfunktion (11) ger den nya besutsfunktionen ( ) f (x) = sign λ i y i K (x i, x j ) + b i 4
Figur : Exempe på när avbidningen φ (x) = ( x 1, x, x 1 + x ) gör det möjigt att separera två datamängder med ett hyperpan. 1.3 Icke-separabe data Nu är det tyvärr inte så ätt att det atid går att hitta en icke-injär avbidning som gör att vi kan separera våra data med ett hyperpan. Vi inför variaberna, ξ i 0, i,som midrar kravet (3) ti y i (x x i + b) 1 ξ i Eftersom vi vi att dessa termer ska vara så små som möjigt och hest no så ändrar vi om vårat primaa probem (4) ti 1 min {w,b,ξ} w w + C ξ i Där vi kan ändra på C för att ge oika stort stra för de punkter som inte vi indea sig med ett hyperpan. Vi får nu en ny Lagrangefunktion: L (w, b, ξ, λ, Γ) = 1 wt w + C ξ i λ i (y i (x i w + b) 1 + ξ) Γ i ξ i KKT ger oss nu ett nytt krav på den optimaa ösningen nämigen L (w, b, ξ, λ, Γ) ξ i = C λ i Γ i = 0 Eftersom Lagrangemutipikatorn Γ i 0 och vår stra term C > 0, kan vi skriva om detta ti kravet När vi vi få fram det duaa probemet så är inf λ,ξ 0 λ i C, i ( Γ i ξ i ) = 0 eftersom Γ i 0. Dvs vi får ut samma funktion som ska maximeras som i (8), men med ändrade bivikor. Sammanfattningsvis får vi det kvadratiska programmeringsprobemet: max λ λ i j=1 λ i λ j y i y j K (x i, x j ) (14) under bivikoren 0 λ i C, i, i och λ iy i = 0 5
1.4 Fer än två kasser Det nns versioner av SVM som är byggda direkt för er än två kasser se t.ex [5], men i praktiken har de fungerat dåigt på riktig data. För att utvidga våran binära SVM ti mer än två kasser använder vi oss av den snabba och enka metoden One-Against-the-Rest. One-Against-the-Rest (1-v-R) I 1-v-R så tränar man en SVM för varje kass mot resten av datan, vi kan ge varje kass sidan av hyperpanet som ger en positiv besutsfunktion f(x) > 1. Sedan kör man ett okänt x mot aa SVMs och ser hur den bir kassicerad. Om den enbart kassiceras ti en kass så godkänns den, (dvs besutsfunktionen bir enbart positiv för en av våra SVMs), annars sängs den och anses vara okassicerbar. Detta innebär att en de av datan inte kommer att gå att kassicera. En annan variant, den variant som använts i impementeringen, är att istäet för att kassicera enbart på tecken så kassicerar man efter den besutsfunktion som ger högst värde, dvs för den SVM som x kommer ängst bort från hyperpanet på rätt sida. En annan förde med denna metod är att aa punkter går att kassicera. 1.5 Eektivare träning I praktiken när man ska träna sin SVM så kan det kvadratiska optimeringsprobemet (14) bi probematiskt. Matrisen som ska innehåa aa bivikor får storeken n n, där n är antaet träningsdata. Så om man vi träna en SVM mot MNIST-databasen som innehåer 60000 träningsdata kommer man vara tvungen att arbeta med 60000 = 3.6 10 9 ta. Om man sparar dem med 3 bitar precision tar detta upp 13.4GB, viket överstiger minnet hos en vanig dator. Det nns dock eektivare sätt att sköta sjäva träningen av SVMen. En av dem, sequentia minima optimization (SMO) [4] har vi använt i impementeringen. 1.5.1 SMO I SMO så väjer man att ta ut två agrangemutipikatorer λ 1 och λ i par och optimera deras värde med avseende på måfunktionen (14) samtidigt som de efter optimeringen måste uppfya KKT vikoren. När aa λ uppfyer KKT med en viss toerans för numeriska fe, så är man kar. Hur man para ihop de oika agrangemutipiktorerna sker efter vissa heuristiska reger som strävar efter minimera körtiden för programmet. Först väjs λ 1 och sedan ett λ som troigast ger största kivet i måfunktionsvärdet. Va av λ 1 I första hand väjs λ 1 band de λ som för tifäet är skida från 0 och C. Om ingen av dessa går att uppdatera via en optimering så testat de andra λ. Va av λ För att snabba upp koden så sparar man i varje steg en uppskattning på hur fe varje data i ens träningsmängd kassiceras. Dvs f (x) y i. Där f (x) är besutsfunktionen och y i är kass tihörigheten. Utifrån denna feskattning kan man bedöma viket va λ som bör kunna öka måfunktionen i (14) så mycket som möjigt. Om detta va av λ ej eder ti någon möjig ökning av måfunktionen så testas aa λ som är skidra från 0 och C som λ. Och tisut om inget av dessa två va funkar så testat resten av aa λ. Uppdateringssteget I varje steg där man testar om ett par av λ kan ändras på ett sätt som ej bryter mot KKT och samtidigt ökar måfunktionen utförs era evauering av besutsfunktionen, och i varje sådan evauering utförs en skaärprodukt. Det är därmed ytterst viktigt att ens va av kärna går att impementera snabbt. 6
Figur 3: Framsumpade exempe på hur sirorna i USPS databasen kan se ut. Resutat För att testa hur bra den impementerade SVM bev på riktig data hämtades testdatabasen USPS 1. USPS är en databas av handskrivna siror som kommer från amerikanska brev, för exempe på hur dessa sior kan se ut se gur (3). För att få ut features så har varje enskid sierbid fatats med en d gaussisk kärna med σ = 0.75. Sedan har varje pixe i biden fått agera feature, viket gav oss 56 features. USPS består av 791 s.k träningsdata, dvs data som är menad att ära ens kassiceringsmetod hur de oika sirorna ser ut. Och sedan 007 testexempe som ska används för att utvärdera hur bra metoden fungerade. Först tränades SVMen med en RBF kärna K(x, y) = exp ( 1 50 x y ) med C = 10. Detta gav fe kassicering av testdatan i 4, 38% av faen. Sedan tränades SVMen med en poyonomiea kärna K (x, y) = (x y) 3 med C = 10. Detta gav ett fe på kassicering av testdatan i 5, 08% av faen. Som jämförese så kassicerar en människa fe på ca.5% av sirorna. Om man använder nearest neighbor cassier som kassiceringsmetod kan man få ett fe på 5.6%, se [3]. Nearest neighbourhood måste dock söka igenom a träningsdata för att utföra sin kassicering medans SVM bara behöver utföra en skaärprodukt med den deen av data som bivit supportvektorer. För varje enskid SVM så bev antaet supportvektors enbart,5% av a träningsdata. 1 Kan hämtas ifrån ftp://ftp.kyb.tuebingen.mpg.de/pub/bs/data 7
Referenser [1] Lars-Christer Böiers, Lectures on optimisation, KFS AB, 004. [] CYC, Wikipedia, http://en.wikipedia.org/wiki/fie:svm_max_sep_hyperpane_with_margin.png. [3] Danie Keysers, Experimenta resuts on the USPS database, http://www-i6.informatik.rwthaachen.de/ keysers/pubs/spr00/node10.htm. [4] John C. Patt, Fast training of support vector machines using sequentia minima optimization, Advances in kerne methods: support vector earning (1999), 18508. [5] J. Weston and C. Watkins, Muti-cass support vector machines, Technica report CSD-TR-98-04, Roya Hooway, 1998. 8