Was sind die Vorteile künstlicher neuronaler Netze gegenüber Support Vector Machines? [geschlossen]

381

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:

ANN- und SVM-Klassifizierung

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.

Channel72
quelle
61
Leider wird dies wahrscheinlich bald geschlossen oder verschoben, aber ich liebe die Frage absolut. Ich möchte nichts Besseres, als eine Reihe von nachdenklichen Antworten auf diese Frage zu sehen.
Duffymo
10
Ich kann mir vorstellen, dass die meisten Antworten auf diese Frage spekulativ sind oder auf Beweisen beruhen, da es nur sehr wenige theoretische Garantien für die Leistung dieser Maschinen gibt. Zum Beispiel (wenn ich mich richtig erinnere) ist nicht bekannt, ob ein neuronales n-Schicht-Feed-Forward-Netzwerk leistungsfähiger ist als ein 2-Schicht-Netzwerk. Wie können wir also sagen, dass das eine im Prinzip besser ist als das andere, wenn wir nicht einmal die Beziehungen zwischen geringfügigen Abweichungen desselben Modells verstehen?
JeremyKun
13
Es ist geschlossen, weil es nicht sehr konstruktiv ist ... Lol!
Erool
65
Ich finde es toll, dass StackOverflow versucht, die Qualität von Fragen und Antworten hoch zu halten. Ich hasse es, dass StackOverflow dies mit einer Axt anstelle eines Skalpells erzwingt. Es gibt einen Unterschied zwischen der Frage "Wie mache ich HTML-Sachen?" und eine domänenspezifische Frage, auf die anderswo nur schwer eine Antwort zu finden wäre. Es gibt einen Grund, warum dies 140 positive Stimmen hat - aber es wird als "nicht konstruktiv" angesehen. Fragen wie diese sind der Inbegriff von konstruktiv. Sicherlich weit mehr als viele von denen, die ich jeden Tag sehe, die ordentlich in das Q & A-Format fallen und dennoch für fast alle außer dem Fragesteller nutzlos sind.
Chase Ries
20
Dies ist offensichtlich konstruktiv. Ich kann nicht verstehen, warum es geschlossen werden würde. Es wird nach bestimmten Situationen gefragt, in denen die Verwendung eines Algorithmus Vorteile gegenüber der Verwendung eines alternativen Algorithmus hat. Ist das nicht eine vernünftige Frage?
Rab

Antworten:

137

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.

Fred Foo
quelle
12
Ein weiterer Grund ist in diesem Artikel zu finden: yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf . Kurz gesagt, der Autor stellt fest, dass "tiefe Architekturen" "intelligentes" Verhalten / Funktionen usw. effizienter darstellen können als "flache Architekturen" wie SVMs.
Alfa
1
Abgesehen davon verliert Deep Learning die hier angegebenen "Vorteile" für MLPs (feste Größe, einfacheres Training) etwas. Ich bin mir jedoch nicht sicher, ob sich diese Vorteile lohnen.
Muhammad Alkarouri
6
@ MuhammadAlkarouri: Deep Learning ist eine ziemlich breite Palette von Techniken, aber diejenigen, mit denen ich vertraut bin, behalten den Vorteil, dass die Modelle parametrisch sind (feste Größe).
Fred Foo
Zwei Kommentare: Der Online-Trainingspunkt ist wahr, aber es gibt eine Variante von SVM-ähnlichen Klassifikatoren, die speziell für das Online-Lernen entwickelt wurden, MIRA (eine Art passiv-aggressiver Klassifikator), für die Aktualisierungen trivial sind. Zweitens ist darauf hinzuweisen, dass viele neuronale Netze durch den Kernel-Trick als SVMs formuliert werden können.
Ben Allison
1
@FredFoo auch ANN kann in lokalen Minima stecken bleiben, wo als Support-Vektor-Maschinen dieses Problem nicht anfällig ist.
Tourist
62

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.

Alan
quelle
18
Tatsächlich gibt es echte Mehrklassenformulierungen der Support-Vektor-Maschine (siehe Crammer & Singer's Papers). Ich glaube, LibSVM enthält eine Implementierung davon.
Fred Foo
3
Das Trainieren einer SVM mit mehreren Klassen ist jedoch nicht so einfach und die Leistung scheint in der OVA besser zu sein als im AVA-Ansatz.
Crodriguezo
3
"Es macht keinen Sinn, dies mit einem künstlichen neuronalen Netzwerk zu lösen." Sie können ein neuronales Netzwerk verwenden, um die Klassifizierung handgeschriebener Ziffern zu lösen. Ich habe dies als hw-Auftrag für eine Klasse getan. Die Ausgabeebene enthält Wahrscheinlichkeiten aller Ziffern. Die Klasse mit der höchsten Wahrscheinlichkeit wird als Hypothese verwendet. Ich hatte eine Genauigkeitsrate von 94%.
user3266824
Sie meinen, Sie erstellen n Anzahl von 1 gegen N-1 SVM-Klassifizierer und verwenden NN, um n Ausgaben zu erstellen. SVM scheint auf diese Weise langsamer zu sein?
mskw
@ user3266824 Nun ja, dieses Zitat ist nicht gut gealtert.
runDOSrun
46

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.

Bryce
quelle
18

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

lim sup { |f(x) - U(x,a(k) ) | : x } =0

und Sie zeichnen Beispiele und Tests (x,y)mit einer Verteilung D auf IxI.

Für eine vorgeschriebene Unterstützung ist das, was Sie tun, das Beste zu finden, so dass

sum {  ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal

Lassen Sie dies, a=aawas eine Zufallsvariable ist!, Dann ist die Überanpassung

durchschnittliche Verwendung D and D^{N} of ( y - U(x,aa) )^{2}

Lassen Sie mich erklären, warum Sie aafü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.

Vasileios Anagnostopoulos
quelle
14

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.

dolbi
quelle
12

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.

Strozzino
quelle
6
In meinen Augen sind das Erstellen eines sinnvollen Kernels und das Erstellen einer sinnvollen metrischen Einbettung gleichermaßen problematisch. Dies ist nur ein Kommentar, dass es möglicherweise mehr Kernel als Metriken gibt, aber das kaufe ich nicht wirklich. ohli.de/download/papers/Deza2009.pdf
JeremyKun