Werden Support Vector Machines immer noch als „State of the Art“ in ihrer Nische angesehen?

58

Diese Frage ist eine Antwort auf einen Kommentar, den ich zu einer anderen Frage gesehen habe.

Der Kommentar bezog sich auf den Lehrplan für maschinelles Lernen in Coursera und lautete: "SVMs werden heutzutage nicht mehr so ​​oft verwendet."

Ich habe die relevanten Vorlesungen gerade erst selbst beendet, und mein Verständnis von SVMs ist, dass sie ein robuster und effizienter Lernalgorithmus für die Klassifizierung sind und dass sie, wenn sie einen Kernel verwenden, eine "Nische" haben, die eine Anzahl von Funktionen von vielleicht 10 bis 1000 und mehr abdeckt Anzahl der Trainingsmuster vielleicht 100 bis 10.000. Die Begrenzung für Trainingsmuster liegt darin, dass sich der Kernalgorithmus auf die Optimierung von Ergebnissen konzentriert, die aus einer quadratischen Matrix mit Dimensionen generiert werden, die auf der Anzahl der Trainingsmuster und nicht auf der Anzahl der ursprünglichen Merkmale basieren.

Der Kommentar, den ich gesehen habe, bezieht sich auch auf eine echte Änderung seit dem Kurs, und wenn ja, was ist das für eine Änderung: Ein neuer Algorithmus, der den "Sweet Spot" von SVM genauso gut abdeckt, bessere CPUs, die die Rechenvorteile von SVM bedeuten, sind weniger wert ? Oder ist es vielleicht eine Meinung oder eine persönliche Erfahrung des Kommentators?

Ich habe eine Suche nach zB "Sind Support-Vektor-Maschinen aus der Mode" durchgeführt und nichts gefunden, was darauf schließen lässt, dass sie zugunsten von etwas anderem fallengelassen wurden.

Und Wikipedia hat dies: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . . Das Hauptproblem scheint die Schwierigkeit zu sein, das Modell zu interpretieren. Das macht SVM gut für eine Black-Box-Vorhersage-Engine, aber nicht so gut für die Generierung von Erkenntnissen. Ich sehe das nicht als großes Problem, sondern als eine weitere Kleinigkeit, die bei der Auswahl des richtigen Tools für den Job berücksichtigt werden muss (zusammen mit der Art der Trainingsdaten und der Lernaufgabe usw.).

Neil Slater
quelle
6
Ich verstehe es nicht - ist das nicht eine Frage, die auf CrossValidated gepostet werden sollte? Ich bin weiterhin verwirrt darüber, was zwischen DataScience und CrossValidated wohin geht.
21.
@fnl: svms hat eine gewisse Konkurrenz als Klassifizierer von weniger mathematisch "reinen" konstruierten Lösungen, daher denke ich, dass DataScience in einer besseren Position ist, um den Vergleich hier anzustellen. Obwohl ich deine Verwirrung teile!
Neil Slater

Antworten:

46

SVM ist ein leistungsfähiger Klassifikator. Es hat einige nette Vorteile (die ich für seine Popularität verantwortlich schätze) ... Dies sind:

  • Effizienz: Nur die Trägervektoren spielen eine Rolle bei der Bestimmung der Klassifizierungsgrenze. Alle anderen Punkte aus dem Trainingssatz müssen nicht gespeichert werden.
  • Die sogenannte Potenz von Kerneln: Mit geeigneten Kerneln können Sie den Feature-Space in eine höhere Dimension transformieren, sodass er linear trennbar wird. Der Begriff Kernel funktioniert mit beliebigen Objekten, für die Sie mithilfe von inneren Produkten einen Ähnlichkeitsbegriff definieren können. SVMs können daher beliebige Objekte wie Bäume, Graphen usw. klassifizieren.

Es gibt auch einige signifikante Nachteile.

  • Parametersensitivität: Die Leistung reagiert sehr empfindlich auf die Wahl des Regularisierungsparameters C, der eine gewisse Varianz im Modell zulässt.
  • Zusätzlicher Parameter für den Gaußschen Kern: Der Radius des Gaußschen Kerns kann einen erheblichen Einfluss auf die Genauigkeit des Klassifikators haben. Typischerweise muss eine Rastersuche durchgeführt werden, um optimale Parameter zu finden. LibSVM unterstützt die Rastersuche.

SVMs gehören im Allgemeinen zur Klasse der "Sparse Kernel Machines". Die Sparse-Vektoren bei SVM sind die Support-Vektoren, die aus dem Maximum-Margin-Kriterium ausgewählt werden. Andere spärliche Vektormaschinen wie die RVM ( Meaning Vector Machine ) schneiden besser ab als SVM. Die folgende Abbildung zeigt eine vergleichende Leistung der beiden. In der Figur zeigt die x-Achse eindimensionale Daten aus zwei Klassen y = {0,1}. Das Mischungsmodell ist definiert als P (x | y = 0) = Unif (0,1) und P (x | y = 1) = Unif (.5,1,5) (Unif bedeutet gleichmäßige Verteilung). Von dieser Mischung wurden 1000 Punkte abgetastet und ein SVM und ein RVM wurden verwendet, um den hinteren Teil abzuschätzen. Das Problem von SVM ist, dass die vorhergesagten Werte weit von den tatsächlichen Log-Quoten entfernt sind.

RVM vs. SVM

Ein sehr effektiver Klassifikator, der heutzutage sehr beliebt ist, ist der Random Forest . Die Hauptvorteile sind:

  • Es muss nur ein Parameter eingestellt werden (dh die Anzahl der Bäume im Wald)
  • Nicht absolut parameterabhängig
  • Kann leicht auf mehrere Klassen erweitert werden
  • Basiert auf probabilistischen Prinzipien (Maximierung des gegenseitigen Informationsgewinns mit Hilfe von Entscheidungsbäumen)
Debasis
quelle
4
Ich möchte nicht zu kritisch sein, aber SVMs sind NICHT effizient. Sie haben in den meisten Fällen eine kubische Komplexität, weshalb es eine Menge Auslauf gibt.
9.
2
Ja, Standard-Konvergenzmethoden benötigen O (n ^ 3) ... aber ich glaube, ich habe irgendwo (möglicherweise von der Homepage von T. Joachims) gesehen, dass sie auf O (n ^ 2) reduziert wurden
Debasis
4
@indico für die meisten praktischen Probleme Kernel-SVM-Training Komplexität ist eher quadratisch. Platt's kubisches SMO ist seit geraumer Zeit außer Betrieb. Das ist immer noch zu hoch für wirklich große Datenmengen, aber es ist nicht so schlimm, wie Sie es darstellen. Die lineare SVM ist hocheffizient mit sublinearer Komplexität.
Marc Claesen
Weitere Vorteile von SVMs: 1) Das Innenleben kann von Personen, die mit Datenanalysen weniger vertraut sind, gut eingeschätzt werden. [und in geringerem Umfang: 2) Wenn interaktives Echtzeit-Feedback durch (nicht
datenwissenschaftliche
2
Zufällige Wälder weisen normalerweise andere Hyperparameter auf, z. B. die maximale Anzahl von Features pro Baum und die maximale Tiefe. Es ist auch erwähnenswert, dass SVMs in Umgebungen mit eingeschränkten Ressourcen einfach in die Produktion integriert werden können. Sie benötigen nicht viel Arbeitsspeicher, um das Modell zu bewerten.
David Anderson
8

Bei der Beantwortung dieser Frage ist ein wesentlicher Unterschied zu machen, ob es sich um lineare Support-Vektor-Maschinen oder um nichtlineare , dh kernelisierte Support-Vektor-Maschinen handelt.

Lineare SVMs

Lineare SVMs sind sowohl in der Theorie als auch in der Praxis sehr gute Modelle, wenn Ihre Daten durch lineare Beziehungen Ihrer Features erklärt werden können. Sie sind klassischen Methoden wie der linearen Regression (auch als Regression der kleinsten Quadrate bezeichnet) überlegen, da sie insofern robust sind, als kleine Störungen in den Eingabedaten keine signifikanten Änderungen im Modell hervorrufen. Dies wird erreicht, indem versucht wird, die Linie (Hyperebene) zu finden, die die Ränder zwischen Ihren Datenpunkten maximiert . Es wurde gezeigt, dass diese Hyperebene mit maximalem Spielraum Garantien für die Generalisierungsfähigkeit des Modells über unsichtbare Datenpunkte bietet, eine theoretische Eigenschaft, die andere Methoden des maschinellen Lernens nicht aufweisen.

Lineare SVMs können auch wie jedes andere lineare Modell interpretiert werden, da jedes Eingabe-Feature eine Gewichtung aufweist, die die Modellausgabe direkt beeinflusst.

Auch lineare SVMs sind sehr schnell zu trainieren und zeigen sublineare Trainingszeiten für sehr große Datensätze. Dies wird erreicht, indem stochastische Gradientenabstiegstechniken verwendet werden, ähnlich wie dies bei den derzeitigen Deep-Learning-Methoden der Fall ist.

Nichtlineare SVMs

Nichtlineare SVMs sind immer noch lineare Modelle mit denselben theoretischen Vorteilen, verwenden jedoch den sogenannten Kernel-Trick , um dieses lineare Modell über einen vergrößerten Raum aufzubauen. Das sichtbare Ergebnis ist, dass das resultierende Modell nichtlineare Entscheidungen zu Ihren Daten treffen kann. Da Sie eine benutzerdefinierte Kernelcodierungsähnlichkeit zwischen Datenpunkten bereitstellen können , können Sie das Problemwissen nutzen, um einen solchen Kernelfokus auf die relevanten Teile Ihres Problems zu richten. Es kann jedoch schwierig sein, dies effektiv umzusetzen, sodass im Allgemeinen fast jeder den Plug-and-Play-Gauß-Kernel verwendet.

Nichtlineare SVMs sind teilweise interpretierbar, da sie Ihnen mitteilen, welche Trainingsdaten für die Vorhersage relevant sind und welche nicht. Bei anderen Methoden wie Random Forests oder Deep Networks ist dies nicht möglich.

Leider sind nichtlineare SVMs langsam. Der neueste Algorithmus ist die sequentielle Minimaloptimierung ( Sequential Minimal Optimization) , die eine quadratische Leistung zeigt und über die LIBSVM- Bibliothek in einer Reihe von Bibliotheken für maschinelles Lernen, einschließlich Scikit-Learn , weitgehend implementiert ist .

Popularität dieser Methoden

Es ist richtig, dass SVMs nicht mehr so ​​populär sind wie früher: Dies kann überprüft werden, indem man nach Forschungsberichten oder Implementierungen für SVMs gegen zufällige Wälder oder Deep-Learning-Methoden sucht. Dennoch sind sie in einigen praktischen Situationen nützlich, insbesondere im linearen Fall.

Bedenken Sie auch, dass sich aufgrund des Satzes von No-Free-Lunch herausstellen kann, dass keine maschinelle Lernmethode allen anderen Problemen überlegen ist. Während einige Methoden im Allgemeinen besser funktionieren, finden Sie immer Datensätze, bei denen eine nicht so häufig verwendete Methode bessere Ergebnisse erzielt.

Albarji
quelle