Jakie są zalety sztucznych sieci neuronowych w porównaniu z maszynami wektorów wsparcia? [Zamknięte]


381

ANN (Artificial Neural Networks) i SVM (Support Vector Machines) to dwie popularne strategie nadzorowanego uczenia maszynowego i klasyfikacji. Często nie jest jasne, która metoda jest lepsza dla konkretnego projektu, i jestem pewien, że odpowiedź zawsze brzmi „zależy”. Często stosuje się połączenie obu z klasyfikacją Bayesa.

Te pytania dotyczące Stackoverflow zostały już zadane w odniesieniu do ANN vs. SVM:

Klasyfikacja ANN i SVM

jaka jest różnica między ANN, SVM i KNN w moim pytaniu klasyfikacyjnym

Obsługa maszyny wektorowej lub sztucznej sieci neuronowej w przetwarzaniu tekstu?

W tej kwestii, chciałbym wiedzieć konkretnie jakie aspekty SSN (w szczególności wielowarstwowego perceptronu) może zrobić to pożądane stosowanie ponad SVM? Pytam dlatego, że łatwo jest odpowiedzieć na przeciwne pytanie: Maszyny wektorów wsparcia są często lepsze od ANN, ponieważ unikają dwóch głównych słabości ANN:

(1) ANN często zbliżają się do minimów lokalnych, a nie globalnych, co oznacza, że ​​zasadniczo „czasami brakuje im dużego obrazu” (lub brakuje lasu dla drzew)

(2) ANN często się wyczerpują, jeśli trening trwa zbyt długo, co oznacza, że ​​dla dowolnego danego wzoru ANN może zacząć uwzględniać hałas jako część tego wzoru.

SVM nie cierpią na żaden z tych dwóch problemów. Jednak nie jest oczywiste, że SVM mają być całkowitym zamiennikiem dla ANN. Więc jaką konkretną przewagę (-y) ma ANN w stosunku do SVM, która może sprawić, że będzie miała zastosowanie w niektórych sytuacjach? Wymieniłem konkretne zalety SVM w stosunku do ANN, teraz chciałbym zobaczyć listę zalet ANN (jeśli w ogóle).


61
Niestety prawdopodobnie wkrótce zostanie zamknięty lub przeniesiony, ale uwielbiam to pytanie. Nie chciałbym nic lepszego niż zobaczyć szereg przemyślanych odpowiedzi na to pytanie.
duffymo

10
Wyobrażam sobie, że większość odpowiedzi na to pytanie będzie spekulatywna lub oparta na dowodach, ponieważ istnieje bardzo niewiele teoretycznych gwarancji dotyczących mocy tych maszyn. Na przykład (jeśli dobrze pamiętam) nie wiadomo, czy n-warstwowa sieć neuronowa ze sprzężeniem zwrotnym ma większą moc niż sieć dwuwarstwowa. Jak więc powiedzieć, że jedno jest lepsze od drugiego, jeśli nawet nie rozumiemy związków między niewielkimi odmianami tego samego modelu?
JeremyKun

13
Jest zamknięty, ponieważ nie jest zbyt konstruktywny ... Lol!
erogol

65
Uwielbiam to, że StackOverflow stara się utrzymywać wysoką jakość pytań i odpowiedzi. Nienawidzę tego, że StackOverflow wymusza to siekierą zamiast skalpela. Istnieje różnica między pytaniem „jak zrobić HTML HTML?” oraz pytanie dotyczące konkretnej domeny, na które trudno byłoby znaleźć odpowiedź w innym miejscu. Jest powód, dla którego ma 140 pozytywnych opinii - ale uważa się to za „niekonstruktywne”. Takie pytania są uosobieniem konstruktywnych. Z pewnością znacznie bardziej niż wiele z tych, które widzę każdego dnia, które ładnie mieszczą się w formacie pytań i odpowiedzi, a mimo to są bezużyteczne dla prawie wszystkich oprócz pytającego.
Chase Ries

20
Jest to oczywiście konstruktywne. Nie rozumiem, dlaczego zostałby zamknięty. Pyta o konkretne sytuacje, w których użycie jednego algorytmu ma przewagę nad użyciem algorytmu alternatywnego. Czy to nie jest rozsądne pytanie?
Rab

Odpowiedzi:


137

Sądząc z podanych przez ciebie przykładów, zakładam, że przez ANN masz na myśli wielowarstwowe sieci feed-forward (sieci FF w skrócie), takie jak wielowarstwowe perceptrony, ponieważ są one bezpośrednią konkurencją dla SVM.

Szczególną zaletą tych modeli w stosunku do SVM jest to, że ich rozmiar jest stały: są to modele parametryczne , podczas gdy SVM są nieparametryczne. Oznacza to, że w ANN masz kilka ukrytych warstw o ​​rozmiarach od h 1 do h nw zależności od liczby funkcji oraz parametrów polaryzacji, które składają się na Twój model. Natomiast SVM (przynajmniej jądro) składa się z zestawu wektorów wspierających, wybranych z zestawu treningowego, o wadze dla każdego. W najgorszym przypadku liczba wektorów podporowych jest dokładnie liczbą próbek treningowych (chociaż dzieje się tak głównie w przypadku małych zestawów treningowych lub w zdegenerowanych przypadkach) i ogólnie rozmiar modelu jest skalowany liniowo. W przetwarzaniu języka naturalnego klasyfikatory SVM z dziesiątkami tysięcy wektorów pomocniczych, z których każdy ma setki tysięcy funkcji, nie są niespotykane.

Ponadto szkolenie online sieci FF jest bardzo proste w porównaniu do dopasowania SVM online, a przewidywanie może być nieco szybsze.

EDYCJA : wszystkie powyższe dotyczą ogólnego przypadku SVM z jądrem. Liniowe SVM są szczególnym przypadkiem, ponieważ parametryczne i umożliwiają uczenie się online za pomocą prostych algorytmów, takich jak stochastyczne zejście gradientu.


12
Kolejny powód można znaleźć w tym artykule: yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf . Krótko mówiąc, autor stwierdza, że ​​„głębokie architektury” mogą reprezentować „inteligentne” zachowanie / funkcje itp. Bardziej efektywnie niż „płytkie architektury”, takie jak SVM.
alfa

1
Nawiasem mówiąc, głębokie uczenie się traci nieco „zalety” podane tutaj dla MLP (stały rozmiar, prostszy trening). Nie jestem jednak pewien, czy te zalety są tego warte.
Muhammad Alkarouri,

6
@MuhammadAlkarouri: głębokie uczenie się jest dość szerokim zestawem technik, ale te, które znam, zachowują zalety modeli parametrycznych (stały rozmiar).
Fred Foo,

Dwa komentarze: punkt szkolenia online jest prawdziwy, ale istnieje wariant klasyfikatorów podobnych do SVM specjalnie zaprojektowanych do nauki online, zwany MIRA (rodzaj klasyfikatora pasywno-agresywnego), dla którego aktualizacje są trywialne. Po drugie, warto zauważyć, że wiele sieci neuronowych można sformułować jako SVM poprzez sztuczkę jądra.
Ben Allison,

1
@FredFoo również ANN może utknąć w lokalnych minimach, gdzie jako maszyny wektorów wspierających ten problem nie jest podatny.
turysta

62

Jedną oczywistą przewagą sztucznych sieci neuronowych nad maszynami wektorów wsparcia jest to, że sztuczne sieci neuronowe mogą mieć dowolną liczbę wyjść, podczas gdy maszyny wektorów wsparcia mają tylko jedną. Najbardziej bezpośrednim sposobem stworzenia n-aryjnego klasyfikatora za pomocą maszyn wektorów podporowych jest stworzenie n maszyn wektorów podporowych i szkolenie każdego z nich jeden po drugim. Z drugiej strony, n-ary klasyfikator z sieciami neuronowymi może być trenowany za jednym razem. Ponadto sieć neuronowa będzie miała więcej sensu, ponieważ stanowi jedną całość, podczas gdy maszyny wektorów nośnych są systemami izolowanymi. Jest to szczególnie przydatne, jeśli wyjścia są ze sobą powiązane.

Na przykład, jeśli celem była klasyfikacja cyfr odręcznych, wystarczyłoby dziesięć maszyn wektorów pomocniczych. Każda maszyna wektora wsparcia rozpozna dokładnie dokładnie jedną cyfrę i nie rozpoznaje wszystkich pozostałych. Ponieważ każda odręczna cyfra nie może zawierać więcej informacji niż tylko jej klasa, nie ma sensu próbować rozwiązać tego za pomocą sztucznej sieci neuronowej.

Załóżmy jednak, że celem było modelowanie równowagi hormonalnej człowieka (dla kilku hormonów) jako funkcję łatwo mierzalnych czynników fizjologicznych, takich jak czas od ostatniego posiłku, tętno itp. Ponieważ wszystkie te czynniki są ze sobą powiązane, sztuczny układ nerwowy regresja sieci ma większy sens niż obsługa regresji wektorowej maszyny.


18
W rzeczywistości istnieją prawdziwe wieloklasowe sformułowania maszyny wektora nośnego (patrz artykuły Crammera i Singera). Wierzę, że LibSVM zawiera ich implementację.
Fred Foo,

3
Jednak trening wieloklasowej maszyny SVM nie jest tak łatwy, a wydajność wydaje się lepsza w podejściu OVA niż AVA.
crodriguezo

3
„nie ma sensu próbować rozwiązywać tego problemu za pomocą sztucznej sieci neuronowej”. Sieci neuronowej można użyć do rozwiązania klasyfikacji cyfr odręcznych. Zrobiłem to jako zadanie dla klasy. Warstwa wyjściowa zawiera prawdopodobieństwa wszystkich cyfr. Jako hipoteza stosowana jest klasa o najwyższym prawdopodobieństwie. Miałem wskaźnik dokładności 94%.
user3266824,

Masz na myśli utworzenie n liczby 1 w porównaniu z klasyfikatorami SVM N-1 w porównaniu z użyciem NN do uzyskania n wyników. SVM wydaje się być w ten sposób wolniejszy?
mskw

@ user3266824 Cóż, tak, ten cytat nie zestarzał się dobrze.
runDOSrun

46

Należy zauważyć, że te dwa są w rzeczywistości bardzo powiązane. Liniowe SVM są równoważne jednowarstwowym NN (tj. Perceptronom), a wielowarstwowe NN można wyrazić w kategoriach SVM. Zobacz tutaj, aby uzyskać szczegółowe informacje.


18

Jeśli chcesz użyć SVM jądra, musisz odgadnąć jądro. Jednak ANN są uniwersalnymi aproksymatorami, z których jedynie zgadywanie to szerokość (dokładność aproksymacji) i wysokość (wydajność aproksymacji). Jeśli poprawnie zaprojektujesz problem optymalizacji, nie będziesz nadmiernie dopasowany (więcej informacji znajdziesz w bibliografii). Zależy to również od przykładów treningu, jeśli skanują poprawnie i jednolicie przestrzeń wyszukiwania. Wykrywanie szerokości i głębokości jest przedmiotem programowania liczb całkowitych.

Załóżmy, że ograniczyłeś funkcje f (.) I ograniczyłeś uniwersalne aproksymatory na I = [0,1] z zakresem ponownie I = [0,1], na przykład, które są sparametryzowane przez rzeczywistą sekwencję zwartego wsparcia U (., A) z właściwość, z którą istnieje sekwencja sekwencji

lim sup { |f(x) - U(x,a(k) ) | : x } =0

i rysujesz przykłady i testy (x,y)z rozkładem D.IxI .

Aby uzyskać zalecane wsparcie, musisz znaleźć najlepszą taką

sum {  ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal

Niech to a=aabędzie zmienna losowa !, to jest wtedy nadmierne dopasowanie

średnie użycie D and D^{N} of ( y - U(x,aa) )^{2}

Pozwól mi wyjaśnić, dlaczego, jeśli wybierzesz aataki, że błąd zostanie zminimalizowany, to dla rzadkiego zestawu wartości masz idealne dopasowanie. Ponieważ jednak są rzadkie, średnia nigdy nie wynosi 0. Chcesz zminimalizować sekundę, chociaż masz dyskretne przybliżenie do D. I pamiętaj, że długość podpory jest dowolna.


14

Brakuje mi jednej odpowiedzi: perceptron wielowarstwowy jest w stanie znaleźć związek między cechami. Na przykład jest to konieczne w wizji komputerowej, gdy surowy algorytm jest dostarczany do algorytmu uczenia się, a teraz obliczane są zaawansowane funkcje. Zasadniczo poziomy pośrednie mogą obliczać nowe nieznane cechy.


12

Powinniśmy również wziąć pod uwagę, że system SVM można zastosować bezpośrednio do przestrzeni niemetrycznych, takich jak zestaw etykietowanych wykresów lub ciągów. W rzeczywistości wewnętrzną funkcję jądra można poprawnie uogólnić na praktycznie dowolny rodzaj danych wejściowych, pod warunkiem, że spełniony jest wymóg dodatniej definicji jądra. Z drugiej strony, aby móc zastosować ANN na zestawie grafów oznaczonych, należy rozważyć jawne procedury osadzania.


6
Moim zdaniem, zbudowanie rozsądnego jądra i rozsądne osadzenie metryki są równie problematyczne. To tylko komentarz, że może być więcej różnych jąder niż metryk, ale tak naprawdę nie kupuję tego. ohli.de/download/papers/Deza2009.pdf
JeremyKun
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.