Zum Hauptinhalt springen

6.4 Lagrange-Dualität und KKT (Ergänzung)

Ergänzung, nicht auf den Folien

Die Folien von Vorlesung 8 und 9 behandeln die SVM ausschließlich in der primalen Form und lösen sie in 6.6 mit einem Subgradientenverfahren. Lagrange-Multiplikatoren, KKT-Bedingungen und das duale Problem kommen dort nicht vor. Diese Seite fasst den Standardweg aus der Literatur (z.B. Bishop, Kap. 7; Schölkopf und Smola) zusammen, weil er

  • präzise begründet, warum nur die Supportvektoren die Lösung bestimmen,
  • zur dualen Darstellung w=∑iαiyixi\mathbf w = \sum_i \alpha_i y_i\mathbf x_i führt, die in Kapitel 7 (dort über das Representer-Theorem) die Grundlage des Kernel-Tricks ist.

Ob diese Herleitung prüfungsrelevant ist, solltest du in der Vorlesung klären.

Ausgangspunkt​

Wir verwenden das primale Problem aus 6.2 in der üblichen Form mit Faktor 12\tfrac12:

min⁡w,b 12⟨w⋅w⟩u.d.N.yi(⟨w⋅xi⟩+b)≥1,i=1,…,ℓ.\min_{\mathbf w, b}\ \tfrac12\langle\mathbf w\cdot\mathbf w\rangle \quad\text{u.d.N.}\quad y_i(\langle\mathbf w\cdot\mathbf x_i\rangle + b) \ge 1,\quad i = 1,\dots,\ell.

Der Faktor 12\tfrac12 ändert das optimale (w,b)(\mathbf w, b) nicht, nur die Lagrange-Multiplikatoren werden halb so groß.

Die Lagrange-Funktion​

Idee: Statt die Nebenbedingungen „hart“ einzuhalten, bestraft man ihre Verletzung in der Zielfunktion. Für jede Nebenbedingung führt man einen Lagrange-Multiplikator (Lagrange multiplier) αi≥0\alpha_i \ge 0 ein:

L(w,b,α)=12⟨w⋅w⟩−∑i=1ℓαi[yi(⟨w⋅xi⟩+b)−1].L(\mathbf w, b, \boldsymbol\alpha) = \tfrac12\langle\mathbf w\cdot\mathbf w\rangle - \sum_{i=1}^{\ell}\alpha_i\bigl[y_i(\langle\mathbf w\cdot\mathbf x_i\rangle + b) - 1\bigr].

Warum Minus und αi≥0\alpha_i\ge 0? Die eckige Klammer ist ≥0\ge 0, wenn die Bedingung erfüllt ist, und <0\lt 0, wenn sie verletzt ist. Bei Verletzung wird −αi[… ]-\alpha_i[\dots] positiv, die Zielfunktion steigt. Maximiert man über α≥0\boldsymbol\alpha \ge 0, so gilt:

max⁡α≥0L(w,b,α)={12⟨w⋅w⟩falls alle Bedingungen erfu¨llt+∞sonst.\max_{\boldsymbol\alpha\ge 0} L(\mathbf w, b, \boldsymbol\alpha) = \begin{cases} \tfrac12\langle\mathbf w\cdot\mathbf w\rangle & \text{falls alle Bedingungen erfüllt}\\ +\infty & \text{sonst.} \end{cases}

Das primale Problem ist also min⁡w,bmax⁡α≥0L\min_{\mathbf w,b}\max_{\boldsymbol\alpha\ge0} L. Das duale Problem vertauscht die Reihenfolge: max⁡α≥0min⁡w,bL\max_{\boldsymbol\alpha\ge0}\min_{\mathbf w,b} L. Für konvexe Probleme mit (streng) erfüllbaren Nebenbedingungen (Slater-Bedingung, bei trennbaren Daten erfüllt) haben beide denselben Optimalwert (starke Dualität).

Die KKT-Bedingungen​

Für ein konvexes Problem wie die SVM sind die Karush-Kuhn-Tucker-Bedingungen (KKT conditions) notwendig und hinreichend für Optimalität. Ein Punkt (w∗,b∗,α∗)(\mathbf w^*, b^*, \boldsymbol\alpha^*) ist genau dann optimal, wenn gilt:

BedingungFormelBedeutung
Stationarität in w\mathbf ww=∑iαiyixi\mathbf w = \sum_i \alpha_i y_i \mathbf x_i∇wL=0\nabla_{\mathbf w} L = 0
Stationarität in bb∑iαiyi=0\sum_i \alpha_i y_i = 0∂L/∂b=0\partial L/\partial b = 0
Primale Zulässigkeityi(⟨w⋅xi⟩+b)≥1y_i(\langle\mathbf w\cdot\mathbf x_i\rangle + b) \ge 1alle Punkte richtig mit Margin
Duale Zulässigkeitαi≥0\alpha_i \ge 0
Komplementärer Schlupfαi[yi(⟨w⋅xi⟩+b)−1]=0\alpha_i\bigl[y_i(\langle\mathbf w\cdot\mathbf x_i\rangle + b) - 1\bigr] = 0αi=0\alpha_i = 0 oder Bedingung aktiv

Herleitung der Stationarität:

∇wL=w−∑iαiyixi=!0,∂L∂b=−∑iαiyi=!0.\nabla_{\mathbf w} L = \mathbf w - \sum_i \alpha_i y_i \mathbf x_i \overset{!}{=} 0, \qquad \frac{\partial L}{\partial b} = -\sum_i \alpha_i y_i \overset{!}{=} 0.

Was der komplementäre Schlupf bedeutet​

Das ist die wichtigste Bedingung für das Verständnis. Für jeden Trainingspunkt gibt es nur zwei Möglichkeiten:

  • yif(xi)>1y_i f(\mathbf x_i) \gt 1 (Punkt liegt außerhalb des Margins, Bedingung inaktiv): Dann muss αi=0\alpha_i = 0 sein.
  • αi>0\alpha_i \gt 0: Dann muss yif(xi)=1y_i f(\mathbf x_i) = 1 sein, der Punkt liegt genau auf dem Rand des Margins (Bedingung aktiv). Das ist ein Supportvektor.

Zusammen mit w=∑iαiyixi\mathbf w = \sum_i \alpha_i y_i\mathbf x_i heißt das:

Warum nur die Supportvektoren zählen
w=∑i : αi>0αiyixi.\mathbf w = \sum_{i\,:\,\alpha_i \gt 0} \alpha_i y_i\mathbf x_i.

w\mathbf w ist eine Linearkombination nur der Supportvektoren. Alle anderen Punkte haben αi=0\alpha_i = 0 und tragen nichts bei. Man kann sie löschen, ohne dass sich die Lösung ändert. Das ist die exakte Fassung der Folienaussage „nur sie allein bestimmen die Lage der optimalen Trennebene“ (📄 08_svm.pdf, Folie 14).

Bestimmung von bb: Für einen beliebigen Supportvektor xs\mathbf x_s gilt ys(⟨w⋅xs⟩+b)=1y_s(\langle\mathbf w\cdot\mathbf x_s\rangle + b) = 1. Wegen ys2=1y_s^2 = 1 folgt

b=ys−⟨w⋅xs⟩.b = y_s - \langle\mathbf w\cdot\mathbf x_s\rangle.

Numerisch stabiler ist der Mittelwert über alle Supportvektoren.

Das duale Problem​

Setzt man die Stationaritätsbedingungen in LL ein, verschwinden w\mathbf w und bb:

L=12⟨∑iαiyixi⋅∑jαjyjxj⟩−∑iαiyi⟨∑jαjyjxj⋅xi⟩−b∑iαiyi⏟=0+∑iαi=12∑i,jαiαjyiyj⟨xi⋅xj⟩−∑i,jαiαjyiyj⟨xi⋅xj⟩+∑iαi=∑iαi−12∑i,jαiαjyiyj⟨xi⋅xj⟩.\begin{aligned} L &= \tfrac12\Bigl\langle\sum_i\alpha_i y_i\mathbf x_i \cdot \sum_j\alpha_j y_j\mathbf x_j\Bigr\rangle - \sum_i\alpha_i y_i\Bigl\langle\sum_j\alpha_j y_j\mathbf x_j\cdot\mathbf x_i\Bigr\rangle - b\underbrace{\sum_i\alpha_i y_i}_{=0} + \sum_i\alpha_i\\ &= \tfrac12\sum_{i,j}\alpha_i\alpha_j y_i y_j\langle\mathbf x_i\cdot\mathbf x_j\rangle - \sum_{i,j}\alpha_i\alpha_j y_i y_j\langle\mathbf x_i\cdot\mathbf x_j\rangle + \sum_i\alpha_i\\ &= \sum_i\alpha_i - \tfrac12\sum_{i,j}\alpha_i\alpha_j y_i y_j\langle\mathbf x_i\cdot\mathbf x_j\rangle. \end{aligned}
Duales SVM-Problem (Hard Margin)
max⁡α W(α)=∑i=1ℓαi−12∑i,j=1ℓαiαjyiyj⟨xi⋅xj⟩\max_{\boldsymbol\alpha}\ W(\boldsymbol\alpha) = \sum_{i=1}^{\ell}\alpha_i - \frac12\sum_{i,j=1}^{\ell}\alpha_i\alpha_j y_i y_j\langle\mathbf x_i\cdot\mathbf x_j\rangle

unter den Nebenbedingungen αi≥0\alpha_i \ge 0 und ∑iαiyi=0\sum_i\alpha_i y_i = 0.

Entscheidungsfunktion:

f(x)=∑i=1ℓαiyi⟨xi⋅x⟩+b.f(\mathbf x) = \sum_{i=1}^{\ell}\alpha_i y_i\langle\mathbf x_i\cdot\mathbf x\rangle + b.

Was hat man gewonnen?

  1. Die Daten kommen nur noch in Skalarprodukten ⟨xi⋅xj⟩\langle\mathbf x_i\cdot\mathbf x_j\rangle vor, im Training und in der Vorhersage. Ersetzt man das Skalarprodukt durch eine Kernfunktion, erhält man eine nichtlineare SVM, ohne den Merkmalsraum je explizit zu berechnen. Das ist der Kernel-Trick aus Kapitel 7.
  2. Die Anzahl der Variablen ist ℓ\ell (eine pro Trainingspunkt) statt d+1d+1. Bei sehr hoher oder unendlicher Dimension dd ist das ein großer Vorteil.
  3. Dünnbesetzte Lösung (sparse): Die meisten αi\alpha_i sind 0.

Auch das duale Problem ist ein konvexes QP (die Matrix mit Einträgen yiyj⟨xi⋅xj⟩y_iy_j\langle\mathbf x_i\cdot\mathbf x_j\rangle ist positiv semidefinit). Klassische SVM-Pakete wie libsvm (auf 📄 09_svm_nicht_trennbar.pdf, Folie 5 als „svmlib“ erwähnt) lösen dieses duale Problem.

Nützliche Identität: Im Optimum gilt ⟨w⋅w⟩=∑iαi\langle\mathbf w\cdot\mathbf w\rangle = \sum_i\alpha_i. Begründung: ⟨w⋅w⟩=∑iαiyi⟨w⋅xi⟩\langle\mathbf w\cdot\mathbf w\rangle = \sum_i\alpha_i y_i\langle\mathbf w\cdot\mathbf x_i\rangle, und für Supportvektoren ist ⟨w⋅xi⟩=yi−b\langle\mathbf w\cdot\mathbf x_i\rangle = y_i - b. Also ∑iαiyi(yi−b)=∑iαi−b∑iαiyi=∑iαi\sum_i\alpha_i y_i(y_i - b) = \sum_i\alpha_i - b\sum_i\alpha_iy_i = \sum_i\alpha_i. Damit ist die Streifenbreite 2/∑iαi2/\sqrt{\sum_i\alpha_i}.

Zahlenbeispiel: KKT-Check​

Wir prüfen die Lösung aus Beispiel 3 in 6.2: x1=(0,0)\mathbf x_1 = (0,0), y1=−1y_1 = -1; x2=(2,2)\mathbf x_2 = (2,2), y2=+1y_2 = +1; x3=(3,0)\mathbf x_3 = (3,0), y3=+1y_3 = +1, mit w=(23,13)\mathbf w = (\tfrac23,\tfrac13), b=−1b = -1.

Gesucht: α1,α2,α3≥0\alpha_1,\alpha_2,\alpha_3 \ge 0 mit w=∑iαiyixi\mathbf w = \sum_i\alpha_i y_i\mathbf x_i und ∑iαiyi=0\sum_i\alpha_i y_i = 0.

w=−α1(0,0)+α2(2,2)+α3(3,0)=(2α2+3α3, 2α2)=!(23,13).\mathbf w = -\alpha_1(0,0) + \alpha_2(2,2) + \alpha_3(3,0) = (2\alpha_2 + 3\alpha_3,\ 2\alpha_2) \overset{!}{=} (\tfrac23,\tfrac13).
  • Zweite Komponente: 2α2=13⇒α2=162\alpha_2 = \tfrac13 \Rightarrow \alpha_2 = \tfrac16.
  • Erste Komponente: 13+3α3=23⇒α3=19\tfrac13 + 3\alpha_3 = \tfrac23 \Rightarrow \alpha_3 = \tfrac19.
  • Summenbedingung: −α1+α2+α3=0⇒α1=16+19=518-\alpha_1 + \alpha_2 + \alpha_3 = 0 \Rightarrow \alpha_1 = \tfrac16 + \tfrac19 = \tfrac{5}{18}.

Check aller KKT-Bedingungen:

Bedingungerfüllt?
Stationarität✔ nach Konstruktion
Primale Zulässigkeit✔ alle yif(xi)=1y_if(\mathbf x_i) = 1
Duale Zulässigkeit✔ alle αi>0\alpha_i \gt 0
Komplementärer Schlupf✔ alle Bedingungen aktiv

Da das Problem konvex ist, sind die KKT-Bedingungen hinreichend: Die Lösung ist optimal. Probe der Identität: ∑iαi=518+318+218=59=∥w∥2\sum_i\alpha_i = \tfrac{5}{18} + \tfrac{3}{18} + \tfrac{2}{18} = \tfrac59 = \lVert\mathbf w\rVert^2. ✔

Gegenprobe mit Versuch 1 (w=(12,12)\mathbf w = (\tfrac12,\tfrac12), b=−1b = -1): Diese Lösung verletzt die primale Zulässigkeit für x3\mathbf x_3 und ist daher nicht optimal, egal welche αi\alpha_i man wählt.

Beispiel 2 aus 6.2 (Punkte (0,0)(0,0), (2,2)(2,2), (4,4)(4,4)): Hier ist y3f(x3)=3>1y_3f(\mathbf x_3) = 3 \gt 1, also α3=0\alpha_3 = 0. Aus w=α2(2,2)=(12,12)\mathbf w = \alpha_2(2,2) = (\tfrac12,\tfrac12) folgt α2=14\alpha_2 = \tfrac14 und mit der Summenbedingung α1=14\alpha_1 = \tfrac14. Probe: ∑αi=12=∥w∥2\sum\alpha_i = \tfrac12 = \lVert\mathbf w\rVert^2. ✔

Typische Fallstricke​

  • Vorzeichen der Lagrange-Multiplikatoren: Bei Ungleichungen müssen sie ≥0\ge 0 sein, bei Gleichungen sind sie frei. Wer das vergisst, bekommt keine korrekte Dualität.
  • αi>0\alpha_i \gt 0 impliziert Supportvektor, aber nicht umgekehrt. In Spezialfällen kann ein Punkt genau auf dem Margin liegen und trotzdem αi=0\alpha_i = 0 haben (degenerierter Fall).
  • Faktor 12\tfrac12: Ohne ihn (wie auf 📄 08_svm.pdf, Folie 16) werden alle αi\alpha_i doppelt so groß, die Trennebene bleibt dieselbe.