Zagadnienia

10. SVM: Maszyny wektorów podpieraja̧cych

10.1. SVM: Maszyny wektorów podpieraja̧cych

10.1.1. Wprowadzenie

Dana jest próbka treningowa

D=x1,y1,,xn,yn gdzie yi-1,1xip
\columns\column

0.5 0.58 \column

  • Klasyfikatorem liniowym nazywamy funkcję

    fw,bx=sgnwx+b
  • Próbka D jest liniowo seperowana jeśli istnieje klasyfikator liniowy fw,b taki, że

    wxi+b+1, gdy yi=+1
    wxi+b<-1, gdy yi=-1
\columns\column

0.5 0.5 \column

  • Uproszczony warunek:

    yiwxi+b1,

    dla każdego i.

  • Każda z tych linii dobrze seperuje punkty;

  • Która z nich jest najlepsza?

  • Margines = szerokość bezpiecznego obszaru po obu stronach hiperpłaszczyzny;

  • Margines jest wyznaczony przez 2 hiperpłaszczyzny.

  • Chcemy znaleźć klasyfikator z maksymalnym marginesem

\columns\column

0.5

  • Niech H1, H2 będą brzegami marginesu;

  • Powiniśmy oprzeć brzegi o punkty z próbki treningowej

  • Te punkty nazywamy wektorami podpierającymi

  • Równanie H1 i H2:

    H1:wx+b=1
    H2:wx+b=-1
\column

0.5

Odległość między H1 a H2:

dH1,H2=2w

Maksymalizujemy dH1,H2 lub minimalizujemy w2.

\block

Zadanie LSVM Znaleźć w i b które minimalizują

w22

przy ograniczeniach

yiwxi+b-10;i=1,,n

Q: Jak rozwiązać tego typu zagadnienia?

A: Metodą gradientu?, symulowanego wyżrzania?, odwracanie macierzy? EM? Newton? PROGRAMOWANIE KWADRATOWE?

  • Znaleźć

    argmaxuc+dTu+uTRu2
  • przy założeniach:

    A1ub1
  • oraz

    A2u=b2

To zagadnienie jest dobrze zbadane i istnieją bardzo efektywne algorytmy rozwiązujące ten problem

  • Rozwiązywanie zagadnienia LSVM znalezienie punktu siodłowego wielomianu Lagrange'a:

    Lw,b,α=12ww-i=1nαixiw-byi-1

    gdzie α=α1,,αn jest wektorem nieujemnych współczynników Lagrange'a

  • Punkt siodłowy = maksimum funkcji względem αi0 i minimum funkcji względem w i b.

Twierdzenie Karusha-Kuhna-Tuckera: warunkiem koniecznym istnienia punktu siodlowego jest

  • zerowanie się gradientu wzg. w, czyli

    w=i=1nyiαixi (10.1)
  • zerowanie się pochodnej wzg. b, czyli

    i=1nαiyi=0 (10.2)
  • spełnienie warunku:

    αixiw0-b0yi-1=0, for i=1,,n (10.3)

Po uwzględnieniu tych warunków (na istnienie punktu siodłowego) mamy nowy problem optymalizacyjny:

  • Znaleźć wektor α będący maksimum funkcji

    Wα=i=1nαi-12ij=1nαiαjyiyjxixj (10.4)
  • przy ograniczeniach

    αi0,i=1,..,norazi=1nαiyi=0 (10.5)
\block

Niech wektor α10,,αn0 będzie rozwiązaniem maksymalizującym (4) przy ograniczeniach (5).

  • Z (3) wynika, że jeśli xi nie jest wektorem podpierającym to αi0=0;

  • Równania (4) i (5) odbywają się faktycznie tylko po wektorach podpierających.

  • Hyperpłaszczyzna rozdzielająca ma postać w0x-b0=0 gdzie

    w0=wektory podp.yiαi0xib0=12w0x1+w0x-1

    tu x1 i x-1 są dowolnymi wektorami podpierającymi z każdej z klas.

\block

Ostateczna funkcja decyzyjna:

fx=sgnwektory podp.yiαi0xix+b0 (10.6)

10.1.2. Brak liniowej separowalności danych

10.1.2.1. Nieznaczna nieseparowalność

  • Założenie o separowalności klas jest nienaturalna;

  • Modyfikacja:

    wxi+b1-ξi, gdy yi=+1
    wxi+b-1+ξi, gdy yi=-1

    gdzie stałe ξi spełniają warunki:

    ξi0,i=1,,n.
  • Zmodyfikowana funkcja do minimalizacji

    w22+Ci=1nξi

    C jest stałą “karą” za niespełnienie idealnych warunków.

\block

Ogólne zadanie SVM Znaleźć w i b które minimalizują

w22+Ci=1nξi

przy ograniczeniach

wxi+b1-ξi, gdy yi=+1
wxi+b-1+ξi, gdy yi=-1
ξi0,i=1,,n.

Można pokazać, że zarówno i w tym przypadku, możemy sprowadzić do problemu

  • Znaleźć wektor α10,,αn0 będący maksimum funkcji

    Wα=i=1nαi-12ij=1nαiαjyiyjxixj (10.7)
  • przy ograniczeniach

    Cαi0,i=1,..,norazi=1nαiyi=0 (10.8)

A następnie stosować funkcję decyzyjną: \block

fx=sgnwektory podp.yiαi0xix+b0 (10.9)

10.1.2.2. Zmiana przetrzeni atrybutów

  • Przekształcimy dane do bogatszej przetrzeni cech:

    ϕ:pFN,Np
  • Wystarczy zamienić iloczyny skalarne xixj we wszystkich wzorach na ϕxiϕxj

  • PROBLEM OBLICZENIOWY: czas wykonania iloczynu skalarnego ϕxiϕxj wynosi ON2

  • TRIK: Kernel functions

    Kxixj=ϕxiϕxj
  • Zmieniona funkcja:

    Wα=i=1nαi-12ij=1nαiαjyiyjϕxiϕxj
    =i=1nαi-12ij=1nαiαjyiyjKxixj

10.1.3. Implementacja

\block

Problem

Wejście:

D=x1,y1,,xn,yn; K: funkcja jądrowa.

Wyjście:

wektor α10,,αn0 będący maksimum funkcji

Wα=i=1nαi-12ij=1nαiαjyiyjKxixj

przy ograniczeniach

Cαi0,i=1,..,norazi=1nαiyi=0
\block
fx=sgnwektory podp.yiαi0Kxix+b0

Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.

Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.