Ich sollte zwischen SVM und neuronalen Netzen für einige Bildverarbeitungsanwendungen entscheiden. Der Klassifikator muss schnell genug für eine Anwendung in der Nähe von Echtzeit sein, und die Genauigkeit ist ebenfalls wichtig. Da dies eine medizinische Anwendung ist, ist es wichtig, dass der Klassifikator die niedrige Fehlerrate aufweist.
Welches ist die bessere Wahl?
Ein paar Vorbehalte:
Die Leistung eines ML-Klassifikators kann sich entweder auf (i) die Leistung des Klassifikators selbst beziehen; oder (ii) Durchführung des Prädikatschritts: Ausführungsgeschwindigkeit des Modellbildungsalgorithmus. Besonders in diesem Fall ist die Antwort ziemlich unterschiedlich, je nachdem, welche der beiden im OP beabsichtigt ist, also beantworte ich jedes einzeln.
Zweitens, nach Neuronales Netzwerk , nehme ich an, dass Sie sich auf die gebräuchlichste Implementierung beziehen - d. h. ein Feed-Forward-Perceptron, das sich nach hinten ausbreitet.
Trainingszeit (Ausführungsgeschwindigkeit des Modell-Builders)
Für SVM im Vergleich zu NN: SVMs sind viel langsamer . Es gibt einen einfachen Grund dafür: Das SVM-Training erfordert das Lösen des assoziierten Lagrange-Doppelproblems (und nicht des Primums). Dies ist ein quadratisches Optimierungsproblem, bei dem die Anzahl der Variablen sehr groß ist - d. H. Gleich der Anzahl der Trainingsinstanzen (die 'Länge' Ihrer Datenmatrix).
In der Praxis könnten zwei Faktoren, falls sie in Ihrem Szenario vorhanden sind, diesen Vorteil zunichte machen:
NN-Training ist trivial zu parallelisieren (via map reduce); Die Parallelisierung von SVM-Schulungen ist nicht trivial, aber auch nicht unmöglich - innerhalb der letzten acht Jahre wurden mehrere Implementierungen veröffentlicht, die nachweislich funktionieren ( Ссылка )
Klassenklassifikationsproblem SVMs sind Zweiklassenklassifikatoren . Sie können für Mehrklassenprobleme angepasst werden, aber dies ist niemals einfach, weil SVMs verwenden direkte Entscheidungsfunktionen. (Eine hervorragende Quelle zum Ändern von SVMs zu Mehrklassenproblemen ist S. Abe, Unterstützungsvektormaschinen für die Musterklassifizierung , Springer, 2005). Diese Modifikation könnte alle Leistungsvorteile beseitigen, die SVMs gegenüber NNs haben: Zum Beispiel, wenn Ihre Daten dies haben
mehr als zwei Klassen und Sie haben die SVM mit konfiguriert
sukzessive Klassifizierung (auch bekannt als Ein-gegen-Viele-Klassifikation) in
welche Daten einem ersten SVM - Klassifikator zugeführt werden, der den
Datenpunkt entweder Klasse I oder anderes ; wenn die Klasse anders ist
Der Datenpunkt wird einem zweiten Klassifikator zugeführt, der ihn klassifiziert
Klasse II oder andere usw.
Vorhersage-Leistung (Ausführungsgeschwindigkeit des Modells)
Die Leistung einer SVM ist wesentlich höher als bei NN . Für eine dreischichtige NN (eine verborgene Schicht) erfordert die Vorhersage eine sukzessive Multiplikation eines Eingangsvektors mit zwei 2D-Matrizen (den Gewichtsmatrizen). Bei SVM wird bei der Klassifizierung festgelegt, auf welcher Seite der Entscheidungsgrenze ein bestimmter Punkt liegt, also ein Kosinusprodukt .
Vorhersagegenauigkeit
Unter "Fehlerrate" nehme ich an, dass Sie Fehlerrate meinen und nicht den Fehler des Klassifikators in der Produktionsanwendung. Wenn letzteres, dann gibt es sehr wenig, wenn überhaupt irgendeinen Unterschied zwischen SVM und NN - beide Modelle sind im Allgemeinen numerisch stabil.
Wenn Sie die Vorhersagegenauigkeit der beiden Modelle vergleichen und annehmen, dass beide kompetent konfiguriert und trainiert sind, wird die SVM die NN übertreffen.
Die überlegene Auflösung von SVM gegenüber NN ist in der wissenschaftlichen Literatur . Ein solcher Vergleich hängt zwar von den Daten, der Konfiguration und der Parameterwahl der beiden Modelle ab. Tatsächlich wurde dieser Vergleich - vielleicht über alle denkbaren Parameterräume hinweg - so umfassend untersucht, und die Ergebnisse sind so konsistent, dass selbst die Existenz weniger Ausnahmen (obwohl mir keine bekannt sind) unter unpraktischen Umständen nicht stattfinden sollten stört die Schlussfolgerung, dass SVMs NNs übertreffen.
Warum übertrifft SVM NN?
Diese beiden Modelle basieren auf grundlegend unterschiedlichen Lernstrategien.
In NN werden Netzwerkgewichte (die Anpassungsparameter der NN, die während des Trainings angepasst werden) so angepasst, dass der quadratische Fehler zwischen der Netzwerkausgabe und dem tatsächlichen Wert (Ziel) minimiert wird.
Das Training einer SVM hingegen bedeutet eine explizite Bestimmung der Entscheidungsgrenzen direkt aus den Trainingsdaten . Dies ist natürlich als Prädikatschritt für das Optimierungsproblem erforderlich, das zum Erstellen eines SVM-Modells erforderlich ist: Minimieren des aggregierten Abstands zwischen der Hyperebene mit maximaler Marge und den Unterstützungsvektoren.
In der Praxis ist es jedoch schwieriger, den Algorithmus zum Trainieren einer SVM zu konfigurieren.Der Grund dafür liegt in der großen Anzahl von Parametern (verglichen mit NN), die für die Konfiguration benötigt werden:
Wahl des Kernels
Auswahl der Kernel-Parameter
Auswahl des Wertes des Randparameters
Tags und Links neural-network deep-learning machine-learning svm