Czy maszyny wektorów wsparcia są nadal uważane za „najnowocześniejsze” w swojej niszy?

58

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.).

Neil Slater
źródło
6
Nie rozumiem - czy nie jest to pytanie, które należy opublikować w CrossValidated? Nadal jestem zdezorientowany co do tego, co dzieje się między DataScience a CrossValidated.
fnl
@fnl: svms mają pewną konkurencję jako klasyfikatorzy z mniej matematycznie „czysto” opracowanych rozwiązań, więc myślę, że DataScience jest w lepszej sytuacji, aby dokonać porównania. Chociaż podzielam twoje zamieszanie!
Neil Slater

Odpowiedzi:

46

SVM jest potężnym klasyfikatorem. Ma kilka fajnych zalet (które, jak sądzę, były odpowiedzialne za jego popularność) ... Są to:

  • Wydajność: tylko wektory pomocnicze odgrywają rolę w określaniu granicy klasyfikacji. Wszystkie inne punkty z zestawu treningowego nie muszą być przechowywane w pamięci.
  • Tak zwana moc jądra: Za pomocą odpowiednich jąder można przekształcić przestrzeń cech w wyższy wymiar, aby stała się liniowo rozdzielalna. Pojęcie jądra działa z dowolnymi obiektami, na których można zdefiniować pewne podobieństwo za pomocą produktów wewnętrznych ... a zatem SVM mogą klasyfikować dowolne obiekty, takie jak drzewa, wykresy itp.

Istnieją również znaczące wady.

  • Czułość parametrów: wydajność jest bardzo wrażliwa na wybór parametru regularyzacji C, co pozwala na pewną wariancję w modelu.
  • Dodatkowy parametr dla jądra Gaussa: Promień jądra Gaussa może mieć znaczący wpływ na dokładność klasyfikatora. Zwykle należy przeprowadzić wyszukiwanie siatki, aby znaleźć optymalne parametry. LibSVM obsługuje wyszukiwanie siatki.

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.

RVM vs. SVM

Bardzo skutecznym klasyfikatorem, który jest obecnie bardzo popularny, jest Losowy Las . Główne zalety to:

  • Tylko jeden parametr do dostrojenia (tj. Liczba drzew w lesie)
  • Nie jest całkowicie wrażliwy na parametry
  • Można łatwo rozszerzyć na wiele klas
  • Opiera się na zasadach probabilistycznych (maksymalizacja wzajemnego pozyskiwania informacji za pomocą drzew decyzyjnych)
Debasis
źródło
4
Nie chcę być zbyt krytyczny, ale maszyny SVM NIE są wydajne. W większości przypadków mają one złożoność sześcienną i dlatego dzieje się wiele etapów wycofywania.
indico
2
tak, standardowe metody konwergencji wymagają O (n ^ 3) ... ale myślę, że gdzieś (może być ze strony głównej T. Joachimsa), że zostało zredukowane do O (n ^ 2)
Debasis
4
@indico dla większości praktycznych problemów złożoność szkolenia jądra SVM jest bliższa kwadratowi. Sześcienny SMO Platta nie był używany od dłuższego czasu. To wciąż jest zbyt wysokie dla naprawdę dużych zestawów danych, ale nie jest tak złe, jak to przedstawiasz. Liniowy SVM jest bardzo wydajny, z podprogramem złożoności.
Marc Claesen,
Inne zalety SVM: 1) Osoby, które mniej znają się na analizie danych, mogą dobrze sobie wyobrazić ich wewnętrzne funkcjonowanie. [oraz w mniejszym stopniu: 2) Jeśli wymagana jest interaktywna informacja zwrotna w czasie rzeczywistym przez eksperta (nie zajmującego się badaniami danych), liniowe maszyny SVM mogą być szybszą opcją - co skutkuje lepszym szkoleniem ekspertów.]
tsttst
2
Lasy losowe zazwyczaj mają inne hiperparametry, takie jak maksymalna liczba elementów na drzewo i maksymalna głębokość. Warto również zauważyć, że maszyny SVM można łatwo wprowadzić do produkcji w środowiskach o ograniczonych zasobach - nie potrzebują dużo pamięci, aby ocenić model.
David Anderson
8

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.

albarji
źródło