SVM 1 / 24 SVM: Maszyny Wektorów Podpieraja cych Nguyen Hung Son
Outline SVM 2 / 24 1 Wprowadzenie 2 Brak liniowej separowalności danych Nieznaczna nieseparowalność Zmiana przetrzeń atrybutów 3 Implementacja
Liniony klasyfikator SVM 3 / 24 Dana jest próbka treningowa D = {(x 1, y 1 ),..., (x n, y n )} gdzie y i { 1, 1}, x i R p
Liniony klasyfikator SVM 3 / 24 Dana jest próbka treningowa D = {(x 1, y 1 ),..., (x n, y n )} gdzie y i { 1, 1}, x i R p
Liniony klasyfikator SVM 3 / 24 Dana jest próbka treningowa D = {(x 1, y 1 ),..., (x n, y n )} gdzie y i { 1, 1}, x i R p
Liniony klasyfikator SVM 3 / 24 Dana jest próbka treningowa D = {(x 1, y 1 ),..., (x n, y n )} gdzie y i { 1, 1}, x i R p Klasyfikatorem liniowym nazywamy funkcję f w,b (x) = sgn(w x + b)
Liniony klasyfikator SVM 3 / 24 Dana jest próbka treningowa D = {(x 1, y 1 ),..., (x n, y n )} gdzie y i { 1, 1}, x i R p Klasyfikatorem liniowym nazywamy funkcję f w,b (x) = sgn(w x + b) Próbka D jest liniowo seperowana jeśli istnieje klasyfikator liniowy f w,b ( ) taki, że w x i + b +1, gdy y i = +1 w x i + b < 1, gdy y i = 1
Liniowy klasyfikator SVM 4 / 24
Liniowy klasyfikator SVM 4 / 24
Liniowy klasyfikator SVM 4 / 24
Liniowy klasyfikator SVM 4 / 24 Uproszczony warunek: y i (w x i + b) 1, dla każdego i.
Liniowy klasyfikator SVM 4 / 24 Uproszczony warunek: y i (w x i + b) 1, dla każdego i. Każda z tych linii dobrze seperuje punkty;
Liniowy klasyfikator SVM 4 / 24 Uproszczony warunek: y i (w x i + b) 1, dla każdego i. Każda z tych linii dobrze seperuje punkty; Która z nich jest najlepsza?
Margines klasyfikatora liniowego SVM 5 / 24 Margines = szerokość bezpiecznego obszaru po obu stronach hiperpłaszczyzny;
Margines klasyfikatora liniowego SVM 5 / 24 Margines = szerokość bezpiecznego obszaru po obu stronach hiperpłaszczyzny; Margines jest wyznaczony przez 2 hiperpłaszczyzny.
Margines klasyfikatora liniowego SVM 5 / 24 Margines = szerokość bezpiecznego obszaru po obu stronach hiperpłaszczyzny; Margines jest wyznaczony przez 2 hiperpłaszczyzny. Chcemy znaleźć klasyfikator z maksymalnym marginesem
Wektory podpierajace SVM 6 / 24 Maksymalizujemy d(h 1, H 2 ) lub minimalizujemy w 2.
Wektory podpierajace SVM 6 / 24 Maksymalizujemy d(h 1, H 2 ) lub minimalizujemy w 2.
Wektory podpierajace SVM 6 / 24 Niech H 1, H 2 będa brzegami marginesu; Maksymalizujemy d(h 1, H 2 ) lub minimalizujemy w 2.
Wektory podpierajace SVM 6 / 24 Niech H 1, H 2 będa brzegami marginesu; Powiniśmy oprzeć brzegi o punkty z próbki treningowej Maksymalizujemy d(h 1, H 2 ) lub minimalizujemy w 2.
Wektory podpierajace SVM 6 / 24 Niech H 1, H 2 będa brzegami marginesu; Powiniśmy oprzeć brzegi o punkty z próbki treningowej Te punkty nazywamy wektorami podpierajacymi Maksymalizujemy d(h 1, H 2 ) lub minimalizujemy w 2.
Wektory podpierajace SVM 6 / 24 Niech H 1, H 2 będa brzegami marginesu; Powiniśmy oprzeć brzegi o punkty z próbki treningowej Te punkty nazywamy wektorami podpierajacymi Równanie H 1 i H 2 : H 1 :w x + b = 1 H 2 :w x + b = 1 Maksymalizujemy d(h 1, H 2 ) lub minimalizujemy w 2.
Wektory podpierajace SVM 6 / 24 Niech H 1, H 2 będa brzegami marginesu; Powiniśmy oprzeć brzegi o punkty z próbki treningowej Te punkty nazywamy wektorami podpierajacymi Równanie H 1 i H 2 : H 1 :w x + b = 1 H 2 :w x + b = 1 Odległość między H 1 a H 2 : d(h 1, H 2 ) = 2 w Maksymalizujemy d(h 1, H 2 ) lub minimalizujemy w 2.
Problem optymalizacyjny SVM 7 / 24 Zadanie LSVM Znaleźć w i b które minimalizuja przy ograniczeniach w 2 2 y i (w x i + b) 1 0; i = 1,..., n Q: Jak rozwiazać tego typu zagadnienia? A: Metoda gradientu?, symulowanego wyżrzania?, odwracanie macierzy? EM? Newton? PROGRAMOWANIE KWADRATOWE?
Pogramowanie kwadratowe QP SVM 8 / 24 Znaleźć arg max c + u dt u + ut Ru 2 To zagadnienie jest dobrze zbadane i istnieja bardzo efektywne algorytmy rozwiazuj ace ten problem
Pogramowanie kwadratowe QP SVM 8 / 24 Znaleźć przy założeniach: arg max c + u dt u + ut Ru 2 A 1 u b 1 To zagadnienie jest dobrze zbadane i istnieja bardzo efektywne algorytmy rozwiazuj ace ten problem
Pogramowanie kwadratowe QP SVM 8 / 24 Znaleźć przy założeniach: oraz arg max c + u dt u + ut Ru 2 A 1 u b 1 A 2 u = b 2 To zagadnienie jest dobrze zbadane i istnieja bardzo efektywne algorytmy rozwiazuj ace ten problem
Metoda Lagrange a SVM 9 / 24 Rozwiazywanie zagadnienia LSVM znalezienie punktu siodłowego wielomianu Lagrange a: L(w, b, α) = 1 n 2 (w w) α i {[(x i w) b]y i 1} i=1 gdzie α = (α 1,..., α n ) jest wektorem nieujemnych współczynników Lagrange a
Metoda Lagrange a SVM 9 / 24 Rozwiazywanie zagadnienia LSVM znalezienie punktu siodłowego wielomianu Lagrange a: L(w, b, α) = 1 n 2 (w w) α i {[(x i w) b]y i 1} i=1 gdzie α = (α 1,..., α n ) jest wektorem nieujemnych współczynników Lagrange a Punkt siodłowy = maksimum funkcji względem α i 0 i minimum funkcji względem w i b.
Metoda Lagrange a (c.d.) SVM 10 / 24 Twierdzenie Karusha-Kuhna-Tuckera: warunkiem koniecznym istnienia punktu siodlowego jest zerowanie się gradientu wzg. w, czyli w = n y i α i x i (1) i=1
Metoda Lagrange a (c.d.) SVM 10 / 24 Twierdzenie Karusha-Kuhna-Tuckera: warunkiem koniecznym istnienia punktu siodlowego jest zerowanie się gradientu wzg. w, czyli w = n y i α i x i (1) i=1 zerowanie się pochodnej wzg. b, czyli n α i y i = 0 (2) i=1
Metoda Lagrange a (c.d.) SVM 10 / 24 Twierdzenie Karusha-Kuhna-Tuckera: warunkiem koniecznym istnienia punktu siodlowego jest zerowanie się gradientu wzg. w, czyli w = n y i α i x i (1) i=1 zerowanie się pochodnej wzg. b, czyli n α i y i = 0 (2) i=1 spełnienie warunku: α i {[(x i w 0 ) b 0 ]y i 1} = 0, for i = 1,..., n (3)
Metoda Lagrange a (c.d.) SVM 11 / 24 Po uwzględnieniu tych warunków (na istnienie punktu siodłowego) mamy nowy problem optymalizacyjny: Znaleźć wektor α będacy maksimum funkcji W(α) = n α i 1 n α i α j y i y j (x i x j ) (4) 2 i=1 ij=1
Metoda Lagrange a (c.d.) SVM 11 / 24 Po uwzględnieniu tych warunków (na istnienie punktu siodłowego) mamy nowy problem optymalizacyjny: Znaleźć wektor α będacy maksimum funkcji W(α) = n α i 1 n α i α j y i y j (x i x j ) (4) 2 i=1 ij=1 przy ograniczeniach α i 0, i = 1,.., n oraz n α i y i = 0 (5) i=1
Metoda Lagrange a (c.d.) SVM 12 / 24 Niech wektor (α1 0,..., α0 n) będzie rozwiazaniem maksymalizujacym (4) przy ograniczeniach (5).
Metoda Lagrange a (c.d.) SVM 12 / 24 Niech wektor (α1 0,..., α0 n) będzie rozwiazaniem maksymalizujacym (4) przy ograniczeniach (5). Z (3) wynika, że jeśli x i nie jest wektorem podpierajacym to αi 0 = 0;
Metoda Lagrange a (c.d.) SVM 12 / 24 Niech wektor (α1 0,..., α0 n) będzie rozwiazaniem maksymalizujacym (4) przy ograniczeniach (5). Z (3) wynika, że jeśli x i nie jest wektorem podpierajacym to αi 0 = 0; Równania (4) i (5) odbywaja się faktycznie tylko po wektorach podpierajacych.
Metoda Lagrange a (c.d.) SVM 12 / 24 Niech wektor (α1 0,..., α0 n) będzie rozwiazaniem maksymalizujacym (4) przy ograniczeniach (5). Z (3) wynika, że jeśli x i nie jest wektorem podpierajacym to αi 0 = 0; Równania (4) i (5) odbywaja się faktycznie tylko po wektorach podpierajacych. Hyperpłaszczyzna rozdzielajaca ma postać w 0 x b 0 = 0 gdzie w 0 = wektory podp. y i α 0 i x i b 0 = 1 2 [(w 0 x (1) )+(w 0 x ( 1) )] tu x (1) i x ( 1) sa dowolnymi wektorami podpierajacymi z każdej z klas.
Liniowy SVM SVM 13 / 24 Ostateczna funkcja decyzyjna: f (x) = sgn( y i αi 0 (x i x) + b 0 ) (6) wektory podp.
Outline SVM 14 / 24 1 Wprowadzenie 2 Brak liniowej separowalności danych Nieznaczna nieseparowalność Zmiana przetrzeń atrybutów 3 Implementacja
Przypadek nieseparowalności SVM 15 / 24 Założenie o separowalności klas jest nienaturalna;
Przypadek nieseparowalności SVM 15 / 24 Założenie o separowalności klas jest nienaturalna; Modyfikacja: w x i + b 1 ξ i, gdy y i = +1 w x i + b 1 + ξ i, gdy y i = 1 gdzie stałe ξ i spełniaja warunki: ξ i 0, i = 1,..., n.
Przypadek nieseparowalności SVM 15 / 24 Założenie o separowalności klas jest nienaturalna; Modyfikacja: w x i + b 1 ξ i, gdy y i = +1 w x i + b 1 + ξ i, gdy y i = 1 gdzie stałe ξ i spełniaja warunki: ξ i 0, i = 1,..., n. Zmodyfikowana funkcja do minimalizacji w 2 2 + C n i=1 ξ i C jest stała kara za niespełnienie idealnych warunków.
Przypadek nieseparowalności SVM 16 / 24 Ogólne zadanie SVM Znaleźć w i b które minimalizuja w 2 2 + C n i=1 ξ i przy ograniczeniach w x i + b 1 ξ i, gdy y i = +1 w x i + b 1 + ξ i, gdy y i = 1 ξ i 0, i = 1,..., n.
Przypadek nieseparowalności SVM 17 / 24 Można pokazać, że zarówno i w tym przypadku, możemy sprowadzić do problemu Znaleźć wektor (α1 0,..., α0 n) będacy maksimum funkcji n W(α) = α i 1 n α i α j y i y j (x i x j ) (7) 2 i=1 ij=1 A następnie stosować funkcję decyzyjna:
Przypadek nieseparowalności SVM 17 / 24 Można pokazać, że zarówno i w tym przypadku, możemy sprowadzić do problemu Znaleźć wektor (α1 0,..., α0 n) będacy maksimum funkcji n W(α) = α i 1 n α i α j y i y j (x i x j ) (7) 2 i=1 przy ograniczeniach C α i 0, i = 1,.., n ij=1 oraz n α i y i = 0 (8) i=1 A następnie stosować funkcję decyzyjna:
Przypadek nieseparowalności SVM 17 / 24 Można pokazać, że zarówno i w tym przypadku, możemy sprowadzić do problemu Znaleźć wektor (α1 0,..., α0 n) będacy maksimum funkcji n W(α) = α i 1 n α i α j y i y j (x i x j ) (7) 2 i=1 przy ograniczeniach C α i 0, i = 1,.., n ij=1 oraz n α i y i = 0 (8) A następnie stosować funkcję decyzyjna: f (x) = sgn y i αi 0 (x i x) + b 0 (9) wektory podp. i=1
Zanurzenie obserwacji w bogatszej przetrzeni SVM 18 / 24 Przekształcimy dane w bogatszej przetrzeni cech: φ : R p F R N, N p
Zanurzenie obserwacji w bogatszej przetrzeni SVM 18 / 24 Przekształcimy dane w bogatszej przetrzeni cech: φ : R p F R N, N p wystarczy zamienić iloczyny skalarne (x i x j ) we wszystkich wzorach na (φ(x i ) φ(x j ))
PROBLEM OBLICZENIOWY: czas wykonania iloczynu skalarnego (φ(x i ) φ(x j )) wynosi O(N 2 ) SVM 19 / 24
SVM 19 / 24 PROBLEM OBLICZENIOWY: czas wykonania iloczynu skalarnego (φ(x i ) φ(x j )) wynosi O(N 2 ) TRIK: Kernel functions K((x i x j )) = (φ(x i ) φ(x j ))
SVM 19 / 24 PROBLEM OBLICZENIOWY: czas wykonania iloczynu skalarnego (φ(x i ) φ(x j )) wynosi O(N 2 ) TRIK: Kernel functions Zmieniona funkcja: K((x i x j )) = (φ(x i ) φ(x j )) W(α) = = n α i 1 n α i α j y i y j (φ(x i ) φ(x j )) 2 i=1 n α i 1 2 i=1 ij=1 n α i α j y i y j K(x i x j ) ij=1
Example SVM 20 / 24
Outline SVM 21 / 24 1 Wprowadzenie 2 Brak liniowej separowalności danych Nieznaczna nieseparowalność Zmiana przetrzeń atrybutów 3 Implementacja
Uczenie SVM SVM 22 / 24 Problem
Uczenie SVM SVM 22 / 24 Problem Wejście: D = {(x 1, y 1 ),..., (x n, y n )}; K: funkcja jadrowa.
Uczenie SVM SVM 22 / 24 Problem Wejście: D = {(x 1, y 1 ),..., (x n, y n )}; K: funkcja jadrowa. Wyjście: wektor (α1 0,..., α0 n) będacy maksimum funkcji W(α) = n α i 1 2 i=1 n α i α j y i y j K(x i x j ) ij=1 przy ograniczeniach C α i 0, i = 1,.., n oraz n α i y i = 0 i=1
Przykład metody gradientu dla QP SVM 23 / 24
Działanie SVM SVM 24 / 24 f (x) = sgn y i αi 0 K(x i x) + b 0 wektory podp.