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ě
Support Vector Machines
●
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
Support Vector Machines
●
●
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ů.
Support Vector Machines
●
●
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).
Support Vector Machines
●
Lineární diskriminační funkce a rozhodovací nadroviny: Nechť w = [w1, w2, ..., wl]T je l-dimensionální váhový vektor a w0 tzv. práh. Odpovídající rozhodovací nadrovina je pak dána vztahem: T
g x =w x w 0=0 Na jedné straně nadroviny je g(x) > 0, na opačné zase g(x) < 0 → rozlišení tříd.
Support Vector Machines
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Č).
Support Vector Machines
Support Vector Machines
Support Vector Machines
Support Vector Machines
Support Vector Machines
Support Vector Machines
Support Vector Machines
Support Vector Machines
Support Vector Machines
Support Vector Machines
Support Vector Machines
Support Vector Machines
Support Vector Machines
●
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.
Support Vector Machines
●
Lineární oddělení dvou tříd, které obsahují jednorozměrné vektory, je vždy s chybou:
Support Vector Machines
●
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.
Support Vector Machines
●
●
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.
Support Vector Machines
●
●
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í). Support Vector Machines
●
Hledá se tedy optimální oddělovací nadrovina.
●
Nadrovina je parametricky určena vektorem w: T
g x =w 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é?
Support Vector Machines
Support Vector Machines
● ● ● ● ● ● ●
w x w 0 = 1
−
x = x w −
w x w w 0=1 −
2 3 4
w x w 0w w =1
5
−1w w = 1 =2/w⋅w
6 7
Nyní již lze vypočítat šířku pásma m:
Support Vector Machines
●
− ∣ m = x − x ∣ = ∣ w ∣ = ∣ w ∣ = w⋅w =
2 w⋅w 2 = = w⋅w w⋅w
●
8
Postup pro nějaké w a w0 je tedy následující: –
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 w0 se vyhledá nejširší pásmo s příklady na správné straně.
Support Vector Machines
● ●
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í.
Support Vector Machines
●
Kvadratické optimalizační kritérium: minimalizace w∙w, protože dle (8) platí
2 w⋅w 2 m= = . w⋅w w⋅w
Support Vector Machines
●
●
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. Support Vector Machines
●
●
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ů. Support Vector Machines
●
Příklad: SVM pro XOR problém.
Support Vector Machines
●
●
●
●
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, √2x1, √2x2, √2x1x2, x12, x22. (Hodnota √2 je výhodná pro normalizaci.) Dvourozměrná projekce nového prostoru je znázorněna na pravém obrázku. Support Vector Machines Konec