Wybór parametrów SVM


9

Czy istnieją lepsze alternatywne metody wyboru C i Gamma, które zapewniają lepszą wydajność treningu?

Odpowiedzi:


5

Wyszukiwanie w sieci jest powolne, ponieważ spędza dużo czasu na badaniu ustawień hiperparametrów, które nie są w żadnym razie optymalne. Lepszym rozwiązaniem jest algorytm simpleksowy Neldera-Meada , który nie wymaga obliczania informacji o gradiencie i jest prosty do wdrożenia (powinno być wystarczająco dużo informacji na stronie Wikipedii). W przyborniku Weka może być także trochę kodu java , jednak pracuję w MATLAB-ie i nie przyjrzałem się Weka zbyt szczegółowo.

SMO to algorytm znajdowania parametrów modelu, a nie hiperparametrów.


Czy możesz podać swoją implementację Matlaba?
— Zach.

1
Jest tu jeden theoval.cmp.uea.ac.uk/matlab/#optim, ale jeśli masz już zestaw narzędzi do optymalizacji, to fminsearch jest także implementacją metody Neldera-Meada IIRC.
— Dikran Torbacz

5

Metoda simpleksowa Neldera-Meada może obejmować tyle ocen funkcji, co zwykłe wyszukiwanie siatki. Zwykle powierzchnia błędu jest wystarczająco gładka w pobliżu optymalnych wartości parametrów, aby wystarczyło zgrubne wyszukiwanie siatki, a następnie dokładniejsze wyszukiwanie w mniejszym obszarze.

Jeśli interesuje Cię optymalizacja C i gamma na podstawie gradientu, istnieją metody takie jak optymalizacja granic promienia-marginesu lub optymalizacja wskaźnika błędów w zestawie sprawdzania poprawności. Obliczanie gradientu funkcji celu wymaga czegoś takiego jak jeden ciąg SVM, ale proste obniżanie gradientu może obejmować tylko kilkadziesiąt iteracji. (Spójrz na http://olivier.chapelle.cc/ams/ artykuł i implementację Matlab.)


Z mojego doświadczenia wynika, że ​​miód nelderowy jest zwykle szybszy niż wyszukiwanie siatki, a opadanie gradientu jest tylko nieco szybsze, ponieważ wymaga mniej iteracji, a koszt obliczania gradientu jest wysoki. Więc jeśli masz implementację zapewniającą opadanie gradientu, skorzystaj z niej, ale Nelder-Mead prawdopodobnie nie pozostanie daleko w tyle. Oczywiście, gdy tylko masz więcej niż dwa hiperparametry, aby dostroić wyszukiwanie siatki, natychmiast staje się znacznie najwolniejszą metodą. Interesujące byłoby zbadanie porównawczej wydajności każdej metody.
— Dikran Torbacz

Masz rację, że jeśli liczba parametrów jest większa niż para, wyszukiwanie w siatce nie jest wykonalne. Ale to samo dotyczy Neldera-Meada, ponieważ rozmiar simpleksu zależy od wymiarów.
— Innuo,

tylko w takim samym stopniu jak w przypadku spadku gradientu, dodanie dodatkowego wymiaru do problemu dodaje tylko jeden dodatkowy punkt do simpleksu, więc podobnie jak spadek gradientu skaluje się mniej więcej liniowo w liczbie hiperparametrów. Używałem go z problemami z ponad 40 hiperparametrami i jest tylko nieznacznie wolniejszy niż spadek gradientu (masz tendencję do nadmiernego dopasowania w wyborze modelu, choć przy tak wielu hiperparametrach).
— Dikran Torbacz

0

Oto wpis na blogu Alexa Smoli dotyczący twojego pytania

Oto cytat:

[...] wybierz, powiedzmy 1000 par (x, x ') losowo z twojego zestawu danych, oblicz odległość wszystkich takich par i weź medianę, kwantyl 0,1 i 0,9. Teraz wybierz λ, aby być odwrotną dowolną z tych trzech liczb. Przy odrobinie weryfikacji krzyżowej dowiesz się, która z trzech jest najlepsza. W większości przypadków nie trzeba już szukać.

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.