18.11.2014 Views

Metoda podpornih vektorjev

Metoda podpornih vektorjev

Metoda podpornih vektorjev

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!