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.).
quelle
Antworten:
SVM ist ein leistungsfähiger Klassifikator. Es hat einige nette Vorteile (die ich für seine Popularität verantwortlich schätze) ... Dies sind:
Es gibt auch einige signifikante Nachteile.
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.
Ein sehr effektiver Klassifikator, der heutzutage sehr beliebt ist, ist der Random Forest . Die Hauptvorteile sind:
quelle
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.
quelle