Różnica między SVM a perceptronem

29

Jestem trochę zmieszany z różnicą między SVM a perceptronem. Pozwólcie, że spróbuję podsumować moje rozumienie tutaj i proszę o poprawienie tam, gdzie się mylę i uzupełnienie tego, co przegapiłem.

  1. Perceptron nie próbuje zoptymalizować „odległości” separacji. Tak długo, jak znajdzie hiperpłaszczyznę oddzielającą dwa zestawy, jest dobra. Z drugiej strony SVM próbuje zmaksymalizować „wektor wsparcia”, tj. Odległość między dwoma najbliższymi przeciwnymi punktami próbki.

  2. SVM zazwyczaj próbuje użyć „funkcji jądra” do rzutowania punktów próbki na przestrzeń o dużych wymiarach, aby umożliwić ich liniowe rozdzielenie, podczas gdy perceptron zakłada, że ​​punkty próbki są liniowo rozdzielalne.

Wendeta
źródło
Możliwy duplikat porównania SVM i regresji logistycznej
kjetil b halvorsen

Odpowiedzi:

18

Brzmi mi dobrze. Ludzie czasami używają słowa „Perceptron” w odniesieniu do algorytmu szkoleniowego wraz z klasyfikatorem. Na przykład ktoś mi to wyjaśnił w odpowiedzi na to pytanie . Ponadto nic nie stoi na przeszkodzie, abyś używał jądra z perceptronem, a to często jest lepszy klasyfikator. Zobacz tutaj kilka slajdów (pdf), jak zaimplementować perceptron jądra.

Główną praktyczną różnicą między perceptronem (jądra) a SVM jest to, że perceptrony można trenować online (tzn. Ich wagi można aktualizować, gdy pojawiają się nowe przykłady pojedynczo), podczas gdy SVM nie może być. Zobacz to pytanie, aby dowiedzieć się, czy maszyny SVM można szkolić online. Tak więc, mimo że SVM jest zwykle lepszym klasyfikatorem, perceptrony mogą być nadal przydatne, ponieważ są tanie i łatwe do ponownego trenowania w sytuacji, w której ciągle pojawiają się nowe dane treningowe.

Flądrarz
źródło
3
Maszyny SVM można szkolić online. Z podwójnego rozwiązania można uzyskać odpowiedni pierwotny, a z tego aktualizować wagi w sposób stochastyczny.
Firebug
4

SVM: Perceptron

minw2+Ci=1n(1yi(wxi+w0))+
mini=1n(yi(wxi+w0))+

Widzimy, że SVM ma prawie ten sam cel co perceptron regulowany przez L2.

Ponieważ cel jest inny, mamy również różne schematy optymalizacji dla tych dwóch algorytmów. Z widzimy, że jest to kluczowy powód używania programowania kwadratowego do optymalizacji SVM.w2

Dlaczego perceptron umożliwia aktualizację online? Jeśli zobaczysz regułę aktualizacji opadania gradientu dla utraty zawiasu (utrata zawiasu jest używana zarówno przez SVM, jak i perceptron),

wt=wt1+η1Ni=1NyixiI(yiwtxi0)

Ponieważ wszystkie algorytmy uczenia maszynowego można postrzegać jako połączenie funkcji strat i algorytmu optymalizacji.

Perceptron to nie więcej niż utrata zawiasu (funkcja utraty) + opadanie gradientu stochastycznego (optymalizacja)

wt=wt1+yy+1xt+1I(yt+1wtxt+10)

SVM można postrzegać jako utratę zawiasów + regulację L2 (strata + regularyzacja) + programowanie kwadratowe lub inne bardziej zaawansowane algorytmy optymalizacji, takie jak SMO (optymalizacja).

xxx222
źródło
-1

Perceptron jest uogólnieniem SVM, gdzie SVM jest perceptronem o optymalnej stabilności. Więc masz rację, gdy mówisz, że perceptron nie próbuje zoptymalizować odległości separacji.

bharadwaj aldur
źródło