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:
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).
źródło
Odpowiedzi:
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ż są parametryczne i umożliwiają uczenie się online za pomocą prostych algorytmów, takich jak stochastyczne zejście gradientu.
źródło
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.
źródło
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.
źródło
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
i rysujesz przykłady i testy
(x,y)
z rozkładem D.IxI
.Aby uzyskać zalecane wsparcie, musisz znaleźć najlepszą taką
Niech to
a=aa
bę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
aa
taki, ż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.źródło
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.
źródło
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.
źródło