Zum Inhalt springen

Support Vector Machine (SVM) – einfach erklärt!

Support Vector Machines (SVMs) sind mathematische Algorithmen, die im Bereich des Machine Learnings genutzt werden, um Objekte zu klassifizieren. Im Bereich der Text- oder Bildklassifizierung weisen sie Vorteile gegenüber Neural Networks auf, da sie schneller trainierbar sind und auch mit wenigen Trainingsdaten bereits gute Ergebnisse liefern.

Wie funktionieren Support Vector Machines?

Angenommen wir haben Daten mit zwei Klassen (blau, gelb) und zwei Features (x, y). Die SVM soll anhand der Ausprägung von x und y entscheiden, ob das Datenobjekt als blau oder gelb klassifiziert wird. Da wir nur zwei Dimensionen haben, können wir unsere Trainingsdaten in einem Koordinatensystem abbilden.

Das Bild zeigt ein Koordinatensystem mit zwei Klassen von Daten in blau und gelb.
Trainingsdaten für Support Vector Machine

Die Support Vector Machine liefert als Ergebnis die sogenannte Hyperplane, welche am besten die beiden Gruppen voneinander trennt. Im zweidimensionalen Raum ist das eine einfache Linie. Anhand dieser Ebene wird entschieden, in welche Klasse ein Datenobjekt fällt. In unserem Beispiel werden alle Objekte links der Hyperplane als „gelb“ klassifiziert und alle rechts davon als „blau“.

Das Bild zeigt zwei Klassen in einem Diagramm, die mithilfe eines SVM klassifiziert wurden.
Beste Hyperplane

Die Support Vector Machine versucht in verschiedenen Trainingsdurchläufen die Hyperplane so zu wählen, dass die Gap maximal wird. Diese misst den Abstand vom nächsten Element jeder Gruppe zu der Hyperplane. Wenn dieser maximal ist, bedeutet dies, dass die Ebene so gewählt wurde, dass die SVM beide Klassen so stark wie möglich voneinander trennt.

Wie verhält es sich mit Nicht-linearen Daten?

Leider können reale Anwendungen nicht immer durch eine einfache Linie so sauber getrennt werden, wie in unserem Beispiel. Indem wir den Datensatz nur etwas verändern, wird das Problem direkt deutlich komplexer.

Das Beispiel zeigt zwei Datenklassen, bei der eine Gruppe um den Ursprung verteilt ist und die andere Gruppe weiter weg liegt.
Nicht-Linearer Datensatz

Obwohl wir die beiden Datengruppen mit dem Auge deutlich unterscheiden können, lassen sie sich nicht mit einer einfach linearen Hyperplane abgrenzen. Eine Möglichkeit um die Support Vector Machines trotzdem nutzen zu können ist, eine neue Dimension einzuführen und diese so zu erstellen, dass die Datenpunkte in einem höherdimensionalen Raum durch eine Hyperplane trennbar sind.

Da dies nicht nur teilweise sehr schwierig sein kann, sondern auch in den meisten Fällen rechnerisch sehr komplex wird und den Algorithmus unnötig aufbläht, werden wir auf diese Alternative in diesem Beitrag nicht näher eingehen.

Wie funktioniert der Kernel Trick für Support Vector Klassifizierung?

Statt solche nicht-linearen Datensätze mithilfe von neuen Dimensionen klassifizieren zu können, wird für Support Vector Machines stattdessen der sogenannte Kernel Trick genutzt. Unser Problem ist, dass SVMs Datenklassen nur mithilfe von linearen Hyperplanes voneinander trennen können. Deshalb müssen wir die nicht-linearen Daten so abändern, dass sie sich auch mit einem linearen Zusammenhang voneinander trennen lassen. Dazu müssen wir einen höherdimensionalen Raum finden, in dem die Daten linear trennbar sind.

Mathematisch gesehen entspricht dies einem Optimierungsproblem, wie wir es weiter oben bereits gesehen haben. Wir wollen die Hyperplane finden, die den maximalen Abstand zu dem nächsten Datenpunkt aus jeder Klasse hat. Wenn wir einen nicht-linearen Datensatz haben, taucht in dieser Optimierungsfunktion auch die sogenannte Mappingfunktion auf. Diese ordnet jedem Datenobjekt den Punkt im höher-dimensionalen Raum zu, in dem die Daten durch eine Hyperplane trennbar sind.

Das größte Problem ist dabei, eben dieses Mapping zu finden, das wir für die Berechnung des Optimierungsproblems benötigen. Theoretisch gibt es nämlich eine unendliche Menge an Funktionen, die dieses Problem für uns löst. Unserem Computer wollen wir jedoch nicht zumuten, alle diese Möglichkeiten durchrechnen zu müssen. Deshalb kommt uns ein mathematisches Theorem zur Hilfe, nämlich das sogenannte Mercer’s Theorem.

In einfachen Worten sagt es nämlich aus, dass wir zur Lösung unseres Optimierungsproblem gar nicht das genaue Mapping kennen müssen. Es reicht aus, wenn wir wissen, wie wir die Vektoren der Datenpunkte miteinander verrechnen können. Für diese Operation gibt es die sogenannten Kernel-Funktionen (bspw. Gauss-Kernel oder Spektrum-Kernel). Jede Funktion, die das Mercer Theorem erfüllt, ist eine Kernel-Funktion und kann statt einem expliziten Mapping genutzt werden. Das vereinfacht uns die Optimierung von nicht-linear trennbaren Daten ungemein.

Was sind die Vor- und Nachteile von SVMs?

VorteileNachteile
Einfaches Training des ModellsFinden der richtigen Kernelfunktion und Parameter kann rechenintensiv sein
Support Vector Machines skalieren gut für höher-dimensionale DatenSupport Vector Machines können Noise nicht gut filtern
Gute Alternative zu Neural NetworksBenötigt mehr Datensätze als Anzahl an Features um zu funktionieren
kann für linear und nicht-linear trennbare Daten genutzt werdenKeine Wahrscheinlichkeitsinterpretation des Ergebnisses (entscheidet ausschließlich die Seite der Hyperplane)
Abwägungen bei SVMs

Das solltest Du mitnehmen

  • Support Vector Machines sind Machine Learning Algorithmen zur Klassifizierung von Datenobjekten.
  • SVMs versuchen die beste sogenannte Hyperplane zu finden, welche die Datengruppen am deutlichsten voneinander trennt.
  • Wenn die Daten nicht mit einem linearen Element, bspw. einer Geraden oder einer Ebene, trennbar sind, können wir den sogenannten Kernel-Trick nutzen.
  • SVMs sind gute Alternativen zu neuronalen Netzen bei der Klassifizierung von Objekten.

Andere Beiträge zum Thema Support Vector Machines

close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner