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 hH 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,...,xln 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 : (2iD2+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(ax*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,y2. 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