Was sind die Einschränkungen von Kernel-Methoden und wann sollten Kernel-Methoden verwendet werden?

10

Kernel-Methoden sind bei vielen überwachten Klassifizierungsaufgaben sehr effektiv. Was sind die Einschränkungen von Kernel-Methoden und wann sollten Kernel-Methoden verwendet werden? Was sind die Fortschritte der Kernel-Methoden, insbesondere im Zeitalter großer Datenmengen? Was ist der Unterschied zwischen Kernel-Methoden und dem Lernen mehrerer Instanzen? Wenn die Daten sind 500x10000, 500ist die Anzahl der Stichproben und 10000ist die Dimension jedes Features, können wir unter diesen Umständen die Kernel-Methoden verwenden?

Bergbau
quelle

Antworten:

16

Kernel-Methoden können für überwachte und unbeaufsichtigte Probleme verwendet werden. Bekannte Beispiele sind die Support Vector Machine bzw. das Kernel Spectral Clustering .

Kernel-Methoden bieten eine strukturierte Möglichkeit, einen linearen Algorithmus in einem transformierten Merkmalsraum zu verwenden, für den die Transformation typischerweise nichtlinear ist (und in einen höherdimensionalen Raum). Der Hauptvorteil dieses sogenannten Kernel-Tricks besteht darin, dass nichtlineare Muster zu einem angemessenen Rechenaufwand gefunden werden können .

Beachten Sie, dass ich sagte, dass die Berechnungskosten angemessen, aber nicht vernachlässigbar sind. Kernel-Methoden konstruieren typischerweise eine Kernel-Matrix mit N der Anzahl der Trainingsinstanzen. Die Komplexität der Kernel-Methoden hängt daher eher von der Anzahl der Trainingsinstanzen als von der Anzahl der Eingabedimensionen ab. Unterstützungsvektormaschinen weisen beispielsweise eine Trainingskomplexität zwischen O ( N 2 ) und O ( N 3 ) auf . Bei Problemen mit sehr großem N ist diese Komplexität derzeit unerschwinglich.K.R.N.×N.N.Ö(N.2)Ö(N.3)N.

Dies macht Kernel-Methoden aus rechnerischer Sicht sehr interessant, wenn die Anzahl der Dimensionen groß und die Anzahl der Stichproben relativ gering ist (beispielsweise weniger als 1 Million).

Verwandte: Linearer Kernel und nichtlinearer Kernel für Support Vector Machine?

SVM für große Probleme

Bei sehr hochdimensionalen Problemen, wie den 10000in der Frage erwähnten Dimensionen, ist es häufig nicht erforderlich, einen höherdimensionalen Merkmalsraum abzubilden. Der Eingaberaum ist bereits gut genug. Für solche Probleme sind lineare Methoden um Größenordnungen schneller bei nahezu derselben Vorhersageleistung. Beispiele für diese Methoden finden Sie in LIBLINEAR oder Vowpal Wabbit .

Lineare Methoden sind besonders interessant, wenn Sie viele Samples in einem hochdimensionalen Eingaberaum haben. Wenn Sie nur Samples haben, ist die Verwendung einer nichtlinearen Kernel-Methode ebenfalls günstig (da N klein ist). Wenn Sie beispielsweise 5.000.000 Proben in 10.000 Dimensionen hätten, wären Kernel-Methoden nicht durchführbar.500N.5.000.00010.000

Bei niedrigdimensionalen Problemen mit vielen Trainingsinstanzen (sogenannte große kleine p- Probleme) können lineare Methoden eine schlechte Vorhersagegenauigkeit ergeben. Für solche Probleme bieten Ensemble-Methoden wie EnsembleSVM nichtlineare Entscheidungsgrenzen bei erheblich geringeren Rechenkosten im Vergleich zu Standard-SVM.N.p

Marc Claesen
quelle
Vielen Dank für so detaillierte Antworten, Sir. Ich fand unter den Umständen mit hohen Dimensionen, wenn ich den RBFKernel in verwende libsvm, dass er immer überpasst, erreicht der Klassifikator eine hohe Genauigkeit, aber eine geringe Genauigkeit im Testsatz. Und wenn ich vor dem Klassifikator eine Dimensionsreduktion durchführe und die reduzierten Dimensionen nahe an der Anzahl der Trainingsmuster liegen, kann der Klassifikator zwischen Training und Testsatz einen guten Gewinn erzielen. Passen die Ergebnisse zu den meisten empirischen Ergebnissen? Vielen Dank.
Bergbau
Kernel-Methoden sind ziemlich robust gegen hohe Eingabedimensionalität. In der Regel müssen Sie vor der Verwendung keine Dimensionsreduzierung durchführen. Es ist sehr wichtig, alle Parameter zu optimieren, insbesondere gammafür den RBF-Kernel. Der optimale Wert für gammabezieht sich auf die Anzahl der Eingabedimensionen. Der gebräuchlichste Tuning-Ansatz ist die Kreuzvalidierung. Wenn Sie denselben Wert für gammamit und ohne Dimensionsreduzierung verwendet haben, machen Sie wahrscheinlich einen Fehler.
Marc Claesen
Jawohl. Normalerweise verwende ich das grid.pyIn- libsvmPaket, um eine Kreuzvalidierung durchzuführen. Und in den meisten Fällen sind für Daten mit hohen Dimensionen die gammaimmer sehr kleinen, wie z. B. 0.00001diese Ebene.
Bergbau
Hallo, Sir, ich habe Ihr Open Source-Projekt überprüft. Muss EnsembleSVMdas Cross-Validation-Verfahren Multithreading durchführen? Und ich denke, in der Vorhersagephase wird es gut sein, die riesigen Datenmengen in Batches und Multithreading oder Multi-Maschinen vorherzusagen?
Bergbau
Die Verwendung von Multithreading ist in EnsembleSVM optional, in esvm-trainund standardmäßig aktiviert esvm-predict. Verwenden Sie zum Deaktivieren von Multithreading das folgende Flag in diesen Tools : -threads 1.
Marc Claesen