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,xWwTw∥w∥=wTw
Pozwolić:
- x być wektorem cech (tj. wejściem SVM). , gdzie jest wymiarem wektora cechy.x∈Rnn
- 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
Klasa jest określana w następujący sposób:y
y(i)={−11 if wTx(i)+b≤−1 if wTx(i)+b≥1
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ń:
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=12∥w∥maxw2∥w∥minw∥w∥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,bs.t.∥w∥2,y(i)(wTx(i)+b)≥1∀i∈{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,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTx(i)+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀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,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTϕ(x(i))+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀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αs.t.minw,b∥w∥2+C∑i=1Nα(i)(1−wTϕ(x(i))+b)),0≤α(i)≤C,∀i∈{1,…,N}
Ten problem optymalizacji można uprościć (ustawiając niektóre gradienty na ) na:0
maxαs.t.∑i=1Nα(i)−∑i=1N∑j=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),0≤α(i)≤C,∀i∈{1,…,N}
w nie pojawia się jako (zgodnie z twierdzeniem o reprezentatorze ).w=∑Ni=1α(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.∑Ni=1α(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: