VC-Dimension der SVM

Werbung
Universität Dortmund
Lehrstuhl für künstliche Intelligenz
Support Vector Machines
Stefan Rüping
Vorlesung Maschinelles Lernen
und Data Mining, WS 2002/03
Universität Dortmund
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 verrauschte Daten).
H die Menge von Funktionen in LH.
Ziel: Eine Hypothese h(X)  H, die das erwartete Fehlerrisiko R(h) minimiert.
Risiko:
R(h)   Q( x, h) P( x)
x
Universität Dortmund
Beispiel: Funktionenlernen
0%
1
25%
•
•
•
•
50%
2
5%
3
0%
20%
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
Universität Dortmund
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 Alarmfunktion (x = Vitalzeichen)
• Regression: Q(x,h) = (t(x)-h(x)))2
– Zeitreihenprognose (x = Zeitreihe, t(x) = nächster
Wert)
Universität Dortmund
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
Universität Dortmund
Beispiel
Universität Dortmund
Beispiel II
Universität Dortmund
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.
Universität Dortmund
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.
d
d
H
Universität Dortmund
Berechnung der opt. Hyperebene
• Hyperebene
H = {x | w*x+b = 0}
• H trennt (xi,yi), yi{±1}
• H ist optimale
Hyperebene
H
• Entscheidungsfunktion
f(x) = w*x+b
• f(xi) > 0  yi > 0
• ||w|| minimal und
f(xi)  1, wenn yi = 1
f(xi)  -1, wenn yi = -1
+1
-1
f
Universität Dortmund
Optimierungsaufgabe der SVM
• 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 Nebenbedingung: yi*f(xi)  1
• Konvexes, quadratisches Optimierungs-problem
 eindeutig in O(n3) lösbar.
• Satz: ||w|| = 1/d, d = Abstand der optimalen
Hyperebene zu den Beispielen.
Universität Dortmund
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.
?
Universität Dortmund
Weich trennende Hyperebene
w  C  i
2
• Wähle C>0 und minimiere
• so dass für alle i gilt:
f(xi) = w*xi+b  1-i
f(xi) = w*xi+b  -1+i
• Äquivalent: yi*f(xi)  1- i
+1
f
n
i 1
für yi = 1 und
für yi = -1


Universität Dortmund
Duales Optimierungsproblem
• Umformung mit Lagrange-Multiplikatoren
liefert einfacheres Optimierungsproblem:
• Maximiere
W ( )   i  12  yi y j i j xi  x j 
n
i 1
n
n
i 1 j 1
• unter 0  i  C für alle i und iyi = 0
• Es gilt w = iyixi, also f(x) = iyi(xi*x)+b
Universität Dortmund
Bedeutung von  und 
=0, =0
=0, 0<C
0<<1, 0<<C
>1, =C
f(x)=-1
f(x)=0
f(x)=1
Beispiele xi mit i>0 heißen Stützvektoren  SVM
Universität Dortmund
Optimierungsalgorithmus
s = Gradient von W()
while(nicht konvergiert(s))
WS = working_set(s)
‘ = optimiere(WS)
s = update(s, ‘)
// si = j(xj*xi)
// auf  genau
// suche k „gute“ Variablen
// k neue -Werte
// s = Gradient von W(‘)
• Gradientensuchverfahren
• Trick: Stützvektoren allein definieren Lösung
• Weitere Tricks: Shrinking, Caching von xi*xj
Universität Dortmund
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
• Offene Fragen: Generelles Prinzip hinter der
optimalen Hyperebene? Nicht lineare Daten?
Universität Dortmund
Beispiel: Textklassifikation
To: [email protected]
Subject: Astonishing
Guaranteed XXX Pictures
FREE! Gao
In the next 2 minutes you are
going to learn how to get
access to totally FREE xxx
pictures. Let me show you
the secrets I have learned to
get FREE porn passwords.
Indeed, with this in mind lets
take a quick look below to
see what you get, ok?
1
3
2
2
1
0
5
0
2
astonishing
free
in
⋮
pictures
porn
SVM
to
university
XXX
*
SVM
0.1
0.4
0.0
⋮
0.2 > 0
1.1
-0.6
0.0
-0.4
0.9
Universität Dortmund
TCat-Modell
• Typische Dimension: 10.000 – 100.000
• SVM lernt ohne Vorauswahl von Wörtern!
• Text-Categorisierungs-Model:
positive Dokumente
negative Dokumente
Universität Dortmund
Beispiel: Intensivmedizin
 0.014  artsys  174 .00 





0
.
019
artdia

86
.
00




  0.001  artmn  121 .00 






0
.
015
cvp

8
.
00




f ( x)    0.016  hr  79.00   4.368 




 0.026  papsys  26.00 

 0.134  papdia  13.00 





  0.177  papmn  15.00 


  






• Vitalzeichen von
Intensivpatienten
• Alarm geben
oder nicht?
• Hohe
Genauigkeit
• Verständlichkeit?
Universität Dortmund
Bias-Varianz-Problem
• Zu kleiner Hypothesenraum:
Zielfunktion nicht gut genug
approximierbar (Bias)
• Zu großer Hypothesenraum:
Zuviel Einfluß zufälliger
Abweichungen (Varianz)
• Lösung: Minimiere obere
Schranke des Fehlers:
R(h)  Remp(h) + Var(h)
Universität Dortmund
Strukturelle Risikominimierung
1. Ordne die Hypothesen
in Teilmenge gemäß
ihrer Komplexität
2. Wähle in jeder Teilmenge die Hypothese
mit dem geringsten
empirischen Fehler
3. Wähle insgesamt die
Hypothese mit minimaler
Risikoschranke
Schranke(h) =
Remp(h) + Var(h)
Komplexität
Universität Dortmund
Vapnik-Chervonenkis-Dimension
• Definition: Eine Menge H von
Hypothesen zerschmettert eine
Menge E von Beispielen, wenn
jede Teilmenge von E durch ein
hH abgetrennt werden kann.
• Definition: Die VC-Dimension
einer Menge von Hypothesen
H ist die maximale Anzahl von
Beispielen E, die von H
zerschmettert wird.
Universität Dortmund
VC-Dimension von Hyperebenen
Satz: Die VC-Dimension der
Hyperebenen im Rn ist n+1.
Beweis:
• VCdim(Rn)  n+1: Wähle x0 = 0 und
xi = (0,...,0,1,0,...0). Für eine
beliebige Teilmenge A von (x0,...,xn)
setze yi = 1, falls xi  A und yi = –1
sonst. Definiere w = ykxk und
b = y0/2. Dann gilt wx0+b = y0/2 und
wxi+b = yi+y0/2. Also: wx+b trennt A.
• VCdim(Rn)  n+1: Zurückführen auf
die beiden Fälle rechts.
Universität Dortmund
VC-Dim. und Anzahl der Parameter
• Setze f(x) = cos(x) und xi = 10-i, i=1...l. Wähle
yi{-1,1}. Dann gilt für =(1/2(1-yi)10i):
l
 l 1


i
k
i k 
1
xk     2 (1  yi )10 10     2 (1  yi )10 
 i 1

 i 1

l
 k 1 1
i k
i k 
1
1
    2 (1  yi )10  2 (1  yk )   2 (1  yi )10 
i  k 1
 i 1

0    10-1+10-2+ =1/9
(geometrische Reihe)
Vielfaches von 2
Universität Dortmund
VC-Dim. und Anzahl der Parameter
 cos(xk)=cos(z) mit z[0,1/9] für yk=1 und z[1,10/9] für yk=-1
cos
1/
9

2
3
 cos(x) zerschmettert x1,...xl
 cos(x) hat unendliche VC-Dimension
 Die VC-Dimension ist unabhängig von der Anzahl der Parameter!
Universität Dortmund
VC-Dimension der SVM
• Gegeben seien Beispiele x1,...,xln mit
||xi|| < D für alle i. Für die VC-Dimension der
durch den Vektor w gegebenen optimalen
Hyperebene h gilt:
VCdim(h)  min{D2 ||w||2, n}+1
• Die Komplexität einer SVM ist nicht nur durch
die Dimension der Daten beschränkt (Fluch der
hohen Dimension), sondern auch durch die
Struktur der Lösung!
Universität Dortmund
Wozu die ganze Theorie?
Löse ich überhaupt das Lernproblem? SRM garantiert dies!
Empirisches Risiko
Remp(h)
ERM
h : Remp(h) = minh‘ Remp(h‘)
SRM
h : Rsrm(h) = minh‘ Rsrm(h‘)
h fest
n
Erwartetes Risiko
R(h)
n
Optimale Hypothese
h : R(h) = minh‘ R(h‘)
n
Optimale Hypothese
h : R(h) = minh‘ R(h‘)
Universität Dortmund
Was wissen wir jetzt?
• Idee der strukturellen Risikominimierung:
– obere Schranke für das Risiko
– Schrittweise Steigerung der Komplexität
•
•
•
•
Formalisierung der Komplexität: VC-Dimension
SRM als Prinzip der SVM
Garantie für die Korrektheit der Lernstrategie
Offene Frage: Nützlichkeit für die Praxis?
Universität Dortmund
Performanzschätzer
•
•
•
•
Welches erwartete Risiko R(h) erreicht SVM?
R(h) selbst nicht berechenbar
Trainingsfehler (zu optimistisch – Overfitting)
Obere Schranke mittels VC-Dimension (zu
locker)
• Kreuzvalidierung / Leave-One-Out-Schätzer
(ineffizient)
Universität Dortmund
Performanzschätzer II
• Satz: Der Leave-One-Out-Fehler einer
SVM ist beschränkt durch Rl1o  |SV| / n
• Beweis: Falsch klassifizierte Beispiele
werden Stützvektoren. Also: NichtStützvektoren werden korrekt klassifiziert.
Weglassen eines Nicht-Stützvektors
ändert die Hyperebene nicht, daher wird
es auch beim l1o-Test richtig klassifiziert.
Universität Dortmund
Performanzschätzer III
• Satz: Der Leave-One-Out-Fehler einer SVM ist
beschränkt durch Rl1o  |{i : (2iD2+i)1}| / n
(D = Radius des Umkreises um die Beispiele).
• Beweis: Betrachte folgende drei Fälle:
=0, =0
>1, =C
0<<1, 0<<C
Universität Dortmund
Nicht-lineare Daten
Universität Dortmund
Nicht-lineare Daten
Was tun?
• Neue SVM-Theorie entwickeln? (Neeee!)
• Lineare SVM benutzen? („If all you‘ve got is a
hammer, every problem looks like a nail“)
• Transformation in lineares Problem!
x2
x2
(x1,x2) = (x12,x2)
x1
(x1)2
Universität Dortmund
Kernfunktionen
• Erinnerung:
W ( )   i  12  yi y j i j xi  x j 
n
i 1
n
n
i 1 j 1
f(x) = iyi(xi*x)+b
• SVM hängt von x nur über Skalarprodukt x*x‘ ab.
• Ersetze Transformation  und Skalarprodukt *
durch Kernfunktion K(x1,x2) = (x1)*(x2)
X

Z
K
*

Universität Dortmund
Kernfunktionen II
• Angabe von  nicht nötig, einzige Bedingung:
Kernmatrix (K(xi,xj))i,j=1...n muss positiv definit
sein.
• Radial-Basisfunktion: K(x,y) = exp(-||x-y||2)
• Polynom: K(x,y) = (x*y)d
• Neuronale Netze: K(x,y) = tanh(ax*y+b)
• Konstruktion von Spezialkernen durch Summen
und Produkte von Kernfunktionen, Multiplikation
mit positiver Zahl, Weglassen von Attributen
Universität Dortmund
Polynom-Kernfunktionen
• Kd(x,y) = (x*y)d
• Beispiel: d=2, x,y2. K2(x,y) = (x*y)2
= ((x1,x2)*(y1,y2))2 = (x1y1+x2y2)2
= x12y12+2x1y1x2y2+x22y22
= (x12,2x1x2,x22)*(y12,2y1y2,y22)
=: (x)*(y)
Universität Dortmund
RBF-Kernfunktion
exp(-10|x-x0|2)
x0
x
exp(-1|x-x0|2)
x0
x
Universität Dortmund
SVMs für Regression
• Minimiere
n
 n
*
w  C i  i 
i 1
 i 1

2
• so dass für alle i gilt:
f(xi) = w*xi+b  yi + +i* und
f(xi) = w*xi+b  yi -  - i
f(x)+
f(x)
i *
f(x)-
Universität Dortmund
Verlustfunktion
lineare Verlustfunktion
quadratische Verlustfunktion
Q
Q
-
+ f(x)-y
f(x)-y
Universität Dortmund
Duales Optimierungsproblem
• Maximiere
n
n
W ( )   yi (   i )    (   i ) 
i 1
*
i
i 1
*
i
n
1
2
 (
i , j 1
*
i
  i )( *j   j ) K ( xi , x j )
0  i,i*  C für alle i und
i* = i
• Mit yi{-1,+1}, =0 und i=0 für yi=1 und
i*=0 für yi=-1 , erhält man die
Klassifikations-SVM!
• unter
Universität Dortmund
Beispiel: Prognose von Zeitreihen
220
200
180
160
140
120
100
Fenster
Horizont
100
97
94
91
88
85
82
79
73
76
70
67
64
61
58
55
52
49
46
43
40
37
34
31
28
25
22
16
19
13
10
7
4
1
80
Universität Dortmund
Prognose von Zeitreihen
• Trend
• Zyklen
• Besondere Ereignisse (Weihnachten,
Werbung, ...)
• Wieviel vergangene Beobachtungen?
• Ausreißer
Universität Dortmund
SVMs und Datenbanken
• Sehr große Datenmengen (mehrere GB)
• Datenbanken sind nicht auf numerische
Operationen optimiert
• 3 Ansätze:
– Daten aus der Datenbank herausziehen
– Inkrementelles Lernen
– Verarbeitung intern in Datenbank
Universität Dortmund
Inkrementelle SVMs
• Platzbedarf der Kernmatrix quadratisch
• Idee: Schrittweises Lernen auf Teilmengen
Dat.
1
Dat.
2
Dat.
3
Dat.
4
SVM
1
SVM
2
SVM
3
SVM
4
SVs
1
SVs
2
SVs
3
SVs
4
Ergebnis
Universität Dortmund
SVMs in Datenbanken
Daten
bank
Cache
Working-Set
Iteration
•
•
•
•
Optimierung
Zugriff auf Daten geschieht über Kernfunktion
Cache der Zeilen der Kernmatrix
Berechnung der Kernfunktion als SQL-Abfrage
Beobachtung: Gebräuchliche Kernfunktionen
basieren auf Skalarprodukt oder Abstand
Universität Dortmund
Kernfunktion in SQL
• SELECT
x1.att_1 * x2.att_1 + … + x1.att_d * x2.att_d
FROM examples_table x1, examples_table x2
WHERE x1.index = i and x2.index = j
• SELECT <kernel term>
FROM examples_table x1, examples_table x2
WHERE x1.index = I
• SELECT <kernel term>
FROM examples_table x1, examples_table x2,
free_examples f
WHERE x1.index = i AND x2.index = f.index
• Weitere Optimierung durch Ausnutzen der relationalen Struktur im
Cache möglich.
Universität Dortmund
Was man über SVMs wissen muss
• Funktionenlernen – ERM – SRM
• Optimale Hyperebene: Definition,
Berechnung, harte und weiche Trennung
• Nicht-Linearität durch Kernfunktionen
• Idee der SRM, VC-Dimension
• Schätzung der Performanz
• Idee der Regressions-SVM
Herunterladen