wake-up-neo.com

SVM und neuronales Netzwerk

Was ist der Unterschied zwischen SVM und Neuronalem Netzwerk? Stimmt es, dass lineares svm gleich NN ist, und bei nichtlinearen, trennbaren Problemen verwendet NN ausgeblendete Ebenen und SVM die Raumdimensionen?

29
CoyBit

Diese Frage besteht aus zwei Teilen. Der erste Teil ist "welche Form der Funktion wird mit diesen Methoden gelernt?" Bei NN und SVM ist dies normalerweise gleich. Beispielsweise verwendet ein neuronales Netzwerk mit einer verborgenen Schicht genau dieselbe Modellform wie eine SVM. Das ist:

Bei einem Eingangsvektor x lautet die Ausgabe: Ausgang (x) = sum_over_all_i weight_i * nichtlinear_function_i (x)

Im Allgemeinen haben die nichtlinearen Funktionen auch einige Parameter. Diese Methoden müssen also lernen, wie viele nichtlineare Funktionen verwendet werden sollen, welche Parameter sie verwenden und welchen Wert alle weight_i-Gewichte haben sollen.

Daher besteht der Unterschied zwischen einer SVM und einem NN darin, wie sie entscheiden, auf welche Parameter diese Parameter eingestellt werden sollen. Wenn jemand sagt, dass er ein neuronales Netzwerk verwendet, meinen Sie, dass er versucht, die Parameter zu finden, die den mittleren quadratischen Vorhersagefehler in Bezug auf eine Reihe von Trainingsbeispielen minimieren. Sie werden auch fast immer den Optimierungsalgorithmus stochastic gradient descent verwenden. Andererseits versuchen SVMs, sowohl den Trainingsfehler als auch ein gewisses Maß an "Hypothesenkomplexität" zu minimieren. Sie finden also einen Satz von Parametern, der zu den Daten passt, aber in gewissem Sinne auch "einfach" ist. Man kann es sich wie Occams Rasiermesser für maschinelles Lernen vorstellen. Der am häufigsten verwendete Optimierungsalgorithmus für SVMs ist sequentielle minimale Optimierung .

Ein weiterer großer Unterschied zwischen den beiden Methoden besteht darin, dass der stochastische Gradientenabfall nicht garantiert ist, um die optimalen Parameter zu finden, wenn er so verwendet wird, wie er in NN-Implementierungen verwendet wird. Bei einer anständigen SVM-Implementierung wird jedoch der optimale Parametersatz gefunden. Die Leute sagen gerne, dass neuronale Netzwerke in einem lokalen Minimum stecken bleiben, SVMs dagegen nicht. 

43
Davis King

NNs sind heuristisch, während SVMs theoretisch begründet sind. Es ist garantiert, dass eine SVM (wahrscheinlich näherungsweise richtig) im Hinblick auf die beste Lösung zu der besten Lösung zusammenläuft. Beispielsweise zeichnet SVM für zwei linear separierbare Klassen die trennende Hyperebene direkt auf halbem Weg zwischen den nächstgelegenen Punkten der beiden Klassen (diese werden zu Unterstützungsvektoren ). Ein neuronales Netzwerk würde eine Linie zeichnen, die die Proben trennt, was für den Trainingssatz richtig ist, aber möglicherweise nicht die besten Verallgemeinerungseigenschaften aufweist.

Nein, auch bei linear trennbaren Problemen sind NNs und SVMs nicht gleich.

Bei linear nicht trennbaren Klassen wenden sowohl SVMs als auch NNs eine nichtlineare Projektion in einen höherdimensionalen Raum an. Im Falle von NNs wird dies durch Einführung zusätzlicher Neuronen in die verborgenen Schichten erreicht. Bei SVMs wird eine Kernelfunktion mit dem gleichen Effekt verwendet. Eine nette Eigenschaft der Kernelfunktion ist, dass die rechnerische Komplexität nicht mit der Anzahl der Dimensionen steigt, während sie für NNs offensichtlich mit der Anzahl der Neuronen steigt.

22
Igor F.

Das Ausführen eines einfachen out-of-the-box-Vergleichs zwischen Unterstützungsvektormaschinen und neuronalen Netzwerken (OHNE Parameterauswahl) bei mehreren gängigen Regressions- und Klassifizierungsdatensätzen demonstriert die praktischen Unterschiede: SVM wird zu einem sehr langsamen Prädiktor Wenn viele Unterstützungsvektoren erstellt werden, während die Vorhersagegeschwindigkeit für neuronale Netzwerke viel höher ist und die Modellgröße viel kleiner ist. Andererseits ist die Trainingszeit für SVMs viel kürzer. In Bezug auf die Genauigkeit/den Verlust - trotz der oben genannten theoretischen Nachteile neuronaler Netze - sind beide Verfahren gleichwertig - insbesondere bei Regressionsproblemen übertreffen neuronale Netze häufig Support-Vektormaschinen. Abhängig von Ihrem spezifischen Problem kann dies die Auswahl des richtigen Modells erleichtern. 

11
Fluchtpunkt

SVM und NN haben den gleichen Baustein wie Perzeptron, aber SVM verwendet auch einen Kernel-Trick, um die Dimension von etwa 2 auf 3d durch Übersetzung wie Y = (x1,2, .. ^ 2, y1,2 ... ^ 2) anzuheben kann linear untrennbare Ebenen mit geraden Linien trennen. Ich will eine Demo und fragt mich :)

1
Pradi KL

In der Praxis sind die meisten Ihrer Annahmen oft ziemlich zutreffend. Ich werde es näher erläutern: Für linear trennbare Klassen funktioniert Linear SVM sehr gut und ist viel schneller zu trainieren. Für nicht lineare Klassen gibt es den Kernel-Trick, der Ihre Daten in einen Raum mit höherer Dimension sendet. Dieser Trick hat jedoch zwei Nachteile gegenüber NN. Zuerst müssen Sie nach den richtigen Parametern suchen, da der Klassifizierer nur funktioniert, wenn in der höheren Dimension die beiden Sätze linear trennbar sind. Das Testen von Parametern wird häufig durch eine Rastersuche durchgeführt, was CPU-Zeit in Anspruch nimmt. Das andere Problem ist, dass diese gesamte Technik nicht so allgemein ist wie NN (z. B. für NLP, wenn dies häufig zu einem schlechten Klassifizierer führt).

0
user1854182