KI 101
Was sind Support-Vektor-Maschinen?

Was sind Support-Vektor-Maschinen?
Support-Vektor-Maschinen sind eine Art von maschinellem Lernalgorithmus, der als einer der beliebtesten Klassifizierer gilt. Support-Vektor-Maschinen sind besonders nützlich für numerische Vorhersagen, Klassifizierungen und Mustererkennungsaufgaben.
Support-Vektor-Maschinen funktionieren, indem sie Entscheidungsgrenzen zwischen Datenpunkten zeichnen, wobei sie darauf abzielen, die Entscheidungsgrenze zu finden, die die Datenpunkte am besten in Klassen trennt (oder am generalisierbarsten ist). Das Ziel bei der Verwendung einer Support-Vektor-Maschine ist, dass die Entscheidungsgrenze zwischen den Punkten so groß wie möglich ist, sodass der Abstand zwischen einem gegebenen Datenpunkt und der Grenzlinie maximiert wird. Das ist eine kurze Erklärung, wie Support-Vektor-Maschinen (SVMs) funktionieren, aber lassen Sie uns genauer betrachten, wie SVMs funktionieren und die Logik hinter ihrer Funktionsweise verstehen.
Ziel von Support-Vektor-Maschinen
Stellen Sie sich ein Diagramm mit einer Reihe von Datenpunkten vor, die auf der Grundlage von Merkmalen bestimmt werden, die durch die X- und Y-Achsen angegeben sind. Die Datenpunkte im Diagramm können grob in zwei verschiedene Cluster unterteilt werden, und der Cluster, zu dem ein Datenpunkt gehört, zeigt die Klasse des Datenpunkts an. Nehmen Sie nun an, wir möchten eine Linie durch das Diagramm zeichnen, die die beiden Klassen voneinander trennt, mit allen Datenpunkten einer Klasse auf einer Seite der Linie und allen Datenpunkten, die zu einer anderen Klasse gehören, auf der anderen Seite der Linie. Diese Trennlinie wird als Hyperplane bezeichnet.
Sie können sich eine Support-Vektor-Maschine als “Straßen” in einer Stadt vorstellen, die die Stadt in Bezirke auf beiden Seiten der Straße unterteilt. Alle Gebäude (Datenpunkte), die auf einer Seite der Straße liegen, gehören zu einem Bezirk.

Das Ziel einer Support-Vektor-Maschine ist nicht nur, Hyperplanen zu zeichnen und Datenpunkte zu trennen, sondern die Hyperplane zu zeichnen, die die Datenpunkte mit dem größten Abstand trennt, oder mit dem meisten Abstand zwischen der Trennlinie und einem gegebenen Datenpunkt. Wenn wir zur “Straßen”-Metapher zurückkehren, wenn ein Stadtplaner Pläne für eine Autobahn zeichnet, möchte er nicht, dass die Autobahn zu nah an Häusern oder anderen Gebäuden liegt. Je größer der Abstand zwischen der Autobahn und den Gebäuden auf beiden Seiten, desto besser. Der größere dieser Abstand, desto “sicherer” kann der Klassifizierer bei seinen Vorhersagen sein. Im Falle der binären Klassifizierung bedeutet das Zeichnen der richtigen Hyperplane, eine Hyperplane zu wählen, die genau in der Mitte der beiden verschiedenen Klassen liegt. Wenn die Entscheidungsgrenze/Hyperplane weiter von einer Klasse entfernt ist, wird sie näher an eine andere Klasse liegen. Daher muss die Hyperplane den Abstand zwischen den beiden verschiedenen Klassen ausbalancieren.
Berechnung der Trennhyperplane
Wie bestimmt eine Support-Vektor-Maschine die beste Trennhyperplane/Entscheidungsgrenze? Dies geschieht durch die Berechnung möglicher Hyperplanen mit einer mathematischen Formel. Wir werden die Formel für die Berechnung von Hyperplanen nicht im Detail behandeln, aber die Linie wird mit der berühmten Steigungs-/Linienformel berechnet:
Y = ax + b
Während Linien aus Punkten bestehen, bedeutet dies, dass jede Hyperplane als die Menge von Punkten beschrieben werden kann, die parallel zur vorgeschlagenen Hyperplane verlaufen, wie durch die Gewichte des Modells mal die Menge von Merkmalen modifiziert durch einen bestimmten Offset/Versatz (“d”) bestimmt.
SVMs zeichnen viele Hyperplanen. Zum Beispiel ist die Grenzlinie eine Hyperplane, aber die Datenpunkte, die der Klassifizierer berücksichtigt, liegen auch auf Hyperplanen. Die Werte für x werden auf der Grundlage der Merkmale im Datensatz bestimmt. Wenn Sie beispielsweise einen Datensatz mit den Körpergrößen und Gewichten vieler Menschen hätten, wären die Merkmale “Körpergröße” und “Gewicht” die Merkmale, die zur Berechnung des “X” verwendet würden. Die Abstände zwischen der vorgeschlagenen Hyperplane und den verschiedenen “Support-Vektoren” (Datenpunkten), die auf beiden Seiten der Trennhyperplane liegen, werden mit der folgenden Formel berechnet:
W * X – b
Während Sie mehr über die Mathematik hinter SVMs lesen können, wenn Sie ein intuitiveres Verständnis davon suchen, wissen Sie einfach, dass das Ziel darin besteht, den Abstand zwischen der vorgeschlagenen Trennhyperplane/Grenzlinie und den anderen Hyperplanen, die parallel dazu verlaufen (und auf denen die Datenpunkte liegen), zu maximieren.

Photo: ZackWeinberg via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)
Multiklassifikation
Der beschriebene Prozess gilt für binäre Klassifizierungsaufgaben. Allerdings können SVM-Klassifizierer auch für nicht-binäre Klassifizierungsaufgaben verwendet werden. Wenn Sie SVM-Klassifizierung auf einem Datensatz mit drei oder mehr Klassen durchführen, werden mehrere Trennlinien verwendet. Wenn beispielsweise eine Klassifizierungsaufgabe drei Klassen hat, anstelle von zwei, werden zwei Trennlinien verwendet, um die Datenpunkte in Klassen zu unterteilen, und die Region, die eine einzelne Klasse umfasst, liegt zwischen zwei Trennlinien, anstelle von einer. Anstelle der Berechnung des Abstands zwischen nur zwei Klassen und einer Entscheidungsgrenze muss der Klassifizierer nun die Abstände zwischen den Entscheidungsgrenzen und den mehreren Klassen im Datensatz berücksichtigen.
Nicht-lineare Trennungen
Der beschriebene Prozess gilt für Fälle, in denen die Daten linear trennbar sind. Beachten Sie, dass Datensätze in der Realität fast nie vollständig linear trennbar sind, was bedeutet, dass Sie bei der Verwendung eines SVM-Klassifizierers oft zwei verschiedene Techniken verwenden müssen: weiche Margin und Kernel-Tricks. Betrachten Sie eine Situation, in der Datenpunkte verschiedener Klassen gemischt sind, mit einigen Instanzen, die zu einer Klasse gehören, in dem “Cluster” einer anderen Klasse. Wie könnte der Klassifizierer diese Instanzen verarbeiten?
Eine Taktik, die verwendet werden kann, um nicht-linear trennbare Datensätze zu verarbeiten, ist die Anwendung eines “weichen Margin”-SVM-Klassifizierers. Ein weicher Margin-Klassifizierer funktioniert, indem er einige fehlklassifizierte Datenpunkte akzeptiert. Er wird versuchen, eine Linie zu zeichnen, die die Cluster von Datenpunkten am besten voneinander trennt, da sie die meisten Instanzen enthalten, die zu ihren jeweiligen Klassen gehören. Der weiche Margin-SVM-Klassifizierer versucht, eine Trennlinie zu erstellen, die die beiden Anforderungen des Klassifizierers ausbalanciert: Genauigkeit und Abstand. Er wird versuchen, die Fehlklassifizierung zu minimieren, während er gleichzeitig den Abstand maximiert.
Die Toleranz des SVM für Fehler kann durch Manipulation eines Hyperparameters namens “C” angepasst werden. Der C-Wert kontrolliert die Anzahl der Support-Vektoren, die der Klassifizierer bei der Zeichnung von Entscheidungsgrenzen berücksichtigt. Der C-Wert ist eine Strafe, die auf Fehlklassifizierungen angewendet wird, was bedeutet, dass der größere C-Wert die geringere Anzahl von Support-Vektoren ist, die der Klassifizierer berücksichtigt, und der schmalere Abstand.

Der Kernel-Trick transformiert die Daten in nicht-linearer Weise. Photo: Shiyu Ju via Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)
Der Kernel-Trick funktioniert, indem er nicht-lineare Transformationen auf die Merkmale im Datensatz anwendet. Der Kernel-Trick nimmt die vorhandenen Merkmale im Datensatz und erstellt neue Merkmale durch die Anwendung nicht-linearer mathematischer Funktionen. Was aus der Anwendung dieser nicht-linearen Transformationen resultiert, ist eine nicht-lineare Entscheidungsgrenze. Da der SVM-Klassifizierer nicht mehr auf die Zeichnung linearer Entscheidungsgrenzen beschränkt ist, kann er beginnen, gekrümmte Entscheidungsgrenzen zu zeichnen, die die tatsächliche Verteilung der Support-Vektoren besser umschließen und Fehlklassifizierungen minimieren. Zwei der beliebtesten SVM-nicht-linearen Kerne sind Radial-Basis-Funktion und Polynom. Die Polynomfunktion erstellt polynomische Kombinationen aller vorhandenen Merkmale, während die Radial-Basis-Funktion neue Merkmale durch Messen des Abstands zwischen einem zentralen Punkt/Punkten und allen anderen Punkten erzeugt.












