Warum ist der Vektor w im SVM-Algorithmus orthogonal zur trennenden Hyperebene?

13

Ich bin ein Anfänger im maschinellen Lernen. In SVM ist die trennende Hyperebene definiert als . Warum sagen wir Vektor w orthogonal zur trennenden Hyperebene?y=wTx+bw

Chong Zheng
quelle
3
Eine Antwort auf eine ähnliche Frage (für neuronale Netze) finden Sie hier .
Bogatron
@ Bogatron - Ich stimme dir vollkommen zu. Aber meine sind nur eine SVM-spezifische Antwort.
untitledprogrammer
2
Nur dass es nicht so ist. Ihre Antwort ist richtig, aber es gibt nichts, was für SVMs spezifisch ist (und es auch nicht geben sollte). ist einfach eine Vektorgleichung, die eine Hyperebene definiert. wTx=b
Bogatron

Antworten:

10

Geometrisch ist der Vektor w orthogonal zu der durch definierten Linie gerichtet . Dies kann wie folgt verstanden werden:wTx=b

Nehmen Sie zuerst . Nun ist klar, dass alle Vektoren x mit verschwindendem inneren Produkt mit w diese Gleichung erfüllen, dh alle Vektoren orthogonal zu w erfüllen diese Gleichung.b=0xw

Verschieben Sie nun die Hyperebene vom Ursprung weg über einen Vektor a. Die Gleichung für die Ebene lautet nun: , dh wir finden, dass für den Versatz b = a T w die Projektion des Vektors a auf den Vektor w ist .(xa)Tw=0b=aTwaw

Ohne Verlust der Allgemeinheit können wir also eine Senkrechte zur Ebene wählen, in welchem ​​Fall die Länge Dies ist der kürzeste orthogonale Abstand zwischen dem Ursprung und der Hyperebene.||a||=|b|/||w||

Daher soll der Vektor orthogonal zur trennenden Hyperebene sein.w

Programmierer ohne Titel
quelle
4

Der Grund, warum normal zur Hyperebene ist, liegt darin, dass wir es so definieren:w

P0P0=x0,y0,z0(0,0,0)<x0,y0,z0>P(x,y,z)PP0

PP0=<xx0,yy0,zz0>

n^

n^(PP0)=0
n^Pn^P0=0
n^P0bn^wPxw
Shehryar Malik
quelle
2

wTx+b=0xaxb

wTxa+b=0wTxb+b=0

wT.(xaxb)=0xaxbxbxawT.(xaxb)wTxaxb

adityagaydhani
quelle
0

Verwenden der algebraischen Definition eines Vektors, der orthogonal zu einer Hyperebene ist:

 x1,x2

wT(x1x2)=(wTx1+b)(wTx2+b)=00=0 .
Indominus
quelle