Support Vector Machines (jemný úvod)
Osnova Support Vector Classifier (SVC) Support Vector Machine (SVM) jádrový trik (kernel trick) klasifikace s měkkou hranicí (soft-margin classification) hledání optimálních parametrů
Formulace úlohy dáno: {x i, y i } n i=1 x i R p příznaky y i { 1, 1} třídy úloha: klasifikovat nové x R p do třídy 1 nebo 1
Motivace která přímka nejlépe odděluje instance daných dvou tříd?
Motivace která přímka nejlépe odděluje instance daných dvou tříd?
Přístup Support Vector Classifier (SVC) rozhodovací funkce f (x) = sign(w x + b)
Přístup SVC (2) myšlenka: maximalizace hranice o šířce d = 2 w
Přístup SVC (2) myšlenka: maximalizace hranice o šířce d = 2 w za podmínky správné klasifikace: w x i + b +1, když y i = +1 w x i + b 1, když y i = 1
Formulace optimalizační úlohy argmax w,b { 2 w } za podmínky správné klasifikace: w x i + b +1, když y i = +1 w x i + b 1, když y i = 1 nebo ekvivalentně: y(w x i + b) 1
Formulace optimalizační úlohy argmax w,b { 2 w } za podmínky správné klasifikace: w x i + b +1, když y i = +1 w x i + b 1, když y i = 1 nebo ekvivalentně: y(w x i + b) 1 ekvivalentně (formulace 1): argmin w,b { 1 2 w 2 } za podmínky správné klasifikace: y i (w x i + b) 1
Formulace optimalizační úlohy argmax w,b { 2 w } za podmínky správné klasifikace: w x i + b +1, když y i = +1 w x i + b 1, když y i = 1 nebo ekvivalentně: y(w x i + b) 1 ekvivalentně (formulace 1): argmin w,b { 1 2 w 2 } za podmínky správné klasifikace: y i (w x i + b) 1 ekvivalentně (chce se zbavit omezení) (formulace 2): L p = 1 2 w 2 n i=1 α i[(w x i + b)y i 1] L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n i=1 α i argmin w,b L p za podmínky: α i 0 α i - Lagrangeovy multiplikátory
Formulace optimalizační úlohy Primární a duální úloha L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n argmin w,b L p (za podmínky α i 0) i=1 α i
Formulace optimalizační úlohy Primární a duální úloha L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n argmin w,b L p (za podmínky α i 0) Lze ukázat: i=1 α i argmin w,b L p za podm. C 1 argmax w,b L p za podm. C 2 C 1 : Lp α i C 2 : Lp w = 0, α i 0 (odpovídá podm. správné klasifikace) = 0, Lp b = 0, α i 0
Formulace optimalizační úlohy Primární a duální úloha L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n argmin w,b L p (za podmínky α i 0) Lze ukázat: i=1 α i argmin w,b L p za podm. C 1 argmax w,b L p za podm. C 2 C 1 : Lp α i = 0, α i 0 (odpovídá podm. správné klasifikace) C 2 : Lp Lp w = 0, b = 0, α i 0 Hledám extrém L p : L p w = w n i=1 α ix i y i = 0
Formulace optimalizační úlohy Primární a duální úloha L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n argmin w,b L p (za podmínky α i 0) Lze ukázat: i=1 α i argmin w,b L p za podm. C 1 argmax w,b L p za podm. C 2 C 1 : Lp α i = 0, α i 0 (odpovídá podm. správné klasifikace) C 2 : Lp Lp w = 0, b = 0, α i 0 Hledám extrém L p : L p w = w n i=1 α ix i y i = 0 w = n i=1 α ix i y i
Formulace optimalizační úlohy Primární a duální úloha L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n argmin w,b L p (za podmínky α i 0) Lze ukázat: i=1 α i argmin w,b L p za podm. C 1 argmax w,b L p za podm. C 2 C 1 : Lp α i = 0, α i 0 (odpovídá podm. správné klasifikace) C 2 : Lp Lp w = 0, b = 0, α i 0 Hledám extrém L p : L p w = w n i=1 α ix i y i = 0 w = n i=1 α ix i y i = n i=1 α iy i = 0 L p b
Formulace optimalizační úlohy Primární a duální úloha L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n argmin w,b L p (za podmínky α i 0) Lze ukázat: i=1 α i argmin w,b L p za podm. C 1 argmax w,b L p za podm. C 2 C 1 : Lp α i = 0, α i 0 (odpovídá podm. správné klasifikace) C 2 : Lp Lp w = 0, b = 0, α i 0 Hledám extrém L p : L p w = w n i=1 α ix i y i = 0 w = n i=1 α ix i y i L p b = n i=1 α iy i = 0 Substitucí do L p získáme duální úlohu: L d = n i=1 α i 1 2 i,j α iα j x i x j y i y j argmax αi L d (za podmínky α i 0)
Optimalizační úlohy Rekapitulace formulace 1: argmin w,b { 1 2 w 2 } (za podm.: y i (w x i + b) 1)
Optimalizační úlohy Rekapitulace formulace 1: argmin w,b { 1 2 w 2 } (za podm.: y i (w x i + b) 1) p + 1 parametrů, n lin. omezení
Optimalizační úlohy Rekapitulace formulace 1: argmin w,b { 1 2 w 2 } (za podm.: y i (w x i + b) 1) p + 1 parametrů, n lin. omezení formulace 2: L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n i=1 α i argmin w,b L p (za podmínky α i 0)
Optimalizační úlohy Rekapitulace formulace 1: argmin w,b { 1 2 w 2 } (za podm.: y i (w x i + b) 1) p + 1 parametrů, n lin. omezení formulace 2: L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n i=1 α i argmin w,b L p (za podmínky α i 0) p + 1 parametrů, n omezení
Optimalizační úlohy Rekapitulace formulace 1: argmin w,b { 1 2 w 2 } (za podm.: y i (w x i + b) 1) p + 1 parametrů, n lin. omezení formulace 2: L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n i=1 α i argmin w,b L p (za podmínky α i 0) p + 1 parametrů, n omezení formulace 3: L d = n i=1 α i 1 2 i,j α iα j x i x j y i y j argmax αi L d (za podmínky α i 0)
Optimalizační úlohy Rekapitulace formulace 1: argmin w,b { 1 2 w 2 } (za podm.: y i (w x i + b) 1) p + 1 parametrů, n lin. omezení formulace 2: L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n i=1 α i argmin w,b L p (za podmínky α i 0) p + 1 parametrů, n omezení formulace 3: L d = n i=1 α i 1 2 i,j α iα j x i x j y i y j argmax αi L d (za podmínky α i 0) n parametrů, n omezení
Optimalizační úlohy Rekapitulace formulace 1: argmin w,b { 1 2 w 2 } (za podm.: y i (w x i + b) 1) p + 1 parametrů, n lin. omezení formulace 2: L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n i=1 α i argmin w,b L p (za podmínky α i 0) p + 1 parametrů, n omezení formulace 3: L d = n i=1 α i 1 2 i,j α iα j x i x j y i y j argmax αi L d (za podmínky α i 0) n parametrů, n omezení data x i vystupují pouze ve formě součinů x i x j
Optimalizační úlohy Rekapitulace formulace 1: argmin w,b { 1 2 w 2 } (za podm.: y i (w x i + b) 1) p + 1 parametrů, n lin. omezení formulace 2: L p = 1 2 w 2 n i=1 α i[(w x i + b)y i ] + n i=1 α i argmin w,b L p (za podmínky α i 0) p + 1 parametrů, n omezení formulace 3: L d = n i=1 α i 1 2 i,j α iα j x i x j y i y j argmax αi L d (za podmínky α i 0) n parametrů, n omezení data x i vystupují pouze ve formě součinů x i x j většina α i nulových, α i = 1 > 0 právě pro support vectors
Řešení optimalizační úlohy Rozhodovací funkce f (x) = sign(w x + b) w = n i=1 α ix i y i
Řešení optimalizační úlohy Rozhodovací funkce f (x) = sign(w x + b) w = n i=1 α ix i y i jak získat b?
Řešení optimalizační úlohy Rozhodovací funkce f (x) = sign(w x + b) w = n i=1 α ix i y i jak získat b? pro lib. support vector: y i (w x i + b) = 1 b = 1 y i w x i
Řešení optimalizační úlohy Rozhodovací funkce f (x) = sign(w x + b) w = n i=1 α ix i y i jak získat b? pro lib. support vector: y i (w x i + b) = 1 b = 1 y i w x i prakticky: b = P i,α i >0 ( 1 y i w x i ) P αi
Řešení optimalizační úlohy Rozhodovací funkce f (x) = sign(w x + b) w = n i=1 α ix i y i jak získat b? pro lib. support vector: y i (w x i + b) = 1 b = 1 y i w x i prakticky: b = P i,α i >0 ( 1 y i w x i ) P αi tedy konečně dostáváme: f (x) = sign( n i=1 α iy i x i x + b)
Trik s jádrem (Kernel trick) Rozhodovací funkce: f (x) = sign( n i=1 α iy i x i x + b)
Trik s jádrem (Kernel trick) Rozhodovací funkce: f (x) = sign( n i=1 α iy i x i x + b) Pozorování: příznaky x se vyskytují pouze ve formě skalárním součinu: x i x
Trik s jádrem (Kernel trick) Rozhodovací funkce: f (x) = sign( n i=1 α iy i x i x + b) Pozorování: příznaky x se vyskytují pouze ve formě skalárním součinu: x i x skalární součin x 1 x 2 lze nahradit jádrem K (x 1, x 2 )
Trik s jádrem (Kernel trick) Rozhodovací funkce: f (x) = sign( n i=1 α iy i x i x + b) Pozorování: příznaky x se vyskytují pouze ve formě skalárním součinu: x i x skalární součin x 1 x 2 lze nahradit jádrem K (x 1, x 2 ) K (x 1, x 2 ) = φ(x 1 ) φ(x 2 )
Trik s jádrem (Kernel trick) Rozhodovací funkce: f (x) = sign( n i=1 α iy i x i x + b) Pozorování: příznaky x se vyskytují pouze ve formě skalárním součinu: x i x skalární součin x 1 x 2 lze nahradit jádrem K (x 1, x 2 ) K (x 1, x 2 ) = φ(x 1 ) φ(x 2 ) jádro může realizovat operaci odpovídající skalárnímu součinu ve vysokorozměrném prostoru
Trik s jádrem (Kernel trick) Rozhodovací funkce: f (x) = sign( n i=1 α iy i x i x + b) Pozorování: příznaky x se vyskytují pouze ve formě skalárním součinu: x i x skalární součin x 1 x 2 lze nahradit jádrem K (x 1, x 2 ) K (x 1, x 2 ) = φ(x 1 ) φ(x 2 ) jádro může realizovat operaci odpovídající skalárnímu součinu ve vysokorozměrném prostoru použitím jádra se z SVC stávají SVM
Trik s jádrem (Kernel trick) Rozhodovací funkce: f (x) = sign( n i=1 α iy i x i x + b) Pozorování: příznaky x se vyskytují pouze ve formě skalárním součinu: x i x skalární součin x 1 x 2 lze nahradit jádrem K (x 1, x 2 ) K (x 1, x 2 ) = φ(x 1 ) φ(x 2 ) jádro může realizovat operaci odpovídající skalárnímu součinu ve vysokorozměrném prostoru použitím jádra se z SVC stávají SVM Používaná jádra: polynomiální: K (x 1, x 2 ) = (x 1 x 2 + 1) q Gaussian radial-basis function (RBF): K (x 1, x 2 ) = exp{ x 1 x 2 2 2σ 2 } hyperbolický tangens: K (x 1, x 2 ) = tanh{β 1 x 1 x 2 + β 2 }
Trik s jádrem (Kernel trick) Příklad Polynomiální jádro stupně q = 2: K (x, y) = (x y + 1) 2, x, y R 2 operuje v prostoru R 6 :
Trik s jádrem (Kernel trick) Příklad Polynomiální jádro stupně q = 2: K (x, y) = (x y + 1) 2, x, y R 2 operuje v prostoru R 6 : x φ(x) = {x 2 1, x 2 2, 2x 1 x 2, 2x 1, 2x 2, 1}
Trik s jádrem (Kernel trick) Příklad Polynomiální jádro stupně q = 2: K (x, y) = (x y + 1) 2, x, y R 2 operuje v prostoru R 6 : x φ(x) = {x 2 1, x 2 2, 2x 1 x 2, 2x 1, 2x 2, 1} y φ(y) = {y 2 1, y 2 2, 2y 1 y 2, 2y 1, 2y 2, 1}
Trik s jádrem (Kernel trick) Příklad Polynomiální jádro stupně q = 2: K (x, y) = (x y + 1) 2, x, y R 2 operuje v prostoru R 6 : x φ(x) = {x 2 1, x 2 2, 2x 1 x 2, 2x 1, 2x 2, 1} y φ(y) = {y 2 1, y 2 2, 2y 1 y 2, 2y 1, 2y 2, 1} φ(x) φ(y) = x 2 1 y 2 1 + x 2 2 y 2 2 + 2x 1x 2 y 1 y 2 + 2x 1 y 1 + 2x 2 y 2 + 1
Trik s jádrem (Kernel trick) Příklad Polynomiální jádro stupně q = 2: K (x, y) = (x y + 1) 2, x, y R 2 operuje v prostoru R 6 : x φ(x) = {x 2 1, x 2 2, 2x 1 x 2, 2x 1, 2x 2, 1} y φ(y) = {y 2 1, y 2 2, 2y 1 y 2, 2y 1, 2y 2, 1} φ(x) φ(y) = x 2 1 y 2 1 + x 2 2 y 2 2 + 2x 1x 2 y 1 y 2 + 2x 1 y 1 + 2x 2 y 2 + 1 (x y + 1) 2 = (x 1 y 1 + x 2 y 2 + 1) 2 = x 2 1 y 2 1 + x 2 2 y 2 2 + 1 + 2x 1x 2 y 1 y 2 + 2x 1 y 1 + 2x 2 y 2
Ukázka jader
Klasifikace s měkkou hranicí Soft-margin classification Motivace: Řešení: Jak: třídy nemusejí být oddělitelné přesto chceme SVM použít dovolit SVM udělat malou chybu argmin w,b { 1 2 w 2 } +C n i=1 ξ i za podm. téměř správné klasifikace: y i (w x i + b) 1 ξ i C představuje regularizační konstantu C = odpovídá původní formulaci separabilní úlohy C se hledá nejčastěji pomocí křížové validace
SVM v praxi fungují velmi dobře časová složitost trénování: O(n 2 ) uživatel volí typ jádra a parametry parametry se hledají typicky křížovou validací po natrénování si stačí pamatovat support vectors
Klasifikace do více tříd SVM umí rozlišovat jen do dvou tříd možná řešení klasifikace do K tříd: jeden proti všem : K úloh: klasifikace třídy k proti zbytku, vítěz bere vše K (K 1) jeden na jednoho : 2 úloh: klasifikace třídy k 1 proti k 2, hlasování
Rozšíření SVM SVM regression detekce nečekaných pozorování novelty detection
Literatura Christopher J.C. Burges: A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery (1998), volume 2, p.121-167. Hastie T., Tibshirani R., Friedman J.: The Elements of Statistical Learning, Springer New York Inc., 2001, New York, NY, USA, http://statweb.stanford.edu/ tibs/elemstatlearn/