Algorytmy rozpoznawania obrazów 7. Maszyny wektorów podpierajacych SVMs dr inż. Urszula Libal Politechnika Wrocławska 2015 1
1. Maszyny wektorów podpierajacych - SVMs Maszyny wektorów podpierających (ang. Support Vector Mashines, SVMs) należą do grupy klasyfikatorów liniowych. Obiekt reprezentowany przez x jest klasyfikowany do jednej z dwóch klas 1 i 1 za pomocą liniowej funkcji dyskryminacyjna δ(x) = w T x + w 0 w następujący sposób: 1, jeżeli w T x + w 0 > 0 Ψ SV M (x) = 1, jeżeli w T x + w 0 < 0. (1) Wektor w = (w 1, w 2,..., w D ) oraz wyraz wolny w 0 są tak dobierane, aby jak najszerzej liniowo separować klasy, jeżeli jest to możliwe. 2
8 7.5 Makroklasa 1 Makroklasa 2 Wektory podpierajace 7 6.5 6 5.5 5 4.5 4 2 2.5 3 3.5 4 4.5 Rysunek 1. Wektory podpierające dla liniowego klasyfikatora SVMs. Źródło: opracowanie własne 3
Do treningu używamy ciągu uczącego {(x 1,c 1 ), (x 2,c 2 ),...,, (x N,c N )}, gdzie x k to D-wymiarowy wektor cech, a c k to jego klasa pochodzenia. Dane muszą zostać unormowane, co oznacza, że indeksy klas przyjmą wartości 1 i 1. Klasyfikator SVM dany wzorem (1) klasyfikuje zgodnie ze znakiem funkcji dyskryminacyjnej δ(x) = w T x + w 0. Wyznaczenie na podstawie ciągu uczącego parametrów w i, i = 0, 1, 2,...,D stanowi zadanie optymalizacyjne. 4
2. Maksymalizacja marginesu Rysunek 2. Hiperpłaszczyzna rozdzielająca o maksymalnym marginesie. Źródło: [5] 5
Maksymalizacja marginesu polega na maksymalizacji odległości między wektorami podpierającymi a hiperpłaszczyzną rozdzielającą. Odległość między hiperpłaszczyzną δ(x) = w T x + w 0 = 0 a pewnym wektorem x n z ciągu uczącego (n {1, 2...,N}) wynosi δ(x n ). (2) w Maksymalizację wyrażenia (2) można sprowadzić do minimalizacji w, lub równoważnie minimalizacji 1 2 w 2. (3) 6
Bez zmniejszenia ogólności rozważań zakładamy, że marginesy będą postaci w T x + w 0 = 1 i w T x + w 0 = 1. (4) Wszystkie punkty z ciągu uczącego muszą się znaleźć poza pasem między marginesami, ale tak aby wszystkie punkty z klasy 1 były po odpowiedniej stronie marginesu w T x + w 0 = 1, a wszystkie punkty z klasy 1 po odpowiedniej stronie marginesu w T x + w 0 = 1 (patrz rys. 2). Sprowadzamy ten warunek do nierówności c n ( w T x n + w 0 ) 1 (5) dla każdego wektora x n z ciągu uczącego (n {1, 2...,N}), gdzie c n to jego klasa pochodzenia. 7
Problem optymalizacyjny poszukiwania maksymalnego marginesu sprowadza się do min w,w0 1 2 w 2 przy c n ( w T x n + w 0 ) 1. (6) Metoda mnożników Lagrange a polega na minimalizacji funkcji L L(w, w 0, λ) = 1 2 w 2 N n=1 λ n { cn ( w T x n + w 0 ) 1 }. (7) Każdy mnożnik λ n 0 odpowiada jednemu wektorowi x n z ciągu uczącego (n {1, 2...,N}). 8
W celu minimalizacji funkcji L wyznaczamy jej pochodne i przyrównujemy je do zera L(w,w 0,λ) w = 0, L(w,w 0,λ) w 0 = 0, L(w,w 0,λ) λ = 0. (8) [przykład numeryczny dla D2] 9
3. Nieliniowe SVMs Niestety nie zawsze klasyfikacja za pomocą maszyn wektorów podpierających SVMs (1) jest możliwa do przeprowadzenia. Może się zdarzyć, że klasy nie są liniowo separowalne. Rysunek 3. Liniowo separowalne oraz nieseparowalne klasy. Źródło: opracowanie własne 10
W przypadku nierozdzielnych liniowo klas stosujemy trik z zastosowaniem funkcji jądrowych φ (kernel trick). Inną postać przyjmuje funkcja dyskryminacyjna δ(x) = w T φ (x) + w 0. Rysunek 4. Wektory podpierające dla nieliniowego klasyfikatora SVMs. Źródło: [2] 11
Funkcja L w metodzie mnożników Lagrange a również ulega zmianie L(w, w 0, λ) = 1 2 w 2 N n=1 Minimalizację L sprowadzamy do problemu dualnego. λ n { cn ( w T φ (x n ) + w 0 ) 1 }. (9) Maksymalizujemy teraz L przy ograniczeniach N L(λ) = n n=1λ 1 2 N n=1 N m=1 λ n λ m c n c m κ (x n,x m ) (10) λ n 0, n = 1,2,...,N, (11) N λ n c n = 0, (12) n=1 12
gdzie jądro κ przyjmuje postać κ (x n,x m ) = φ (x n ) T φ (x m ). (13) Funkcja jądrowa wielomianowa p-tego rzędu Matematyczna forma κ (x,y) κ (x,y) = ( x T y + r ) p gaussowska (Radial Basis Function) κ (x,y) = exp( x y 2 2σ 2 ) sigmoidalna κ (x,y) = tanh(x T y + r) 13
Jądrowa (nieliniowa) wersja klasyfikatora SVM to wtedy 1, jeżeli N n=1 Ψ kernel SV M (x) = λ nc n κ (x n,x) + w 0 > 0, 1, jeżeli N n=1 λ nc n κ (x n,x) + w 0 < 0. (14) 14
a) b) Rysunek 5. (a) Zbiór punktów nierozdzielny liniowo. (b) Ten sam zestaw danych przekształcony przez transformację [x 1,x 2 ] [x 1,x 2,x 2 1 + x2 2 ]. Źródło: [6] 15
a) b) Rysunek 6. Hiperpłaszczyzna rozdzielająca: (a) liniowa w R 3, (b) nieliniowa w R 2. Źródło: [6] 16
Literatura [1] A.R. Webb, K.D. Copsey, Statistical Pattern Recognition, 3rd ed., Wiley, (2011) [2] C.M. Bishop, Pattern Recognition and Machine Learning, Springer Series: Information Science and Statistics (2006) [3] M. Krzyśko, W. Wołyński, T. Górecki, M. Skorzybut, Systemy uczace się. Rozpoznawanie wzorców, analiza skupień i redukcja wymiarowości. WNT, Warszawa (2008) [4] R.O. Duda, P.E. Hart, D.G. Stork, Pattern Classification, 2nd ed., Wiley, (2000) [5] http://en.wikipedia.org/wiki/support_vector_machine [6] http://www.eric-kim.net/eric-kim-net/posts/1/kernel_trick.html 17