Warum sollte man sich beim Anpassen von SVM mit dem doppelten Problem beschäftigen?

50

Angesichts der Datenpunkte und Etiketten y 1 , ... , y n{ - 1 , 1 } , das Problem harter Rand SVM Ur istx1,,xnRdy1,,yn{1,1}

s.t.

minimizew,w012wTw
s.t.i:yi(wTxi+w0)1

Das ist ein quadratisches Programm mit Variablen, für die optimiert werden soll und i Einschränkungen. Das Doppelted+1i

S.T.

maximizeαi=1nαi12i=1nj=1nyiyjαiαjxiTxj
ist ein quadratisches Programm mit n + 1 zu optimierenden Variablen und n Ungleichungs- und n Gleichheitsbedingungen.
s.t.i:αi0i=1nyiαi=0
n+1nn

Warum sollte ich bei der Implementierung einer SVM mit festem Rand das doppelte Problem anstelle des ursprünglichen Problems lösen? Das ursprüngliche Problem erscheint mir "intuitiver", und ich muss mich nicht mit der Dualitätslücke, dem Kuhn-Tucker-Zustand usw. befassen.

Es würde Sinn für mich das duale Problem , wenn zu lösen , aber ich vermute , es gibt bessere Gründe. Ist das der Fall?dn

blubb
quelle
26
Kurze Antwort ist Kernel. Lange Antwort ist keeerneeels (-;
Das Wichtigste bei einem doppelten Problem ist, den Kernel-Trick einzuführen, der darauf abzielt, die ursprünglichen Daten in einem Raum mit höherer Dimension abzubilden.
BigeyeDestroyer

Antworten:

40

Basierend auf den Vorlesungsunterlagen, auf die in der Antwort von @ user765195 verwiesen wird (danke!), Scheinen die offensichtlichsten Gründe zu sein:

wαixwTxd

αiαi=0x

wTx+w0=(i=1nαiyixi)Tx+w0=i=1nαiyixi,x+w0

Dieser Term wird sehr effizient berechnet, wenn nur wenige Unterstützungsvektoren vorhanden sind. Da ferner wir jetzt nur noch einen Skalarprodukt beteiligt haben Datenvektoren, so können wir den Kernel Trick anwenden .

blubb
quelle
6
Warte warte. Angenommen, Sie haben zwei Unterstützungsvektoren x1 und x2. Du kannst doch nicht weniger als zwei haben, oder? Wollen Sie damit sagen, dass die Berechnung von <x1, x> und <x2, x> schneller ist als von <w, x>?
Leo
1
@Leo: Beachte, dass ich <x1, x>und benutze wTx. Ersteres wird als Symbol für eine Kernauswertung K (x1, x) verwendet, die x1 und x in einen sehr hochdimensionalen Raum projiziert und implizit das Skalarprodukt der projizierten Werte berechnet. Letzteres ist die normale Skalarprodukt, so wund xhat explizit projiziert werden, und dann wird das Skalarprodukt explizit berechnet. Abhängig von der Wahl des Kernels kann eine einzelne explizite Berechnung viel mehr Rechenaufwand erfordern als viele Kernel-Auswertungen.
Blubb
1
ααα
2
"Da wir jetzt ein Skalarprodukt haben, das nur Datenvektoren enthält, können wir den Kernel-Trick anwenden." - Das gilt auch für die Urformulierung.
Firebug
2
Wenn die Leute mehr Details zu den Kommentaren von @Firebug wünschen, lesen Sie die Gleichungen 10-12 in lib.kobe-u.ac.jp/repository/90001050.pdf (das ist eine uneingeschränkte Version der ursprünglichen).
MrDrFenner
13

Lesen Sie den zweiten Absatz auf Seite 13 und die Erläuterungen dazu in diesen Notizen:

http://cs229.stanford.edu/notes/cs229-notes3.pdf

user765195
quelle
17
Das ist eine großartige Referenz und beantwortet die Frage eindeutig. Ich denke, Ihre Antwort wird besser geschätzt, wenn Sie die Antwort hier zusammenfassen: Das macht diesen Thread für sich.
whuber
3

Dies ist ein Grund, warum die duale Formulierung unter dem Gesichtspunkt der numerischen Optimierung attraktiv ist. Details finden Sie in folgendem Artikel :

Hsieh, C.-J., Chang, K.-W., Lin, C.-J., Keerthi, SS und Sundararajan, S., "A Dual Coordinate Descent Method for large-scale linear SVM", Proceedings of the 25. Internationale Konferenz über maschinelles Lernen, Helsinki, 2008.

Die duale Formulierung beinhaltet eine einzige affine Gleichheitsbedingung und n gebundene Bedingungen.

1. Die affine Gleichheitsbedingung kann aus der dualen Formulierung "eliminiert" werden.

Dies kann durch einfaches Betrachten Ihrer Daten in R ^ (d + 1) durch Einbetten von R ^ d in R ^ (d + 1) erreicht werden, indem jedem Datenpunkt, dh R ^, eine einzelne "1" -Koordinate hinzugefügt wird d ----> R ^ (d + 1): (a1, ..., ad) | ---> (a1, ..., ad, 1).

Wenn Sie dies für alle Punkte in der Trainingsmenge tun, wird das lineare Trennbarkeitsproblem in R ^ (d + 1) neu berechnet und der konstante Term w0 aus Ihrem Klassifikator entfernt, wodurch wiederum die affine Gleichheitsbeschränkung aus dem Dual eliminiert wird.

2. Nach Punkt 1 kann das Dual einfach als konvexes quadratisches Optimierungsproblem geworfen werden, dessen Bedingungen nur gebundene Bedingungen sind.

3. Das Doppelproblem kann nun effizient gelöst werden, dh über einen Doppelkoordinaten-Abstiegsalgorithmus, der eine für Epsilon optimale Lösung in O (log (1 / Epsilon)) ergibt.

Dies geschieht, indem festgehalten wird, dass das Fixieren aller Alphas mit Ausnahme eines Alphas eine geschlossene Lösung ergibt. Sie können dann nacheinander alle Alphas durchlaufen (z. B. eine zufällige Auswahl treffen, alle anderen Alphas korrigieren, die Lösung in geschlossener Form berechnen). Man kann zeigen, dass man "ziemlich schnell" eine nahezu optimale Lösung erhält (siehe Satz 1 in der oben genannten Arbeit).

Es gibt viele andere Gründe, warum das doppelte Problem unter Optimierungsgesichtspunkten attraktiv ist, von denen einige die Tatsache ausnutzen, dass es nur eine affine Gleichheitsbedingung hat (die übrigen Bedingungen sind alle gebundenen Bedingungen), während andere die Beobachtung ausnutzen, die bei der Lösung vorliegt des doppelten Problems "Oft sind die meisten Alphas" Null (Nicht-Null-Alphas entsprechen Unterstützungsvektoren).

Einen guten Überblick über Überlegungen zur numerischen Optimierung von SVMs erhalten Sie in Stephen Wrights Präsentation auf dem Computational Learning Workshop (2009).

PS: Ich bin neu hier. Entschuldigung, dass Sie die mathematische Notation auf dieser Website nicht gut beherrschen.

aTn
quelle
1
Informationen zur Verwendung des mathematischen Schreibens finden Sie hier: math.meta.stackexchange.com/questions/5020/…
Monica am
-5

Meiner Meinung nach wurde in den Vorlesungsunterlagen von Andrew ng klar erwähnt, dass das Hauptproblem von 1 / || w || ein nicht konvexes Problem ist. Das Dual ist ein konvexes Problem und es ist immer leicht, das Optimum einer konvexen Funktion zu finden.

Avni Kant Rai
quelle
1
Die oben angegebene SVM-Urform ist konvex.
Dougal