Kernel gépek vizsgálata Lágler Krisztián 2011. május 12. FYMGQ8 Konzulens : Dr. Horváth Gábor 1
Tartalomjegyzék 1. Feladat kiírás 3 1.1. A kernelfüggvény hiperparamétereinek megválasztása..... 3 2. Bevezetés 3 2.1. Szupport Vektor gépekről általában............... 3 2.1.1. Nemlineáris szeparálás.................. 5 3. Hiperparaméterekről 6 3.1. C paraméter............................ 6 3.2. ε paraméter............................ 6 3.3. Kernelfüggvények paraméterei.................. 6 4. A hiperparaméterek keresésének tartománya 7 5. hiperparaméterek és a mintapontok számának (N) kapcsolata 7 5.1. C és N kapcsolata........................ 7 5.2. σ és N kapcsolata........................ 10 6. A kísérletekben használt adathalmazokról 10 7. Hiperparaméterek keresése 11 7.1. Kimerítő keresés (Gridsearch).................. 11 7.2. Vonal mentén történő keresés (Linesearch)........... 11 7.3. Optimális hiperparaméterek keresése a mintapontok részhalmazával.............................. 12 7.4. Gauss kernel paraméter meghatározása CA klaszterező algoritmus segítségével........................ 15 7.5. ε meghatározása RSVR segítségével............... 15 8. Távlatok és további lehetőségek 16 8.1. Szupport - vektorok számának minimalizálása......... 16 8.2. További kernelfüggvények vizsgálata.............. 16 8.3. Gradiens módszerek alkalmazása................ 16 2
1. Feladat kiírás A tanuló rendszerek között kitüntetett helyet foglalnak el a kernel gépek és azon belül a szupport vektor gépek (SVM). A kernel gépek témakörhöz számos megoldatlan elméleti illetve a gyakorlati kérdés kapcsolódik. Az önálló labor munka során a feladat a kernel gépek minél jobb megismerése, majd bizonyos speciális kernel függvényekkel dolgozó rendszerek kialakítása és vizsgálata. A fő kérdések a véges tartójú kernel függvények, a kernelfüggvények adaptív megválasztása, a szakaszonként lineáris approximációt biztosító kernel megoldások összevetése más hasonló modellező képességű tanuló rendszerekkel. 1.1. A kernelfüggvény hiperparamétereinek megválasztása A labor során a kernelfüggvény hiperparamétereinek megválasztásának lehetséges módszereit vizsgáltam. A témában fellelhető publikációk tanulmányozása, a javasolt módszerek megismerése és megismétlése képezte az önálló labor munkámat. A paraméterek megválasztása történhet valamilyen módszert használó RSVM 1 használatával, illetve analitikus úton. Az RSVM során különböző paraméterkombinációk mellett többször végrehajtjuk az SVM tanítást, és meghatározzuk a paraméterekhez tartozó hiba értékét. Ezt követően felhasználva a kapott hibát, valamilyen heurisztika szerint változtatjuk a paraméterek értékeit, amíg el nem érünk egy (lokálisan) minimális hibát eredményező kedvező állapotba. A labor során főként RSVM módszerekkel foglalkoztam. Vannak eredmények analitikus módszerek felhasználására is, továbbá publikációk a paraméterek gradiens módszerrel történő meghatározására vonatkozóan, de ezeket idő hiányában már nem volt alkalmam kipróbálni. 2. Bevezetés 2.1. Szupport Vektor gépekről általában Az SVM egy népszerű mintafelismerő algoritmus, alapváltozata maximális margójú lineáris szeparálást tesz lehetővé, amely kiterjeszthető nemlineáris osztályozási és regressziós feladatokra. A szupport vektor gépek olyan kernel gépek, melyek a statisztikus tanuláselmélet eredményeit is hasznosítják [3]. Az optimális hipersíkot úgy kell meghatározni, hogy a hibás osztályozások száma minimális legyen, miközben törekszünk a maximális margó elérésére. Ez a következő kifejezés minimalizálásával érhető el: 1 Repeted SVM 3
a következő feltételek mellett : J(w) = 1 P 2 wt w + C ξ i (1) d i (w T x i + b) 1 ξ i (2) ξ i 0, i = 1, 2,..., P Ennek megfelelően a következő Lagrange szélsőérték feladatot írhatjuk fel : J(w, ξ, α, γ, b) = 1 P P { ) } P 2 wt w+c ξ i α i d i (w T x i + b 1 + ξ i γ i ξ i (3) A Lagrange kritériumot w,b és ξ i szerint kell minimalizálni, és α i -k és γ i - k szerint maximalizálni kell. A feladatot két lépésben oldhatjuk meg. Először a Lagrange kritérium w,b és ξ i szerinti deriváltját írjuk fel. J (w, ξ, α, γ, b) w J (w, ξ, α, γ, b) b J (w, ξ, α, γ, b) ξ = 0 P w = α i d i x i (4) = 0 P α i d i = 0 (5) = 0 γ i + α i = C (6) Ezt követően a gradiensek értékének nullává tételével kapott összefüggéseket behelyettesítve a Lagrange kritériumba kapjuk a duális feladatot : P Q(α) = α i 1 P P α i α j d i d j x T i x j (7) 2 j=1 P d i α i = 0, 0 α i C, i = 1, 2,..., P (8) Az α i -k kvadratikus programozással határozhatók meg. Az SVM tanítás alatt a duális probléma megoldását értjük, amely során előállnak a Lagrange multiplikátorok, amik implicite meghatározzák a szupport-vektorokat. 4
2.1.1. Nemlineáris szeparálás A valós osztályozási feladatok túlnyomó része nem szeparálható lineárisan. A lineárisan nem szeparálható feladatoknál egy megfelelő (és általában dimenziónövelő) x ϕ (x) nemlineáris transzformációval lineárisan szeparálhatóvá alakítjuk a feladatot. Az így kapott jellemzőtérben az előzőeknek megfelelő optimális (maximális margójú) megoldást keressük. Ezt két lépésben tesszük : Először nemlineáris transzformáció a bemeneti térből a jellemzőtérbe, majd a jellemző térben az optimális lineáris szeparáló hipersík meghatározása. Ez utóbbi lépést azonban itt sem a jellemzőtérben, hanem az ebből származtatott kernel térben oldjuk meg. A nemlineáris eset a lineáris eset megoldásából egyszerűen az x ϕ (x) helyettesítéssel nyerhető. Az optimális hipersíkot a következő alakban keressük: w T ϕ (x) + b = 0 (9) A jellemzőtérben megkonstruált szeparáló felületet a következő egyenlet adja: P αi d i ϕ T (x i ) ϕ (x) + b = 0 (10) A ϕ T (x i ) ϕ (x) szorzatot a kernel trükknek megfelelően egy magfüggvényként írjuk fel, azaz K (x i, x) = ϕ T (x i ) ϕ (x) (11) A nemlineáris osztályozó tehát: [ P ] y (x) = sign αi d i K (x i, x) + b (12) 5
3. Hiperparaméterekről Az SVM tanítást több paraméter befolyásolja, amelyeket hiperparamétereknek nevezünk. Ezek meghatározása nem egyértelmű, gyakran probléma függő, amely az alkalmazási terület mélyebb ismeretét igényli. A labor során a hiperparaméterek meghatározásának módszereivel ismerkedtem meg, illetve azok gyakorlati alkalmazásával. A következő részben rövid áttekintést nyújtok a hiperparaméterekről és azok szerepéről. 3.1. C paraméter J(w) = 1 P 2 wt w + C ξ i, ξ i 0, i = 1, 2,..., P A minimalizálandó J(w) kritériumban szereplő C-t konstans hiperparaméternek is szokás nevezni. A C paraméter felfogható úgy mint egy büntető paraméter, amely a margón bellülre eső, vagy rosszul osztályozott mintákat bünteti. C magas értéke nagyobb súlyt ad a rosszul osztályozott mintáknak. Nagyon magas C választás esetén az SVM viselkedése a perceptron algoritmusra fog hasonlítani abban a tekintetben, hogy az összes hibát minimalizálja. C kis értéke nagyobb súlyt helyez a maximális margóért felelős tagra, C 0 esetén a margó maximális. C = 0 választás nem értelmes lineárisan nem szeparálható problémákra. 3.2. ε paraméter A szupport vektor gépek regressziós, vagy függvényapproximációs céllal történő alkalmazása esetén az ún. ε-érzéketlenségi sávval rendelkező abszolútérték hibafüggvényt alkalmazzuk az eltérés mérésére. L ε (y) = { 0 ha d y(x) < ε d y(x) ε egyébként (13) Általánosságban a kimenet pontossága és a szupport vektorok számát szabályoza az ε paraméter. Továbbá ε a megoldás simaságát szabályozó paraméternek is tekinthető. Nagy ε értékekre a megoldás sima lesz, míg kis értékekre a mintapontokat, és velük együtt a zajt is jobban megtanulja az SVM 3.3. Kernelfüggvények paraméterei Lineárisan nem szeparálható feladatoknál egy megfelelő x ϕ(x) nemlineáris transzformációval lineárisan szeparálhatóvá alakítjuk a feladatot. A 6
ϕ T (x i )ϕ(x) szorzatot kernel trükknek megfelelően egy magfüggvényként írjuk fel: K(x i, x) = ϕ T (x i )ϕ(x) A labor során az egyik leggyakrabban alkalmazott Gauss(RBF) kernelfüggvény vizsgálatára szorítkoztam. K(x i, x) = e x x i 2 σ 2 (14) A C paraméterhez hasonlóan meg kell határozni σ optimális értékét, amely a kernel függvény szélességét szabályozó paraméter. 4. A hiperparaméterek keresésének tartománya Megfigyelték [4] hogy C Megfelelően magas értékére C > C, a keresztkiértékelés pontossága konvergálni látszik, egy közel optimális értékhez (de nem az optimális értékhez), ahogyan azt az 1. ábra mutatja a 8. oldalon. Ez abból következik hogy C mellett a J (w) C P ξ i, a minimalizálandó J (w) első tagja változatlan marad, és a súlypont áttolódik az összes hiba minimalizálására. Hasonlóan C 0 gyenge osztályozási pontossághoz vezet, mivel C 0 mellett C P ξ i 0, a hibaminimalizálásért felelős második tag is nullához tart. Ekkor a minimalizálandó J (w) kifejezés első tagjára helyeződik a súly, és a tanítás maximális margójú szeparálást eredményez, figyelmen kívül hagyva a hibás osztályozásért felelős második tagot, amely végső soron a gyenge osztályozási pontosságot eredményezi. A szupport vektor gép nagyon keveset tanul C kis értékeire, és majdnem minden tanítópontot szupport vektorként értelmez. A szupport vektorok alakulása látható a 2. ábrán a 8. oldalon. Ahogy C értéke növekszik az SVM eredménye közelít a tényleges döntési határhoz. Ezt a tendenciát mutatja a 3. ábra a 9. oldalon. Továbbá egyértelmű hogy σ nagy értéke túlilleszkedéshez vezet, és az osztályozási pontosság erős romlásával jár, még magas C értékekre is. C kis értéke gyenge osztályozási pontossághoz vezet σ értékétől függetlenül. Ebből következik hogy C magas - és σ alacsony értékei mellett érdemes keresni a paramétertérben. 5. hiperparaméterek és a mintapontok számának (N) kapcsolata 5.1. C és N kapcsolata Ahogy a tanítópontok száma növekszik, az optimális elválasztófelület szélessége és ezáltal a J(ω) első tagja közel állandó marad. Mivel a margóba 7
1. ábra. 10 szeres keresztkiértékelés pontossága log (C) függvényében 2. ábra. Szupport vektorok normalizált száma log (C) függvényében 8
3. ábra. Szupport vektorok C függvényében. C értékét 10 2 -tól 10 4 -ig növelve, konstans kernelparaméter γ mellett. Jól megfigyelhető, ahogy C növekszik az SVM egyre jobban közelíti az osztályok közötti tényleges döntési határt, és a szupport vektorok is egyre inkább a határ közelében koncentrálódnak. 9
eső illetve rosszul osztályozott mintapontok csak kis részét képezik a tényleges tanítóhalmaznak, ezek száma csak gyengén függ N-től elég nagy N-re nézve. Az összeg második tagja lineárisan növekszik N értékével, így C-nek fordítottan arányosnak kell lennie N-el hogy megőrizzük az összeg két tagja közötti egyensúlyt. Ez a kapcsolat nagyméretű adathalmazokra áll. Ahogyan csökken a tanításhoz felhasznált mintapontok száma, úgy csökken az a tartomány, amelyen belül C és σ értékek megválasztása közel optimális osztályozási eredményre vezet. 5.2. σ és N kapcsolata Az optimális kernel szélesség (σ) és a tanítópontok száma között elhanyagolhatóan gyenge kapcsolat áll fent. 6. A kísérletekben használt adathalmazokról A labor során mesterségesen előállított adathalmazokkal dolgoztam. Osztályozáshoz két dimenziós Gauss függvények összegét használtam. A két osztályt az így előállított gauss függvény szignumaként nyertem. Továbbá osztályozáshoz gyakran használt Iris mintakészletet és a kettős spirált is használtam. y (x 1, x 2 ) = sign centers sin(x) A i e ( c i,1 x 1 2 2σ 2 i,1 ) c i,2 x + 2 2 2σ i,2 2 (15) Regressziós feladathoz, x és a fentihez hasonlóan előállított Gauss függvények összegét alkalmaztam. y (x) = centers A i e ( c i x 2 2σ 2 i ) (16) 10
7. Hiperparaméterek keresése 7.1. Kimerítő keresés (Gridsearch) A kimerítő keresés az optimális osztályozást biztosító paraméterek keresésének egy naiv módszere. A paramétereknek egy kiválasztott intervalluma által létrehozott paramétertérben végzünk keresést. A paramétertér minden egyes pontjában (paraméterek kombinációjában) elvégezzük az SVM tanítást, és meghatározzuk a hibát. A legkisebb hiba által szolgáltatott paraméterkombináció az optimális választás. Legfőbb hátránya a nagy erőforrásigény, amely nagy adathalmazok esetében akár kivárhatatlanul sokáig is tarthat. Továbbá egy minimális hibát eredményező paraméterkombináció egy lokális minimumot jelent, mivel a nem vizsgált tartományban lehetnek további minimum helyek. A kimerítő keresés az egyetlen biztos módszer az osztályozási probléma mélyebb megismerésére. A labor során vizsgált problémákra számított kimerítő keresés egy fontos eredményre vezet. A paramétertérben meghatározott hibafelületen a közel optimális osztályozáshoz tartozó paraméterek egy összefüggő területen találhatók. Továbbá az is megállapítható hogy a minimális hiba viszonylag nagy környezetében találhatóak közel optimális pontosságú osztályozásra vezető paraméterkombinációk, ahogy ez a 4. ábrán látható a 12. oldalon. Ez az eredmény biztató abban a tekintetben, hogy a hiba egy lokális minimuma közel található a vizsgált tartomány globális optimumához, illetve a lokális minimum hibája csak kevéssel tér el az optimális osztályozás hibájától. 7.2. Vonal mentén történő keresés (Linesearch) Ismételt SVM (RSVM) tanítást alkalmazva megtalálható egy minimális hibájú osztályozásra vezető paraméterkombináció. 1. Inicializáljuk a paraméterek lehetséges intervallumát, valamint a paraméterek kiindulási állapotát (pl.: σ [0.1, 10], C [1, 100], σ = 1, C = 1). 2. σ konstans értéken tartása mellett keressük azt a C paramétert az előre meghatározott keresési intervallumban, amely mellett az SVM hibája minimális. A keresés történhet pl.: aranymetszés módszerrel. 3. A meghatározott C paraméter konstans értéken tartása mellett az előre rögzített σ keresési intervallumában keresünk egy σ paramétert, amely mellett az SVM hibája minimális. 4. A meghatározott C és σ paraméterek mellett az osztályozás hibája közel minimális. 11
4. ábra. Hibafelület (kontúr) az Iris adathalmazon végzett osztályozáshoz. A módszer előnye egyszerűsége mellett, hogy nagyon gyorsan képes közel optimális hibát eredményező paraméterkombinációk megtalálására. Hátránya hogy az így kapott minimum, egy lokális minimum lesz. A fentiek értelmében ez közel lesz a vizsgált tartomány globális minimumához, de az eredmények azt mutatják hogy a kapott minimum nem az optimális érték. A lokális minimumok kiszűrhetők a teljes keresési tér kis területekre történő felosztásával. Az algoritmust a kisebb területeken futtatva meghatározhatók a lokális minimumok, amelyekből kiválasztható az teljes terület egy optimális minimumára vezető paraméterkombináció. N (mintapontok száma) C σ Hiba Kereséshez szükséges idő Kimerítő keresés 100 0.1353 1.1498 2.1764 8765s Vonal menti keresés 100 5.5823 15.6867 2.3103 35.95s Az 5. ábrán a 13. oldalon látható a vonal mentén történő keresés során bejárt út. 7.3. Optimális hiperparaméterek keresése a mintapontok részhalmazával Nagy tanítóhalmaz esetén a paraméterek meghatározása ismételt SVM tanítással nehéz lehet, mivel az adathalmaz méretével együtt a tanításhoz 12
5. ábra. hiperparaméterek meghatározása vonal mentén történő keresés segítségével. szükséges idő is növekszik. Az 5.1 szakasz értelmében, a minimalizálandó J(w) kifejezés második tagja lineárisan növekszik N értékével, miközben az első tag közel állandó marad. Ennek megfelelően C-nek fordítottan arányosnak kellene lennie N-el hogy megőrizzük az összeg két tagja közötti egyensúlyt. A tanítóhalmaz mintapontjainak csak egy kis része esik az elválasztófelület környezetébe, és a minták számának növekedésével a margó környezetébe eső minták aránya egy konstans értékhez konvergál. Így a minták számának növelése egy bizonyos N < N -re már nem hoz új információt. Ezt a tendenciát jól szemlélteti, hogy a mintapontok számának csökkentése a minimális hibájú tartomány területét is csökkenti, amely megkönnyíti a terület megtalálását is, ahogy ezt a 6. ábra szemlélteti a a 14. oldalon. A fent említettek értelmében a következő stratégiát javasolták az optimális hiperparaméterek megtalálására nagy adathalmazokon[4] : 1. Válasszuk ki a tanító mintapontok egy N sub részhalmazát. 2. Határozzuk meg a kiválasztott részhalmazban a minimális hibájú osztályozást előállító paraméterkombinációt. Ez történhet keresztkiértékeléssel, a fent említett vonal mentén történő kereséssel, vagy valamilyen más módszerrel. 3. A meghatározott C sub paramétert a következőképpen skálázzuk : C full = C sub Nsub N full. 4. C full paramétert használva σ full meghatározásához végezzünk vonal menti keresést σ sub szűk környezetében. 13
6. ábra. A kimerítő keresés eredményét ábrázoló kontúr ábra a felhasznált mintapontok számának változása mellett. 14
A gyakorlati problémák többségében a rendelkezésre álló mintapontok száma kevés, és költséges a további minták előállítása, ezért ez az eredmény inkább elméleti értéket képvisel. Azonban eredményesen használható a vonal mentén történő paraméterkeresés gyorsítására, amikor az SVM tanítása időigényes. 7.4. Gauss kernel paraméter meghatározása CA klaszterező algoritmus segítségével A Competetive Agglomeration Clustering (továbbiakban CA klaszterező) algoritmus nagy kezdeti klaszterszámból indul ki, amellyel csökkenti az inicializálásra való érzékenységet, és meghatározza a tényleges klaszterszámot az agglomerációs folyamat során [2]. Az algoritmus felhasználható az RBF kernel paraméterének meghatározására. Képezzük az x k mintapontokból a Q = { q k = ( x k, y k ) k = 1, 2,..., P } vektorokat. Az így kapott q j mintapontokat klaszterezzük a CA algoritmussal. Általánosságban a klaszterek ellipszoid alakot vesznek fel, amelynek szélessége felhasználható Gauss kernel paramétereként. A szélesség klaszterenként eltérő, a minimális és maximális érték meghatározza a σ paraméter egy értelmes intervallumát. A minimális vagy az átlagos szélesség felhasználható a gauss kernel paramétereként. A 4. szakasz értelmében σ nagy értéke túlilleszkedéshez vezet, ezért a megállapított tartományban σ alacsonyabb értékeit érdemes felhasználni. A módszernek inkább elméleti jelentősége van, habár a σ paraméternek is jelentős szerepe van az osztályozás pontosságában, azonban sokkal kisebb hatása van az eredményre mint a C paraméternek. Továbbá a kimerítő keresések eredménye arra utal, hogy különböző C paraméterekhez más és más σ eredményez minimális hibájú osztályozást és vice versa. A klaszterező algoritmus eredménye egy az agglomerációt szabályozó ζ paramétertől függ, amely meghatározza az eldobásra kerülő klasztereket. Ez közvetetten befolyásolja a végeredményben kialakuló klaszterek méretét és ennél fogva azok szélességét is. Ez pedig felveti a felhasznált klaszterező paraméterének meghatározásának kérdését. 7.5. ε meghatározása RSVR segítségével A regressziós hiba alapján ismételt SVM tanítással megállapítható az ε paraméter értéke. 1. lépésben, ε = 0 értéket alkalmazunk a tanítás során. Következésképpen, az aktuális és az elvárt kimenet felhasználható a regresszió hiba kiszámításához. 2. A regressziós hiba alapján az ε a következőképpen határozható meg: ε = υ std([regressionerror]) 15
2 Error with respect SVs number : generated dataset from sum of 2d gaussian fuction N = 150; C = 2.947052 ; Sigma = 1.676833 ; SVs number = 75; error = 0.402516 Minimal error with respect SVs number Minimal error with respect SVs number 1.8 1.6 1.4 error 1.2 1 0.8 0.6 0.4 0 50 100 150 SVs Number 7. ábra. Az SVM hibájának minimális és maximális értékének változása a szupport vektorok száma mellett. Általánosan az υ konstanst 1.645 és 1.96 értékekre választják, amelynek eredményeképpen a regresszió hiba 90% és 95% valószínűséggel esik a υ std ([regressionerror]) területbe[2][1]. 8. Távlatok és további lehetőségek 8.1. Szupport - vektorok számának minimalizálása A labor során végzett kísérletek azt mutatják hogy a minimális hibához tartozó paraméterkombináció egy viszonylag nagy környezetében találhatók további paraméterkombinációk, amelyek hibája közel esik az optimumhoz. Ezek a hiperparaméterek értékein kívül a szupport-vektorok számában is eltérnek. A szupport vektorok számának minimalizálása, egyszerűsíti az SVM eredményének komplexitását, amely további optimalizációt tesz lehetővé, ahogy az a 7. ábra mutatja a a 16. oldalon. 8.2. További kernelfüggvények vizsgálata Sok, további kernelfüggvény használható az SVM modellben, amelyek további vizsgálatot igényelnek. 8.3. Gradiens módszerek alkalmazása Vannak további eredmények az SVM hibájának elméleti korlátjára vonatkozóan, amelyeket felhasználnak a paraméterek gradiens alapú meghatá- 16
rozásához. 17
Hivatkozások [1] M. Evans, N. Hastings, and B. Peacock. Neurális hálózatok. Wiley, 1993. [2] Hichem Frigui and Raghu Krishnapuram. A robust competitive clustering algorithm with applications in computer vision. IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, 1999. [3] Altrichter Márta, Horváth Gábor, Pataki Béla, Strausz György, Takács Gábor, and Valyon József. Neurális hálózatok. Panem kiadó, 2006. [4] Charl J. van Heerden and Etienne Barnard. Towards understanding the influence of svm hyperparameters. 2010. 18