Antworten:
Die Rastersuche ist langsam, da viel Zeit für die Untersuchung von Hyperparametereinstellungen aufgewendet wird, die bei weitem nicht optimal sind. Eine bessere Lösung ist der Nelder-Mead-Simplex-Algorithmus , der keine Berechnung von Gradienteninformationen erfordert und einfach zu implementieren ist (auf der Wikipedia-Seite sollten genügend Informationen vorhanden sein). Möglicherweise befindet sich auch Java-Code in der Weka-Toolbox . Ich arbeite jedoch in MATLAB und habe Weka nicht im Detail betrachtet.
SMO ist ein Algorithmus zum Finden der Modellparameter anstelle der Hyperparameter.
Die Nelder-Mead-Simplex-Methode kann so viele Funktionsbewertungen umfassen wie eine einfache Rastersuche. Normalerweise ist die Fehleroberfläche nahe genug an den optimalen Parameterwerten glatt genug, dass eine grobe Gittersuche gefolgt von einer feineren in einem kleineren Bereich ausreichen sollte.
Wenn Sie an einer gradientenbasierten Optimierung von C und Gamma interessiert sind, gibt es Methoden wie die Optimierung der Radius-Rand-Grenzen oder die Optimierung der Fehlerrate für einen Validierungssatz. Die Berechnung des Gradienten der Zielfunktion umfasst so etwas wie einen SVM-Zug, aber ein einfacher Gradientenabstieg kann nur einige Dutzend Iterationen umfassen. (Unter http://olivier.chapelle.cc/ams/ finden Sie einen Artikel und eine Matlab-Implementierung.)
Hier ist ein Eintrag in Alex Smolas Blog, der sich auf Ihre Frage bezieht
Hier ist ein Zitat:
[...] wählen Sie zufällig 1000 Paare (x, x ') aus Ihrem Datensatz aus, berechnen Sie den Abstand aller dieser Paare und nehmen Sie den Median, das Quantil 0,1 und das Quantil 0,9. Wählen Sie nun λ als Umkehrung einer dieser drei Zahlen. Mit ein wenig Kreuzvalidierung werden Sie herausfinden, welches der drei am besten ist. In den meisten Fällen müssen Sie nicht weiter suchen.