stützvektormethode (svm)

37
Universität Dortmund 250 +1 Stützvektormethode (SVM) Maximieren der Breite einer separierenden Hyperebene – maximum margin method Transformation des Datenraums durch Kernfunktion • Strukturelle Risikominimierung Vladimir Vapnik „The Nature of Statistical Learning Theory“ Springer Vg. 1995 W.N. Wapnik, A. Tscherwonenkis „Theorie der Zeichenerkennung“ Akademie Vg. 1979 Christopher Burges "A Tutorial on Support Vector Machines for Pattern Recognition" in: Data Mining and Knowledge Discovery2, 1998, 121-167

Upload: benard

Post on 09-Jan-2016

53 views

Category:

Documents


0 download

DESCRIPTION

Stützvektormethode (SVM). Maximieren der Breite einer separierenden Hyperebene – maximum margin method Transformation des Datenraums durch Kernfunktion Strukturelle Risikominimierung Vladimir Vapnik „The Nature of Statistical Learning Theory“ Springer Vg. 1995 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Stützvektormethode (SVM)

Universität Dortmund

250 +1

Stützvektormethode (SVM)

• Maximieren der Breite einer separierenden Hyperebene – maximum margin method

• Transformation des Datenraums durch Kernfunktion• Strukturelle Risikominimierung

• Vladimir Vapnik „The Nature of Statistical Learning Theory“ Springer Vg. 1995

• W.N. Wapnik, A. Tscherwonenkis „Theorie der Zeichenerkennung“ Akademie Vg. 1979

• Christopher Burges "A Tutorial on Support Vector Machines for Pattern Recognition" in: Data Mining and Knowledge Discovery2, 1998, 121-167

Page 2: Stützvektormethode (SVM)

Universität Dortmund

250 +2

Erinnerung: Funktionslernen Gegeben:

Beispiele X in LE– die anhand einer Wahrscheinlichkeitsverteilung P auf X erzeugt wurden

und

– mit einem Funktionswert Y = t(X) versehen sind (alternativ: Eine Wahrscheinlichkeitsverteilung P(Y|X) der möglichen Funktionswerte).

H die Menge von Funktionen in LH.

Ziel: Eine Hypothese h(X) H, die das erwartete Fehlerrisiko R(h) minimiert.

Risiko:

x

xPhxQhR )(),()(

Page 3: Stützvektormethode (SVM)

Universität Dortmund

250 +3

Beispiel: Funktionenlernen

• H = { fa | fa(x) = 1 für x a, fa(x) = -1 sonst, a}

• R(f0) = 0,25 + 0 + 0,20 = 0,45

• R(f1,5) = 0 + 0 + 0,20 = 0,20

• R(f3,5) = 0 + 0,5 + 0,05 = 0,55

1 2 3

50%

0%

0%

25%

5%

20%

Page 4: Stützvektormethode (SVM)

Universität Dortmund

250 +4

Reale Beispiele

• Klassifikation: Q(x,h) = 0, falls t(x) = h(x), 1 sonst

– Textklassifikation (x = Worthäufigkeiten)– Handschriftenerkennung (x = Pixel in Bild)– Vibrationsanalyse in Triebwerken (x = Frequenzen)– Intensivmedizinische Therapie (x = Vitalzeichen)

• Regression: Q(x,h) = (t(x)-h(x))2

– Zeitreihenprognose (x = Zeitreihe, t(x) = nächster Wert)

Page 5: Stützvektormethode (SVM)

Universität Dortmund

250 +5

Erinnerung: Minimierung des beobachteten Fehlers

Funktionslernaufgabe nicht direkt lösbar. Problem:

• Die tatsächliche Funktion t(X) ist unbekannt.

• Die zugrunde liegende Wahrscheinlichkeit ist unbekannt.

Ansatz:

• eine hinreichend große Lernmenge nehmen und für diese den Fehler minimieren.

Empirical Risk Minimization

Page 6: Stützvektormethode (SVM)

Universität Dortmund

250 +6

Beispiel

Page 7: Stützvektormethode (SVM)

Universität Dortmund

250 +7

Beispiel II

Page 8: Stützvektormethode (SVM)

Universität Dortmund

250 +8

Probleme der ERM

• Aufgabe ist nicht eindeutig beschrieben: Mehrere Funktionen mit minimalem Fehler existieren. Welche wählen?

• Overfitting: Verrauschte Daten und zu wenig Beispiele führen zu falschen Ergebnissen.

Page 9: Stützvektormethode (SVM)

Universität Dortmund

250 +9

Beispiel III

Page 10: Stützvektormethode (SVM)

Universität Dortmund

250 +10

Einführung

• Bernhard Schölkopf, Alexander Smola „Learning with Kernels“ MIT Press 2002

• Zwei-Klassen-Problem:– Trainingsdaten (x1, y1), ..., (xm, ym), xmX, ym {+1, -1}

– Ähnlichkeit eines neuen xi bestimmt yi

– Ähnlichkeitsmaß k: X X (x, x‘) k(x, x‘)z.B. Skalarprodukt x*x‘:= [x]i [x‘]i

Page 11: Stützvektormethode (SVM)

Universität Dortmund

250 +11

Grundbegriffe

• Skalarprodukt x*y: Seien x und y Vektoren aus

• Euklidsche Länge (Betrag) eines Vektors ||x||:

• Hyperebene H: Sei w0 der Normalenvektor und b der bias

ip

ii yxyx

1

*

p

2

1

1

2*

p

iixxxx

0*),( bxwxbwH

Page 12: Stützvektormethode (SVM)

Universität Dortmund

250 +12

Warum Skalarprodukt?

• Cosinus des Winkels zwischen x und x‘, wenn beide Vektoren auf die Länge 1 normiert sind.

• Abstand zwischen x und x‘ ist Länge des Differenzvektors.

• Voraussetzung: Beispiele sind Vektoren.• Überführung in einen Raum mit Skalarprodukt : XH

• Wenn X bereits ein Raum mit Skalarprodukt ist, kann nicht-lineare Abbildung auch sinnvoll sein.

Page 13: Stützvektormethode (SVM)

Universität Dortmund

250 +13

Einfachster Lernalgorithmus

• Beispiele in einem Raum mit Skalarprodukt.• Durchschnitt einer Klasse:

in der Mitte liegt Punkt c:=(c+ + c-)/2Vektor x-c verbindetneues Beispiel und c

• Ähnlichkeit zum Durchschnitt einer Klasse:Winkel zwischen w:=c+ - c- und x-c

• Berechnen über Skalarprodukt!

1

1

1

1

i

i

yii

yii

xm

c

xm

c

Anzahl positiver Beispiele: m+

Page 14: Stützvektormethode (SVM)

Universität Dortmund

250 +14

Lernalgorithmus im Bild

c+

c-

w

c

x

x-c

Page 15: Stützvektormethode (SVM)

Universität Dortmund

250 +15

Lernalgorithmus in Formeln

bcxcxsign

cccxcxsign

cccccccxcxsign

ccccxsign

wcxsigny

22

22

2

12

1

2

1

2

1

2

12/

Page 16: Stützvektormethode (SVM)

Universität Dortmund

250 +16

Entscheidungsfunktion

Wir setzen nun die Mittelwerte für c+ und c- ein:

bxxkm

xxkm

sign

bxxm

xxm

signy

ii

ii

yii

yii

yii

yii

}{}{

}{}{

,1

,1

*1

*1

Das neue Beispiel wird also mit allen Trainingsbeispielen verglichen.

Page 17: Stützvektormethode (SVM)

Universität Dortmund

250 +17

Fast...

... wäre das schon die Stützvektormethode. Aber:• Einfach den Mittelpunkt der Beispiele einer Klasse

zu berechnen ist zu einfach, um ein ordentliches w zu bekommen.

• Man erhält so nicht die optimale Hyperebene.

Page 18: Stützvektormethode (SVM)

Universität Dortmund

250 +18

Die optimale Hyperebene• Beispiele heißen linear trennbar, wenn es

eine Hyperebene H gibt, die die positiven und negativen Beispiele voneinander trennt.

• H heißt optimale Hyperebene, wenn ihr Abstand d zum nächsten positiven und zum nächsten negativen Beispiel maximal ist.

• Satz: Es existiert eine eindeutig bestimmte optimale Hyperebene.

H

dd

Page 19: Stützvektormethode (SVM)

Universität Dortmund

250 +19

Grundbegriffe II

• Der Normalenvektor steht senkrecht auf allen Vektoren der Hyperebene. Es gilt:

Raumnegativenimxfalls

Haufxfalls

Raumpositivenimxfalls

bxw

0

0

0

*

Page 20: Stützvektormethode (SVM)

Universität Dortmund

250 +20

Bild

w

w*x+b=+1

w*x+b=-1

w*x+b=0

Skalieren von w und b, so dass |w*x+b|=1 für alle Beispiele am nächsten zur Hyperebene.

Page 21: Stützvektormethode (SVM)

Universität Dortmund

250 +21

Separierende Hyperebene

• Beispiele in Form von Vektoren x aus p und Klassifikation y=+1 (positive Beispiele) oder y=-1 (negative Beispiele) E={ [x1,y1], [x2,y2], ..., [xm,ym]}

• Separierende Hyperebene H:positive Beispiele im positiven Halbraum,negative Beispiele im negativen Halbraum,x*w+b=0 für Punkte auf der Hyperebene.

• Der Abstand von H zum Ursprung ist b / ||w|| • Die Separierbarkeit erfüllen viele Hyperebenen.

Page 22: Stützvektormethode (SVM)

Universität Dortmund

250 +22

Margin für separierbare Beispiele

• Abstand d+ von H zum nächsten positiven Beispiel

• Abstand d- von H zum nächsten negativen Beispiel

• Margin: d+ + d-

• H1• H2

zusammengefasst:• Der Abstand von H1 zum Ursprung ist |1-b | / ||w|| • Der Abstand von H2 zum Ursprung ist |–1-b | / ||w||

• d+ = d- = 1 / ||w|| und margin = 2 / ||w||

01*:

11*

11*

bxwyx

ybeibwx

ybeibwx

iii

ii

ii

Page 23: Stützvektormethode (SVM)

Universität Dortmund

250 +23

Margin

• H1 und H2 sind parallel, haben denselben Normalenvektor w.

• Per Konstruktion liegt kein Beispiel zwischen H1 und H2.

• Um 2 / ||w|| zu maximieren, müssen wir ||w|| minimieren.

• Die Nebenbedingungen müssen eingehalten werden:

H

dd

H1

H2

01*: bwxyi ii

Page 24: Stützvektormethode (SVM)

Universität Dortmund

250 +24

Minimieren der Länge

• Um die geometrische Breite zu maximieren, müssen wir die Länge von w minimieren.Wir können genauso gut w*w minimieren.

• So finden wir nun eine eindeutige Hyperebene aus den vielen möglichen trennenden.

• Für alle Beispiele ist sie richtig: f(xi)>0 gdw. yi>0

• Wir können sie anwenden, um neue unklassifizierte Beobachtungen zu klassifizieren:f(x)=w*x+b das Vorzeichen gibt die Klasse an.

w

1

Page 25: Stützvektormethode (SVM)

Universität Dortmund

250 +25

Optimierungsaufgabe

• Minimiere ||w||2

• so dass für alle i gilt: f(xi) = w*xi+b 1 für yi = 1 und f(xi) = w*xi+b -1 für yi = -1

• Äquivalente Nebenbedingungen: yi*f(xi) –1 0

• Konvexes, quadratisches Optimierungsproblem eindeutig in O(n3) für n Beispiele lösbar.

• Satz: ||w|| = 1/d, d = Breite der optimalen Hyperebene bzgl. der Beispiele.

Page 26: Stützvektormethode (SVM)

Universität Dortmund

250 +26

Lagrange-Funktion

• Sei das Optimierungsproblem gegeben, f(w) zu minimieren unter der Nebenbedingung gi(w)0 i=1,...,m, dann ist die Lagrange-Funktion

• Dabei muss gelten• Für Ungleichheitsbedingungen werden -

Multiplikatoren eingeführt, Gleichheitsbedingungen werden direkt eingesetzt.

• Es ist leichter, Vektor zu bestimmen, als direkt nach der Erfüllung der Bedingungen zu suchen.

m

iii wgwfwL

1

)()(),(

0i

Page 27: Stützvektormethode (SVM)

Universität Dortmund

250 +27

Optimierungsfunktion als Lagrange

• Minimiere L(w,b,)!

• Eine optimale Lösung zeichnet sich durch die folgenden notwendigen Bedingungen an aus:

• L soll bezüglich w und b minimiert, bezüglich maximiert werden.

1*2

1),,(

1

2

bwxywbwL ii

m

ii

ii

m

ii xyw

1

01

i

m

ii y

Page 28: Stützvektormethode (SVM)

Universität Dortmund

250 +28

Karush-Kuhn-Tucker Bedingungen• Für das primale Optimierungsproblem gelten die KKT Bedingungen gdw. w, b, die Lösung ist.

i Beispiele, v Attribute der Beispiele=Komponenten der Vektoren

01*:

0:

01*

0),,(

,...,10),,( ,

bxwyi

i

bwxy

ybwLb

dvxywbwLw

iii

i

ii

iii

iviiiv

v

Page 29: Stützvektormethode (SVM)

Universität Dortmund

250 +29

Duales Problem

• Die Gleichheitsbedingungen werden in L(w,b,) eingesetzt.

• Der duale Lagrange-Ausdruck L() soll maximiert werden.

• Das Minimum des ursprünglichen Optimierungsproblems tritt genau bei jenen Werten von w,b, auf wie das Maximum des dualen Problems.

Page 30: Stützvektormethode (SVM)

Universität Dortmund

250 +30

Anschaulich?• Wir wollen w minimieren, also w=0, also Minimum

von w in Richtung des Gradienten suchen.• Die Nebenbedingungen sind entweder weit ab oder

der auf ihnen liegende nächste Punkt zum Minimum gibt das Minimum unter Einhaltung der Nebenbedingungen an.

Yi(w*xi+b)=1

unbeschränkt Nebenbedingung beschränkt

Page 31: Stützvektormethode (SVM)

Universität Dortmund

250 +31

Umformung

m

ii

m

iiii

m

ii

m

iii

m

iiii

m

iiii

m

ii

ii

m

ii

wxyww

bywxyww

bwxyww

bwxyww

11

111

11

1

**2

1

**2

1

**2

1

1**2

1

Bei gutem muss gelten

m

iii y

1

0

Page 32: Stützvektormethode (SVM)

Universität Dortmund

250 +32

Umformung II

• Es gilt für optimalen Vektor wir ersetzen

• Mit den Nebenbedingungen:

und i0

m

iiii xyw

1

m

iii y

1

0

m

i

m

jjijiji

m

ii

m

ii

m

i

m

jjijiji

m

i

m

jjijiji

m

ii

m

iiii

xxyy

xxyyxxyy

wxyww

1 11

11 11 1

11

*2

1

**2

1

**2

1

Page 33: Stützvektormethode (SVM)

Universität Dortmund

250 +33

SVM Optimierungsproblem• Maximiere

unter 0 i für alle i und iyi = 0

• Für jedes Beispiel gibt es ein in der Lösung.– 0 = i heißt, dass das Beispiel xi im passenden Halbraum liegt.

– 0 < i heißt, dass das Beispiel xi auf H1 oder H2 liegt (Stützvektor).

• Es gilt w = iyixi,

– Also f(x) = iyi(xi*x)+b

– Also ist der beste Normalenvektor w eine Linearkombination von Stützvektoren (i0).

n

i

n

jjijiji

n

ii xxyyL

1 121

1

)(

Page 34: Stützvektormethode (SVM)

Universität Dortmund

250 +34

Was wissen wir jetzt?

• Maximieren des Margins einer Hyperebene ergibt eine eindeutige Festlegung der optimalen trennenden Hyperebene.

• Dazu minimieren wir die Länge des Normalenvektors w.– Formulierung als Lagrange-Funktion– Formulierung als duales Optimierungsproblem

• Das Lernergebnis ist eine Linearkombination von Stützvektoren.

• Mit den Beispielen müssen wir nur noch das Skalarprodukt rechnen.

Page 35: Stützvektormethode (SVM)

Universität Dortmund

250 +35

Nicht linear trennbare Daten

• In der Praxis sind linear trennbare Daten selten.

• 1. Ansatz: Entferne eine minimale Menge von Datenpunkten, so dass die Daten linear trennbar werden (minimale Fehlklassifikation).

• Problem: Algorithmus wird exponentiell.

?

Page 36: Stützvektormethode (SVM)

Universität Dortmund

250 +36

Weich trennende Hyperebene

• Wähle C>0 und minimiere

• so dass für alle i gilt: f(xi) = w*xi+b 1-i für yi = 1 und f(xi) = w*xi+b -1+i für yi = -1

• Äquivalent: yi*f(xi) 1- i

n

iiCw

1

2

+1 f

Page 37: Stützvektormethode (SVM)

Universität Dortmund

250 +37

Bedeutung von und

f(x)=0 f(x)=1f(x)=-1

=0, =0

>1, =C0<<1, 0<<C

=0, 0<C

Beispiele xi mit i>0 heißen Stützvektoren SVM