Klausurorientierte Zusammenfassung
Support Vector Machines
Basierend auf 40_Ch.9: Support Vector Machines, 48 Folien, KI und ML: Supervised Learning.
1. Hyperebenen und Abstände
Eine Hyperebene wird über eine Konstante und einen Normalenvektor beschrieben. Der Normalenvektor steht orthogonal auf der Hyperebene. Jeder Punkt x auf der Hyperebene erfüllt:
Dabei ist n0 der Achsenabschnitt beziehungsweise Bias-Term, n der Normalenvektor, x ein Featurevektor und d die Anzahl der Features.
Abstand eines Punktes zur Hyperebene
Für einen Punkt p und die Hyperebene E: nTx + n0 = 0 lautet der geometrische Abstand:
Ohne Betrag liefert pTn + n0 einen vorzeichenbehafteten Abstand, wenn n normiert ist. Das Vorzeichen sagt, auf welcher Seite der Hyperebene der Punkt liegt.
2. Lineare binäre Klassifikation
Die Folien betrachten zunächst binäre Klassifikation mit genau zwei Klassen. Ziel ist eine Regel, die die beiden Klassen durch eine Hyperebene trennt. Die Entscheidungsfunktion lautet:
Trennende Hyperebene prüfen
Man kodiert die Klassen als yi = +1 und yi = −1. Ein Datenpunkt (xi, yi) ist korrekt klassifiziert, wenn das Vorzeichen von f(xi) zur Kodierung passt.
Falls die Klassenkodierung andersherum gewählt wird, kann die Bedingung äquivalent mit negativem Vorzeichen auftreten. Wichtig ist nicht das absolute Vorzeichen der Hyperebene, sondern die konsistente Zuordnung zwischen Klasse und Seite.
3. Hard Margin Classifier
Wenn viele Hyperebenen die Daten korrekt trennen, ist nicht jede gleich gut. Eine große Margin bedeutet, dass die Entscheidungsgrenze möglichst weit von den nächsten Trainingspunkten entfernt liegt. Diese nächsten Punkte heißen Supportvektoren.
Warum Supportvektoren die Lösung bestimmen
Nur die Punkte auf den Margin-Grenzen stützen die Lage der optimalen Hyperebene. Kleine Änderungen an Nicht-Supportvektoren verändern die Hyperebene nicht, solange diese Punkte außerhalb der Margin bleiben. Änderungen an Supportvektoren können die Lage der Grenze direkt verschieben.
Margin-Bedingung
Für eine normierte Hyperebene ohne Margin-Verletzung gilt:
M ist die geforderte Margin, m die Anzahl der Beobachtungen. Diese Bedingung setzt voraus, dass n normiert ist; sonst steht links kein geometrischer Abstand.
Optimierungsproblem
Die Folien formulieren die Hard-Margin-Idee als Maximierung der Margin unter Nebenbedingungen:
Hier steht p für die Anzahl der Features. Die Nebenbedingung Σ nj2 = 1 normiert den Normalenvektor. In der Praxis wird das Problem oft in ein quadratisches Optimierungsproblem umformuliert.
4. Soft Margin / Support Vector Classifier
Der Soft Margin Classifier lockert die harte Forderung nach perfekter Trennung. Die Grundidee: Die meisten Punkte sollen gut getrennt werden, aber einzelne Punkte dürfen innerhalb der Margin oder sogar auf der falschen Seite der Hyperebene liegen.
Slack-Variablen
Für jeden Trainingspunkt gibt es eine Slack-Variable εi. Sie misst, wie stark der Punkt die Margin-Bedingung verletzt. Ein Budget C begrenzt in der Foliennotation die Summe dieser Verletzungen.
| Größe | Bedeutung | Klausurinterpretation |
|---|---|---|
| εi = 0 | Keine Margin-Verletzung | Punkt liegt korrekt außerhalb oder auf der Margin-Grenze. |
| 0 < εi < M | Innerhalb der Margin | Punkt ist meist noch korrekt klassifiziert, aber zu nah an der Grenze. |
| εi ≥ M | Starke Verletzung | Punkt kann auf der falschen Seite der Hyperebene liegen. |
cost, bedeutet aber eine Strafstärke: größeres cost bestraft Verletzungen stärker. Immer die jeweilige Dokumentation oder Vorlesungsdefinition verwenden.
5. Kernel und Feature-Räume
Warum lineare Grenzen nicht immer reichen
Manche Daten lassen sich im ursprünglichen Feature-Raum nicht sinnvoll linear trennen. Das liegt nicht nur an einem schlecht gewählten Soft-Margin-Parameter: Eine lineare Entscheidungsgrenze kann strukturell ungeeignet sein.
Feature-Raum erweitern
Eine Lösung ist, zusätzliche Features zu erzeugen, zum Beispiel Potenzen und Produkte der ursprünglichen Variablen. Ein linearer Klassifikator im erweiterten Raum kann im ursprünglichen Raum eine nichtlineare Grenze erzeugen.
Das Problem: Polynome höherer Ordnung werden numerisch schnell schwierig. Außerdem ist vorab unklar, welcher Polynomgrad oder welche Feature-Kombination ausreicht.
Distanzfeatures als Motivation für Kernel
Die Folien zeigen eine 1D-Situation: Im ursprünglichen Raum sind die Klassen nicht durch einen Punkt trennbar. Wenn man aber als zweites Feature den Abstand zu einem geeigneten Referenzpunkt verwendet, entsteht eine lineare Trennmöglichkeit im erweiterten Raum.
Der entscheidende Schritt: Statt einen einzelnen Referenzpunkt manuell zu wählen, kann man alle Trainingspunkte als Referenzen betrachten. Ein Kernel fasst diese Idee über eine parametrisierte Ähnlichkeits- oder innere-Produkt-Funktion zusammen.
Radial-Kernel
K ist die Kernelfunktion, γ steuert die Reichweite des Kernels, p ist die Featurezahl, und xj beziehungsweise x′j sind die j-ten Komponenten der beiden Vektoren. Große Werte von γ machen den Kernel lokaler und können zu sehr flexiblen Grenzen führen; kleine Werte glätten stärker.
Kernel-Trick
Der Kernel-Trick vermeidet, die hochdimensionale Transformation explizit auszurechnen. Statt direkt mit ϕ(x) zu arbeiten, berechnet man nur innere Produkte im transformierten Raum:
Der Raum ℋ kann sehr hochdimensional oder beim Radial-Kernel sogar unendlich-dimensional sein. Man muss ϕ aber nicht explizit bilden; es reicht, K auszuwerten.
Vorhersage mit Kernel-SVM
Die Hyperebene im hochdimensionalen Raum kann durch Trainingspunkte und Gewichte beschrieben werden:
Die Gewichte αi werden im Training bestimmt. Punkte mit αi = 0 werden für die Vorhersage nicht benötigt; Punkte mit αi ≠ 0 sind Supportvektoren. Die Folien verwenden in der Kernel-Summe n als Anzahl der Trainingspunkte; an anderer Stelle steht dafür m.
6. Mehrklassen-SVM und Modellwahl
SVMs mit mehr als zwei Klassen
Die bisherige SVM-Formulierung ist binär. Für K Klassen nutzt man typischerweise Reduktionsstrategien:
| Strategie | Prinzip | Entscheidungsregel | Wann sinnvoll? |
|---|---|---|---|
| One-vs-All | Trainiere K binäre Klassifikatoren: jede Klasse gegen den Rest. | Ordne x* der Klasse mit größtem Score f̂k(x*) zu. | Gut, wenn K groß ist und Rechenaufwand zählt. |
| One-vs-One | Trainiere alle paarweisen Klassifikatoren. | Mehrheitsentscheidung über die paarweisen Siege. | Oft bevorzugt, wenn K nicht zu groß ist. |
Modellwahl
Wenn Klassen fast exakt trennbar sind, können Soft-Margin-Klassifikatoren besser passen als logistische Regression oder LDA, weil die Margin-Idee die Grenze an den kritischsten Punkten ausrichtet. Wenn die Trennung nicht klar ist, können logistische Regression und Soft-Margin-SVM ähnlich wirken.
Wenn Wahrscheinlichkeiten benötigt werden, sind logistische Regression oder LDA naheliegender. Es gibt SVM-Varianten mit Wahrscheinlichkeiten, aber die Standard-SVM liefert primär Scores und Klassenentscheidungen. Für nichtlineare Daten sind Kernel-SVMs besonders relevant; Kernelideen können prinzipiell auch bei anderen Verfahren verwendet werden.
cost oder γ kann je nach Software und Vorlesungsnotation anders skaliert oder anders herum interpretiert werden. In Klausuren zählt die Definition aus der Aufgabe.
7. Lab und Implementierung
Der Lab-Teil nutzt R, die Pakete e1071 und ggplot2, einen künstlichen nichtlinearen Datensatz und eine SVM mit radialem Kernel.
Grundworkflow in R
library(e1071)
library(ggplot2)
set.seed(123)
x1 <- runif(100, -2, 2)
x2 <- runif(100, -2, 2)
y <- ifelse(x1^2 + x2^2 < 1.5, "Class_A", "Class_B")
dat <- data.frame(x1 = x1, x2 = x2, y = factor(y))
svm_model <- svm(
y ~ .,
data = dat,
kernel = "radial",
cost = 10,
gamma = 1
)
Für die Visualisierung wird ein Gitter über den Feature-Raum gelegt. Das Modell sagt für jeden Gitterpunkt eine Klasse voraus. Daraus entstehen farbige Entscheidungsregionen und eine Konturlinie als Entscheidungsgrenze.
Moons-Datensatz
Die Moons-Aufgabe prüft, ob man die Modellidee übertragen kann: Ein linearer Kernel wird die halbmondförmigen Klassen typischerweise schlecht trennen, ein radialer Kernel kann die gekrümmte Struktur erfassen.
kernel = "linear" zu kernel = "radial"? Erwartung: Der lineare Kernel erzeugt eine Gerade und scheitert bei halbmondförmigen Klassen; der radiale Kernel erzeugt eine flexible nichtlineare Entscheidungsgrenze.
8. Klausurteil
Typische Aufgaben und Rechenwege
- Abstand berechnen: Setze den Punkt in f(x) ein, bilde ∥n∥, teile den Betrag des Scores durch die Norm.
- Trennung prüfen: Berechne yi · f(xi) für alle Punkte. Positiv bedeutet korrekt unter der gewählten Kodierung.
- Margin prüfen: Stelle zuerst sicher, dass der Normalenvektor normiert ist. Dann prüfe yi · f(xi) ≥ M.
- Supportvektoren identifizieren: Hard Margin: Punkte auf den Margin-Grenzen. Soft Margin: Punkte auf der Grenze, innerhalb der Margin oder falsch klassifiziert.
- Slack-Budget prüfen: Summiere die εi. Die Bedingung der Folien ist erfüllt, wenn Σ εi ≤ C.
- RBF-Kernel berechnen: Quadrierte Distanz komponentenweise aufsummieren, mit −γ multiplizieren, Exponentialfunktion anwenden.
- OVA/OVO zählen: One-vs-All benötigt K Klassifikatoren, One-vs-One benötigt K(K−1)/2.
Häufige Fehler
cost und γ müssen immer gemäß Aufgabenstellung interpretiert werden.
Kompakte Lerncheckliste
- Ich kann die Gleichung einer Hyperebene erklären und alle Variablen benennen.
- Ich kann den Abstand eines Punktes zur Hyperebene berechnen und das Vorzeichen interpretieren.
- Ich kann prüfen, ob eine Hyperebene binäre Daten trennt.
- Ich kann Margin und Supportvektoren in einer Grafik erkennen.
- Ich kann das Hard-Margin-Optimierungsproblem erklären.
- Ich kann erklären, warum Hard Margin bei realen Daten oft scheitert.
- Ich kann Slack-Variablen εi und das Budget C interpretieren.
- Ich kann erklären, warum Feature-Erweiterungen nichtlineare Grenzen erzeugen.
- Ich kann den Radial-Kernel berechnen und die Rolle von γ beschreiben.
- Ich kann den Kernel-Trick in Worten und mit Formel erklären.
- Ich kann OVA und OVO unterscheiden und die Anzahl der Klassifikatoren bestimmen.
- Ich kann begründen, wann SVM, logistische Regression, LDA oder Kernel-SVM naheliegend sind.
- Ich kann den R-Lab-Code grob lesen und erklären, warum ein radialer Kernel beim Moons-Datensatz sinnvoll ist.
Mögliche Klausurfragen
- Definieren Sie eine Hyperebene in ℝd und erklären Sie die Rolle des Normalenvektors.
- Berechnen Sie den Abstand eines gegebenen Punktes zu einer angegebenen Hyperebene.
- Prüfen Sie anhand von yi · f(xi), ob eine Hyperebene alle Trainingspunkte korrekt trennt.
- Erklären Sie den Unterschied zwischen trennender Hyperebene und Hard-Margin-Hyperebene.
- Identifizieren Sie in einer Grafik die Supportvektoren und begründen Sie Ihre Wahl.
- Formulieren und interpretieren Sie die Nebenbedingungen des Hard-Margin-Problems.
- Erklären Sie, warum Soft Margin bei nicht exakt trennbaren Daten eingesetzt wird.
- Interpretieren Sie vorgegebene Slack-Werte εi und prüfen Sie das Budget C.
- Zeigen Sie anhand eines Beispiels, wie eine Feature-Erweiterung eine nichtlineare Grenze im Originalraum erzeugt.
- Berechnen Sie einen Radial-Kernelwert für zwei Featurevektoren.
- Erklären Sie den Kernel-Trick ohne explizite Berechnung von ϕ.
- Vergleichen Sie OVA und OVO für ein Klassifikationsproblem mit K Klassen.
- Welche Modellwahl ist sinnvoll, wenn Wahrscheinlichkeiten benötigt werden?
- Warum kann
kernel = "radial"beim Moons-Datensatz funktionieren, während ein linearer Kernel scheitert?
9. Abdeckungstabelle
| Folie/Kapitel | Inhalt | In Zusammenfassung enthalten? | Wo behandelt? |
|---|---|---|---|
| 1 | Titel: Support Vector Machines | Ja | Titel und Einordnung |
| 2 | Erinnerung: Hyperebenen | Ja | Abschnitt 1 |
| 3 | Definition Hyperebene, Normalenvektor | Ja | Abschnitt 1 |
| 4 | Abstand zur Hyperebene, vorzeichenbehafteter Abstand | Ja | Abschnitt 1, Prüfungsfalle |
| 5 | Erinnerung: Margin Classifier | Ja | Abschnitt 3 |
| 6 | Klassifikation mit Hyperebenen, Hard/Soft Margin | Ja | Abschnitte 2-4 |
| 7 | Binäre Klassifikation: Beispiel | Ja, mit Bild | Abschnitt 2, Abbildung Folie 7 |
| 8 | Trennende Hyperebenen | Ja, mit Bild | Abschnitt 2, Abbildung Folie 8 |
| 9 | Bedingung für trennende Hyperebene | Ja | Abschnitt 2, Formel und Rechenweg |
| 10 | Welche trennende Hyperebene ist am besten? | Ja | Übergang zu Abschnitt 3 |
| 11 | Hard Margin, Margin, Supportvektoren | Ja, mit Bild | Abschnitt 3, Abbildung Folie 11 |
| 12 | Warum Supportvektoren? | Ja | Abschnitt 3 |
| 13 | Margin-Bedingung prüfen | Ja | Abschnitt 3, Formel und Klausurteil |
| 14 | Maximierung des Margins | Ja | Abschnitt 3, Optimierungsproblem |
| 15 | Grenzen des Hard Margins | Ja, mit Bild | Abschnitt 3, Abbildung Folie 15 |
| 16 | Erinnerung Soft Margin / Support Vector Classification | Ja | Abschnitt 4 |
| 17 | Support Vector Classifier, Margin-Verletzer | Ja, mit Bild | Abschnitt 4, Abbildung Folie 17 |
| 18 | Soft-Margin-Optimierung mit εi und C | Ja | Abschnitt 4, Formel und Tabelle |
| 19 | Kernel | Ja | Abschnitt 5 |
| 20 | Lineare Entscheidungsgrenze kann fehlschlagen | Ja, mit Bild | Abschnitt 5, Abbildung Folie 20 |
| 21 | Erweiterung des Feature-Raumes | Ja | Abschnitt 5 |
| 22 | Kubisches Polynom | Ja, mit Bild und Formel | Abschnitt 5, Abbildung Folie 22 |
| 23 | Probleme polynomieller Erweiterung | Ja | Abschnitt 5 |
| 24 | Alternative Erweiterung bei 1D-Daten | Ja | Abschnitt 5, Distanzfeatures |
| 25 | Alternative Erweiterung: Distanzen | Ja, mit Bild | Abschnitt 5, Abbildung Folie 25 |
| 26 | Trennende Hyperebene im Distanzraum | Ja, mit Bild | Abschnitt 5, Abbildung Folie 26 |
| 27 | Alle Trainingspunkte als Referenzen, Radial-Kernel | Ja, mit Bild | Abschnitt 5, Abbildung Folie 27 |
| 28 | Kernel-Trick | Ja | Abschnitt 5, Kernel-Trick |
| 29 | Kernel-Trick: Motivation und Kernel-Eigenschaften | Ja | Abschnitt 5, Prüfungsfalle |
| 30 | Hyperebene und Skalarprodukt | Ja | Abschnitt 5, Kernel-Trick |
| 31 | Skalarprodukt als inneres Produkt | Ja | Abschnitt 5 |
| 32 | Kernel als inneres Produkt im transformierten Raum | Ja | Abschnitt 5, Formel mit ϕ |
| 33 | Hyperebene im hochdimensionalen Raum | Ja | Abschnitt 5, Vorhersageformel |
| 34 | Bedeutung von αi, Supportvektoren | Ja | Abschnitt 5 |
| 35 | Vorhersage und Klassenbestimmung über Vorzeichen | Ja | Abschnitt 5, Vorhersage mit Kernel-SVM |
| 36 | Zusätzliche Überlegungen | Ja | Abschnitt 6 |
| 37 | SVMs für mehr als zwei Klassen: OVA/OVO | Ja | Abschnitt 6, Tabelle |
| 38 | Welches Modell wann auswählen? | Ja | Abschnitt 6, Modellwahl |
| 39 | Implementierungsdetails und Parameterunterschiede | Ja | Abschnitt 6, Prüfungsfalle |
| 40 | Fragen? | Keine Fachinhalte | Im Aufbau nicht gesondert nötig |
| 41 | Lab | Ja | Abschnitt 7 |
| 42 | Pakete und Initialisierung | Ja | Abschnitt 7, R-Workflow |
| 43 | Künstlicher Datensatz | Ja | Abschnitt 7, R-Workflow |
| 44 | Modellierung mit svm() | Ja | Abschnitt 7, R-Workflow |
| 45 | Vorhersage auf Datengitter | Ja | Abschnitt 7, Erklärung Visualisierung |
| 46 | Plot mit Entscheidungsgrenze | Ja, mit Bild | Abschnitt 7, Abbildung Folie 46 |
| 47 | Aufgabe Moons-Datensatz | Ja | Abschnitt 7, Moons-Datensatz |
| 48 | Moons-Datensatz-Plot | Ja, mit Bild | Abschnitt 7, Abbildung Folie 48 |