SVM vs. MLP (Neuronales Netz): Vergleich von Leistungs-und Vorhersage-Genauigkeit
Sollte ich entscheiden zwischen SVM und neuronale Netze für die Bild-Verarbeitung-Anwendung. Der Klassifikator muss schnell genug sein für near-real-time-Anwendung und Genauigkeit ist auch wichtig. Da dies eine medizinische Anwendung ist es wichtig, dass der Klassifikator hat die niedrige Ausfallrate.
welche ist die bessere Wahl?
- Umm. Weder ist schnell im Vergleich zu basic-Klassifikatoren wie KNN. Wie groß sind Ihre feature-Vektoren, welche Sprache Sie verwenden, wie viel training Daten haben Sie? Auch sind Sie nicht sehr klar, ob Sie online lernen oder nicht.
- KNN nicht schneller. Es hat kein training phase, das ist richtig. Aber es ist ein fauler classifier, was bedeutet, dass die Vorhersage-phase ist sehr langsam.
- Werfen Sie einen Blick auf ELM
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein paar Vorbehalte:
Leistung einer ML-Klassifizierer können, beziehen sich entweder auf (i) die Leistung der Klassifizierer selbst; oder (ii) die Leistung, die das Prädikat Schritt: Ausführungszeit der Modell-Gebäude-Algorithmus. Besonders in diesem Fall, die Antwort ist ganz unterschiedlich, je nachdem, auf welche der beiden soll in den OP, so werde ich die Antworten jeweils separat.
zweite, von Neuronalen Netzwerk, ich nehme an du bist unter Bezugnahme auf die gemeinsame Umsetzung-d.h., ein feed-forward -, back-propagierende single-hidden-layer-perceptron.
Training Zeit (Ausführungsgeschwindigkeit von model builder)
Für SVM im Vergleich zu NN: SVMs sind viel langsamer. Es gibt eine einfache Grund dafür: SVM-training erfordert die Lösung der zugehörigen Lagrange-dual (statt ur -) problem. Dies ist ein quadratische Optimierungsproblem, in dem die Anzahl der Variablen ist sehr groß, D. H., gleich der Anzahl der Trainings-Instanzen (die "Länge" Ihrer Daten-matrix).
In der Praxis zwei Faktoren, falls vorhanden, in deinem Szenario kann zum Verlust dieses Vorteils:
NN training ist trivial zu parallelisieren (via map reduce"); die Parallelisierung SVM-training ist nicht trivial, aber es ist auch nicht unmöglich ist--innerhalb der letzten acht Jahre oder so, mehrere Implementierungen veröffentlicht wurden und nachweislich zu arbeiten (https://bibliographie.uni-tuebingen.de/xmlui/bitstream/handle/10900/49015/pdf/tech_21.pdf)
mult-Klasse Klassifizierung problem SVMs sind zwei-Klassen-Klassifizierer.Sie können angepasst werden, für multi-Klassen-Probleme, aber dieses ist nie einfach, weil SVMs verwenden Sie die direkte Entscheidung-Funktionen. (Eine ausgezeichnete Quelle für das ändern von SVMs zu multi-class-Probleme S. Abe, Support Vector Machines for Pattern Classification, Springer, 2005). Diese änderung kann auszulöschen alle performance-Vorteil SVMs haben über NNs: So zum Beispiel, wenn Ihre Daten hat
mehr als zwei Klassen und Sie entschied sich, zum konfigurieren der SVM mit
aufeinander classificstaion (aka einer-gegen-viele-Klassifikation) in
die Daten werden zu einem ersten SVM-Klassifizierer die Klassifizierer die
die Daten zeigen entweder Klasse I oder anderen; wenn die Klasse anderen dann
die Daten zeigen zugeführt wird, um eine zweite Klassifizierer klassifiziert es
Klasse II oder anderen, etc.
Vorhersage der Leistung (Ausführungsgeschwindigkeit des Modells)
Leistung einer SVM ist deutlich höher im Vergleich zu NN. Für einen drei-Schicht - (one-hidden-layer) NN, Vorhersage erfordert die sukzessive Multiplikation einer input-Vektor von zwei 2D-Matrizen (die Gewichts-Matrizen). Für SVM, Klassifizierung umfasst die Ermittlung, auf welcher Seite die Entscheidung, die Grenze, einem bestimmten Punkt liegt, in anderen Worten, ein Cosinus Produkt.
Vorhersagegenauigkeit
Durch die "Ausfallrate" ich nehme an, du meinst Fehlerquote eher als Misserfolg von der Systematik in der Produktion zu verwenden. Wenn letzteres, dann gibt es sehr wenig, wenn überhaupt Unterschied zwischen SVM und NN-beide Modelle sind in der Regel numerisch stabil.
Vergleich der prognosegüte der beiden Modelle, und vorausgesetzt, beide sind kompetent konfiguriert und ausgebildet, der SVM besser abschneiden werden als der NN.
Die überlegene Auflösung des SVM gegen NN ist gut dokumentiert in der wissenschaftliche Literatur. Es ist wahr, dass solch ein Vergleich ist von den Daten abhängig, die Konfiguration und parameter Wahl zwischen den beiden Modellen. In der Tat, dieser Vergleich wurde so weit studiert-über vielleicht alle nur denkbaren parameter Raum-und die Ergebnisse damit konsistent, dass auch die Existenz von ein paar Ausnahmen abgesehen (obwohl, ich bin mir nicht bewusst) unter Umständen unpraktisch, sollte nicht stören, mit dem Ergebnis, dass SVMs übertreffen NNs.
Warum SVM übertreffen NN?
Diese beiden Modelle basieren auf grundsätzlich verschiedenen learing-Strategien.
In NN -, Netzwerk-GEWICHTE (die NN ' s fitting-Parameter eingestellt, die während der Ausbildung) sind so angepasst, dass die Summe der quadratischen Fehler zwischen dem Netzwerk-Ausgang und dem tatsächlichen Wert (Ziel) minimiert wird.
Training einer SVM hingegen bedeutet eine explizite Bestimmung der Entscheidung, die Grenzen direkt aus den Trainingsdaten. Dies ist natürlich erforderlich, da das Prädikat Schritt, um das Optimierungsproblem erforderlich, um zu bauen ein SVM-Modell: Minimierung der aggregierten Abstand zwischen dem maximum-margin hyperplane und support-Vektoren.
In der Praxis allerdings ist es schwieriger zu konfigurieren, ist der Algorithmus zum trainieren eines SVM. Der Grund dafür ist aufgrund der großen (im Vergleich zu NN) Anzahl der erforderlichen Parameter für die Konfiguration:
Wahl der kernel -
Auswahl der kernel-Parameter
Auswahl der Wert der margin-parameter