Metoda podpornih vektorjev
Metoda podpornih vektorjev
Metoda podpornih vektorjev
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Uvod 2/60<br />
SVM = Support Vector Machine = <strong>Metoda</strong> <strong>podpornih</strong> <strong>vektorjev</strong><br />
• Vapnik in Lerner 1963 (generalized portrait)<br />
• jedra: Aronszajn 1950; Aizerman 1964; Wahba 1990, Poggio in Girosi 1990<br />
• Boser, Guyon in Vapnik na COLT 1992 (osnovna oblika SVM, jedra)<br />
• Cortes in Vapnik, Machine Learning 1995 (soft margin)<br />
• poplava člankov po 1995<br />
+ dobro deluje v praksi<br />
+ fleksibilna (različna jedra → različni prostori hipotez)<br />
+ robustna (kolikor toliko odporna na pretirano prilagajanje;<br />
ne moti je veliko število atributov)<br />
+ dobro teoretično podprta<br />
− malo teˇzje jo je razumeti; kompleksnejša implementacija<br />
− modeli niso preveč razumljivi<br />
− časovno zahtevnejša
Kazalo 3/60<br />
• Uvod. Razmejevanje dveh razredov z ravnino. Geometrija ravnine.<br />
• SVM kot optimizacijski problem. Orodja iz teorije optimizacije.<br />
• Izpeljava dualnega problema.<br />
• Druge formulacije prvotnega optimizacijskega problema.<br />
• Reševanje v praksi.<br />
• Jedra.<br />
• Razno.<br />
• Programi.<br />
• Literatura.
Razmejevanje točk<br />
z ravnino<br />
❄<br />
Učenje kot<br />
optimizacijski problem<br />
✛<br />
Optimizacijske<br />
metode<br />
❄<br />
Prehod na<br />
dualni problem<br />
❄<br />
Numerično<br />
reševanje<br />
Uvod
Motivacija 5/60<br />
• Imamo populacijo primerkov, ki so predstavljeni z vektorji iz R d .<br />
• Imamo dva razreda, pozitivnega in negativnega.<br />
Vsak primerek spada v enega od teh dveh razredov.<br />
• Učna množica: pari (x i , y i ) za i ∈ 1..l.<br />
x i ∈ R d je vektor, y i ∈ {1, −1} je njegova oznaka razreda.<br />
• Radi bi dobili klasifikator (model, hipotezo), ki bi razločeval ta dva razreda.<br />
Za začetek se omejimo na to, da bi oba razreda razmejili z neko (hiper)ravnino.
Enačba ravnine 6/60<br />
• Ravnino prepoznamo po tem, da je cela pravokotna na neko smer.<br />
Vektor w, pravokoten na ravnino, imenujemo normala ravnine.<br />
• Potem je vsak vektor, ki leži v celoti znotraj ravnine, pravokoten na w.<br />
• Naj bo x 0 poljubna točka z ravnine. Potem za vsako točko x z ravnine velja:<br />
x − x 0 ⊥ w<br />
Dva vektorja, x in û, sta pravokotna natanko tedaj, ko je njun skalarni produkt<br />
enak 0.<br />
d∑<br />
(x, u) = 〈x, u〉 = 〈x · u〉 = x T u = x i u i .<br />
Torej<br />
i=1<br />
w T (x − x 0 ) = 0<br />
w T x − w T x 0 = 0<br />
w T x + b = 0 (za b = −w T x 0 )<br />
d∑<br />
w i x i + b = 0<br />
i=1
Nad in pod ravnino 7/60<br />
• Začnimo v ravnini, v neki točki x, in se premaknimo v smeri w. Za naš novi<br />
poloˇzaj ˆx = x + λw velja:<br />
w T ˆx + b = w T (x + λw) + b = w T x + b + λw T w = λw T w > 0.<br />
Če bi se premikali v nasprotni smeri, bi za novi poloˇzaj veljalo<br />
w T ˆx + b < 0.<br />
• Ravnina torej razdeli prostor na dva polprostora in za poljubno točko je zelo<br />
preprosto ugotoviti, v katerem leˇzi.<br />
• Za naš problem bi bilo torej ugodno, če bi ravnino postavili tako, da bi<br />
pozitivni primerki ležali na eni strani ravnine, negativni pa na drugi. Potem bi<br />
vzeli preprosto:<br />
napoved(x) = sgn(w T x + b).
Razmejevanje učnih primerkov z ravnino 8/60<br />
Pozitivni primerki naj ležijo na pozitivni strani, negativni pa na negativni:<br />
y i = +1 =⇒ w T x i + b ≥ 0<br />
y i = −1 =⇒ w T x i + b ≤ 0,<br />
kar lahko združimo v:<br />
Toda:<br />
za vsak i : y i (w T x i + b) ≥ 0.<br />
• Tej zahtevi mogoče ustreza veliko ravnin.<br />
• Tej zahtevi mogoče ne ustreza nobena ravnina.<br />
Za katero ravnino naj se odločimo?
Rob 9/60<br />
Ko računamo w T x + b za razne x, se pri vsaki točki pozna le to, kako daleč je od<br />
razmejitvene ravnine (in na kateri strani je).<br />
• Torej si ne ˇzelimo, da bi bili učni primerki preblizu razmejitvene ravnine, ker<br />
postanemo potem bolj občutljivi na majhne spremembe in premike.<br />
✻<br />
✻ <br />
<br />
❳ ❳❳ ❳❳ ❳❳<br />
❳ ❳ ❳❳ ❳❳<br />
❳ ❳ ❳❳ ❳❳<br />
❳ ❳ ❳❳ ❳❳<br />
❳ ❳ ❳ ❳❳<br />
❳<br />
❳❳ ❳❳ ❳ ❳❳<br />
❳ ❳<br />
❳ ❳ ❳ ❳❳<br />
❳ ❳❳<br />
❳ ❳❳<br />
❳ ❳❳<br />
❳ ❳<br />
✲<br />
✻<br />
✻ <br />
<br />
❅<br />
❅<br />
❅<br />
❅❅❅❅❅❅<br />
❅<br />
❅❅<br />
❅ ❅<br />
❅ ❅❅❅❅❅❅❅<br />
❅ ❅❅❅ ❅<br />
❅ ❅❅<br />
❅❅ ❅<br />
❅ ❅<br />
❅❅<br />
❅ ❅<br />
❅<br />
❅<br />
❅<br />
❅❅❅❅❅<br />
❅<br />
❅❅<br />
<br />
❅<br />
❅<br />
❅<br />
❅❅<br />
❅<br />
❳ ❳ ❳ ❳❳<br />
❳ ❳❳<br />
❳ ❳❳<br />
❳ ❳❳<br />
❳ ❳<br />
✲<br />
<br />
<br />
❅<br />
❅❅❅<br />
❅<br />
❅❅❅❅❅<br />
❳ ❳ ❳<br />
❳ ❳❳ ❳❳ ❳ <br />
❳ ❳❳<br />
<br />
❳❳ ❳❳ ❳<br />
❳❳ ❳ ❳❳<br />
❳<br />
❳ ❳❳ ❳❳ ❳❳ ❳ ❳<br />
❳ ❳❳ ❳❳ ❳ ❳ ❳❳ ✲<br />
❅<br />
❅ <br />
❅<br />
❅<br />
Prostor med ravnini najbliˇzjima primerkoma na eni in na drugi strani imenujemo<br />
rob (margin) in si ˇzelimo, da bi bil čim širši.<br />
<br />
<br />
<br />
✲
Rob 10/60<br />
Naj bo rob omejen z ravninama:<br />
w T x + b = −γ in w T x + b = γ.<br />
Učni primerki nam torej postavljajo takšne pogoje:<br />
Kako širok je ta rob?<br />
y i (w T x + b) ≥ γ<br />
• Postavimo se v neko točko x 1 na prvi ravnini:<br />
w T x 1 + b = −γ<br />
Premikajmo se v smeri normale, dokler ne naletimo na drugo ravnino:<br />
Torej je<br />
w T x 2 + b = γ za x 2 = x 1 + λw.<br />
w T (x 2 − x 1 ) = 2γ<br />
λw T w = 2γ<br />
λ = 2γ/||w|| 2<br />
Širina roba je ||λw|| = |λ| · ||w|| = 2γ<br />
||w|| 2 ||w|| = 2γ/||w||.
Širina roba 11/60<br />
Vidimo: rob je pri dani γ tem širši, čim krajša je normala w.<br />
Parameter γ je odveč:<br />
• Če ravnina w T x + b = 0<br />
ustreza pogojem<br />
∀i : y i (w T x i + b) ≥ γ,<br />
lahko isto ravnino opišemo kot<br />
ŵ T x + ˆb<br />
za ŵ = γ −1 w, ˆb = b/γ<br />
in bo ustrezala pogojem:<br />
• Torej ni nič narobe, če vzamemo γ = 1.<br />
∀i : y i (ŵ T x i + ˆb) ≥ 1.<br />
Rob je potem širok 2/||w|| in če hočemo najširši rob, moramo zahtevati najkrajšo<br />
normalo w.
Optimizacijski problem 12/60<br />
Zdaj lahko zastavimo iskanje ravnine kot optimizacijski problem:<br />
Faktor 1 2<br />
minimiziraj<br />
1<br />
2 ||w||2<br />
pri pogojih ∀i ∈ 1..l : y i (w T x i + b) ≥ 1<br />
je tu le zaradi lepšega nadaljevanja izpeljave.<br />
Kaj pa, če pozitivnih in negativnih primerkov ne moremo razmejiti z ravnino?<br />
Vpeljimo kazenske spremenljivke ξ i in pogoj<br />
omilimo v<br />
y i (w T x i + b) ≥ 1<br />
y i (w T x i + b) ≥ 1 − ξ i za neko ξ i ≥ 0.<br />
Če gre s ξ i = 0, toliko lepše, drugače pa jo upoštevajmo v kriterijski funkciji:<br />
1<br />
minimiziraj<br />
2 ||w||2 + C ∑ l<br />
i=1 ξ i<br />
pri pogojih ∀i ∈ 1..l : y i (w T x i + b) ≥ 1 − ξ i , ξ i ≥ 0<br />
Zdaj potrebujemo kakšna matematična orodja, da se bomo lahko lotili tega<br />
problema.
Razmejevanje točk<br />
z ravnino<br />
❄<br />
Učenje kot<br />
optimizacijski problem<br />
✛<br />
❄<br />
Prehod na<br />
dualni problem<br />
❄<br />
Numerično<br />
reševanje<br />
Optimizacijske<br />
metode<br />
Pripomočki za optimizacijo
Lagrangeovi multiplikatorji 14/60<br />
Recimo, da imamo takšen optimizacijski problem:<br />
minimiziraj f(x) (f imenujemo kriterijska funkcija)<br />
pri pogojih x ∈ R d , ∀i ∈ 1..l : f i (x) ≥ 0<br />
Če x ustreza vsem pogojem f i (x) ≥ 0, pravimo, da je dopustna rešitev.<br />
Mnoˇzico vseh dopustnih rešitev označimo s Φ.<br />
Nasvet: vpeljimo Lagrangeove multiplikatorje u = (u 1 , . . . , u l ) (ki bodo vedno<br />
nenegativna realna števila) in definirajmo Lagrangeovo funkcijo<br />
L(x, u) := f(x) − ∑ l<br />
i=1 u if i (x).<br />
Izpeljimo iz nje dve novi funkciji: ˆf(x) := max L(x, u) in g(u) := min L(x, u).<br />
u∈(R + 0 )l x∈Rd Hitro se vidi:<br />
In ∀x, u:<br />
Torej tudi:<br />
ˆf(x) =<br />
{ f(x), če x ∈ Φ<br />
+∞, če x ∉ Φ<br />
g(u) = min L(˜x, u) ≤ L(x, u) ≤ max L(x, ũ) = f(x).<br />
˜x∈R d ũ∈(R + 0 )l<br />
max<br />
u∈(R + 0 )l g(u) ≤ min<br />
x∈R d ˆf(x).
Sedla 15/60<br />
L(x, u) ima v točki (x s , u s ) sedlo natanko tedaj, ko velja:<br />
∀x : L(x, u s ) ≥ L(x s , u s ) in ∀u : L(x s , u) ≤ L(x s , u s ).<br />
V (x s , u s ) ima torej L minimum po x in maksimum po u. Zato je<br />
ˆf(x s ) = L(x s , u s ) = g(u s ).<br />
Na prejšnji strani smo videli, da je ∀x, u : ˆf(x) ≥ g(u),<br />
torej tudi za u = u s : ∀x : ˆf(x) ≥ g(u s ) = ˆf(x s ).<br />
Zato doseže ˆf(x) v x = x s svoj minimum.<br />
Podobno mora pri x = x s veljati ∀u : g(u) ≤ ˆf(x s ) = g(u s ),<br />
zato doseˇze g v u = u s svoj maksimum.<br />
Tedaj je torej ˆf(x s ) = min x ˆf(x) = maxu g(u) = g(u s ).<br />
Slaterjev zadostni pogoj za obstoj sedla:<br />
• f in f i morajo biti vse konveksne in<br />
• obstajati mora x, za katerega je ∀i : f i (x) > 0 (strogo dopustna rešitev).
Karush-Kuhn-Tuckerjev izrek 16/60<br />
V sedlu (x s , u s ) doseˇze L svoj minimum po x ∈ R d . Torej morajo biti tu njeni odvodi<br />
po x enaki 0:<br />
∂L<br />
∂x j<br />
(x s , u s ) = 0 oz. ∇ x L(x s , u s ) = 0.<br />
Obenem pa v sedlu gotovo velja:<br />
ˆf(x s ) = L(x s , u s ) = f(x s ) + ∑ l<br />
i=1 us i f i(x s );<br />
in ˆf(x s ) = f(x s ), ker je x s dopustna rešitev;<br />
torej je ∑ l<br />
i=1 us i f i(x s ) = 0.<br />
Toda ker so Lagrangeovi multiplikatorji nenegativni, je u s i ≥ 0;<br />
in ker je x s dopustna rešitev, je f i (x s ) ≥ 0;<br />
zato je zgornji pogoj izpolnjen le, če je<br />
∀i ∈ 1..l : u s i f i (x s ) = 0.<br />
Z besedami: ali v pogoju velja enakost ali pa je ustrezni Lagrangeov multiplikator enak 0.<br />
Če naloga ustreza Slaterjevim pogojem, velja izrek tudi v obratno smer: če za nek<br />
(x s , u s ) velja ∇ x L(x s , u s ) = 0 in u s i f i(x s ) = 0 in u s i ≥ 0, je tu sedlo in optimum.
Razmejevanje točk<br />
z ravnino<br />
❄<br />
Učenje kot<br />
optimizacijski problem<br />
✛<br />
❄<br />
Prehod na<br />
dualni problem<br />
❄<br />
Numerično<br />
reševanje<br />
Optimizacijske<br />
metode<br />
Rešitev optimizacijskega<br />
problema<br />
in druge formulacije
Optimizacija 18/60<br />
Naš optimizacijski problem:<br />
minimiziraj f(w, b, ξ) := 1 2 ||w||2 + C ∑ l<br />
i=1 ξ i<br />
pri pogojih ∀i ∈ 1..l : y i (w T x i + b) ≥ 1 − ξ i , ξ i ≥ 0<br />
Vpeljimo Lagrangeove multiplikatorje α = (α 1 , . . . , α l ) in µ = (µ 1 , . . . , µ l ).<br />
d∑<br />
l∑ l∑<br />
l∑<br />
L(w,<br />
} {{<br />
b, ξ<br />
}<br />
, α,<br />
}{{}<br />
µ ) = 1 2<br />
wj 2 + C ξ i − α i [y i (w T x i + b) − 1 + ξ i ] − µ i ξ i .<br />
” x“ ” u“ j=1<br />
i=1 i=1<br />
i=1<br />
Iščemo pa g(α, µ) = min w,b,ξ L(w, b, ξ), zato poglejmo, kje so odvodi L-ja po w j -jih,<br />
b-ju in x i -jih enaki 0.<br />
∂L/∂w j = w j − ∑ l<br />
i=1 α iy i x ij = 0 ⇒ w = ∑ l<br />
i=1 α iy i x i ,<br />
∂L/∂b = − ∑ l<br />
i=1 α iy i = 0 ⇒ ∑ l<br />
i=1 α iy i = 0,<br />
∂L/∂ξ i = C − α i − µ i = 0 ⇒ α i + µ i = C.<br />
Upoštevajmo te pogoje v L.
Prehod k dualni nalogi 19/60<br />
Upoštevajmo: w = ∑ l<br />
i=1 α iy i x i , ∑ l<br />
i=1 α iy i = 0, α i + µ i = C.<br />
1<br />
2<br />
L(w, b, ξ, α, µ) = 1 2 wT w + C ∑ l<br />
i=1 ξ i − ∑ l<br />
i=1 α i[y i (w T x i − b) − 1 + ξ i ] − ∑ l<br />
i=1 µ iξ i =<br />
l∑ l∑<br />
l∑ l∑ l∑<br />
l∑<br />
α i α j y i y j x T j x i + C ξ i − α i [y i ( α j y j x T j x i − b) − 1 + ξ i ] − µ i ξ i =<br />
1<br />
2<br />
l∑<br />
i=1<br />
i=1<br />
j=1<br />
l∑<br />
α i α j y i y j x T j x i −<br />
j=1<br />
− 1 2<br />
l∑<br />
i=1<br />
l∑<br />
i=1<br />
i=1<br />
i=1<br />
l∑<br />
α i α j y i y j x T j x i +<br />
i=1<br />
l∑<br />
α i α j y i y j x T j x i − b<br />
j=1<br />
j=1<br />
l∑<br />
α i y i +<br />
i=1<br />
l∑<br />
α i y i b +<br />
i=1<br />
l∑<br />
α i +<br />
i=1<br />
− 1 2<br />
l∑<br />
α i +<br />
i=1<br />
i=1<br />
l∑<br />
(C − α i − µ i )ξ i =<br />
i=1<br />
l∑<br />
(C − α i − µ i )ξ i =<br />
i=1<br />
l∑<br />
i=1<br />
l∑<br />
α i α j y i y j x T j x i +<br />
Dobili smo dualno nalogo:<br />
maksimiziraj − 1 ∑ l ∑ l<br />
2 i=1 j=1 α iα j y i y j x T j x i + ∑ l<br />
i=1 α i<br />
∑<br />
pri pogojih ∀i ∈ 1..l : 0 ≤ α i ≤ C in l<br />
i=1 α iy i = 0.<br />
j=1<br />
l∑<br />
α i .<br />
i=1
Dualna naloga 20/60<br />
Če obrnemo predznak kriterijski funkciji:<br />
minimiziraj g(α) := 1 ∑ l ∑ l<br />
2 i=1 j=1 α iα j y i y j x T i x j − ∑ l<br />
∑<br />
pri pogojih ∀i ∈ 1..l : 0 ≤ α i ≤ C in l<br />
i=1 α iy i = 0.<br />
To je problem kvadratnega programiranja.<br />
Kriterijsko funkcijo lahko zapišemo tudi v matrični obliki:<br />
g(α) = 1 2 αT Qα − 1 T α,<br />
kjer je Q matrika z elementi Q ij = y i y j x T i x j,<br />
1 = (1, 1, . . . , 1) T pa vektor samih enic.<br />
i=1 α i<br />
Ko poiščemo optimalno α, lahko izrazimo normalo na ravnino po formuli<br />
w =<br />
l∑<br />
α i y i x i .<br />
Kako pridemo do praga b, bomo videli kasneje.<br />
Lahko bi izrazili tudi ξ (ko bi imeli b), a tega za klasifikacijo niti ne potrebujemo.<br />
i=1
Podporni vektorji 21/60<br />
KKT izrek nam o optimalni rešitvi zagotavlja, za vsak i ∈ 1..l:<br />
α i [y i (w T x i + b) − 1 + ξ i ] = 0 in µ i ξ i = 0.<br />
Spomnimo se, da velja še: α i + µ i = C, α i ≥ 0, µ i ≥ 0, y i (w T x i + b) − 1 + ξ i ≥ 0.<br />
Ločimo tri možnosti:<br />
1. α i = 0. Tedaj je µ i = C ≠ 0 in zato ξ i = 0, zato pa y i (w T x i + b) ≥ 1. To so<br />
vektorji na pravi strani roba.<br />
2. 0 < α i < C. Tedaj je µ i = C − α i > 0 in zato spet ξ i = 0, vendar pa zdaj<br />
y i (w T x i + b) = 1. Ti vektorji so na pravi strani roba, vendar ravno še na meji.<br />
3. α i = C. Tedaj je µ i = 0 in y i (x T x i + b) ≥ 1 − ξ i . Zdaj je mogoče, da je ξ i > 0; če<br />
je ξ i ≥ 1, je tak vektor narobe klasificiran.<br />
V izraˇzavi w = ∑ l<br />
i=1 α iy i x i nastopajo le vektorji iz druge in tretje skupine, ki jim zato<br />
pravimo podporni vektorji.<br />
• Izkaˇze se: če bi iz učne mnoˇzice zavrgli vse ostale vektorje in se ponovno učili,<br />
bi dobili isto rešitev.<br />
• Ti vektorji so nekako najbliˇzje razmejitveni ravnini, z obeh strani jo podpirajo,<br />
da se ne bi kam premaknila.
Določanje praga b 22/60<br />
✻<br />
❛ ❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛<br />
❛ ❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛<br />
❛ ❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛❛<br />
w T x + b = 1<br />
w T x + b = 0<br />
w T x + b = −1<br />
✲<br />
1. Načeloma za poljuben vektor iz 2. skupine velja y i (w T x i + b) = 1, torej<br />
b = y i − w T x i ; bolje je vzeti povprečje po vseh teh vektorjih.<br />
2. Ali pa: b = − 1 [<br />
]<br />
min<br />
2 i:α i
Trdi rob (hard margin) 23/60<br />
Pri tej različici ne dovolimo napak na učni množici.<br />
Prvotna naloga:<br />
Dualna naloga:<br />
minimiziraj f(w, b) = 1 2 ||w||2<br />
pri pogojih ∀i ∈ 1..l : y i (w T x i + b) ≥ 1<br />
minimiziraj g(α) = 1 2 αT Qα − 1 T α<br />
pri pogojih ∀i ∈ 1..l : α i ≥ 0 in<br />
∑ l<br />
i=1 α iy i = 0.<br />
Tu se lahko zgodi, da prvotna naloga sploh nima dopustnih rešitev. Pri dualni<br />
nalogi, kjer α i zdaj navzgor niso omejene (kot prej s C), gre lahko v takem primeru g<br />
prek vseh meja.
Ničeln prag 24/60<br />
Pri tej različici fiksiramo prag na b = 0, torej se omejimo na ravnine, ki gredo skozi<br />
koordinatno izhodišče.<br />
minimiziraj f(w, ξ) = 1 2 ||w||2 + C ∑ l<br />
i=1 ξ i<br />
pri pogojih ∀i ∈ 1..l : y i w T x i ≥ 1 − ξ i , ξ i ≥ 0<br />
S tem odpade iz dualne naloge pogoj α T y = 0.<br />
minimiziraj g(α) = 1 2 αT Qα − 1 T α<br />
pri pogojih ∀i ∈ 1..l : 0 ≤ α i ≤ C.<br />
V zameno učnim vektorjem pogosto dodamo še eno komponento, ki je pri vseh<br />
enaka 1: ˆx i = (x i , 1). Zato ima tudi w še eno komponento, ki torej učinkuje podobno<br />
kot prag: ŵ = (w, b). Učinek je torej tak, kot če bi imeli:<br />
minimiziraj f(w, b, ξ) = 1 2 (||w||2 + b 2 ) + C ∑ l<br />
i=1 ξ i<br />
pri pogojih ∀i ∈ 1..l : y i (w T x i + b) ≥ 1, ξ i ≥ 0
Kvadratna kazen 25/60<br />
Tu vzamemo vsoto kvadratov kazenskih spremenljivk:<br />
minimiziraj f(w, b, ξ) = 1 2 ||w||2 + C ∑ l<br />
i=1 ξ2 i<br />
pri pogojih ∀i ∈ 1..l : y i (w T x i + b) ≥ 1 − ξ i<br />
Omejitve ξ i ≥ 0 ne potrebujemo — tako ali tako se ne bi splačalo vzeti negativnega<br />
ξ i , kajti namesto njega je ξ i = 0 tudi dober, pa še f bo manjši.<br />
V dualni nalogi se spremeni matrika drugih odvodov. Po diagonali dobi še<br />
vrednosti 1/2C, kar je numerikom v veliko veselje, ker je tako bolje pogojena:<br />
minimiziraj g(α) = 1 2 αT (Q + 1<br />
2C I)α − 1T α<br />
∑<br />
pri pogojih ∀i ∈ 1..l : α i ≥ 0 in l<br />
i=1 α iy i = 0.<br />
Tu ni več pogoja α i ≤ C ali česa podobnega, vendar se vseeno ni bati, da bi kakšna<br />
α i ušla v neskončnost, saj imamo v kriterijski funkciji zdaj člen 1<br />
4C α2 i .<br />
To radi kombinirajo z ničelnim pragom, da se znebijo nadležnega pogoja z<br />
enakostjo.
Izbira parametra C 26/60<br />
minimiziraj f(w, b, ξ) := 1 2 ||w||2 + C ∑ l<br />
i=1 ξ i<br />
pri pogojih ∀i ∈ 1..l : y i (w T x i + b) ≥ 1 − ξ i , ξ i ≥ 0<br />
• C mora posredovati med<br />
– teˇznjami k širšemu robu (spomnimo se, da je rob širok 2/||w||) in<br />
– težnjami po čim manjših napakah (ξ i ) na učni množici.<br />
• Ker je v pogojih 1 fiksna, se tudi ξ i gibljejo tam nekje: ξ i = 2 vedno pomeni<br />
napako za celotno širino roba, ipd. Za ||w|| 2 pa ni tovrstnih omejitev.<br />
Če se vsi x i pomnoˇzijo z λ, mi pa bi ˇzeleli ”<br />
isto ravnino“ kot prej, bo<br />
ŵ = (1/λ)w ustrezala pogojem z istimi ξ i in b.<br />
– Toda v kriterijski funkciji je zdaj prvi člen λ 2 -krat manjši,<br />
torej bi čutili napake veliko huje.<br />
– Zato bi morali vzeti Ĉ = C/λ2 .<br />
Do istega problema pride pri jedrih, kjer učne vektorje tudi nekako preslikamo.
Izbira parametra C 27/60<br />
Teorija:<br />
• Recimo, da vsi naši vektorji, učni in kasneje testni, ležijo v krogli s središčem v<br />
koordinatnem izhodišču in polmerom R. Za neko konstanto k velja:<br />
• Naj bo f poljuben klasifikator oblike napoved(x) = sgn w T x;<br />
• naj bodo ξ i njegove napake na učni mnoˇzici, tako da je y i (w T x) ≥ 1 − ξ i ;<br />
• potem z verjetnostjo vsaj 1 − δ velja:<br />
verjetnost napake(f) ≤ k l<br />
(<br />
(||w|| 2 R 2 + ||ξ|| 2 ) log 2 l − log δ ) .<br />
• Edino, na kar lahko vplivamo, je ||w|| 2 R 2 + ||ξ|| 2 , kar je isto kot<br />
R 2 (||w|| 2 + R −2 ||ξ|| 2 ). Mi pri učenju minimiziramo ||w|| 2 + C||ξ|| 2 ;<br />
desna stran bo torej najmanjša pri C = R −2 .<br />
Ta nasvet sicer predpostavlja ničeln prag b in kvadratno kazen pri optimizaciji,<br />
vendar je tudi pri linearni lahko koristen.<br />
V praksi: prečno preverjanje.
Izbira parametra C 28/60<br />
Reuters-21578, ModApte, ship<br />
1<br />
20<br />
F1<br />
0.75<br />
0.5<br />
0.25<br />
0<br />
F 1 na učni množici<br />
F 1 na testni množici<br />
čas učenja [s]<br />
15<br />
10<br />
5<br />
0<br />
čas učenja [s]<br />
0.001<br />
0.01<br />
0.1<br />
1<br />
10<br />
100<br />
1000<br />
10000<br />
C<br />
• Zelo neugodno je, če vzamemo premajhen C.<br />
• Če vzamemo prevelik C, nam to ne škoduje tako zelo, pač pa učenje po<br />
nepotrebnem traja dlje.
Razmejevanje točk<br />
z ravnino<br />
❄<br />
Učenje kot<br />
optimizacijski problem<br />
✛<br />
❄<br />
Prehod na<br />
dualni problem<br />
❄<br />
Numerično<br />
reševanje<br />
Optimizacijske<br />
metode<br />
Numerično reševanje
Kvadratno programiranje 30/60<br />
Numerično moramo rešiti nalogo<br />
minimiziraj g(α) = 1 2 αT Qα − 1 T ∑<br />
α<br />
pri pogojih ∀i ∈ 1..l : α i ≥ 0,<br />
i y iα i = 0.<br />
• Matematiki že dolgo poznajo razne postopke za to, vendar večinoma odpovejo<br />
pri velikih problemih.<br />
• Pri nas je l število učnih primerkov in Q je matrika reda l × l, tako da pogosto<br />
niti ne gre cela hkrati v pomnilnik.<br />
• Vendar pa, če nekaj spremenljivk fiksiramo, nam ostane problem enake oblike<br />
na manj spremenljivkah. Zato lahko standardne postopke uporabimo tako, da<br />
fiksiramo večino spremenljivk in optimiziramo le po preostalih<br />
(delovna množica). Potem optimiziramo po neki drugi skupini spremenljivk in<br />
tako naprej.<br />
S KKT pogoji lahko kadarkoli preverimo, če smo ˇze pri optimalni rešitvi. Za vsak i<br />
mora veljati:<br />
α i = 0 =⇒ y i (w T x i + b) ≥ 1<br />
0 < α i < C =⇒ y i (w T x i + b) = 1<br />
α i = C =⇒ y i (w T x i + b) ≤ 1
Chunking 31/60<br />
To je predlagal že Vapnik (1979):<br />
1. Izberimo prvih nekaj spremenljivk kot delovno mnoˇzico in optimizirajmo po<br />
njih.<br />
2. Ko to naredimo, odstranimo iz delovne mnoˇzice tiste z α i = 0 in dodajmo vanjo<br />
tiste, ki prej niso bile v DM, se pa trenutna ravnina na njih zmoti (imajo<br />
y i (w T x i + b) < 1).<br />
3. Spet optimiziramo na novi DM in to ponavljamo.<br />
Tu se zanašamo na dejstvo, da se rezultat ne spremeni, če iz učne množice zavržemo<br />
vse ne-podporne vektorje. Torej je dovolj, če se učimo samo na <strong>podpornih</strong>; z gornjim<br />
postopkom skušamo ugotoviti, kateri so podporni.<br />
Različica: decomposition (Osuna et al., 1997) — v delovno množico vedno sprejmemo<br />
le toliko novih spremenljivk, kolikor smo jih prej odvzeli iz nje. Očitno moramo<br />
dovoliti vsaj tako veliko DM, da bodo šli vanjo vsi podporni vektorji.
Joachimsova različica dekompozicije 32/60<br />
• Za delovno množico si izberemo q spremenljivk; optimiziramo; to ponavljamo,<br />
dokler ne konvergira. Predlaga q = 10.<br />
Spremenljivke si izberemo takole: kriterijska funkcija<br />
ima odvode<br />
g(α) = 1 2 αT Qα − 1 T α<br />
∇ α g(α) = Qα − 1 T .<br />
• Spremenljivke α i z negativnim odvodom ∂g/∂α i bi bilo treba povečevati,<br />
tiste s pozitivnim zmanjševati.<br />
• Da bomo lahko spoštovali pogoj ∑ l<br />
i=1 y iα i = 0, si moramo izbrati nekaj (npr.<br />
q/2) takih α i , pri katerih se bo vrednost y i α i povečevala, in nekaj takih, pri<br />
katerih se bo zmanjševala.<br />
• Pri tem seveda ignoriramo tiste, ki jih ne bi mogli premikati v željeni smeri<br />
(če so ˇze na robu intervala [0, C]).<br />
Shrinking: če neka α i veliko iteracij ostaja pri vrednosti 0 (ali C), je v bodoče sploh ne<br />
gledamo več. Čez čas preverimo, če je njena vrednost še sprejemljiva.
Zaporedna minimalna optimizacija (SMO) 33/60<br />
Platt (1999) je opazil:<br />
• Ker imamo pogoj<br />
l∑<br />
y i α i = 0,<br />
i=1<br />
ne moremo spreminjati le po ene α i — moramo vsaj dve naenkrat, da bomo<br />
lahko ohranjali to enakost. Izberimo le dve, α i in α j .<br />
• Od gornjega pogoja nam ostane zdaj<br />
y i α stara<br />
i<br />
+ y j α stara<br />
j<br />
= y i α nova<br />
i<br />
+ y j α nova<br />
j .<br />
Torej: ko spremenimo npr. α i v αi<br />
nova , je s tem ˇze točno določena tudi edina<br />
sprejemljiva vrednost za α j .<br />
• Torej imamo v bistvu en sam parameter — spremembo α i .<br />
g je kvadratna funkcija tega in brez težav poiščemo minimum.<br />
Hevristika za izbor dveh spremenljivk:<br />
1. α i naj bo tista, ki najhuje krši svoj KKT pogoj.<br />
2. α j tista, ki v paru z α i obeta največji premik.
Časovna zahtevnost učenja SVMjev 34/60<br />
10000<br />
Čas učenja T [s]<br />
1000<br />
100<br />
10<br />
10000<br />
Število učnih primerkov N<br />
poskusi<br />
T = N 1.51 /19152<br />
100000<br />
• Mnoˇzica 118924 učnih primerkov in njene podmnoˇzice.<br />
• Linearna regresija pravi:<br />
[čas učenja] ≈<br />
1<br />
19152.342 [število učnih primerkov]1.51725 s.<br />
• Časovna zahtevnost je med linearno in kvadratno,<br />
različni avtorji navajajo različne eksponente.
Nelinearni modeli in jedra
Prehod na nelinearne modele 36/60<br />
Recimo, da bi pred učenjem vse učne vektorje preslikali<br />
v nek nov vektorski prostor F:<br />
φ : R d → F<br />
x ↦→ φ(x)<br />
Če pišemo φ(x) = (φ 1 (x), φ 2 (x), . . .), so φ i (x) oblike ali značilke ( features) primerka x,<br />
F je prostor značilk ( feature space).<br />
Naš optimizacijski problem je bil prej<br />
Zdaj pa je:<br />
minimiziraj f(w, b, ξ) := 1 2 ||w||2 + C ∑ l<br />
i=1 ξ i<br />
pri pogojih ∀i ∈ 1..l : y i (w T x i + b) ≥ 1 − ξ i , ξ i ≥ 0.<br />
minimiziraj f(ŵ, b, ξ) := 1 2 ||ŵ||2 F + C ∑ l<br />
i=1 ξ i<br />
pri pogojih ∀i ∈ 1..l : y i (〈ŵ, φ(x i )〉 F<br />
+ b) ≥ 1 − ξ i , ξ i ≥ 0.<br />
ŵ ˇzivi v F in 〈·, ·〉 F<br />
je skalarni produkt v F.<br />
||ŵ|| 2 F = 〈ŵ, ŵ〉 F<br />
je norma v prostoru F.
Prehod na nelinearne modele 37/60<br />
Dualna naloga je bila prej:<br />
minimiziraj g(α) := 1 ∑ l ∑ l<br />
2 i=1 j=1 α iα j y i y j x T i x j − ∑ l<br />
∑<br />
pri pogojih ∀i ∈ 1..l : 0 ≤ α i ≤ C in l<br />
i=1 α iy i = 0.<br />
i=1 α i<br />
Zdaj pa je:<br />
minimiziraj g(α) := 1 ∑ l ∑ l<br />
2 i=1 j=1 α iα j y i y j 〈φ(x i ), φ(x j )〉 F<br />
− ∑ l<br />
∑<br />
pri pogojih ∀i ∈ 1..l : 0 ≤ α i ≤ C in l<br />
i=1 α iy i = 0.<br />
Prej se je normala izraˇzala kot<br />
Zdaj:<br />
Klasifikator je bil prej:<br />
Zdaj:<br />
w = ∑ l<br />
i=1 α iy i x i .<br />
ŵ = ∑ l<br />
i=1 α iy i φ(x i ).<br />
napoved(x) = sgn(w T x + b).<br />
i=1 α i<br />
napoved(x) = sgn(〈ŵ, φ(x)〉 F<br />
+ b) = sgn(b + ∑ l<br />
i=1 α iy i 〈φ(x i ), φ(x)〉 F<br />
).
Jedra 38/60<br />
Videli smo: nikjer nam ni treba eksplicitno delati s slikami φ(x).<br />
Dovolj je, če znamo računati skalarne produkte med njimi:<br />
Taki funkciji pravimo jedro (kernel).<br />
K(x, ˆx) = 〈φ(x), φ(ˆx)〉 F .<br />
• Lahko bi si najprej izbrali φ in F ter potem poskušali najti<br />
primerno K.<br />
(Takšno, ki jo bo preprosto računati.)<br />
• Pogosto pa kar vzamemo nek K in se moramo le še prepričati, da<br />
obstajata neka φ in F, ki jima K ustreza.
Zadostni pogoji, da je K jedro 39/60<br />
Mercerjev izrek:<br />
• Omejimo se na neko kompaktno (zaprto in omejeno) podmnoˇzico C ⊂ R d .<br />
• g je kvadratno integrabilna na C ntk.<br />
∫<br />
C<br />
g 2 (x)dx < ∞.<br />
• K naj bo simetrična in za vsaki kvadratno integrabilni f, g naj velja:<br />
∫∫<br />
f(x)K(x, ˆx)g(ˆx)dxdˆx ≥ 0.<br />
Potem je K jedro.<br />
Še en zadosten pogoj:<br />
C×C<br />
• Za vsako končno mnoˇzico {x 1 , . . . , x l } mora biti matrika K = (k ij ) z elementi<br />
k ij := K(x i , x j ) pozitivno semidefinitna.
Bolj človeški pogoji 40/60<br />
Če so K 1 , K 2 , K 3 jedra, so tudi tole jedra:<br />
• K(x, ˆx) = K 1 (x, ˆx) + K 2 (x, ˆx)<br />
• K(x, ˆx) = λK 1 (x, ˆx) za poljubno λ ∈ R<br />
• K(x, ˆx) = K 1 (x, ˆx)K 2 (x, ˆx)<br />
• K(x, ˆx) = f(x)f(ˆx) za poljubno f : R d → R<br />
• K(x, ˆx) = K 3 (φ(x), φ(ˆx)) za poljubno φ : R d → R m<br />
• K(x, ˆx) = x T Aˆx za poljubno pozitivno semidefinitno A
Polinomska jedra 41/60<br />
K(x, ˆx) = (x T ˆx + 1) p<br />
Na primer: recimo, da naši učni vektorji ˇzivijo v 2-d prostoru:<br />
x = (x 1 , x 2 ), ˆx = (ˆx 1 , ˆx 2 ). Potem je za p = 2:<br />
K(x, ˆx) = (x 1ˆx 1 + x 2ˆx 2 + 1) 2 =<br />
= x 2 1ˆx 2 1 + x 2 2ˆx 2 2 + 2x 1 x 2ˆx 1ˆx 2 + 2x 1ˆx 1 + 2x 2ˆx 2 + 1 =<br />
= (x 2 1, x 2 2, √ 2x 1 x 2 , √ 2x 1 , √ 2x 2 , 1)(ˆx 2 1, ˆx 2 2, √ 2ˆx 1ˆx 2 , √ 2ˆx 1 , √ 2ˆx 2 , 1) T .<br />
Torej deluje K(x, ˆx) tako, kot da bi oba vektorja preslikali s preslikavo<br />
φ : R 2 → R 6 ,<br />
φ(x) = (x 2 1, x 2 2, √ 2x 1 x 2 , √ 2x 1 , √ 2x 2 , 1) T<br />
in potem v R 6 naredili navaden skalarni produkt.<br />
Ko se naučimo neko normalo ŵ = (A, B, C, D, E, F ) T ∈ R 6 , dobimo klasifikator<br />
napoved(x) = sgn(ŵ T φ(x) + b) = sgn(Ax 2 1 + Bx 2 2 + Cx 1 x 2 + Dx 1 + Ex 2 + F + b).<br />
Torej smo 2-d ravnino, v kateri ležijo naši x, razmejili z neko stožernico.<br />
V splošnem je tako, kot da bi φ slikala v nek ( )<br />
p+d<br />
p -razseˇzni prostor.
Radialna jedra (radialne bazne funkcije) 42/60<br />
]<br />
||x − ˆx||2<br />
K(x, ˆx) = exp<br />
[− ali exp [ −γ||x − ˆx|| 2]<br />
2σ 2<br />
To ustreza preslikavi φ v nek ∞-razseˇzen prostor F.<br />
Klasifikator:<br />
napoved(x) = sgn<br />
(<br />
b +<br />
si lahko predstavljamo takole:<br />
)<br />
l∑<br />
α i y i K(x i , x)<br />
i=1<br />
1.0<br />
0.8<br />
0.6<br />
0.4<br />
0.2<br />
0.0<br />
-1.0 -0.5 0.0 0.5 1.0<br />
f(t) = exp(−3t 2 )<br />
• Vsak učni primerek x i glasuje za svoj razred y i .<br />
Na koncu vzamemo uteˇzeno vsoto teh glasov in jo primerjamo s pragom −b.<br />
• Pri glasovanju damo večjo težo tistim učnim primerkom x i ,<br />
ki so bliˇze novemu vektorju x.<br />
• Utež primerka x i je K(x i , x), torej Gaussova (zvonasta) funkcija razdalje<br />
||x i − x||. Večja ko je γ, oˇzji so zvonovi in manjši je vpliv posameznega<br />
primerka.
Sigmoidna jedra 43/60<br />
K(x, ˆx) = th(κx T ˆx + Θ)<br />
Sploh niso jedra: na primer,<br />
K(x, x) bi moral biti > 0, pa ni,<br />
če je κ > 0, Θ < 0 in<br />
||x|| < √ −Θ/κ.<br />
1.00<br />
0.75<br />
0.50<br />
0.25<br />
0.00<br />
-0.25<br />
Sigmoidna krivulja:<br />
-0.50<br />
-0.75<br />
th t = et − e −t<br />
e t + e = 1 − 2<br />
-1.00<br />
. −t e 2t -3 -2 -1 0 1 2 3<br />
+ 1<br />
• Θ določa, kje bo prehod: f(t) = th(κt + Θ) ima ničlo pri t = −Θ/κ<br />
• κ določa, kako strm bo prehod: f ima v ničli odvod κ
Jedra za nize 44/60<br />
Naj bo x = a 1 a 2 . . . a n niz n znakov nad abecedo Σ. Niz u = b 1 b 2 . . . b m se pojavlja kot<br />
podniz v x, če<br />
∃i 1 , . . . , i m : 1 ≤ i 1 < i 2 < · · · < i m ≤ n, a i1 = b 1 , . . . , a im = b m .<br />
Dajmo tej pojavitvi vrednost λ (i m−i 1 +1)−m (za neko λ ∈ [0, 1]). Definirajmo<br />
∑<br />
φ u (x) =<br />
vrednost te pojavitve.<br />
In:<br />
Potem lahko definiramo jedro:<br />
po vseh pojavitvah u v x<br />
φ : Σ ∗ → R Σm , φ(x) := 〈φ u (x)〉 u∈Σ m.<br />
K(x, ˆx) = ∑<br />
u∈Σ m φ u (x)φ u (ˆx)<br />
Računamo ga lahko z dinamičnim programiranjem v O(m · |x| · |ˆx|).<br />
Menda se je na besedilih obneslo tako dobro kot tradicionalna jedra, včasih še malo<br />
bolje (Lodhi et al., 2000).
Posplošena jedra 45/60<br />
Pri jedrih dobimo klasifikator oblike<br />
in pri učenju minimiziramo<br />
1<br />
2<br />
∑ l<br />
i=1<br />
∑ l<br />
j=1 α iα j y i y j K(x i , x j ) + C ∑ l<br />
i=1 ξ i<br />
napoved(x) := sgn(b + ∑ l<br />
j=1 α jy j K(x, x j ))<br />
pri ∀i ∈ 1..l : y i (b + ∑ l<br />
j=1 α jK(x i , x j )) ≥ 1 − ξ i , ξ i ≥ 0.<br />
Od tod izvira pogoj, da K ne more biti kakršna koli funkcija — biti mora jedro, torej<br />
pozitivno definitna, sicer so lahko pri optimizaciji težave.<br />
Mangasarian je predlagal drugačen optimizacijski problem (generalized SVM):<br />
minimiziraj<br />
1<br />
2<br />
∑ l<br />
i=1<br />
∑ l<br />
j=1 α iH ij α j + C ∑ i ξ i<br />
pri pogojih ∀i ∈ 1..l : y i (b + ∑ l<br />
j=1 α jK(x i , x j )) ≥ 1 − ξ i , ξ i ≥ 0.<br />
Ta problem je dovolj lep, čim je H = (H ij ) pozitivno definitna — ne glede na to,<br />
kakšna funkcija je K. Klasifikator je tak kot zgoraj.
Posplošena jedra 46/60<br />
Najpreprostejša različica: H = I, minimizirajmo ∑ i α2 i .<br />
Kot bi ˇzeleli čim preprostejši model (veliko α i = 0).<br />
Optimizacijski problem<br />
minimiziraj<br />
1<br />
2<br />
∑ l<br />
i=1 α2 i + C ∑ i ξ i<br />
pri pogojih ∀i ∈ 1..l : y i (b + ∑ l<br />
j=1 α jK(x i , x j )) ≥ 1 − ξ i , ξ i ≥ 0.<br />
je ekvivalenten temu, da bi x preslikali v<br />
φ(x) := (K(x, x 1 ), K(x, x 2 ), . . . , K(x, x l )) ∈ R l<br />
in iskali v prostoru R l ravnino oblike α T φ(x) + b:<br />
minimiziraj<br />
1<br />
2 ||α||2 + C ∑ i ξ i<br />
pri pogojih ∀i ∈ 1..l : y i (b + α T φ(x i )) ≥ 1 − ξ i , ξ i ≥ 0.<br />
Torej je ta formulacija takšna, kot da bi si rekli: primerka x in ˆx sta si podobna (imata<br />
velik 〈φ(x), φ(ˆx)〉 F<br />
), če so vrednosti K(x, x i ) pribliˇzno take kot K(ˆx, x i ); torej: če<br />
imata enak vzorec podobnosti do učnih primerkov (x i , i ∈ 1..l).
Razno
SVM kot nevronska mreža 48/60<br />
✲ K(·, x1 )<br />
α 1 y 1<br />
✲<br />
✲<br />
K(·, x 2 )<br />
α 2 y 2<br />
✲<br />
x<br />
✲<br />
Σ<br />
✲<br />
sgn<br />
✲ napoved(x)<br />
✲<br />
K(·, x l )<br />
α l y l<br />
b<br />
✲<br />
✲<br />
• Na prvem nivoju je l celic; i-ta računa K(x, x i ).<br />
• Na drugem nivoju je ena celica, ki izračuna uteˇzeno vsoto b + ∑ l<br />
i=1 α iy i K(x, x i )<br />
in vrne njen predznak.
Transduktivni SVM 49/60<br />
Tu imamo poleg običajne učne množice še nekaj neoznačenih <strong>vektorjev</strong> x ⋆ j , j ∈ 1..m<br />
(ki pa prihajajo iz iste verjetnostne porazdelitve).<br />
Vapnik (1998) je priporočil:<br />
• Pripišimo vsakemu od neoznačenih primerkov oznako (+1 ali −1) in to tako, da bo<br />
potem pri učenju na obojih skupaj mogoče doseči čim manjšo vrednost<br />
kriterijske funkcije.<br />
minimiziraj f(w, b, ξ, ξ ⋆ , y ⋆ ) := 1 2 ||w||2 + C ∑ l<br />
i=1 ξ i + C ⋆ ∑ m<br />
j=1 ξ⋆ i<br />
pri pogojih ∀i ∈ 1..l : y i (w T x i + b) ≥ 1 − ξ i , ξ i ≥ 0<br />
∀j ∈ 1..m : yj ⋆(wT x ⋆ j + b) ≥ 1 − ξ⋆ j , ξ⋆ j ≥ 0, y⋆ j ∈ {1, −1}<br />
Tega ne moremo kar minimizirati, saj so spremenljivke y ⋆ j diskretne.
Transduktivni SVM 50/60<br />
minimiziraj f(w, b, ξ, ξ ⋆ , y ⋆ ) := 1 2 ||w||2 + C ∑ l<br />
i=1 ξ i + C ⋆ ∑ m<br />
j=1 ξ⋆ i<br />
pri pogojih ∀i ∈ 1..l : y i (w T x i + b) ≥ 1 − ξ i , ξ i ≥ 0<br />
∀j ∈ 1..m : yj ⋆(wT x ⋆ j + b) ≥ 1 − ξ⋆ j , ξ⋆ j ≥ 0, y⋆ j ∈ {1, −1}<br />
Zato je Joachims (1999) predlagal hevristiko:<br />
1. Najprej se naučimo le na prvotni učni mnoˇzici.<br />
Dobljena w in b uporabimo, da označimo ostale primerke:<br />
nekaj x ⋆ j z najvišjimi wT x ⋆ j dobi oznako +1, ostali −1.<br />
2. Pripravimo nov model na vseh primerkih.<br />
Dokler gre, poskušamo zamenjati oznaki kakšnih takih x ⋆ j 1<br />
in x ⋆ j 2<br />
,<br />
ki sta različno označena in se dosedanji model ”<br />
zmoti“ na obeh<br />
(torej: napove nasprotno oznako od tiste, ki smo jima jo pripisali mi).<br />
Če je ob ponovnem učenju f manjša, zamenjavo obdržimo.<br />
3. Ko to ne gre več, vpliv neoznačenih primerkov (C ⋆ ) povečamo in ponovimo<br />
prejšnjo točko. Ponavljamo, dokler ne postane C ⋆ = C.
Vračanje verjetnosti 51/60<br />
Lepo je, če klasifikator vrne aposteriorno verjetnost P (Y = y|X = x);<br />
SVM pa vrne le vrednost f(x) = w T x + b (oz. njen predznak).<br />
1<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
0.4<br />
0.3<br />
0.2<br />
0.1<br />
0<br />
−5 −4 −3 −2 −1 0 1 2 3 4 5<br />
Na abscisi so vrednosti f, na ordinati pa delež pozitivnih primerkov znotraj košarice<br />
širine 0,1.
Vračanje verjetnosti 52/60<br />
Zato je Platt (1999) predlagal, da bi na f-je položili sigmoido:<br />
P (Y = 1|F = f) =<br />
1<br />
, P (Y = −1|F = f) = 1 − P (Y = 1|F = f).<br />
1 + exp(−Af + B)<br />
A in B izberimo tako, da se maksimizira<br />
l∏<br />
P (Y = y i |F = w T x i + b)<br />
oziroma logaritem tega. To je verjetnost, da, če dobimo ravno take primerke, kot jih<br />
imamo mi tule (torej x i , i ∈ 1..l), imajo ti primerki tudi ravno take oznake, kot jih<br />
vidimo mi (torej y i ).<br />
Koristno je vzeti ločeno validacijsko množico, ne iste kot za učenje prediktorja f.<br />
To nam ponudi tudi malo drugačen klasifikator:<br />
{ +1, če P (Y = +1|F = w<br />
napoved(x) =<br />
T x + b) ≥ 1/2<br />
−1, sicer.<br />
Učinek je tak, kot če bi spremenili prag:<br />
To včasih izboljša točnost.<br />
i=1<br />
napoved(x) = sgn(w T x + b − B/A)
Večrazredni problemi 53/60<br />
Imamo r razredov, vsak primerek spada v natanko enega od njih.<br />
Moramo ga preoblikovati v več dvorazrednih problemov.<br />
• Eden proti ostalim: naučimo r modelov, ki ločujejo po en razred od ostalih. Če<br />
jih več razglasi primerek za pozitivnega, vzamemo tistega z največjo w T x + b<br />
(ali pa največjo P (Y = 1|f)).<br />
• Eden proti enemu: za vsak par razredov naučimo model, ki ju razločuje. Nov<br />
primerek pokažemo vsem modelom in se odločimo za razred, ki dobi največ<br />
glasov.<br />
• DAGSVM: različica prejšnje strategije. Če model za {c i , c j } reče, da je primerek v<br />
c i , to sicer še ne pomeni, da je res v c i , pač pa, da skoraj gotovo ni v c j .<br />
• Kodne matrike: naučimo m modelov; vrednost M ij ∈ {−1, 0, 1} pove, kako<br />
uporabimo primerke razreda c i pri učenju j-tega modela.<br />
– Nov primerek pokaˇzemo vsem, dobimo vrstico napovedi, ki jo<br />
primerjamo z vrsticami matrike M.<br />
– Razne ideje glede matrike M: gosta, redka, maksimalna, ECC.<br />
Allwein et al. (2000) ter Hsu in Lin (2001) priporočajo pristop ”<br />
eden proti enemu“.
Regresijski SVM 54/60<br />
Radi bi napovedovali takole: y = 〈w, x〉 + b.<br />
To si lahko predstavljamo kot ravnino v (d + 1)-razsežnem prostoru. Učni primerki<br />
(x i , y i ) naj vsi ležijo čim bližje te ravnine.<br />
|y i − 〈w, x i 〉 + b| < ε<br />
Če velja to, ležijo vse (x i , y i ) znotraj pasu širine 2ε/ √ 1 + ||w|| 2 . Torej je spet dobro<br />
minimizirati ||w||.<br />
1<br />
minimiziraj<br />
2 ||w||2 + C ∑ l<br />
i=1 (ξ⊕ i + ξi ⊖ )<br />
pri pogojih (∀i ∈ 1..l) : y i ≤ 〈w, x i 〉 + b + ε + ξi<br />
⊕<br />
y i ≥ 〈w, x i 〉 + b − ε − ξi<br />
⊖<br />
ξi ⊕ ≥ 0, ξi ⊖ ≥ 0<br />
ε si izberemo vnaprej — za majhne napake se sploh ne zmenimo.<br />
To spet lahko predelamo v dualni problem in rešujemo s kvadratnim<br />
programiranjem.
ν-SVM (Schölkopf et al., 1998) 55/60<br />
Namesto parametra C uporabimo ν ∈ [0, 1]:<br />
minimiziraj f(w, b, γ, ξ) := 1 2 ||w||2 − νγ + 1 l<br />
∑ l<br />
i=1 ξ i<br />
pri pogojih (∀i ∈ 1..l) : y i (w T x i + b) ≥ γ − ξ i<br />
ξ i ≥ 0, γ ≥ 0<br />
Širina roba je zdaj 2γ/||w||. Pokazati se da:<br />
• delež učnih primerkov, ki niso na pravi strani roba ≤ ν<br />
• delež <strong>podpornih</strong> <strong>vektorjev</strong> ≥ ν<br />
• če bi dobivali vse več učnih podatkov in če porazdelitev, iz katere prihajajo, ni<br />
preveč čudna, bi v gornjih dveh neenačbah konvergirali k enakosti.<br />
S parametrom ν nadziramo deleˇz <strong>podpornih</strong> <strong>vektorjev</strong> in napak, tako kot s C v<br />
prvotni formulaciji, le da z ν bolj neposredno.
ROMMA (relaxed on-line maximum margin algorithm, Li & Long, 2002) 56/60<br />
• On-line učenje: sproti, ko prihajajo novi učni primerki,<br />
ˇzelimo popravljati model.<br />
• Omejimo se na b = 0 in trdi rob. SVMjev optimizacijski<br />
problem bi bil:<br />
minimiziraj<br />
1<br />
2 ||w||2<br />
pri pogojih (∀i ∈ 1..l) : y i w T x i ≥ 1<br />
¡<br />
¡<br />
origin<br />
Iščemo torej tisto točko w iz dopustne mnoˇzice, ki je<br />
najbliˇzja koordinatnemu izhodišču.<br />
• Več ko je primerkov, bolj je dopustna mnoˇzica zapletena.<br />
• Naj bo w 1 najkrajša normala v dopustni mnoˇzici.<br />
Če zamenjamo vse pogoje z enim samim:<br />
w T w 1 ≥ ||w 1 || 2 ,<br />
je nova dopustna množica nadmnožica stare,<br />
najkrajši w v njej pa je še vedno w 1 .
ROMMA 57/60<br />
Postopek je torej tak:<br />
• Prvi učni primerek nam da kot pogoj le eno linearno neenačbo: y 1 w T x 1 ≥ 1<br />
• Za vsak naslednji učni primerek (x t , y t ):<br />
– Dosedanji neenačbi w T u t−1 ≥ v t−1<br />
se pridruˇzi še tista od trenutnega učnega primerka: y t w T x t ≥ 1.<br />
– Izračunajmo najkrajši w, ki ustreza obema; recimo mu w t .<br />
– Zamenjajmo obe neenačbi z eno samo: w T w t ≥ ||w t || 2 .<br />
Torej imamo u t = w t , v t = ||w t || 2 .<br />
Vpeljati je mogoče tudi neke vrste kvadratno kazen (+C ∑ i ξ2 i ).<br />
• Jedru po diagonali prištejemo 1/2C:<br />
K novo (x i , x j ) := K staro (x i , x j ) + (1/2C) · δ ij .<br />
• Pri linearnem jedru je to enako, kot če bi vsak x i podaljšali z l komponentami,<br />
ki so same ničle, razen i-te, ki je enica.<br />
Očitno je, da je problem potem res linearno separabilen.
Programi 58/60<br />
SvmLight (T. Joachims):<br />
• Posebej hiter pri linearnem jedru.<br />
• Podpira običajno in transduktivno formulacijo klasifikacijskega SVM,<br />
v zadnji verziji podpira tudi regresijo.<br />
LibSvm (C.-C. Chang, C.-J. Lin):<br />
• Poleg običajnega SVM podpira še ν-SVM, regresijo in<br />
ocenjevanje podpore porazdelitev.<br />
• Podpira večrazredne probleme (strategija ”<br />
eden proti enemu“).<br />
MySvm (S. Rüping), itd., itd.<br />
Demo v javi: http://svm.cs.rhul.ac.uk/pagesnew/GPat.shtml
Literatura 59/60<br />
• C. J. C. Burges: A tutorial on support vector machines for pattern recognition.<br />
Data Mining and Knowledge Discovery, 2(2):121–167, June 1998.<br />
Delavnice na NIPS (Neural Information Processing Systems):<br />
• NIPS ’97: B. Schölkopf, C. J. C. Burges, A. J. Smola (eds.):<br />
Advances in kernel methods: Support vector learning. MIT Press, 1998.<br />
• NIPS ’98: A. J. Smola, P. J. Bartlett, B. Schölkopf, D. Schuurmans:<br />
Advances in large-margin classifiers. MIT Press, 2000.<br />
• NIPS ’99: Machine Learning, special issue on SVMs and kernel methods,<br />
46(1–3), January–March 2002.<br />
• NIPS 2000: Journal of Machine Learning Research, special issue on kernel<br />
methods, December 2001.
Literatura 60/60<br />
Knjige:<br />
• N. Christianini, J. Shawe-Taylor: An introduction to Support Vector Machines and<br />
other kernel-based methods. Cambridge University Press, 1999.<br />
[www.support-vector.net]<br />
• B. Schölkopf, A. J. Smola: Learning with kernels. MIT Press, 2001.<br />
[www.learning-with-kernels.org]<br />
• R. Herbrich: Learning kernel classifiers. MIT Press, 2001.<br />
[www.learning-kernel-classifiers.org]<br />
• V. N. Vapnik: Statistical learning theory. Wiley-Interscience, 1998.<br />
• V. N. Vapnik: The nature of statistical learning theory. Springer, 1995, 2 1999.<br />
Web site:<br />
• www.kernel-machines.org