Jak działa Support Vector Machine (SVM)?


108

Jak działa maszyna wektorów nośnych (SVM) i co ją odróżnia od innych klasyfikatorów liniowych, takich jak liniowy perceptron , liniowa analiza dyskryminacyjna lub regresja logistyczna ? *

(* Myślę o podstawowych motywach algorytmu, strategiach optymalizacji, możliwościach generalizacji i złożoności w czasie wykonywania )



Odpowiedzi:


126

Maszyny wektorów pomocniczych skupiają się tylko na punktach, które najtrudniej odróżnić, podczas gdy inni klasyfikatorzy zwracają uwagę na wszystkie punkty.

Intuicyjne podejście oparte na maszynie wektora nośnego jest takie, że jeśli klasyfikator jest dobry w najtrudniejszych porównaniach (punkty B i A, które znajdują się najbliżej siebie na ryc. 2), to klasyfikator będzie jeszcze lepszy w łatwych porównaniach ( porównywanie punktów B i A, które są daleko od siebie).

Perceptrony i inne klasyfikatory:

Perceptrony buduje się, biorąc jeden punkt na raz i odpowiednio dostosowując linię podziału. Gdy tylko wszystkie punkty zostaną rozdzielone, algorytm perceptronu zatrzymuje się. Ale może się zatrzymać wszędzie. Rysunek 1 pokazuje, że istnieje szereg różnych linii podziału, które oddzielają dane. Kryteria zatrzymania perceptronu są proste: „rozdziel punkty i przestań poprawiać linię, gdy uzyskasz 100% separacji”. Perceptron nie ma wyraźnego polecenia znalezienia najlepszej linii podziału. Model regresji logistycznej i liniowe modele dyskryminacyjne są zbudowane podobnie jak perceptrony.

Najlepsza linia podziału maksymalizuje odległość między punktami B najbliższymi A i punktami A najbliższymi B. W tym celu nie trzeba patrzeć na wszystkie punkty. W rzeczywistości uwzględnienie informacji zwrotnych z punktów, które są daleko, może nieco zahaczyć linię, jak pokazano poniżej.

wprowadź opis zdjęcia tutaj

Obsługa maszyn wektorowych:

W przeciwieństwie do innych klasyfikatorów, maszyna wektora pomocniczego jest wyraźnie zalecana, aby znaleźć najlepszą linię podziału. W jaki sposób? Maszyna wektora podporowego szuka najbliższych punktów (rysunek 2), które nazywa „wektorami podporowymi” (nazwa „maszyna wektora podporowego” wynika z faktu, że punkty są jak wektory i że najlepsza linia „zależy od” lub jest „obsługiwany przez” najbliższe punkty).

Po znalezieniu najbliższych punktów SVM rysuje linię łączącą je (patrz linia oznaczona „w” na rysunku 2). Rysuje tę linię łączącą, odejmując wektor (punkt A - punkt B). Maszyna wektora nośnego następnie deklaruje najlepszą linię oddzielającą jako linię, która przecina - i jest prostopadła do - linii łączącej.

Maszyna wektora podporowego jest lepsza, ponieważ kiedy otrzymasz nową próbkę (nowe punkty), utworzysz już linię, która utrzymuje B i A tak daleko od siebie, jak to możliwe, a więc jest mniej prawdopodobne, że jedna się rozleje linia na terytorium drugiej osoby.

wprowadź opis zdjęcia tutaj

Uważam się za ucznia wizualnego i przez długi czas walczyłem z intuicją stojącą za maszynami wektorów wsparcia. Artykuł Duality and Geometry in SVM Classifiers w końcu pomógł mi dostrzec światło; stąd mam obrazy.


4
+1 od innego wizualnego ucznia! Dla czytelnika chciałbym zauważyć, że te granice widoczne na powyższym rysunku oparte są na zestawie danych, który został już przekształcony. Nie surowy zestaw danych.
Kingz

Czytając svm przez ponad dwa lata, dzisiaj zrozumiałem, w jaki sposób identyfikowana jest linia separacji i kilka innych rzeczy. Dzięki za czystą odpowiedź.
user123

53

Odpowiedź Ryana Zottiego wyjaśnia motywację maksymalizacji granic decyzyjnych, odpowiedź Carlosdc daje pewne podobieństwa i różnice w stosunku do innych klasyfikatorów. Podaję w tej odpowiedzi krótki matematyczny przegląd tego, w jaki sposób SVM są szkolone i używane.

Notacje

y,bw,xWwTww=wTw

Pozwolić:

  • x być wektorem cech (tj. wejściem SVM). , gdzie jest wymiarem wektora cechy.xRnn
  • y będzie klasą (tzn. wyjściem SVM). , tzn. zadanie klasyfikacji jest binarne.y{1,1}
  • w i są parametry SVM: musimy nauczyć się je za pomocą zestawu treningowego.b
  • (x(i),y(i)) jest próbką w zestawie danych. Załóżmy, że mamy w zestawie treningowym próbek.ithN

Przy można reprezentować granice decyzji SVM w następujący sposób:n=2

wprowadź opis zdjęcia tutaj

Klasa jest określana w następujący sposób:y

y(i)={1 if wTx(i)+b11 if wTx(i)+b1

które można bardziej zwięźle zapisać jako .y(i)(wTx(i)+b)1

Cel

SVM ma na celu spełnienie dwóch wymagań:

  1. SVM powinien maksymalizować odległość między dwiema granicami decyzyjnymi. Matematycznie oznacza to, że chcemy zmaksymalizować odległość między hiperpłaszczyzną zdefiniowaną przez a hiperpłaszczyzną zdefiniowaną przez . Odległość ta jest równa . Oznacza to, że chcemy rozwiązać . Równie dobrze chcemy .wTx+b=1wTx+b=12wmaxw2wminww2

  2. SVM powinien również poprawnie sklasyfikować wszystkie , co oznaczax(i)y(i)(wTx(i)+b)1,i{1,,N}

Co prowadzi nas do następującego kwadratowego problemu optymalizacji:

minw,bw2,s.t.y(i)(wTx(i)+b)1i{1,,N}

Jest to SVM z twardym marginesem , ponieważ ten kwadratowy problem optymalizacji dopuszcza rozwiązanie, jeśli dane można rozdzielić liniowo.

Ograniczenia można złagodzić, wprowadzając tak zwane zmienne luzu . Zauważ, że każda próbka zestawu treningowego ma swoją własną zmienną luzu. To daje nam następujący kwadratowy problem optymalizacji:ξ(i)

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTx(i)+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

Jest to SVM z miękkim marginesem . jest hiperparametrem zwanym karą za błąd . ( Jaki jest wpływ C na SVM z jądrem liniowym? I jaki zakres wyszukiwania dla określenia optymalnych parametrów SVM? ).C

Można dodać jeszcze większą elastyczność, wprowadzając funkcję która odwzorowuje oryginalną przestrzeń cech na przestrzeń cech wyższego wymiaru. Pozwala to na nieliniowe granice decyzyjne. Kwadratyczny problem optymalizacji staje się:ϕ

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTϕ(x(i))+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

Optymalizacja

Kwadratyczny problem optymalizacji można przekształcić w inny problem optymalizacji zwany podwójnym problemem Lagrangian (poprzedni problem nazywa się pierwotnym ):

maxαminw,bw2+Ci=1Nα(i)(1wTϕ(x(i))+b)),s.t.0α(i)C,i{1,,N}

Ten problem optymalizacji można uprościć (ustawiając niektóre gradienty na ) na:0

maxαi=1Nα(i)i=1Nj=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),s.t.0α(i)C,i{1,,N}

w nie pojawia się jako (zgodnie z twierdzeniem o reprezentatorze ).w=i=1Nα(i)y(i)ϕ(x(i))

Dlatego uczymy się za pomocą zestawu szkoleniowego.α(i)(x(i),y(i))

(FYI: Po co zawracać sobie głowę podwójnym problemem przy dopasowywaniu SVM? Krótka odpowiedź: szybsze obliczenia + pozwala na użycie sztuczki jądra, chociaż istnieją pewne dobre metody trenowania SVM w pierwotnej postaci, np. Patrz {1})

Dokonanie prognozy

Po nauczeniu się można przewidzieć klasę nowej próbki za pomocą wektora cech w następujący sposób:α(i)xtest

ytest=sign(wTϕ(xtest)+b)=sign(i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)

Podsumowanie może wydawać się przytłaczające, ponieważ oznacza, że ​​trzeba sumować wszystkie próbki treningowe, ale ogromna większość ma wartość (zobacz Dlaczego są Mnożniki Lagrange'a rzadkie dla SVM? ), Więc w praktyce nie stanowi to problemu. (zauważ, że można konstruować specjalne przypadki, w których wszystkie ) iff to wektor wsparcia . Powyższa ilustracja ma 3 wektory pomocnicze.i=1Nα(i)0α(i)>0α(i)=0x(i)

Sztuczka jądra

Można zauważyć, że problem optymalizacji używa tylko w produkcie wewnętrznym . Funkcja odwzorowująca do produktu wewnętrznego jest nazywany jądro , aka funkcji jądra, często oznaczany przez .ϕ(x(i))ϕ(x(i))Tϕ(x(j))(x(i),x(j))ϕ(x(i))Tϕ(x(j))k

Można wybrać aby produkt wewnętrzny był wydajny w obliczeniach. Pozwala to na użycie potencjalnie wysokiej przestrzeni funkcji przy niskich kosztach obliczeniowych. To się nazywa sztuczka jądra . Aby funkcja jądra była poprawna , tzn. Możliwa do użycia z trikiem jądra, powinna spełniać dwie kluczowe właściwości . Istnieje wiele funkcji jądra do wyboru . Na marginesie, sztuczka jądra może być zastosowana do innych modeli uczenia maszynowego , w którym to przypadku są one nazywane jądrem .k

Idąc dalej

Kilka interesujących kontroli jakości SVM:

Inne linki:


Bibliografia:


2
Cześć Franck, wielkie dzięki za odpowiedź. Czy mógłbyś wyjaśnić, dlaczego wektor jest ortogonalny do hiperpłaszczyzny generowanej przez SVM? Jak obliczyłeś odległość między dwiema granicami decyzyjnymi, która ma być równaw2w
tosik

3
Oprócz tej świetnej odpowiedzi, chcę polecić ten film, który omawia matematykę stojącą za SVM, a szczególnie wyjaśnia pytanie skomentowane przez @tosik youtube.com/watch?v=_PwhiWxHK8o
Nikolas Rieble

Bardzo miła odpowiedź. Tylko jedna uwaga na temat tej części: iff to wektor wsparcia . W celu klasyfikacji sumowanie efektywnie dotyczy wektorów pomocniczych (tj. ). α(i)=0x(i)α(i)0
989

13

Skupię się na podobieństwach i różnicach między innymi klasyfikatorami:

  • Z perceptronu: SVM wykorzystuje utratę zawiasów i regulację L2, perceptron wykorzystuje utratę perceptronu i mógłby użyć wczesnego zatrzymania (lub innych technik) do regularyzacji, tak naprawdę nie ma terminu regularyzacji w perceptronie. Ponieważ nie ma terminu regularyzacji, perceptron musi być przetrenowany, dlatego możliwości generalizacji mogą być dowolnie złe. Optymalizacja odbywa się za pomocą stochastycznego spadku, dlatego jest bardzo szybka. Pozytywną stroną tego artykułu jest to, że wykonując wczesne zatrzymanie z nieco zmodyfikowaną funkcją utraty, wydajność może być na równi z SVM.

  • Z regresji logistycznej: regresja logistyczna używa terminu straty logistycznej i może wykorzystywać regularyzację L1 lub L2. Możesz myśleć o regresji logistycznej jako o dyskryminującym bracie generatywnego naiwnego Bayesa.

  • Z LDA: LDA można również postrzegać jako algorytm generatywny, który zakłada, że ​​funkcje gęstości prawdopodobieństwa (p (x | y = 0) i p (x | y = 1) są normalnie rozłożone. Jest to idealne, gdy dane są w fakt jest normalnie dystrybuowany. Ma jednak tę wadę, że „szkolenie” wymaga inwersji macierzy, która może być duża (gdy masz wiele funkcji). W przypadku homocedastyczności LDA staje się QDA, co jest optymalne dla Bayesa dla normalnie dystrybuowanych danych. Oznacza to, że jeśli założenia są spełnione, że tak naprawdę nie można zrobić nic lepszego.

W czasie wykonywania (czas testu), gdy model został przeszkolony, złożoność wszystkich tych metod jest taka sama, jest to iloczyn kropkowy między hiperpłaszczyzną znalezionej procedury szkolenia a punktem danych.


1
Ponieważ wydajesz się bardzo kompetentny w SVM, pozwól, że wyjaśnię ci moje wątpliwości: kiedy znajdziemy najlepszą oddzielającą hiperpłaszczyznę, do czego ją wykorzystujemy? Możemy zdefiniować SVM jako metodę, która po pierwsze wybiera najlepszą hiperpłaszczyznę do prawidłowej klasyfikacji punktów danych, a po drugie używa tej hiperpłaszczyzny do przecinania nowych punktów danych w dwóch klasach. Dobrze? (Mam wątpliwości co do drugiej części)
DavideChicco.it

1
@ DavideChicco.it Tak, możemy użyć funkcji wskaźnika do klasyfikacji nowych danych, co jest często głównym celem klasyfikatora. (Nie wierz mi jednak na słowo, jestem nowy w tym wszystkim).
keyser

12

Technika opiera się na narysowaniu linii granicznej decyzji, pozostawiając wystarczający margines dla pierwszych pozytywnych i negatywnych przykładów, jak to możliwe:

wprowadź opis zdjęcia tutaj

Jak na powyższej ilustracji, jeśli wybierzemy wektor ortogonalny taki, że , możemy ustalić kryterium decyzyjne dla dowolnego nieznanego przykładu który zostanie skatalogowany jako pozytywny z postaci:w=1u

wuC

odpowiadające wartości, która umieściłaby rzut poza linią decyzyjną na środku ulicy. Zauważ, że .wu=uw

Równoważnym warunkiem dla próbki dodatniej byłoby:

(1)wu+b0

zC=b.

Potrzebujemy i aby mieć regułę decyzyjną i aby się tam dostać, potrzebujemy ograniczeń .bw

Pierwsze ograniczenie , że będą nakładać się, że dla dowolnej pozytywnej próbki , ; a dla próbek ujemnych . W granicy podziału lub hiperpłaszczyźnie ( medianie ) wartość wynosiłaby , podczas gdy wartości w rynnach wyniosłyby i :x+,wx++b1wx+b1011

wprowadź opis zdjęcia tutaj

Wektor jest wektorem wag , podczas gdy to odchylenie .wb


Aby połączyć te dwie nierówności razem, możemy wprowadzić zmienną , aby dla pozytywnych przykładów, i jeśli przykłady są negatywne, i podsumowaćyiyi=+1yi=1

yi(xiw+b)10.

Ustalamy więc, że musi to być większa od zera, ale jeśli przykład znajduje się na hiperpłaszczyznach („rynnach”), które maksymalizują margines separacji między hiperpłaszczyzną decyzyjną a wierzchołkami wektorów podporowych, w tym przypadku liniami), następnie:

(2)yi(xiw+b)1=0

Zauważ, że jest to równoważne z wymaganiem, abyyi(xiw+b)=1.

wprowadź opis zdjęcia tutaj


Drugie ograniczenie : odległość hiperpłaszczyzny decyzji do wierzchołków wektorów nośnych zostanie zmaksymalizowana. Innymi słowy margines separacji („ulica”) zostanie zmaksymalizowany:

wprowadź opis zdjęcia tutaj

Zakładając wektor jednostkowy prostopadły do ​​granicy decyzyjnej, , iloczynem kropki z różnicą między dwoma „graniczącymi” przykładami plus i minus jest szerokość „ulicy” :w

width=(x+x)ww

Na równaniu powyżej i znajdują się w rynnie (na hiperpłaszczyznach maksymalizujących separację). Dlatego dla pozytywnego przykładu: lub ; i dla negatywnego przykładu: . Tak więc przeformułowanie szerokości ulicy:x+x (xiw+b)1=0x+w=1bxw=1b

width=(x+x)ww=x+wxww=1b(1b)w(3)=2w

Teraz musimy zmaksymalizować szerokość ulicy - tzn. zminimalizować lub zminimalizować:2w,w

(4)12w2

co jest matematycznie wygodne.


Więc chcemy:

  1. Zminimalizuj z ograniczeniem:x2

  2. yi(wxi+b)1=0


Ponieważ chcemy zminimalizować to wyrażenie w oparciu o pewne ograniczenia, potrzebujemy mnożnika Lagrange'a (wracając do równań 2 i 4):

(5)L=12w2λi[yi(xiw+b)1]

Różnicowanie,

Lw=wλiyixi=0
.

W związku z tym,

(6)w=λiyixi

I różnicowanie w odniesieniu dob:

Lb=λiyi=0,

co oznacza, że ​​mamy iloczyn sumy zerowej mnożników i etykiet:

(7)λiyi=0

Podłączając równanie Eq (6) z powrotem do Eq (5),

L=12(λiyixi)(λjyjxj)(λiyixi)(λjyjxj)λiyib+λi

Przedostatni termin wynosi zero zgodnie z równaniem Eq (7).

W związku z tym,

(8)L=λi12ijλiλjyiyjxixj

Eq (8) jest ostatnim Lagrangianem.

Dlatego optymalizacja zależy od iloczynu kropek par przykładów.

Wracając do „reguły decyzyjnej” w równaniu (1) powyżej i używając równania (6):

(9)λiyixiu+b0

będzie ostateczną regułą decyzyjną dla nowego wektorau.


Nic oryginalnego ... Tylko moje notatki na bardziej podstawowym poziomie. Zasadniczo z tego filmu z MIT z moimi własnymi ilustracjami. W przypadku błędów daj mi znać. Aby uzyskać wnikliwe odpowiedzi i dalsze szczegóły, przejdź do poziomu eksperta (post Francka i inni).
Antoni Parellada,

Jak obliczyć b ?
mike

1
@ mike gdzie jest zbiorem wskaźników wektorów pomocniczychMożesz go znaleźć tutaj . b=ysmSαmymxmxsS(αi>0).
Antoni Parellada,

@AntoniParellada niesamowita odpowiedź Bardzo dziękuję Antoni - ale czy nie brakuje ci części dotyczącej problemu podwójnego i warunków KTT?
Xavier Bourret Sicotte

@XavierBourretSicotte Przez pewien czas nie będę w stanie nad tym pracować. Zastanów się, czy nie napisać alternatywnej odpowiedzi dotyczącej tych kwestii, a jeśli tak, to daj mi znać, że jestem tego świadomy i mogę go głosować.
Antoni Parellada

3

Kilka komentarzy na temat warunków dualności i KTT

Pierwotny problem

Pobierając z postu @ Antoni pomiędzy równaniami i , przypomnij sobie, że nasz pierwotny lub pierwotny problem optymalizacji ma postać:(4)(5)

minw,bf(w,b)=minw,b 12||w||2s.t.  gi(w,b)=y(i)(wTx(i)+b)+1=0

Metoda Lagrange'a

Metoda mnożników Lagrange'a pozwala nam przekształcić ograniczony problem optymalizacji w nieograniczoną jedną z następujących form:

L(w,b,α)=12||w||2imαi[y(i)(wTx(i)+b)1]

Gdzie nazywa się Lagrangian, a nazywa się mnożnikami Lagrangian . L(w,b,α)αi

Nasz pierwotny problem optymalizacji z Lagrangianem wygląda następująco: (zauważ, że użycie , nie jest najbardziej rygorystyczne, ponieważ powinniśmy również używać i tutaj ...)minmaxinfsup

minw,b(maxαL(w,b,α))

Podwójny problem

To, co @Antoni i prof. Patrick Winston zrobili w swoim wyprowadzeniu, zakłada, że ​​funkcja optymalizacji i ograniczenia spełniają pewne warunki techniczne, dzięki czemu możemy wykonać następujące czynności:

minw,b(maxαL(w,b,α))=maxα(minw,bL(w,b,α))

To pozwala nam wziąć częściowe pochodne w odniesieniu do i , równe zero, a następnie podłączyć wyniki z powrotem do pierwotnego równania Lagrangiana, generując w ten sposób ekwiwalent problem podwójnej optymalizacji formyL(w,b,α)wb

maxαminw,bL(w,b,α)maxαimαi12i,jmy(i)y(j)αiαj<x(i)x(j)>s.t. αi0s.t. imαiy(i)=0

Dualność i KTT

Bez wchodzenia w nadmierną matematykę, warunki te są połączeniem warunków dualności i Karush Kuhn Tucker (KTT) i pozwalają nam rozwiązać podwójny problem zamiast pierwotnego , zapewniając jednocześnie optymalne rozwiązanie. W naszym przypadku warunki są następujące:

  • Pierwotne funkcje celu i ograniczenia nierówności muszą być wypukłe
  • Funkcja ograniczenia równości musi być afiniczna
  • Ograniczenia muszą być ściśle wykonalne

Następnie istnieją które są rozwiązaniami pierwotnych i podwójnych problemów. Ponadto parametry spełniają poniższe warunki KTT:w,αw,α

wiL(w,α,β)=0(A)βiL(w,α,β)=0(B)αigi(w)=0(C)gi(w)0(D)αi0(E)

Ponadto, jeśli niektóre spełniają rozwiązania KTT, są one również rozwiązaniem pierwotnego i podwójnego problemu.w,α

Powyższe równanie ma szczególne znaczenie i nazywa się warunkiem podwójnej komplementarności . To implikuje, że jeśli to co oznacza, że ​​ograniczenie jest aktywne, tzn. ono równość, a nie nierówność. Jest to wyjaśnienie równania w pochodnej Antoniego, w którym ograniczenie nierówności przekształca się w ograniczenie równości.(C)αi>0gi(w)=0gi(w)0(2)

Intuicyjny, ale nieformalny schemat

wprowadź opis zdjęcia tutaj

Źródła


2
Dziękuję Ci bardzo. Czytam go szybko i wracam do niego później, mając więcej czasu, ale brzmi świetnie i dotyka brakujących punktów w mojej odpowiedzi.
Antoni Parellada
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.