www.wikidata.de-de.nina.az
Eine Support Vector Machine seˈpɔːt ˈvekte meˈʃiːn SVM die Ubersetzung aus dem Englischen Stutzvektormaschine oder Stutzvektormethode ist nicht gebrauchlich dient als Klassifikator vgl Klassifizierung und Regressor vgl Regressionsanalyse Eine Support Vector Machine unterteilt eine Menge von Objekten so in Klassen dass um die Klassengrenzen herum ein moglichst breiter Bereich frei von Objekten bleibt sie ist ein sogenannter Large Margin Classifier dt Breiter Rand Klassifikator Support Vector Machines sind keine Maschinen im herkommlichen Sinne bestehen also nicht aus greifbaren Bauteilen Es handelt sich um ein rein mathematisches Verfahren der Mustererkennung das in Computerprogrammen umgesetzt wird Der Namensteil machine weist dementsprechend nicht auf eine Maschine hin sondern auf das Herkunftsgebiet der Support Vector Machines das maschinelle Lernen Inhaltsverzeichnis 1 Grundlegende Funktionsweise 2 Mathematische Umsetzung 2 1 Linear separierbare Daten 2 2 Nicht linear separierbare Daten 2 3 Losung 2 3 1 Klassische Losung Uberfuhrung in ein duales Problem 2 3 2 Losung mittels stochastischen Gradientenabstiegs 2 4 Nichtlineare Erweiterung mit Kernelfunktionen 3 Geschichte 4 Software 5 Literatur 6 EinzelnachweiseGrundlegende Funktionsweise Bearbeiten nbsp Zwei mogliche Trenngeraden mit verschiedenen RandgrossenAusgangsbasis fur den Bau einer Support Vector Machine ist eine Menge von Trainingsobjekten fur die jeweils bekannt ist welcher Klasse sie zugehoren Jedes Objekt wird durch einen Vektor in einem Vektorraum reprasentiert Aufgabe der Support Vector Machine ist es in diesen Raum eine Hyperebene einzupassen die als Trennflache fungiert und die Trainingsobjekte in zwei Klassen teilt Der Abstand derjenigen Vektoren die der Hyperebene am nachsten liegen wird dabei maximiert Dieser breite leere Rand soll spater dafur sorgen dass auch Objekte die nicht genau den Trainingsobjekten entsprechen moglichst zuverlassig klassifiziert werden Beim Einsetzen der Hyperebene ist es nicht notwendig alle Trainingsvektoren zu beachten Vektoren die weiter von der Hyperebene entfernt liegen und gewissermassen hinter einer Front anderer Vektoren versteckt sind beeinflussen Lage und Position der Trennebene nicht Die Hyperebene ist nur von den ihr am nachsten liegenden Vektoren abhangig und auch nur diese werden benotigt um die Ebene mathematisch exakt zu beschreiben Diese nachstliegenden Vektoren werden nach ihrer Funktion Stutzvektoren engl support vectors genannt und verhalfen den Support Vector Machines zu ihrem Namen nbsp Lineare TrennbarkeitEine Hyperebene kann nicht verbogen werden sodass eine saubere Trennung mit einer Hyperebene nur dann moglich ist wenn die Objekte linear trennbar sind Diese Bedingung ist fur reale Trainingsobjektmengen im Allgemeinen nicht erfullt Support Vector Machines verwenden im Fall nichtlinear trennbarer Daten den Kernel Trick um eine nichtlineare Klassengrenze einzuziehen Die Idee hinter dem Kernel Trick ist den Vektorraum und damit auch die darin befindlichen Trainingsvektoren in einen hoherdimensionalen Raum zu uberfuhren In einem Raum mit genugend hoher Dimensionsanzahl im Zweifelsfall unendlich wird auch die verschachteltste Vektormenge linear trennbar In diesem hoherdimensionalen Raum wird nun die trennende Hyperebene bestimmt Bei der Rucktransformation in den niedrigerdimensionalen Raum wird die lineare Hyperebene zu einer nichtlinearen unter Umstanden sogar nicht zusammenhangenden Hyperflache welche die Trainingsvektoren sauber in zwei Klassen trennt Bei diesem Vorgang stellen sich zwei Probleme Die Hochtransformation ist enorm rechenlastig und die Darstellung der Trennflache im niedrigdimensionalen Raum im Allgemeinen unwahrscheinlich komplex und damit praktisch unbrauchbar An dieser Stelle setzt der Kernel Trick an Verwendet man zur Beschreibung der Trennflache geeignete Kernelfunktionen die im Hochdimensionalen die Hyperebene beschreiben und trotzdem im Niedrigdimensionalen gutartig bleiben so ist es moglich die Hin und Rucktransformation umzusetzen ohne sie tatsachlich rechnerisch ausfuhren zu mussen Auch hier genugt ein Teil der Vektoren namlich wiederum die Stutzvektoren um die Klassengrenze vollstandig zu beschreiben Sowohl lineare als auch nichtlineare Support Vector Machines lassen sich durch zusatzliche Schlupfvariablen flexibler gestalten Die Schlupfvariablen erlauben es dem Klassifikator einzelne Objekte falsch zu klassifizieren bestrafen aber gleichzeitig jede derartige Fehleinordnung Auf diese Weise wird zum einen Uberanpassung vermieden zum anderen wird die benotigte Anzahl an Stutzvektoren gesenkt Mathematische Umsetzung BearbeitenDie SVM bestimmt anhand einer Menge von Trainingsbeispielen x i y i i 1 m y i 1 1 displaystyle mathbf x i y i mid i 1 dotsc m y i in 1 1 nbsp eine Hyperebene die beide Klassen moglichst eindeutig voneinander trennt Anschaulich bedeutet das Folgendes Ein Normalenvektor w displaystyle mathbf w nbsp beschreibt eine Gerade durch den Koordinatenursprung Senkrecht zu dieser Geraden verlaufen Hyperebenen Jede schneidet die Gerade in einer bestimmten Entfernung b w 2 displaystyle tfrac b mathbf w 2 nbsp vom Ursprung gemessen in der Gegenrichtung zu w displaystyle mathbf w nbsp Diese Entfernung nennt man Bias Gemeinsam bestimmen der Normalenvektor und der Bias eindeutig eine Hyperebene und fur die zu ihr gehorenden Punkte x displaystyle mathbf x nbsp gilt w x b 0 displaystyle langle mathbf w mathbf x rangle b 0 nbsp Fur Punkte die nicht auf der Hyperebene liegen ist der Wert nicht Null sondern positiv auf der Seite zu der w displaystyle mathbf w nbsp zeigt bzw negativ auf der anderen Seite Durch das Vorzeichen kann man die Seite benennen auf der der Punkt liegt Wenn die Hyperebene die beiden Klassen voneinander trennt dann ist das Vorzeichen fur alle Punkte der einen Klasse positiv und fur alle Punkte der anderen Klasse negativ Ziel ist nun eine solche Hyperebene zu finden Druckt man in den Trainingsbeispielen die Klassenzugehorigkeit durch y i 1 displaystyle y i pm 1 nbsp aus dann ergibt das eine formelmassige Bedingung y i sgn w x i b displaystyle y i operatorname sgn langle mathbf w mathbf x i rangle b nbsp Wenn uberhaupt eine solche Hyperebene existiert dann gibt es gleich unendlich viele die sich nur minimal unterscheiden und teilweise sehr dicht an der einen oder anderen Klasse liegen Dann besteht aber die Gefahr dass Datenpunkte denen man zukunftig begegnet auf der falschen Seite der Hyperebene liegen und somit falsch interpretiert werden Die Hyperebene soll daher so liegen dass der kleinste Abstand der Trainingspunkte zur Hyperebene das sogenannte Margin von englisch margin Marge maximiert wird um eine moglichst gute Generalisierbarkeit des Klassifikators zu garantieren Das sogenannte Training hat das Ziel die Parameter w displaystyle mathbf w nbsp und b displaystyle b nbsp dieser besten Hyperebene zu berechnen Die Hyperebene wird dann als Entscheidungsfunktion benutzt Das heisst man geht davon aus dass auch fur zukunftige Datenpunkte das berechnete Vorzeichen die Klassenzugehorigkeit richtig wiedergeben wird Insbesondere kann ein Computer die Klassifikation leicht und automatisch ausfuhren indem er einfach das Vorzeichen berechnet Linear separierbare Daten Bearbeiten Viele Lernalgorithmen arbeiten mit einer Hyperebene die im Zweidimensionalen durch eine lineare Funktion dargestellt werden kann Sind zwei Klassen von Beispielen durch eine Hyperebene voneinander trennbar d h linear separierbar gibt es jedoch in der Regel unendlich viele Hyperebenen die die beiden Klassen voneinander trennen Die SVM unterscheidet sich von anderen Lernalgorithmen dadurch dass sie von allen moglichen trennenden Hyperebenen diejenige mit minimaler quadratischer Norm w 2 2 displaystyle mathbf w 2 2 nbsp auswahlt so dass gleichzeitig y i w x i b 1 displaystyle y i langle mathbf w mathbf x i rangle b geq 1 nbsp fur jedes Trainingsbeispiel x i displaystyle mathbf x i nbsp gilt Dies ist mit der Maximierung des kleinsten Abstands zur Hyperebene dem Margin aquivalent Nach der statistischen Lerntheorie ist die Komplexitat der Klasse aller Hyperebenen mit einem bestimmten Margin geringer als die der Klasse aller Hyperebenen mit einem kleineren Margin Daraus lassen sich obere Schranken fur den erwarteten Generalisierungsfehler der SVM ableiten Das Optimierungsproblem kann dann geschrieben werden als Minimiere den Term 1 2 w 2 2 displaystyle frac 1 2 mathbf w 2 2 nbsp durch Anpassung der Variablen w b displaystyle mathbf w b nbsp so dass die Nebenbedingung y i w x i b 1 displaystyle y i langle mathbf w mathbf x i rangle b geq 1 nbsp fur alle 1 i m displaystyle 1 leq i leq m nbsp gilt Nicht linear separierbare Daten Bearbeiten In der Regel sind die Trainingsbeispiele nicht streng linear separierbar Dies kann u a an Messfehlern in den Daten liegen oder daran dass die Verteilungen der beiden Klassen naturlicherweise uberlappen Fur diesen Fall wird das Optimierungsproblem derart verandert dass Verletzungen der m displaystyle m nbsp Nebenbedingungen moglich sind die Verletzungen aber so klein wie moglich gehalten werden sollen Zu diesem Zweck wird eine positive Schlupfvariable 3 i displaystyle xi i nbsp fur jede Nebenbedingung eingefuhrt deren Wert gerade die Verletzung der Nebenbedingungen ist 3 i gt 0 displaystyle xi i gt 0 nbsp bedeutet also dass die Nebenbedingung verletzt ist Da in der Summe die Verletzungen moglichst klein gehalten werden sollen wird die Summe der Fehler der Zielfunktion hinzugefugt und somit ebenso minimiert Zusatzlich wird diese Summe mit einer positiven Konstante C displaystyle C nbsp multipliziert die den Ausgleich zwischen der Minimierung von 1 2 w 2 2 displaystyle frac 1 2 mathbf w 2 2 nbsp und der korrekten Klassifizierung der Trainingsbeispiele regelt Das Optimierungsproblem besitzt dann folgende Form Minimiere den Term 1 2 w 2 2 C i 1 m 3 i displaystyle frac 1 2 mathbf w 2 2 C sum i 1 m xi i nbsp durch Anpassung der Variablen w b 3 i displaystyle mathbf w b xi i nbsp sodass die Nebenbedingung y i w x i b 1 3 i displaystyle y i langle mathbf w x i rangle b geq 1 xi i nbsp fur alle 1 i m displaystyle 1 leq i leq m nbsp gilt Losung Bearbeiten Klassische Losung Uberfuhrung in ein duales Problem Bearbeiten Siehe auch Lagrange Dualitat Beide Optimierungskriterien sind konvex und konnen mit modernen Verfahren effizient gelost werden Diese einfache Optimierung und die Eigenschaft dass Support Vector Machines eine Uberanpassung an die zum Entwurf des Klassifikators verwendeten Testdaten grossteils vermeiden haben der Methode zu grosser Beliebtheit und einem breiten Anwendungsgebiet verholfen nbsp Beispiel fur eine Klassifizierung mit einer SVM Zu sehen ist die in den Eingangsraum abgebildete trennende Hyperebene schwarze Linie und die Support Vektoren dunn turkis umkreist Das oben beschriebene Optimierungsproblem wird normalerweise in seiner dualen Form gelost Diese Formulierung ist aquivalent zu dem primalen Problem in dem Sinne dass alle Losungen des dualen auch Losungen des primalen Problems sind Die Umrechnung ergibt sich dadurch dass der Normalenvektor w displaystyle mathbf w nbsp als Linearkombination aus Trainingsbeispielen geschrieben werden kann w i 1 m a i y i x i displaystyle mathbf w sum i 1 m alpha i y i mathbf x i nbsp Die duale Form wird mit Hilfe der Lagrange Multiplikatoren und den Karush Kuhn Tucker Bedingungen hergeleitet Sie lautet Maximiere fur a displaystyle mathbf alpha colon nbsp i 1 m a i 1 2 i 1 m j 1 m a i a j y i y j x i x j displaystyle sum i 1 m alpha i frac 1 2 sum i 1 m sum j 1 m alpha i alpha j y i y j langle mathbf x i mathbf x j rangle nbsp sodass die Nebenbedingungen 0 a i C displaystyle 0 leq alpha i leq C nbsp und i 1 m a i y i 0 displaystyle sum i 1 m alpha i y i 0 nbsp gelten Damit ergibt sich als Klassifikationsregel f x sgn w x b sgn i 1 m a i y i x i x b displaystyle f mathbf x operatorname sgn langle mathbf w x rangle b operatorname sgn left sum i 1 m alpha i y i langle mathbf x i x rangle b right nbsp Ihren Namen hat die SVM von einer speziellen Untermenge der Trainingspunkte deren Lagrangevariablen a i 0 displaystyle alpha i neq 0 nbsp sind Diese heissen Support Vektoren und liegen entweder auf dem Margin falls y i w x b 1 displaystyle y i langle mathbf w x rangle b 1 nbsp oder innerhalb des Margin 3 i gt 0 displaystyle xi i gt 0 nbsp Losung mittels stochastischen Gradientenabstiegs Bearbeiten SVMs konnen mit stochastischem Gradientenabstieg trainiert werden 1 Nichtlineare Erweiterung mit Kernelfunktionen Bearbeiten Der oben beschriebene Algorithmus klassifiziert die Daten mit Hilfe einer linearen Funktion Diese ist jedoch nur optimal wenn auch das zu Grunde liegende Klassifikationsproblem linear ist In vielen Anwendungen ist dies aber nicht der Fall Ein moglicher Ausweg ist die Daten in einen Raum hoherer Dimension abzubilden ϕ R d 1 R d 2 x ϕ x displaystyle phi colon mathbb R d 1 rightarrow mathbb R d 2 mathbf x mapsto phi mathbf x nbsp Dabei gilt d 1 lt d 2 displaystyle d 1 lt d 2 nbsp Durch diese Abbildung wird die Anzahl moglicher linearer Trennungen erhoht Theorem von Cover 2 SVMs zeichnen sich dadurch aus dass sich diese Erweiterung sehr elegant einbauen lasst In das dem Algorithmus zu Grunde liegende Optimierungsproblem in der zuletzt dargestellten Formulierung gehen die Datenpunkte x i displaystyle mathbf x i nbsp nur in Skalarprodukten ein Daher ist es moglich das Skalarprodukt x i x j displaystyle langle mathbf x i mathbf x j rangle nbsp im Eingaberaum R d 1 displaystyle mathbb R d 1 nbsp durch ein Skalarprodukt im R d 2 displaystyle mathbb R d 2 nbsp zu ersetzen und ϕ x i ϕ x j displaystyle langle phi mathbf x i phi mathbf x j rangle nbsp stattdessen direkt zu berechnen Die Kosten dieser Berechnung lassen sich sehr stark reduzieren wenn stattdessen eine positiv definite Kernelfunktion benutzt wird k x i x j ϕ x i ϕ x j displaystyle k mathbf x i mathbf x j langle phi mathbf x i phi mathbf x j rangle nbsp Durch dieses Verfahren kann eine Hyperebene d h eine lineare Funktion in einem hochdimensionalen Raum implizit berechnet werden Der resultierende Klassifikator hat die Form f x sgn w ϕ x b sgn i 1 m a i y i k x i x b displaystyle f mathbf x operatorname sgn langle mathbf w mathbf phi x rangle b operatorname sgn left sum i 1 m alpha i y i k mathbf x i mathbf x b right nbsp mit w i 1 m a i y i ϕ x i displaystyle textstyle mathbf w sum i 1 m alpha i y i phi mathbf x i nbsp Durch die Benutzung von Kernelfunktionen konnen SVMs auch auf allgemeinen Strukturen wie Graphen oder Strings operieren und sind daher sehr vielseitig einsetzbar Obwohl durch die Abbildung ϕ displaystyle phi nbsp implizit ein moglicherweise unendlich dimensionaler Raum benutzt wird generalisieren SVM immer noch sehr gut Es lasst sich zeigen dass fur Maximum Margin Klassifizierer der erwartete Testfehler beschrankt ist und nicht von der Dimensionalitat des Raumes abhangt Geschichte BearbeitenDie Idee der Trennung durch eine Hyperebene hatte bereits 1936 Ronald A Fisher 3 Wieder aufgegriffen wurde sie 1958 von Frank Rosenblatt in seinem Beitrag 4 zur Theorie kunstlicher neuronaler Netze Die Idee der Support Vector Machines geht auf die Arbeit von Wladimir Wapnik und Alexei Jakowlewitsch Tscherwonenkis 5 zuruck Auf theoretischer Ebene ist der Algorithmus vom Prinzip der strukturellen Risikominimierung motiviert das besagt dass nicht nur der Trainingsfehler sondern auch die Komplexitat des verwendeten Modells die Generalisierungsfahigkeit eines Klassifizierers bestimmen Der eigentliche Durchbruch gelang Wapnik mit Bernhard Boser und Isabelle Guyon 1992 Verwendung des Kernel Tricks 6 Ebenfalls zu den Pionieren gehort eine weitere Mitarbeiterin von Wapnik bei den Bell Labs Anfang der 1990er Jahre Corinna Cortes 7 In der Mitte der 1990er Jahre gelang den SVMs der Durchbruch und zahlreiche Weiterentwicklungen und Modifikationen wurden in den letzten Jahren veroffentlicht Software BearbeitenBibliotheken fur SVMs libsvm implementiert in C und portiert nach Java liblinear implementiert in C und portiert nach Java SVMlight basiert auf CSoftware fur Maschinelles Lernen und Data Mining die SVMs enthalten GNU Octave verwendet SVMlight KNIME Matlab verwendet libsvm SVMlight und Spider RapidMiner verwendet libsvm und eine in Java implementierte SVM Scikit learn verwendet libsvm und liblinear Shogun verwendet libsvm und SVMlight WEKA verwendet libsvm und SpiderSVM Module fur Programmiersprachen Auswahl Perl hat Module fur libsvm und SVMlight R hat Pakete basierend auf libsvm Paket e1071 8 SVMlight Paket klaR 9 und hat das Paket kernlab 10 fur Kernel Lernen mit SVMs Ruby hat Module fur libsvm und SVMlightLiteratur BearbeitenBernhard Scholkopf Alex Smola Learning with Kernels Support Vector Machines Regularization Optimization and Beyond Adaptive Computation and Machine Learning MIT Press Cambridge MA 2002 ISBN 0 262 19475 9 Ingo Steinwart Andreas Christmann Support Vector Machines Springer New York 2008 ISBN 978 0 387 77241 7 602 pp Nello Cristianini John Shawe Taylor Kernel Methods for Pattern Analysis Cambridge University Press Cambridge 2004 ISBN 0 521 81397 2 Christopher J C Burges A Tutorial on Support Vector Machines for Pattern Recognition Data Mining and Knowledge Discovery 2 2 121 167 1998 Vladimir Vapnik Statistical Learning Theory Wiley Chichester GB 1998 Vladimir Vapnik The Nature of Statistical Learning Theory Springer Verlag New York NY USA 1995 Einzelnachweise Bearbeiten David Forsyth Probability and Statistics for Computer Science Springer 2017 ISBN 978 3 319 64410 3 google com abgerufen am 21 Oktober 2021 Scholkopf Smola Learning with Kernels MIT Press 2001 Fisher R A 1936 The use of multiple measurements in taxonomic problems in Annals of Eugenics 7 179 188 doi 10 1111 j 1469 1809 1936 tb02137 x Rosenblatt F 1958 The Perceptron a Probabilistic Model for Information Storage and Organisation in the Brain in Psychological Review 62 386 S 386 408 doi 10 1037 h0042519 Vapnik und Chervonenkis Theory of Pattern Recognition 1974 dt Ubersetzung Wapnik und Tschervonenkis Theorie der Mustererkennung 1979 Bernhard Boser Isabelle Guyon Vladimir Vapnik A training algorithm for optimal margin classifiers COLT 92 Proceedings of the fifth annual workshop on Computational learning theory 1992 S 144 152 Cortes Vapnik Support vector networks Machine Learning Band 20 1995 S 273 297 David Meyer et al R Paket e1071 Misc Functions of the Department of Statistics Probability Theory Group Formerly E1071 TU Wien In CRAN The R Foundation abgerufen am 14 Mai 2016 englisch aktuelle Version 1 6 7 Uwe Ligges et al R Paket klaR Classification and visualization In CRAN The R Foundation abgerufen am 14 Mai 2016 englisch aktuelle Version 0 6 12 Alexandros Karatzoglou Alex Smola Kurt Hornik R Paket kernlab Kernel Based Machine Learning Lab In CRAN The R Foundation abgerufen am 14 Mai 2016 englisch aktuelle Version 0 9 24 Normdaten Sachbegriff GND 4505517 8 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Support Vector Machine amp oldid 235908985