wake-up-neo.com

Was sind die Vorteile von künstlichen neuronalen Netzen gegenüber Support Vector Machines?

ANN (Artificial Neural Networks) und SVM (Support Vector Machines) sind zwei beliebte Strategien für überwachtes maschinelles Lernen und Klassifizieren. Es ist nicht oft klar, welche Methode für ein bestimmtes Projekt besser ist, und ich bin mir sicher, dass die Antwort 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

nterstützt Vector Machine oder Artificial Neural Network für die Textverarbeitung?

In dieser Frage würde ich gerne wissen, spezifisch welche Aspekte eines ANN (speziell eines Multilayer-Perceptrons) es wünschenswert machen, über eine SVM zu verwenden? Der Grund, den ich frage, ist, dass es einfach ist, die Gegenteil Frage zu beantworten: Support Vector Machines sind ANNs oft überlegen, weil sie zwei Hauptschwächen von ANNs vermeiden:

(1) ANNs konvergieren oft eher auf lokale Minima als auf globale Minima, was bedeutet, dass ihnen manchmal im Wesentlichen das große Ganze (oder der Wald vor lauter Bäumen) fehlt.

(2) ANNs häufig Überanpassung Wenn das Training zu lange dauert, was bedeutet, dass eine ANN für ein bestimmtes Muster das Rauschen möglicherweise als Teil des Musters betrachtet.

SVMs leiden nicht unter einem dieser beiden Probleme. Es ist jedoch nicht ohne weiteres ersichtlich, dass SVMs als vollständiger Ersatz für ANNs gedacht sind. Welchen spezifisch Vorteil (e) hat eine ANN gegenüber einer SVM, sodass sie möglicherweise in bestimmten Situationen eingesetzt werden kann? Ich habe spezifisch Vorteile einer SVM gegenüber einer ANN aufgelistet, jetzt möchte ich eine Liste der ANN-Vorteile sehen (falls vorhanden).

371
Channel72

Nach den Beispielen, die Sie zur Verfügung stellen, gehe ich davon aus, dass Sie unter ANNs mehrschichtige Feed-Forward-Netzwerke (kurz FF-Netze) wie mehrschichtige Perceptrons verstehen, 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 parametrisch Modelle, während SVMs nicht parametrisch sind. Das heißt, in einer ANN gibt es eine Reihe versteckter Ebenen mit den Größen h1 durch h n Abhängig von der Anzahl der Features sowie den Verzerrungsparametern und denen, aus denen Ihr Modell besteht. Im Gegensatz dazu besteht eine SVM (zumindest eine kernelisierte) aus einem Satz von Unterstützungsvektoren, die aus dem Trainingssatz ausgewählt werden und für jeden 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. In der Verarbeitung natürlicher Sprache sind SVM-Klassifizierer mit Zehntausenden von Unterstützungsvektoren mit jeweils Hunderttausenden von Merkmalen nicht unbekannt.

Außerdem ist Online-Training von FF-Netzen im Vergleich zur Online-SVM-Anpassung sehr einfach, und die Vorhersage kann viel schneller sein.

[~ # ~] edit [~ # ~] : Alle obigen Angaben beziehen sich auf den allgemeinen Fall von SVMs mit Kernel. Lineare SVM sind ein besonderer Fall, da sie are parametrisch sind und das Online-Lernen mit einfachen Algorithmen wie dem stochastischen Gradientenabstieg ermöglichen.

129
Fred Foo

Ein offensichtlicher Vorteil von künstlichen neuronalen Netzen 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, einen n-ary-Klassifikator mit Support-Vektor-Maschinen zu erstellen, besteht darin, n Support-Vektor-Maschinen zu erstellen und jede nach der anderen zu trainieren. Andererseits kann ein n-facher Klassifikator mit neuronalen Netzen auf einmal trainiert werden. Darüber hinaus ist das neuronale Netzwerk sinnvoller, da es ein Ganzes ist, wohingegen die Support-Vektor-Maschinen isolierte Systeme sind. Dies ist besonders nützlich, wenn die Ausgänge miteinander verbunden sind.

Wenn das Ziel beispielsweise darin bestand, handgeschriebene Ziffern zu klassifizieren, würden zehn Support-Vektor-Maschinen dies tun. Jede Support-Vektor-Maschine erkennt genau eine Ziffer und alle anderen nicht. Da nicht jede handschriftliche 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) in Abhängigkeit von leicht zu messenden physiologischen Faktoren wie der Zeit seit der letzten Mahlzeit, der Herzfrequenz usw. zu modellieren Netzwerk-Regression ist sinnvoller als die Unterstützung von Vektor-Maschinen-Regression.

60
Alan

Eine Sache zu beachten ist, dass die beiden tatsächlich sehr verwandt sind. Lineare SVMs sind einschichtigen NNs (d. H. Perzeptronen) äquivalent, und mehrschichtige NNs können als SVMs ausgedrückt werden. Siehe hier für einige Details.

46
Bryce

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 Höhe (Approximationseffizienz) geschätzt werden müssen. Wenn Sie das Optimierungsproblem richtig entwerfen, passen Sie nicht über (siehe Bibliographie für Überanpassung). Es hängt auch von den Trainingsbeispielen ab, ob sie den Suchraum korrekt und einheitlich scannen. Die Ermittlung von Breite und Tiefe ist Gegenstand der Ganzzahlprogrammierung.

Angenommen, Sie haben Funktionen f(.) und begrenzte universelle Approximatoren für I = [0,1] mit einem Bereich von wieder I = [0,1], die beispielsweise durch eine reelle Folge von parametrisiert werden Kompaktunterstützung U (., a) mit der Eigenschaft, dass eine Folge von Folgen mit 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.

Was Sie für eine vorgeschriebene Unterstützung tun, ist, das Beste zu finden

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

Sei dies a=aa Eine Zufallsvariable !, dann ist die Überanpassung

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

Lassen Sie mich erklären, warum, wenn Sie aa so auswählen, dass der Fehler minimiert wird, Sie für einen seltenen Satz von Werten die perfekte Anpassung haben. Da sie jedoch selten sind, ist der Durchschnitt niemals 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.

Eine Antwort fehlt mir hier: Mehrschichtiges Perzeptron kann die Beziehung zwischen Merkmalen finden. Zum Beispiel ist es in der Bildverarbeitung erforderlich, dass dem Lernalgorithmus ein Rohbild bereitgestellt wird und jetzt ausgefeilte Funktionen berechnet werden. Grundsätzlich können die Zwischenstufen neue unbekannte Merkmale berechnen.

14
dolbi

Wir sollten auch berücksichtigen, dass das SVM-System direkt auf nicht metrische Räume angewendet werden kann, wie zum Beispiel auf die Menge der beschrifteten Graphen oder Strings. Tatsächlich kann die interne Kernelfunktion auf praktisch jede Art von Eingabe richtig verallgemeinert werden, vorausgesetzt, die positive Definitivitätsanforderung des Kernels wird erfüllt. Andererseits müssen explizite Einbettungsverfahren in Betracht gezogen werden, um eine ANN für eine Reihe von gekennzeichneten Diagrammen verwenden zu können.

12
strozzino