Odpowiedzi:
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.
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.)
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ć.