To pytanie jest odpowiedzią na komentarz, który widziałem na inne pytanie.
Komentarz dotyczył programu szkolenia Machine Learning na Coursera, podobnie jak „SVM nie są obecnie tak często używane”.
Właśnie ukończyłem odpowiednie wykłady i rozumiem SVM, ponieważ są one solidnym i wydajnym algorytmem uczenia się do klasyfikacji oraz że podczas korzystania z jądra mają „niszę” obejmującą pewną liczbę funkcji, być może od 10 do 1000, i liczba próbek szkoleniowych może od 100 do 10 000. Ograniczenie próbek treningowych polega na tym, że podstawowy algorytm obraca się wokół optymalizacji wyników generowanych z kwadratowej macierzy o wymiarach opartych na liczbie próbek treningowych, a nie na liczbie oryginalnych elementów.
Podobnie komentarz, który widziałem, odnosi się do prawdziwej zmiany od czasu kursu, a jeśli tak, to co to za zmiana: nowy algorytm, który obejmuje również „słaby punkt” SVM, lepsze procesory, co oznacza, że przewagi obliczeniowe SVM nie są warte tyle ? A może jest to opinia lub osobiste doświadczenie komentatora?
Próbowałem wyszukać np. „Są modne maszyny do obsługi wektorów” i nie znalazłem nic, co by sugerowało, że zostały odrzucone na rzecz czegoś innego.
Wikipedia ma to: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . . głównym punktem spornym wydaje się być trudność z interpretacją modelu. Co sprawia, że SVM jest dobry dla silnika przewidującego czarną skrzynkę, ale nie jest tak dobry do generowania wglądu. Nie uważam tego za poważny problem, to kolejna drobna rzecz, którą należy wziąć pod uwagę przy wyborze odpowiedniego narzędzia do pracy (wraz z charakterem danych szkoleniowych i zadania edukacyjnego itp.).
źródło
Odpowiedzi:
SVM jest potężnym klasyfikatorem. Ma kilka fajnych zalet (które, jak sądzę, były odpowiedzialne za jego popularność) ... Są to:
Istnieją również znaczące wady.
Maszyny SVM zazwyczaj należą do klasy „rzadkich maszyn jądra”. Wektory rzadkie w przypadku SVM są wektorami nośnymi wybranymi z kryterium maksymalnego marginesu. Inne maszyny rzadkich wektorów, takie jak maszyna wektorów adekwatności (RVM), działają lepiej niż SVM. Poniższy rysunek pokazuje porównawczą wydajność tych dwóch. Na rysunku oś x pokazuje dane jednowymiarowe z dwóch klas y = {0,1}. Model mieszanki jest zdefiniowany jako P (x | y = 0) = Unif (0,1) i P (x | y = 1) = Unif (.5,1,5) (Unif oznacza rozkład równomierny). Z tej mieszaniny pobrano 1000 punktów, a SVM i RVM zastosowano do oszacowania tylnej. Problem SVM polega na tym, że przewidywane wartości są dalekie od prawdziwych szans logarytmicznych.
Bardzo skutecznym klasyfikatorem, który jest obecnie bardzo popularny, jest Losowy Las . Główne zalety to:
źródło
Odpowiadając na to pytanie, należy wyróżnić jedno znaczące rozróżnienie na to, czy mówimy o liniowych maszynach wektorów wsparcia, czy nieliniowych , tj. Jądrach maszyn wektorów wsparcia.
Liniowe maszyny SVM
Liniowe maszyny SVM są zarówno w teorii, jak i w praktyce bardzo dobrymi modelami, gdy dane można wyjaśnić liniowymi relacjami cech. Są lepsze od klasycznych metod, takich jak regresja liniowa (inaczej kwadratów), ponieważ są solidne , w tym sensie, że małe zaburzenia w danych wejściowych nie powodują znaczących zmian w modelu. Osiąga się to poprzez próbę znalezienia linii (hiperpłaszczyzny), która maksymalizuje marginesy między punktami danych. Wykazano, że ten hiperpłaszczyzna o maksymalnym marginesie daje gwarancję zdolności do uogólnienia modelu w stosunku do niewidocznych punktów danych, czego teoretycznie brakuje w przypadku innych metod uczenia maszynowego.
Liniowe SVM są również interpretowalne jak każdy inny model liniowy, ponieważ każda cecha wejściowa ma ciężar, który bezpośrednio wpływa na wynik modelu.
Również liniowe maszyny SVM są bardzo szybkie w trenowaniu, pokazując podliniowy czas szkolenia dla bardzo dużych zestawów danych. Osiąga się to poprzez zastosowanie stochastycznych technik zejścia gradientowego, podobnie jak obecne metody głębokiego uczenia się.
Nieliniowe maszyny SVM
Nieliniowe maszyny SVM są nadal modelami liniowymi i mają te same zalety teoretyczne, ale wykorzystują tak zwaną sztuczkę jądra, aby zbudować ten model liniowy na powiększonej przestrzeni. Widoczny wynik jest taki, że wynikowy model może podejmować nieliniowe decyzje dotyczące danych. Ponieważ możesz zapewnić niestandardowe podobieństwa kodowania jądra między punktami danych, możesz wykorzystać wiedzę o problemach, aby skupić się na jądrze w odpowiednich częściach problemu. Wykonanie tego skutecznie może być jednak trudne, więc ogólnie prawie wszyscy używają jądra gaussowskiego typu plug-and-play.
Nieliniowe maszyny SVM są częściowo interpretowalne, ponieważ informują, które dane treningowe są istotne dla prognozowania, a które nie. Nie jest to możliwe w przypadku innych metod, takich jak Losowe Lasy lub Głębokie Sieci.
Niestety nieliniowe maszyny SVM są wolne. Najnowocześniejszym algorytmem jest sekwencyjna minimalna optymalizacja , która wykazuje kwadratową wydajność, i jest szeroko implementowana przez bibliotekę LIBSVM w wielu bibliotekach uczenia maszynowego, w tym scikit-learn.
Popularność tych metod
Prawdą jest, że maszyny SVM nie są tak popularne, jak kiedyś: można to sprawdzić, przeglądając dokumenty badawcze lub implementacje maszyn SVM w porównaniu z losowymi lasami lub metodami głębokiego uczenia się. Mimo to są przydatne w niektórych praktycznych ustawieniach, szczególnie w przypadku liniowym.
Należy również pamiętać, że z powodu twierdzenia o braku obiadu żadna metoda uczenia maszynowego nie może być lepsza od innych problemów. Podczas gdy niektóre metody działają ogólnie lepiej, zawsze znajdziesz zestawy danych, w których niezbyt popularna metoda pozwoli osiągnąć lepsze wyniki.
źródło