ANN (Artificial Neural Networks) und SVM (Support Vector Machines) sind zwei beliebte Strategien für überwachtes maschinelles Lernen und Klassifizierung. Es ist nicht oft klar, welche Methode für ein bestimmtes Projekt besser ist, und ich bin sicher, die Antwort lautet immer "es kommt darauf an". Oft wird eine Kombination von beiden zusammen mit der Bayes'schen Klassifikation verwendet.
Diese Fragen zu Stackoverflow wurden bereits in Bezug auf ANN vs SVM gestellt:
Was ist der Unterschied zwischen ANN, SVM und KNN in meiner Klassifizierungsfrage
Vektormaschine oder künstliches neuronales Netzwerk für die Textverarbeitung unterstützen?
In dieser Frage möchte ich genau wissen, welche Aspekte eines ANN (insbesondere eines Multilayer-Perceptrons) die Verwendung über eine SVM wünschenswert machen könnten. Der Grund, den ich frage, ist, dass es einfach ist, die entgegengesetzte Frage zu beantworten : Support Vector Machines sind ANNs oft überlegen, weil sie zwei Hauptschwächen von ANNs vermeiden:
(1) ANNs konvergieren häufig eher auf lokale als auf globale Minima, was bedeutet, dass ihnen manchmal im Wesentlichen das große Ganze fehlt (oder der Wald vor lauter Bäumen fehlt).
(2) ANNs passen häufig zu stark an, wenn das Training zu lange dauert , was bedeutet, dass ein ANN für ein bestimmtes Muster das Rauschen möglicherweise als Teil des Musters betrachtet.
SVMs leiden unter keinem dieser beiden Probleme. Es ist jedoch nicht ohne weiteres ersichtlich, dass SVMs als vollständiger Ersatz für ANNs gedacht sind. Welchen spezifischen Vorteil hat eine ANN gegenüber einer SVM, die sie für bestimmte Situationen anwendbar machen könnte? Ich habe spezifische Vorteile einer SVM gegenüber einer ANN aufgelistet. Jetzt möchte ich eine Liste der ANN-Vorteile (falls vorhanden) sehen.
quelle
Antworten:
Nach den von Ihnen angegebenen Beispielen zu urteilen, gehe ich davon aus, dass Sie mit ANNs mehrschichtige Feed-Forward-Netzwerke (kurz FF-Netze) wie mehrschichtige Perzeptrone meinen, da diese in direkter Konkurrenz zu SVMs stehen.
Ein besonderer Vorteil dieser Modelle gegenüber SVMs besteht darin, dass ihre Größe festgelegt ist: Sie sind parametrische Modelle, während SVMs nicht parametrisch sind. Das heißt, in einer ANN gibt es eine Reihe versteckter Ebenen mit den Größen h 1 bis h nDies hängt von der Anzahl der Features sowie den Bias-Parametern ab, aus denen sich Ihr Modell zusammensetzt. Im Gegensatz dazu besteht eine SVM (mindestens eine kernelisierte) aus einem Satz von Unterstützungsvektoren, die aus dem Trainingssatz ausgewählt sind und jeweils ein Gewicht haben. Im schlimmsten Fall entspricht die Anzahl der Unterstützungsvektoren genau der Anzahl der Trainingsmuster (obwohl dies hauptsächlich bei kleinen Trainingssätzen oder in entarteten Fällen der Fall ist), und im Allgemeinen skaliert die Modellgröße linear. Bei der Verarbeitung natürlicher Sprache sind SVM-Klassifizierer mit Zehntausenden von Unterstützungsvektoren mit jeweils Hunderttausenden von Merkmalen keine Seltenheit.
Außerdem ist das Online-Training von FF-Netzen im Vergleich zur Online-SVM-Anpassung sehr einfach, und die Vorhersage kann erheblich schneller sein.
BEARBEITEN : Alle oben genannten Punkte beziehen sich auf den allgemeinen Fall von kernelisierten SVMs. Lineare SVM ist ein Sonderfall, als sie sind parametrischer und Online - Lernen ermöglichen mit einfachen Algorithmen wie stochastische Gradientenabfallsaktualisierung.
quelle
Ein offensichtlicher Vorteil künstlicher neuronaler Netze gegenüber Unterstützungsvektormaschinen besteht darin, dass künstliche neuronale Netze eine beliebige Anzahl von Ausgängen haben können, während Unterstützungsvektormaschinen nur einen haben. Der direkteste Weg, um einen n-ary-Klassifikator mit Support-Vektor-Maschinen zu erstellen, besteht darin, n Support-Vektor-Maschinen zu erstellen und jede einzeln zu trainieren. Andererseits kann ein n-ary Klassifikator mit neuronalen Netzen auf einmal trainiert werden. Darüber hinaus ist das neuronale Netzwerk sinnvoller, da es ein Ganzes ist, während die Support-Vektor-Maschinen isolierte Systeme sind. Dies ist besonders nützlich, wenn die Ausgänge miteinander zusammenhängen.
Wenn das Ziel beispielsweise darin besteht, handgeschriebene Ziffern zu klassifizieren, reichen zehn Support-Vektor-Maschinen aus. Jede Support-Vektor-Maschine erkennt genau eine Ziffer und erkennt nicht alle anderen. Da nicht jede handgeschriebene Ziffer mehr Informationen als nur ihre Klasse enthalten kann, ist es nicht sinnvoll, dies mit einem künstlichen neuronalen Netzwerk zu lösen.
Angenommen, das Ziel bestand darin, den Hormonhaushalt einer Person (für mehrere Hormone) als Funktion leicht zu messender physiologischer Faktoren wie der Zeit seit der letzten Mahlzeit, der Herzfrequenz usw. zu modellieren. Da diese Faktoren alle miteinander zusammenhängen, sind sie künstlich neuronal Netzwerkregression ist sinnvoller als die Unterstützung der Vektormaschinenregression.
quelle
Eine Sache zu beachten ist, dass die beiden tatsächlich sehr verwandt sind. Lineare SVMs entsprechen einschichtigen NNs (dh Perzeptronen), und mehrschichtige NNs können als SVMs ausgedrückt werden. Siehe hier für einige Details.
quelle
Wenn Sie eine Kernel-SVM verwenden möchten, müssen Sie den Kernel erraten. ANNs sind jedoch universelle Approximatoren, wobei nur die Breite (Approximationsgenauigkeit) und die Höhe (Approximationseffizienz) erraten werden müssen. Wenn Sie das Optimierungsproblem richtig gestalten, passen Sie nicht zu viel an (Überanpassung finden Sie in der Bibliographie). Es hängt auch von den Trainingsbeispielen ab, ob sie den Suchraum korrekt und gleichmäßig scannen. Die Erkennung von Breite und Tiefe ist Gegenstand der Ganzzahlprogrammierung.
Angenommen, Sie haben Funktionen f (.) Und universelle Approximatoren für I = [0,1] mit dem Bereich I = [0,1] begrenzt, die durch eine reale Folge der kompakten Unterstützung U (., A) mit parametrisiert sind die Eigenschaft, mit der eine Folge von Folgen existiert
und Sie zeichnen Beispiele und Tests
(x,y)
mit einer Verteilung D aufIxI
.Für eine vorgeschriebene Unterstützung ist das, was Sie tun, das Beste zu finden, so dass
Lassen Sie dies,
a=aa
was eine Zufallsvariable ist!, Dann ist die Überanpassungdurchschnittliche Verwendung
D and D^{N} of ( y - U(x,aa) )^{2}
Lassen Sie mich erklären, warum Sie
aa
für einen seltenen Satz von Werten eine perfekte Anpassung haben , wenn Sie so auswählen , dass der Fehler minimiert wird. Da sie jedoch selten sind, beträgt der Durchschnitt nie 0. Sie möchten die Sekunde minimieren, obwohl Sie eine diskrete Annäherung an D haben. Beachten Sie, dass die Stützlänge frei ist.quelle
Eine Antwort fehlt mir hier: Mehrschichtiges Perzeptron kann die Beziehung zwischen Merkmalen finden. Zum Beispiel ist es in der Bildverarbeitung erforderlich, wenn dem Lernalgorithmus ein Rohbild bereitgestellt wird und jetzt ausgefeilte Funktionen berechnet werden. Im Wesentlichen können die Zwischenstufen neue unbekannte Merkmale berechnen.
quelle
Wir sollten auch berücksichtigen, dass das SVM-System direkt auf nicht metrische Räume angewendet werden kann, z. B. auf die Menge der beschrifteten Diagramme oder Zeichenfolgen. Tatsächlich kann die interne Kernelfunktion ordnungsgemäß auf praktisch jede Art von Eingabe verallgemeinert werden, vorausgesetzt, die positive Bestimmtheitsanforderung des Kernels ist erfüllt. Um andererseits eine ANN für einen Satz beschrifteter Diagramme verwenden zu können, müssen explizite Einbettungsverfahren berücksichtigt werden.
quelle