Unterschied zwischen einem SVM und einem Perceptron

29

Ich bin ein bisschen verwirrt mit dem Unterschied zwischen einem SVM und einem Perzeptron. Lassen Sie mich hier versuchen, mein Verständnis zusammenzufassen, und bitte korrigieren Sie, wo ich falsch liege, und füllen Sie das aus, was ich verpasst habe.

  1. Das Perceptron versucht nicht, den Abstand zu optimieren. Solange eine Hyperebene gefunden wird, die die beiden Sätze trennt, ist sie gut. SVM hingegen versucht, den "Unterstützungsvektor", dh den Abstand zwischen zwei gegenüberliegenden Abtastpunkten, zu maximieren.

  2. Die SVM versucht normalerweise, die Abtastpunkte mit einer "Kernelfunktion" in einen Raum hoher Dimension zu projizieren, um sie linear trennbar zu machen, während das Perzeptron davon ausgeht, dass die Abtastpunkte linear trennbar sind.

Vendetta
quelle
Mögliches Duplikat des Vergleichs von SVM und logistischer Regression
kjetil b halvorsen

Antworten:

18

Es klingt richtig für mich. Manchmal wird auch das Wort "Perceptron" verwendet, um den Trainingsalgorithmus zusammen mit dem Klassifikator zu bezeichnen. Zum Beispiel hat mir das jemand in der Antwort auf diese Frage erklärt . Es gibt auch nichts, was Sie davon abhält, einen Kernel mit dem Perzeptron zu verwenden, und dies ist oft ein besserer Klassifikator. Sehen Sie hier für einige Folien (pdf), wie der Kernel perceptron zu implementieren.

Der wesentliche praktische Unterschied zwischen einem (Kernel-) Perzeptron und SVM besteht darin, dass Perzeptrone online trainiert werden können (dh ihre Gewichte können aktualisiert werden, wenn neue Beispiele nacheinander eintreffen), während SVMs dies nicht können. In dieser Frage finden Sie Informationen dazu, ob SVMs online trainiert werden können. Obwohl ein SVM normalerweise ein besserer Klassifikator ist, können Perzeptrone dennoch nützlich sein, da sie billig sind und sich in einer Situation, in der ständig neue Trainingsdaten eintreffen, leicht umbilden lassen.

Flunder
quelle
3
SVMs können online trainiert werden. Aus einer Doppellösung können Sie die entsprechende Primzahl erhalten und aus dieser die Gewichte stochastisch aktualisieren.
Firebug
4

SVM:

minw2+Ci=1n(1yi(wxi+w0))+
Perceptron
mini=1n(yi(wxi+w0))+

Wir können sehen, dass SVM fast dasselbe Ziel hat wie L2-reguliertes Perzeptron.

Da das Ziel unterschiedlich ist, haben wir auch unterschiedliche Optimierungsschemata für diese beiden Algorithmen. w2 von w 2 sehen wir, dass dies der Hauptgrund für die Verwendung der quadratischen Programmierung zur Optimierung von SVM ist.

Warum erlaubt Perceptron Online-Updates? Wenn Sie die Aktualisierungsregel für den Gradientenabstieg für den Scharnierverlust sehen (der Scharnierverlust wird sowohl von SVM als auch von Perceptron verwendet),

wt=wt1+η1Ni=1NyixiI(yiwtxi0)

Da alle Algorithmen für maschinelles Lernen als Kombination aus Verlustfunktion und Optimierungsalgorithmus angesehen werden können.

Perzeptron ist nicht mehr als Gelenkverlust (Verlustfunktion) + stochastischer Gradientenabstieg (Optimierung)

wt=wt1+yy+1xt+1I(yt+1wtxt+10)

Und SVM kann als Scharnierverlust + I2-Regularisierung (Verlust + Regularisierung) + quadratische Programmierung oder andere schickere Optimierungsalgorithmen wie SMO (Optimierung) angesehen werden.

xxx222
quelle
-1

Perzeptron ist die Verallgemeinerung von SVM, wobei SVM das Perzeptron mit optimaler Stabilität ist. Sie haben also Recht, wenn Sie sagen, dass Perceptron nicht versucht, den Trennungsabstand zu optimieren.

bharadwaj aldur
quelle