Eine Support-Vektor-Maschine (SVM) ist ein überwachter Algorithmus für maschinelles Lernen, der Daten klassifiziert, indem er eine optimale Linie oder Hyperebene findet, die den Abstand zwischen den einzelnen Klassen in einem N-dimensionalen Raum maximiert.
SVMs wurden in den 1990er Jahren von Wladimir N. Vapnik und seinen Kollegen entwickelt und diese Arbeit wurde 1995 in einem Artikel mit dem Titel „Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing“1 veröffentlicht.
SVMs werden häufig innerhalb von Klassifizierungsproblemen verwendet. Sie unterscheiden zwischen zwei Klassen, indem sie die optimale Hyperebene finden, die den Abstand zwischen den nächstgelegenen Datenpunkten der entgegengesetzten Klassen maximiert. Die Anzahl der Merkmale in den Eingabedaten bestimmt, ob die Hyperebene eine Linie in einem 2-D-Raum oder eine Ebene in einem n-dimensionalen Raum ist. Da mehrere Hyperebenen zur Unterscheidung der Klassen gefunden werden können, ermöglicht die Maximierung der Spanne zwischen den Punkten dem Algorithmus, die beste Entscheidungsgrenze zwischen den Klassen zu finden. Dies wiederum ermöglicht eine gute Generalisierung auf neue Daten und genaue Klassifizierungsvorhersagen. Die Linien, die an die optimale Hyperebene angrenzen, werden als Support-Vektoren bezeichnet, da diese Vektoren durch die Datenpunkte verlaufen, die den maximalen Spielraum bestimmen.
Der SVM-Algorithmus wird häufig im Bereich maschinelles Lernen verwendet, da er sowohl lineare als auch nichtlineare Klassifikationsaufgaben bewältigen kann. Wenn die Daten jedoch nicht linear trennbar sind, werden Kernel-Funktionen verwendet, um den höherdimensionalen Raum der Daten zu transformieren, um eine lineare Trennung zu ermöglichen. Diese Anwendung von Kernel-Funktionen kann als „Kernel-Trick“ bezeichnet werden. Die Wahl der Kernel-Funktion, wie z.B. lineare Kernel, Polynom-Kernel, Radial Basis Function (RBF)-Kernel oder Sigmoid-Kernel, hängt von den Dateneigenschaften und dem spezifischen Anwendungsfall ab.
Lineare SVMs werden mit linear trennbaren Daten verwendet. Dies bedeutet, dass die Daten keine Transformationen durchlaufen müssen, um die Daten in verschiedene Klassen zu unterteilen. Die Entscheidungsgrenze und die Unterstützungsvektoren bilden das Erscheinungsbild einer Straße. Professor Patrick Winston vom MIT verwendet die Analogie „ Anpassungder breitesten Straße“2 (Link außerhalb von ibm.com), um dieses quadratische Optimierungsproblem zu beschreiben. Mathematisch lässt sich diese trennende Hyperebene so darstellen:
wx + b = 0
Dabei ist w der Gewichtungsvektor, x der Eingabevektor und b der Verzerrungsbegriff.
Es gibt zwei Methoden zur Berechnung der Marge oder des maximalen Abstands zwischen Klassen, nämlich die Klassifizierung mit harten Margen und die Klassifizierung mit weichen Margen. Wenn wir SVMs mit harter Marge verwenden, werden die Datenpunkte perfekt außerhalb der Unterstützungsvektoren getrennt, oder „von der Straße“, um mit Professor Hintons Analogie fortzufahren. Dies wird durch die Formel dargestellt:
(wxj + b) yj ≥ a,
Dann wird der Rand maximiert, der wie folgt dargestellt wird: max ɣ= a / ||w||, wobei a der Rand ist, der auf w projiziert wird.
Die Klassifizierung mit weicher Marge ist flexibler und lässt durch die Verwendung von Schlupfvariablen (ξ) eine gewisse Fehlklassifizierung zu. Der Hyperparameter C passt den Spielraum an. Ein größerer C-Wert verkleinert den Spielraum für eine minimale Fehlklassifizierung, während ein kleinerer C-Wert den Spielraum vergrößert und mehr falsch klassifizierte Daten zulässt3.
Viele Daten in realen Szenarien sind nicht linear trennbar, und hier kommen nichtlineare SVMs ins Spiel. Um die Daten linear trennbar zu machen, werden Vorverarbeitungsmethoden auf die Trainingsdaten angewendet, um sie in einen höherdimensionalen Merkmalsraum umzuwandeln. Allerdings können höherdimensionale Räume zu mehr Komplexität führen, da das Risiko einer Überanpassung der Daten erhöht und die Rechenleistung erschwert wird. Der „Kernel-Trick“ hilft dabei, einen Teil dieser Komplexität zu reduzieren und die Berechnung effizienter zu machen. Dies geschieht, indem die Berechnungen des Punktprodukts durch eine entsprechende Kernel-Funktion4 ersetzt werden.
Es gibt eine Reihe unterschiedlicher Kerneltypen, die zur Klassifizierung von Daten angewendet werden können. Zu den beliebtesten Kernel-Funktionen gehören:
Polynomischer Kernel
Radialer Basisfunktionskernel (auch bekannt als Gaußscher oder RBF-Kernel)
Sigmoid-Kernel
Die Support Vector Regression (SVR) ist eine Erweiterung der SVMs, die auf Regressionsprobleme angewendet wird (d.h. das Ergebnis ist kontinuierlich). Ähnlich wie lineare SVMs findet die SVR eine Hyperebene mit dem maximalen Abstand zwischen Datenpunkten und wird normalerweise zur Vorhersage von Zeitreihen verwendet.
SVR unterscheidet sich insofern von der linearen Regression, dass Sie die Beziehung zwischen den unabhängigen und abhängigen Variablen angeben muss, die Sie verstehen möchten. Ein Verständnis der Beziehungen zwischen den Variablen und ihren Richtungen ist bei der Verwendung der linearen Regression wertvoll. Dies ist für SVRs nicht notwendig, da sie diese Beziehungen selbst bestimmen.
In diesem Abschnitt werden wir den Prozess der Erstellung eines SVM-Klassifikators diskutieren, und wie er im Vergleich zu anderen überwachten Lernalgorithmen und ihren Anwendungen in der heutigen Industrie abschneidet.
Wie bei anderen Modellen für maschinelles Lernen beginnen Sie mit der Aufteilung Ihrer Daten in einen Trainingssatz und einen Testsatz. Das setzt nebenbei voraus, dass Sie bereits eine explorative Analyse Ihrer Daten durchgeführt haben. Obwohl dies technisch nicht erforderlich ist, um einen SVM-Klassifikator zu erstellen, ist es eine gute Idee, dies vor der Verwendung eines maschinellen Lernmodells umzusetzen, da Sie so fehlende Daten oder Sonderfälle erkennen können.
Importieren Sie ein SVM-Modul aus der Bibliothek Ihrer Wahl, wie scikit-learn (Link befindet sich außerhalb von ibm.com). Trainieren Sie Ihre Trainingsproben mit dem Klassifikator und sagen Sie die Reaktion voraus. Sie können die Leistung auswerten, indem Sie die Genauigkeit des Testsatzes mit den vorhergesagten Werten vergleichen. Möglicherweise möchten Sie andere Auswertungsmetriken verwenden, z. B. f1-score, precision oder recall.
Hyperparameter können abgestimmt werden, um die Leistung eines SVM-Modells zu verbessern. Optimale Hyperparameter können mithilfe von Rastersuch- und Kreuzvalidierungsmethoden gefunden werden, die durch verschiedene Kernel-, Regularisierungs- (C) und Gammawerte iterieren, um die beste Kombination zu finden.
Für denselben Anwendungsfall können verschiedene Klassifikatoren für maschinelles Lernen verwendet werden. Es ist wichtig, verschiedene Modelle zu testen und zu bewerten, um zu verstehen, welche am besten funktionieren. Nichtsdestotrotz kann es hilfreich sein, die Stärken und Schwächen jedes einzelnen zu verstehen, um seine Anwendung für Ihren Anwendungsfall beurteilen zu können.
Sowohl Naive Bayes als auch SVM-Klassifizierungen werden häufig für Textklassifizierungsaufgaben verwendet. SVMs funktionieren tendenziell besser als Naive Bayes, wenn die Daten nicht linear trennbar sind. Allerdings müssen SVMs auf verschiedene Hyperparameter abgestimmt werden und können rechenintensiver sein.
SVMs erzielen bei hochdimensionalen und unstrukturierten Datensätzen, wie z. B. Bild- und Textdaten, in der Regel eine bessere Leistung als die logistische Regression. SVMs sind auch weniger empfindlich gegenüber einer Überanpassung und einfacher zu interpretieren. Allerdings können sie rechenintensiver sein.
SVMs erzielen bei hochdimensionalen Daten eine bessere Leistung und sind im Vergleich zu Decision Trees weniger anfällig für eine Überanpassung. Allerdings lassen sich Decision Trees in der Regel schneller trainieren, insbesondere bei kleineren Datensätzen, und sie sind im Allgemeinen einfacher zu interpretieren.
Ähnlich wie bei anderen Modellvergleichen sind SVMs rechenintensiver zu trainieren und weniger anfällig für Überanpassungen, wohingegen Neural Networks als flexibler und skalierbarer gelten.
Während SVMs für eine Vielzahl von Aufgaben eingesetzt werden können, sind dies einige der beliebtesten Anwendungen von SVMs in verschiedenen Branchen.
SVMs werden häufig in der Verarbeitung natürlicher Sprache (NLP) für Aufgaben wie Stimmungsanalyse, Spam-Erkennung und Themenmodellierung verwendet. Sie eignen sich dafür, da sie bei hochdimensionalen Daten gut funktionieren.
SVM wird bei Bildklassifizierungsaufgaben wie Objekterkennung und Bildabruf eingesetzt. Sie kann auch in Sicherheitsbereichen nützlich sein, indem sie ein Bild als manipuliert klassifiziert.
SVM wird auch zur Proteinklassifizierung, zur Analyse der Genexpression und zur Krankheitsdiagnose verwendet. SVMs werden häufig in der Krebsforschung eingesetzt (Link befindet sich außerhalb von ibm.com), weil sie subtile Trends in komplexen Datensätzen erkennen können.
SVMs können geschichtete geophysikalische Strukturen im Untergrund analysieren und das „Rauschen“ aus elektromagnetischen Daten herausfiltern. Sie haben außerdem dazu beigetragen, das seismische Verflüssigungspotenzial von Böden vorherzusagen, was für den Bereich des Bauwesens von Bedeutung ist.
Trainieren, validieren, optimieren und implementieren Sie generative KI, Foundation Models und maschinelle Lernfunktionen mit IBM watsonx.ai, einem Studio der nächsten Generation für AI Builder in Unternehmen. Erstellen Sie KI-Anwendungen mit einem Bruchteil der Zeit und Daten.
Setzen Sie KI in Ihrem Unternehmen ein – mit branchenführendem Fachwissen im Bereich KI und dem Lösungsportfolio von IBM an Ihrer Seite.
Erfinden Sie kritische Workflows und Abläufe neu, indem Sie KI einsetzen, um Erfahrungen, Entscheidungsfindung in Echtzeit und den geschäftlichen Nutzen zu maximieren.
Alle Links befinden sich außerhalb von ibm.com
1 Support Vector Method für Funktionsapproximation, Regression und Signalverarbeitung
2 Lecture 16 notes on Support Vector Machines, Patrick Winston, MIT, 2010
3 Introduction to Support Vector Machines, Boswell, Dustin, Caltech, 2002
4 Support vector machines, Sontag, David, New York University