Die Antwort von Ryan Zotti erklärt die Motivation für die Maximierung der Entscheidungsgrenzen. Die Antwort von carlosdc zeigt einige Ähnlichkeiten und Unterschiede zu anderen Klassifikatoren. Ich werde in dieser Antwort einen kurzen mathematischen Überblick darüber geben, wie SVMs trainiert und verwendet werden.
Notizen
Im Folgenden werden Skalare mit kursiven Großbuchstaben (z. B. ), Vektoren mit fetten Großbuchstaben (z. B. ) und Matrizen mit kursiven Großbuchstaben (z. B. ). ist die Transponierte von und .y,bw,xWwTw∥w∥=wTw
Lassen:
- x ist ein Merkmalsvektor (dh die Eingabe der SVM). , wobei die Dimension des Merkmalsvektors ist.x∈Rnn
- y ist die Klasse (dh die Ausgabe der SVM). , dh die Klassifizierungsaufgabe ist binär.y∈{−1,1}
- w und sind die Parameter der SVM: Wir müssen sie mit dem Trainingsset lernen.b
- (x(i),y(i)) ist das Beispiel im Datensatz. Nehmen wir an, wir haben Samples im Trainingsset.ithN
Mit kann man die Entscheidungsgrenzen der SVM wie folgt darstellen:n=2
Die Klasse wird wie folgt bestimmt:y
y(i)={−11 if wTx(i)+b≤−1 if wTx(i)+b≥1
was genauer geschrieben werden kann als .y(i)(wTx(i)+b)≥1
Tor
Der SVM hat zum Ziel, zwei Anforderungen zu erfüllen:
Die SVM sollte den Abstand zwischen den beiden Entscheidungsgrenzen maximieren. Mathematisch bedeutet dies, dass wir den Abstand zwischen der durch definierten Hyperebene und der durch definierten Hyperebene maximieren möchten . Dieser Abstand entspricht . Das heißt, wir wollen lösen . Ebenso wollen wir
.wTx+b=−1wTx+b=12∥w∥maxw2∥w∥minw∥w∥2
Die SVM sollte auch alle korrekt klassifizieren , was bedeutet, dassx(i)y(i)(wTx(i)+b)≥1,∀i∈{1,…,N}
Was uns zu folgendem quadratischen Optimierungsproblem führt:
minw,bs.t.∥w∥2,y(i)(wTx(i)+b)≥1∀i∈{1,…,N}
Dies ist der SVM mit festem Rand , da dieses quadratische Optimierungsproblem eine Lösung zulässt, wenn die Daten linear trennbar sind.
Man kann die Beschränkungen lockern, indem man sogenannte Slack-Variablen einführt . Beachten Sie, dass jede Probe des Trainingssatzes eine eigene Slack-Variable hat. Dies ergibt das folgende quadratische Optimierungsproblem:ξ(i)
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTx(i)+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Dies ist die SVM mit weichem Rand . ist ein Hyperparameter, der als Bestrafung des Fehlerausdrucks bezeichnet wird . ( Was ist der Einfluss von C in SVMs mit linearen Kernel? Und Suchbereich , die zur Bestimmung SVM optimale Parameter? ).C
Man kann noch mehr Flexibilität zu, indem eine Funktion Einführung , die bilden den ursprünglichen Merkmalsraum auf einen höherdimensionalen Merkmalsraum. Dies ermöglicht nichtlineare Entscheidungsgrenzen. Das quadratische Optimierungsproblem wird:ϕ
minw,bs.t.∥w∥2+C∑i=1Nξ(i),y(i)(wTϕ(x(i))+b)≥1−ξ(i),ξ(i)≥0,∀i∈{1,…,N}∀i∈{1,…,N}
Optimierung
Das quadratische Optimierungsproblem kann in ein anderes Optimierungsproblem umgewandelt werden, das Lagrange-Dual-Problem genannt wird (das vorherige Problem wird als primär bezeichnet ):
maxαs.t.minw,b∥w∥2+C∑i=1Nα(i)(1−wTϕ(x(i))+b)),0≤α(i)≤C,∀i∈{1,…,N}
Dieses Optimierungsproblem kann vereinfacht werden (indem einige Farbverläufe auf ), um:0
maxαs.t.∑i=1Nα(i)−∑i=1N∑j=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),0≤α(i)≤C,∀i∈{1,…,N}
w erscheint nicht als (wie vom Repräsentantensatz angegeben ).w=∑Ni=1α(i)y(i)ϕ(x(i))
Wir lernen daher das mit dem des Trainingssatzes.α(i)(x(i),y(i))
(FYI: Warum sollte man sich beim Anpassen von SVM mit dem doppelten Problem beschäftigen? Kurze Antwort: Schnellere Berechnung + ermöglicht die Verwendung des Kernel-Tricks, obwohl es einige gute Methoden zum Trainieren von SVM im Urzustand gibt, z. B. siehe {1})
Eine Vorhersage machen
Sobald die gelernt sind, kann man die Klasse einer neuen Stichprobe mit dem Merkmalsvektor wie folgt vorhersagen :α(i)xtest
ytest=sign(wTϕ(xtest)+b)=sign(∑i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)
Die Summe könnte überwältigend erscheinen, da man alle Trainingsmuster summieren muss, aber die überwiegende Mehrheit von ist (siehe Warum sind die Lagrange-Multiplikatoren sind für SVMs sparsam? ) In der Praxis ist dies also kein Problem. (Beachten Sie, dass man Sonderfälle konstruieren kann, in denen alle .) iff ist ein Unterstützungsvektor . Die obige Abbildung enthält 3 Unterstützungsvektoren.∑Ni=1α(i)0α(i)>0α(i)=0x(i)
Kernel-Trick
Man kann beobachten, dass das Optimierungsproblem das nur im inneren Produkt . Die Funktion, die dem inneren Produkt wird genannt ein kernel , auch bekannt als Kernfunktion, die oft von bezeichnet .ϕ(x(i))ϕ(x(i))Tϕ(x(j))(x(i),x(j))ϕ(x(i))Tϕ(x(j))k
Man kann so wählen , dass das innere Produkt effizient berechnet werden kann. Dies ermöglicht die Verwendung eines potenziell großen Funktionsraums bei geringen Rechenkosten. Das nennt man den Kernel-Trick . Damit eine Kernelfunktion gültig ist , dh mit dem Kernel-Trick verwendet werden kann, müssen zwei Schlüsseleigenschaften erfüllt sein . Es gibt viele Kernelfunktionen zur Auswahl . Als Randnotiz kann der Kernel-Trick auf andere maschinelle Lernmodelle angewendet werden. In diesem Fall werden sie als kernelisiert bezeichnet .k
Weitergehen
Einige interessante QAs zu SVMs:
Andere Links:
Verweise: