Zum Inhalt springen

Support Vector Machine

Die Support Vector Machine (SVM) ist ein überwachter Lernalgorithmus, der zur Klassifikation von Objekten eingesetzt wird. Sie eignet sich besonders für Text- und Bildklassifizierung sowie für kleinere Datensätze mit klarer Trennbarkeit. Die Methode zielt darauf ab, einen optimalen Hyperplane zu finden, der die Klassen trennt, und verwendet den Kernel-Trick, um nicht-lineare Daten zu handhaben.

  • Effizientes Training: Schneller trainierbar im Vergleich zu neuronalen Netzen.
  • Gute Leistung mit wenigen Trainingsdaten.
  • Anwendbar auf lineare und nicht-lineare Daten mit Hilfe des Kernel-Tricks.
  • Funktioniert standardmäßig nur mit linear separierbaren Daten.
  • Bei nicht-linearen Daten erfordert sie eine Kernel-Funktion, was den Rechenaufwand erhöht.

Das Ziel der SVM besteht darin, einen Hyperplane zu finden, der zwei Klassen von Datenpunkten optimal trennt. Der Hyperplane ist eine Trennlinie in zweidimensionalen Räumen oder eine Trennebene in höherdimensionalen Räumen, die die Daten so trennt, dass der Abstand zwischen den nächsten Punkten jeder Klasse und dem Hyperplane maximal ist.

  • Hyperplane: Im p-dimensionalen Raum handelt es sich um einen flachen Unterraum mit p-1 Dimensionen.
    • In 1D: Ein Punkt.
    • In 2D: Eine Linie.
    • In 3D: Eine Ebene.
    • Formel: wTx+b=0w^T x + b = 0, wobei ww der Gewichtungsvektor, xx die Datenpunkte und bb der Bias sind.
  • Support Vectors: Die Punkte, die dem Hyperplane am nächsten liegen und seine Lage bestimmen. Sie sind entscheidend für die Berechnung des Hyperplanes und helfen, Overfitting zu vermeiden.
  • Maximaler Abstand: Der Abstand der nächsten Punkte jeder Klasse zum Hyperplane. Je größer der Abstand, desto besser die Trennung der Klassen. Der Abstand ist proportional zu 1w\frac{1}{\|w\|}, sodass ein kleiner Wert von ww den maximalen Abstand ergibt.
graph TD
    A[Klasse A] -->|Punkte| H[Hyperplane]
    B[Klasse B] -->|Punkte| H
    H -->|Abstand| S[Support Vectors]
    S -->|Maximaler Gap| G[Optimale Trennung]

Wenn Daten nicht linear trennbar sind, reicht ein einfacher Hyperplane nicht aus. Hier kommt der Kernel-Trick zum Einsatz.

Der Kernel-Trick ermöglicht es, Datenpunkte in einen höherdimensionalen Raum zu transformieren, wo sie durch einen linearen Hyperplane trennbar werden. Anstatt die Daten direkt zu übertragen, berechnet er die inneren Produkte der Datenpunkte im neuen Raum mithilfe einer mathematischen Funktion, ohne die tatsächliche Transformation durchzuführen. Dies reduziert den Rechenaufwand.

  • Linearer Kernel: Für linear trennbare Daten.
graph LR
    A[Datenpunkte] -->|Lineare Trennung| H[Hyperplane]
    H -->|Direkte Anwendung| C[Klassifikation]
  • Polynomieller Kernel: Für nicht-lineare Daten, die durch eine polynomiale Trennung separierbar sind.
graph LR
    A[Datenpunkte] -->|Polynomiale Transformation| H[Hyperplane]
    H -->|Nicht-lineare Trennung| C[Klassifikation]
  • Radial Basis Function (RBF): Ein häufig verwendeter Kernel zur Klassifikation von Daten mit nicht-linearen Mustern. Er transformiert die Daten in einen sehr hohen, theoretisch unendlichen dimensionalen Raum.
graph LR
    A[Datenpunkte] -->|RBF-Transformation| H[Hyperplane]
    H -->|Komplexe Trennung| C[Klassifikation]
  • Effiziente Transformation: Die Methode vermeidet den Aufwand der Berechnung eines höherdimensionalen Raums.
  • Anwendung auf komplexe Daten: Sie erzielt gute Ergebnisse auch bei hochkomplexen und nicht-linearen Daten.
  • Erhöhter Rechenaufwand: Bei großen Datensätzen und komplexen Kernel-Funktionen kann der Aufwand erheblich steigen.
  • Auswahl des richtigen Kernels: Die Wahl des geeigneten Kernels und seiner Parameter kann schwierig sein, um optimale Ergebnisse zu erzielen.

Die SVM ist ein leistungsstarker Klassifikationsalgorithmus, der sich besonders für lineare Daten eignet. Bei nicht-linearen Daten kommt der Kernel-Trick zum Einsatz, um die Daten trennbar zu machen. Die Support Vectors bestimmen die Lage des Hyperplanes und vermeiden Overfitting. Der Abstand wird maximiert, um eine möglichst klare Trennung zwischen den Klassen zu erreichen.