Support Vector Machines (SVM)
3.7. Optymalizacja problemów programowania kwa- kwa-dratowego (QP)kwa-dratowego (QP)
Rozwiązania problemów optymalizacyjnych 3.23 3.27 3.44 3.61 3.77 wymagają rozwiązania problemu optymalizacji programowania kwadratowego (ang. qu-adratic programming (QP)). Wiele metod użytych w implementacjach SVM roz-wiązują zagadnienia QP bazując na komercyjnych pakietach programowania kwadratowego. Warto tu wspomnieć o LOQO [247, 248] i MINOS [190]. Pew-ną popularnością cieszyły się także odmiany metody sprzężonego spadku gra-dientu [223, 30]. Dodatkowe informacje można znaleźć w [229]. Implementacje te były jednak zbyt wolne lub wręcz nieużyteczne dla zadań, w których liczba elementów zbioru uczącego wykraczała poza kilkaset.
Warto także zwrócić uwagę na opracowanie, w którym Lin i Lin porównali algorytmu SMO (ang. Sequential Minimal Optimization), z poprawkami Keerthie-go, z innymi algorytmami redukującymi problem optymalizacyjny (raczej na ich niekorzyść) [171].
3.7.1. Dekompozycja
Punktem wspólnym algorytmów efektywnych, które powstały w ostatnich la-tach jest niewątpliwie metoda dekompozycji problemu QP [200, 142, 205] (ang.
decomposition method, a czasem także: coordinate search, method of alternating varia-bles lub coordinate descent method). Ogólny problem optymalizacyjny:
maxα W(α) = pα −1
2αQα (3.90)
z ograniczeniami:
0≤ αi≤ C i = 1, . . . , N, (3.91)
yα = ∆, (3.92)
(gdzie Qij=yiyjK(xi, xj)) zostaje przekształcony do:
maxαB
W(αB) = (p− QBRαR)αB−1
2αBQBBαB (3.93) z ograniczeniami:
0≤ αB,i ≤ C ∀ i ∈ B, (3.94)
yBαB =∆ − yRαR, (3.95) gdzie
$ QBB QBR QRB QRR
%
jest pewną permutacją macierzy Q.
Zasadniczą ideą dekompozycji jest podział całego zbioru uczącego na dwa:
roboczy B i resztę zbioru R ={1, . . . , N} \ B. Wtedy wektor αB podlega opty-malizacji, a wektorαRjest zamrożony. Natomiast funkcja celu przyjmuje postać 3.93 (czynnik−12αRQRRαR+pRαRjest stały i dlatego nie znalazł się w 3.93).
Ogólny schemat algorytmu rozwiązywania problemu optymalizacji przez dekompozycję może wyglądać jak poniżej:
1. Wyznaczyć wektorα1 jako rozwiązanie początkowe.
2. Jeśli wektorαk jest optymalny: STOP. W przeciwnym przypadku wyzna-czyć zbiór roboczy (indeksów) B⊂ {1, . . . , N} rozmiaru q, R = {1, . . . , N} \ B. WektoryαkB iαkRsą odpowiednimi, względem zbiorów indeksów B i R, częściami wektoraαk.
3. Rozwiązać podproblem optymalizacyjny 3.93 względemαkB.
4. αk+1B ustawić na rozwiązanie optymalne 3.93, aαk+1R naαkR. Następnie skok do 2.
Powyższy schemat wymaga jednak sprecyzowania odpowiedzi na trzy py-tania:
1. Jak wybierać zbiór roboczy?
2. Na jakiej podstawie decydować, czy wektorαk jest optymalny?
3. Jak rozwiązywać podproblemy 3.93?
Dwa najciekawsze algorytmy korzystające z powyższej dekompozycji proble-mu to SVMlight Joachimsa [142] i SMO Platta [205] z modyfikacjami Keerthiego i in. [154]. SVMlight w zbiorze roboczym umieszcza parzystą liczbę elemen-tów. Najczęściej jest to kilka elementów (w implementacji domyślnie 10). Można
zauważyć, że SVMlight dla zbioru roboczego wielkości 2 jest równoważny algo-rytmowi SMO z poprawkami Keerthiego [168].
Oba algorytmy korzystają tak naprawdę z tej samej transformacji algorytmu dekompozycji:
mind ∇g(α)d (3.96)
z ograniczeniami:
yd =0, (3.97)
−1 ≤ d ≤ 1, (3.98)
di ≥ 0 gdy αi =0, (3.99)
di ≤ 0 gdy αi =C, (3.100)
|{di|di = 0}| = q, (3.101) gdzie g(α) = 12αQα + pα. Z 3.101 łatwo zauważyć, że minimalizacja dotyczy tylko zbioru roboczego.
Choć tu tak naprawdę kończą się podobieństwa. SVMlight musi korzystać z procedur programowania kwadratowego do rozwiązania 3.96. Natomiast Platt w algorytmie SMO zaproponował analityczne rozwiązanie problemu w przypad-ku dwuelementowego zbioru roboczego. Dzięki temu nie zachodzi już potrzeba używania wewnętrznie procedury rozwiązywania ogólnego problemu QP. To jest właśnie naprawdę dużą zaletą, ponieważ standardowe procedury QP są wrażliwe numerycznie i skomplikowane w implementacji (setki linii kodu).
3.7.2. Wybór zbioru roboczego dla C-SVM
Pierwotny wybór zbioru roboczego w SMO zaproponowany przez Platta [205]
został zmieniony na bardziej efektywny przez wspomnianego już kilkakrotnie Keerthiego [154]. Mechanizm wyboru zbioru roboczego B = {i, j} indeksów mnożników zdefiniowany jest poniżej:
i = arg mink { ∇g(α)kdk |ykdk=1 ∧ , (3.102) dk≥ 0 gdy αk=0 ∨ dk ≤ 0 gdy αk =C},
j = arg mink { ∇g(α)kdk |ykdk=−1 ∧ , (3.103) dk≥ 0 gdy αk=0 ∨ dk ≤ 0 gdy αk =C}.
Powyższy wybór indeksów i i j wybiera te, które najbardziej łamią warunki KKT.
3.7.3. Kryterium stopu
Aby zdefiniować kryterium stopu zdefiniujemy pomocniczo gi i gj:
gi =
−∇g(α)i, gdy yi =1 ∧ αi<C
∇g(α)i, gdy yi =−1 ∧ αi>0 , (3.104) gj =
−∇g(α)j, gdy yj=−1 ∧ αj<C
∇g(α)j, gdy yj=1 ∧ αj>0 . (3.105) Kiedy nierówność
gi≤ −gj (3.106)
jest spełniona, wektorα jest wektorem optymalnym. W praktyce dopuszcza się pewną niedokładność, absolutnie nie zmieniając w istotny sposób ostatecznego rozwiązania:
gi≤ −gj+, (3.107)
gdzie jest bardzo małą dodatnią wartością (najczęściej stosuje się 0.001).
3.7.4. Wybór zbioru roboczego dla ν-SVM
Powyższy sposób (podrozdział 3.7.2) doboru zbioru roboczego jest odpowiedni dla C-SVC i C-SVR, nie jest jednak odpowiedni dla wersjiν-SVC i ν-SVR.
Informacje na temat wariacji wyboru zbioru roboczego dla problemów re-gresji można znaleźć w [166].
Autorem wyboru zbioru roboczego jest również Keerthi i Gilbert [154], ale warto zajrzeć również do publikacji Changa i Lina [40, 41].
Dla ∇g(α)i<∇g(α)j mamy więc:
i = arg min
k {∇g(α)kdk | yk=1 ∧ αk<C}, (3.108) j = arg max
k {∇g(α)kdk | yk=1 ∧ αk>0}, (3.109) a gdy∇g(α)i≥ ∇g(α)j mamy:
i = arg min
k {∇g(α)kdk | yk =−1 ∧ αk<C}, (3.110) j = arg max
k {∇g(α)kdk | yk =−1 ∧ αk>0}. (3.111)
3.7.5. Kryterium stopu dla ν-SVM
Dla ν-SVM nie tylko wybór zbioru roboczego jest nieco inny, ale również kry-terium stopu :
max{−G1+G2,−G3+G4} < , (3.112) gdzie G1=∇g(α)i dla i z równania 3.108, G2=∇g(α)j dla j z równania 3.109, G3=∇g(α)i dla i z równania 3.110, G4=∇g(α)j dla j z równania 3.111.
3.7.6. Analityczne rozwiązanie problemu dekompozycji
Platt w [205] zaproponował analityczne rozwiązanie problemu dekompozycji 3.93. Szczegóły wyprowadzenia (choć nieskomplikowane) wykraczają poza ra-my tego opracowania, dokładną analizę można znaleźć w [205]. Analityczne rozwiązanie stało się możliwe po zmniejszeniu zbioru roboczego B z 3.93 do dwóch elementów. Wtedy problem optymalizacyjny przyjmuje postać:
minαi,αj
Jak wiadomo wartości mnożnikówα są ograniczone (patrz 3.45), czyli war-tości αi i αj muszą leżeć w kwadracie [0, C]× [0, C]. Natomiast równości 3.45 wymuszają położenie punktu określonego przez mnożnikiαi i αj na diagonali.
Zależnie od wartości yii yjmożna wyznaczyć ograniczenia dolne i górne na wartości nowe mnożnikaαnewj . Dla yi= yj mamy więc: Po podstawieniu 3.120 i minimalizacji bez ograniczeń 3.113 otrzymuje się:
α∗=
Teraz można wyznaczyć ostateczną nową wartośćαj,αnewJ :
αnewj =
Natomiast nową wartość αi wyznaczamy przez:
αnewi =αi+yiyj(αj− αnewi ). (3.125)
3.7.7. Wyznaczenie wartości b i ρ
Po zakończeniu procesu optymalizacji należy jeszcze wyznaczyć wartości b iρ.
Co prawda wyznaczenie wartości ρ nie jest konieczne, ale wartość b jest nie-zbędna w funkcji decyzyjnej.
Zdefiniujmy r+ i r− zgodnie z [40, 41]:
r+ = ∑0<αi<C,yi=1 ∇g(α)i
∑0<αi<C,yi=1 1 , (3.126) r− = ∑0<αi<C,yi=−1 ∇g(α)i
∑0<αi<C,yi=−1 1 . (3.127) Jeśli nie ma żadnego i, dla którego yi =±1 i αi spełnia 0 <αi<C to:
r±= 1 2
$
αi=maxC,yi=±1 ∇g(α)i + min
αi=0,yi=±1 ∇g(α)i
%
. (3.128)
Mając r+ i r− można zdefiniować b i ρ:
ρ = r++r−
2 , (3.129)
b = r+− r−
2 . (3.130)
3.7.8. Dalsze sposoby przyspieszenia rozwiązywania problemów QP dla SVM
Macierz Q nie zawsze można przechowywać w pamięci. Jeśli wielkość Q unie-możliwia przechowywanie całej macierzy to można próbować przechowywać te jej części, które potencjalnie mogą być przydatne w kolejnych krokach optyma-lizacji. Sposób ten (ang. caching) zaproponowany został przez Joachimsa [142].
Praktycznie im bliżej końca procedury optymalizacji, tym mniej kolumn macie-rzy Q jest używanych i tym większe prawdopodobieństwo, że odpowiednie z nich zostaną zatrzymane w pamięci. Dlatego warto zostawiać ostatnio używane kolumny macierzy Q.
Shrinking to następny sposób na usprawnienie algorytmu optymalizacji. Po-lega on na zmniejszaniu zbioru, który jest używany w procesie optymalizacji.
Jak sugeruje Joachims w [142] tylko wolne wektory SV mogą brać czynny udział w procedurze optymalizacji. Dokładniej jeszcze definiuje to Lin w [170], gdzie pokazuje, że w końcowych iteracjach teαi, które mogą ulec zmianie należą do
zbioru: gdzie limk→∞αk=α (¯α jest optymalnym rozwiązaniem, jak pokazano w [169]).¯