SUPPORT VECTOR MACHINES (SVM Algoritmy nosných vektorů) Stručný úvod do efektivní metody lineární klasifikace Jan Žižka Ústav informatiky PEF, Mendelova universita v Brně
Lineární oddělování tříd, výhody a problémy Oddělovací nadrovina, parametry Hledání nadrovin z trénovacích příkladů Stanovení optimální nadroviny (generalizace) Hraniční pásmo, nosné (supporting) vektory Převod do vyšších dimenzí, metoda SVM Trénování parametrů SVM, XOR příklad
Algoritmy, které induktivně (z trénovacích příkladů) hledají oddělovací hranice tříd, umí nastavovat parametry pro převážně lineární funkce, například klasický lineární perceptron. Algoritmy, které umí najít nelineární oddělovací funkce, se obecně učí obtížně a hrozí jim uvíznutí v lokálním extrému, daleko od optima. Typickým příkladem jsou sítě ze sigmoidálních perceptronů.
Hledání nelineární funkce může být také neproveditelné kvůli vysoké výpočetní náročnosti dané mnoha umělými dimenzemi (váhami propojení sigmoidálních neuronů). Existují však i metody, které využívají výhody efektivních lineárních metod a zároveň jsou schopny representovat vysoce složité nelinerní funkce: jádrové algoritmy (kernel machines).
Lineární diskriminační funkce a rozhodovací nadroviny: Nechť w = [w 1, w 2,..., w l ] T je l-dimensionální váhový vektor a w 0 tzv. práh. Odpovídající rozhodovací nadrovina je pak dána vztahem: g x =w T x w 0 =0 Na jedné straně nadroviny je g(x) > 0, na opačné zase g(x) < 0 rozlišení tříd. 1
Cílem je zjistit neznámé parametry vektoru w. Pro lineárně oddělitelné třídy lze najít optimum vzhledem k chybové funkci, i když výpočetní složitost (pro vysoká l) tomu může zabránit. Obvyklý postup je iterativní minimalizace chybové funkce gradientním sestupem. Při lineární neoddělitelnosti lze hledat vhodný lineární oddělovač např. pomocí metody nejmenších čtverců (MNČ).
SVM algoritmy: jsou motivovány stejně jako příbuzné algoritmy pro hledání lineární oddělovací hranice, ale spoléhají na specifické předzpracování, representují známé i neznámé případy v novém prostoru, který má typicky mnohem více dimenzí než prostor původní; vhodné nelineární mapování φ(.) do dostatečně mnoha dimenzí umožní oddělení nadrovinou.
Lineární oddělení dvou tříd, které obsahují jednorozměrné vektory, je vždy s chybou:
Lineární oddělení těchto tříd je možné po transformaci do prostoru s více rozměry:
Nosné (supporting) vektory jsou definovány jako ty trénovací vektory, které (po případné transformaci do vyšší dimenze) mají od oddělovací nadroviny stejnou vzdálenost. Nosné vektory tedy definují optimální (nejlépe generalizující) oddělovací nadrovinu a zároveň představují nejobtížněji klasifikovatelné vzory, protože leží nejblíž u hranice. Mají nejvyšší informační hodnotu pro klasifikační úlohu.
Princip trénování SVM je velmi jednoduchý: vyhledá se momentálně nejhůře klasifikovaný vzor (ten, který je na nesprávné straně nadroviny a je od ní vzdálen nejvíce); aktualizují se parametry nadroviny tak, aby byl vzor na správné straně; vzor pak tvoří jeden z nosných vektorů. Je to odlišné od perceptronu, kde lze vybrat náhodně libovolný chybně klasifikovaný vzor.
V praxi je ale takový postup příliš výpočetně náročný, protože pro každou aktualizaci je nutné projít celou množinu vzorů, aby byl nalezen ten s nejhorší klasifikací. Volba transformační funkce φ(.) je dána buď nějakou znalostí o problematice, nebo je nutné vyzkoušet polynom určitého stupně, radiální bázovou funkci ( zvonovitá ), resp. jinou bázovou funkci. Dimenze může být libovolně vysoká (ale omezená výpočetní složitostí).
Hledá se tedy optimální oddělovací nadrovina. Nadrovina je parametricky určena vektorem w: g x =w T x w 0 =0 1 (x jsou trénovací vektory příklady). Jak maximalizovat hraniční pásmo tak, aby to bylo výpočetně únosné?
w x w 0 = 1 x = x w w x w w 0 = 1 w x w 0 w w = 1 1 w w = 1 =2/ w w 2 3 4 5 6 7 Nyní již lze vypočítat šířku pásma m:
m = x x = w = w = w w = = 2 w w w w = 2 w w Postup pro nějaké w a w 0 je tedy následující: 8 zajistí se, aby všechny trénovací příklady byly na správných stranách dělící nadroviny; v prostoru všech w a w 0 se vyhledá nejširší pásmo s příklady na správné straně.
Jak vyhledat optimální hraniční pásmo? Je nutno zvolit vhodnou prohledávací metodu. Různých metod je celá řada, a v praxi se osvědčila aplikace tzv. kvadratického programování QP (obdoba lineárního): optimalizační algoritmus; maximalizace kvadratické funkce; existují lineární omezení.
Kvadratické optimalizační kritérium: minimalizace w w, protože dle (8) platí m = 2 w w w w = 2 w w.
Pro určitá data dávají stejně dobré výsledky také jiné algoritmy, např. k-nn; a na určitých datech SVM selhává: no-free-lunch teorém. Avšak pro velmi rozsáhlá data přináší SVM velkou výhodu v tom, že nepotřebuje všechny trénovací příklady pro klasifikaci budoucích neznámých (jako např. k-nn), protože používá pouze podmnožinu: nosné vektory objevené tréninkem. Jejich počet může (i nemusí) být jen zlomkem všech použitých trénovacích dat.
Další výhodou SVM je větší robustnost. Vzhledem k tendenci najít co nejširší hraniční pásmo (z trénovacích příkladů) nemusí být menší nedokonalost v umístění nadroviny závažná. Na druhé straně však nadrovina silně závisí na výběru nosných vektorů a jejich malá změna může značně ovlivnit hraniční pásmo. Proto také zde platí obecná závislost na co nejlepší volbě trénovacích příkladů.
Příklad: SVM pro XOR problém.
Původní 2D prostor XOR problému je na levém obrázku. Souřadnice byly transformovány do prostoru, kde lze a od sebe lineárně oddělit. Z různých možných funkcí φ(.) byla použita expanze 2. řádu: 1, 2x 1, 2x 2, 2x 1 x 2, x 12, x 22. (Hodnota 2 je výhodná pro normalizaci.) Dvourozměrná projekce nového prostoru je znázorněna na pravém obrázku. Konec