Es gibt mindestens zwei Möglichkeiten, SVMs zu motivieren, aber ich werde hier den einfacheren Weg einschlagen.
D={(xi1,xi2,yi)}yi{1,−1}1−1
w0+w1x1+w2x2=0w0+w1x1+w2x2>0w0+w1x1+w2x2<0
[w0,w1,w2]w0+w1xi1+w2xi2≥0xiyi=1w0+w1xi1+w2xi2<0xiyi=−1
Nehmen wir an, dass eine solche Zeile tatsächlich existiert, dann kann ich einen Klassifikator folgendermaßen definieren:
min|w0|+|w1|+|w2|subject to:w0+w1xi1+w2xi2≥0,∀xi with yi=1w0+w1xi1+w2xi2<0,∀xi with yi=−1
Ich habe oben eine beliebige Zielfunktion verwendet, es ist uns im Moment egal, welche Zielfunktion verwendet wird. Wir wollen nur ein , das unsere Anforderungen erfüllt. Da wir angenommen haben, dass eine Linie existiert, so dass wir die beiden Klassen mit dieser Linie trennen können, werden wir eine Lösung für das obige Optimierungsproblem finden.w
Das obige ist kein SVM, aber es gibt Ihnen einen Klassifikator :-). Dieser Klassifikator ist jedoch möglicherweise nicht sehr gut. Aber wie definieren Sie einen guten Klassifikator? Ein guter Klassifikator ist normalerweise derjenige, der auf dem Testset gut abschneidet. Im Idealfall würden Sie alle möglichen durchgehen , die Ihre Trainingsdaten trennen, und sehen, welche davon in den Testdaten gut abschneiden. Allerdings gibt es unendlich ‚s, so dass diese ganz hoffnungslos. Stattdessen werden wir einige Heuristiken betrachten, um einen guten Klassifikator zu definieren. Eine Heuristik ist, dass die Linie, die die Daten trennt, ausreichend weit von allen Punkten entfernt ist (dh es gibt immer eine Lücke oder einen Abstand zwischen den Punkten und der Linie). Der beste Klassifikator unter diesen ist der mit der maximalen Marge. Dies wird in SVMs verwendet.ww
Anstatt darauf zu bestehen, dass für alle Punkte mit und für alle Punkte mit , wenn wir darauf bestehen, dass für alle Punkte mit und für alle Punkte mit , dann bestehen wir tatsächlich darauf, dass Punkte weit von der Linie entfernt sind. Der dieser Anforderung entsprechende geometrische Rand lautet .w0+w1xi1+w2xi2≥0xiyi=1w0+w1xi1+w2xi2<0xiyi=−1w0+w1xi1+w2xi2≥1xiyi=1w0+w1xi1+w2xi2≤−1xiyi=−11∥w∥2
Wir erhalten also das folgende Optimierungsproblem:
Eine leicht prägnante Form des Schreibens ist:
Dies ist im Grunde die grundlegende SVM-Formulierung. Der Kürze halber habe ich viele Diskussionen übersprungen. Hoffentlich habe ich den größten Teil der Idee noch durchgebracht.
max1∥w∥2subject to:w0+w1xi1+w2xi2≥1,∀xi with yi=1w0+w1xi1+w2xi2≤−1,∀xi with yi=−1
min∥w∥2subject to:yi(w0+w1xi1+w2xi2)≥1,∀i
CVX-Skript zur Lösung des Beispielproblems:
A = [1 2 1; 3 2 1; 2 3 1; 3 3 1; 1 1 1; 2 0 1; 2 1 1; 3 1 1];
b = ones(8, 1);
y = [-1; -1; -1; -1; 1; 1; 1; 1];
Y = repmat(y, 1, 3);
cvx_begin
variable w(3)
minimize norm(w)
subject to
(Y.*A)*w >= b
cvx_end
Nachtrag - Geometrischer Rand
Oben haben wir bereits darum gebeten, nach suchen, so dass oder allgemein . Die LHS, die Sie hier sehen, wird als funktionale Marge bezeichnet. Wir haben hier also angefordert, dass die funktionale Marge . Nun werden wir versuchen, den geometrischen Rand unter Berücksichtigung dieser funktionalen Randanforderung zu berechnen.wyi(w0+w1x1+w2x2)≥1yi(w0+wTx)≥1≥1
Was ist ein geometrischer Rand? Der geometrische Rand ist der kürzeste Abstand zwischen Punkten in den positiven Beispielen und Punkten in den negativen Beispielen. Nun können die Punkte mit dem kürzesten Abstand, wie oben gefordert, einen Funktionsspielraum von mehr als 1 haben. Betrachten wir jedoch den Extremfall, wenn sie der Hyperebene am nächsten liegen, dh der Funktionsspielraum für die kürzesten Punkte ist genau gleich zu 1. Sei der Punkt auf dem positiven Beispiel ein Punkt, so dass und der Punkt auf dem negativen Beispiel ein Punkt ist, so dass . Nun ist der Abstand zwischen und der kürzeste, wennx+wTx++w0=1x−wTx−+w0=−1x+x−x+−x− ist senkrecht zur Hyperebene.
Mit all den obigen Informationen werden wir nun versuchen, welches der geometrische Rand ist.
∥x+−x−∥2
wTx++w0=1
wTx−+w0=−1
wT(x+−x−)=2
|wT(x+−x−)|=2
∥w∥2∥x+−x−∥2=2
∥x+−x−∥2=2∥w∥2
[1] Es spielt eigentlich keine Rolle, welche Seite du für und wählst . Sie müssen nur konsequent bleiben, was auch immer Sie wählen.1−1