stützvektormethode (svm)

38
Universität Dortmund 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: brigid

Post on 18-Mar-2016

45 views

Category:

Documents


3 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

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

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

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

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

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

6

Beispiel

Page 7: Stützvektormethode (SVM)

Universität Dortmund

7

Beispiel II

Page 8: Stützvektormethode (SVM)

Universität Dortmund

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

9

Beispiel III

Page 10: Stützvektormethode (SVM)

Universität Dortmund

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

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

21

1

2*

p

iixxxx

0*),( bxwxbwH

Page 12: Stützvektormethode (SVM)

Universität Dortmund

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

13

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

in der Mitte liegt Punkt c:=(c+ + c-)/2Vektor x-c verbindetneue Beobachtung 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

14

Lernalgorithmus im Bild

c+

c-w

c

xx-c

Page 15: Stützvektormethode (SVM)

Universität Dortmund

15

Lernalgorithmus in Formeln

bcxcxsign

cccxcxsign

cccccccxcxsign

ccccxsignwcxsigny

22

22

21

21

21

21

21

2/

Page 16: Stützvektormethode (SVM)

Universität Dortmund

16

EntscheidungsfunktionWir 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

Die neue Beobachtung wird also mit allen Trainingsbeispielen verglichen.

Page 17: Stützvektormethode (SVM)

Universität Dortmund

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

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

19

Grundbegriffe II• Der Normalenvektor steht senkrecht auf allen

Vektoren der Hyperebene. Es gilt:

RaumnegativenimxfallsHaufxfallsRaumpositivenimxfalls

bxw0

00

*

Page 20: Stützvektormethode (SVM)

Universität Dortmund

20

Bild

w

w*x+b=+1

w*x+b=-1

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

Page 21: Stützvektormethode (SVM)

Universität Dortmund

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

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*

bxwyxybeibwxybeibwx

iii

ii

ii

Page 23: Stützvektormethode (SVM)

Universität Dortmund

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

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.

w1

Page 25: Stützvektormethode (SVM)

Universität Dortmund

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

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

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*21),,(

1

2

bwxywbwL ii

m

ii

ii

m

ii xyw

1

01

i

m

ii y

Page 28: Stützvektormethode (SVM)

Universität Dortmund

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),,( ,

bxwyii

bwxy

ybwLb

dvxywbwLw

iii

i

ii

iii

iviiiv

v

Page 29: Stützvektormethode (SVM)

Universität Dortmund

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

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

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

**21

**21

**21

1**21

Bei gutem muss gelten

m

iii y

1

0

Page 32: Stützvektormethode (SVM)

Universität Dortmund

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

*21

**21

**21

Page 33: Stützvektormethode (SVM)

Universität Dortmund

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

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

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

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

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

Page 38: Stützvektormethode (SVM)

Universität Dortmund

38

Was wissen wir jetzt?• Funktionslernen als allgemeine Lernaufgabe• Minimierung des empirischen Risikos als

Lösungsstrategie• Optimale Hyperebene präzisiert die ERM• Praxis: weich trennende Hyperebene• Berechnung mittels SVM und dualem Problem