Linearer Kernel und nichtlinearer Kernel für Support-Vektor-Maschine?

45

Gibt es Richtlinien für die Auswahl eines linearen Kernels im Vergleich zu einem nichtlinearen Kernel wie RBF, wenn Sie Support Vector Machine verwenden? Ich habe einmal gehört, dass ein nichtlinearer Kernel bei einer großen Anzahl von Features in der Regel keine gute Leistung erbringt. Gibt es Referenzen zu diesem Thema?

user3269
quelle
1
Meiner Meinung nach basiert dies auf dem vorliegenden Problem und es ist gefährlich, solche Däumlinge in der Praxis zu verwenden.
Htrahdis

Antworten:

66

In der Regel wird entschieden, ob ein linearer oder ein RBF-Kernel (auch bekannt als Gauß-Kernel) verwendet wird. Es sind zwei Hauptfaktoren zu berücksichtigen:

  1. Die Lösung des Optimierungsproblems für einen linearen Kernel ist viel schneller, siehe zB LIBLINEAR.
  2. Normalerweise ist die bestmögliche Vorhersageleistung für einen nichtlinearen Kernel besser (oder mindestens so gut wie die für einen linearen Kernel).

Es wurde gezeigt, dass der lineare Kernel eine entartete Version von RBF ist , daher ist der lineare Kernel niemals genauer als ein richtig eingestellter RBF-Kernel. Zitat des Abstracts aus dem Artikel, den ich verlinkt habe:

Die Analyse zeigt auch, dass bei vollständiger Modellauswahl unter Verwendung des Gaußschen Kernels keine Notwendigkeit besteht, lineare SVM zu berücksichtigen.

Eine grundlegende Faustregel wird in der praktischen Anleitung von NTU zur Unterstützung der Vektorklassifizierung kurz behandelt (Anhang C).

Wenn die Anzahl der Features groß ist, müssen Daten möglicherweise nicht auf einen höherdimensionalen Raum abgebildet werden. Das heißt, die nichtlineare Abbildung verbessert die Leistung nicht. Die Verwendung des linearen Kernels ist gut genug und man sucht nur nach dem Parameter C.

Ihre Schlussfolgerung ist mehr oder weniger richtig, aber Sie haben das Argument zurück. In der Praxis kann der lineare Kernel sehr gut arbeiten, wenn die Anzahl der Features groß ist (z. B. muss kein noch höherdimensionaler Feature-Raum zugeordnet werden). Ein typisches Beispiel hierfür ist die Dokumentklassifizierung mit Tausenden von Dimensionen im Eingaberaum.

In diesen Fällen sind nichtlineare Kernel nicht unbedingt wesentlich genauer als die linearen. Dies bedeutet im Grunde, dass nichtlineare Kernel an Attraktivität verlieren: Sie benötigen viel mehr Ressourcen, um mit wenig oder gar keinem Gewinn an Vorhersage-Leistung zu trainieren. Warum also die Mühe machen?

TL; DR

Versuchen Sie immer zuerst linear zu trainieren, da es viel schneller ist (UND-Test). Wenn die Genauigkeit ausreicht, klopfen Sie sich für eine gute Arbeit auf den Rücken und fahren Sie mit dem nächsten Problem fort. Wenn nicht, versuchen Sie es mit einem nichtlinearen Kernel.

Marc Claesen
quelle
1
Ich habe diese Erklärung für den Kernel-Trick: stats.stackexchange.com/questions/131138/…
37

Andrew Ng gibt in diesem Video ab 14:46 Uhr eine gute Erklärung für die Faustregel , obwohl es sich lohnt, das ganze Video anzuschauen.

Wichtige Punkte

  • Verwenden Sie den linearen Kernel, wenn die Anzahl der Features größer ist als die Anzahl der Beobachtungen.
  • Verwenden Sie den Gaußschen Kernel, wenn die Anzahl der Beobachtungen größer als die Anzahl der Features ist.
  • Wenn die Anzahl der Beobachtungen größer als 50.000 ist, kann die Geschwindigkeit ein Problem bei der Verwendung des Gaußschen Kernels sein. daher möchte man vielleicht einen linearen Kernel verwenden.
Akavall
quelle
vereinbart ................
datmannz
1
link is dead: Ich denke, das ist das gleiche Video: youtube.com/watch?v=hDh7jmEGoY0
ihebiheb