7.6 Kernbeispiele und nichtlineare SVM
Beispiele für Kernfunktionen
📄 10_kern.pdf, Folie 25| Kern | Formel | Parameter | Merkmalsraum |
|---|---|---|---|
| linear (Ergänzung) | – | Eingaberaum selbst | |
| homogener Polynomkern | Grad | alle Monome vom Grad genau | |
| inhomogener Polynomkern | , | alle Monome bis Grad | |
| Sigmoidkern | , | nur für manche Parameter gültig | |
| Gaußkern / RBF-Kern | Breite | unendlichdimensional |
Die Polynomkerne wurden in 7.3 hergeleitet.
Der Sigmoidkern
Eine lineare Maschine mit Sigmoidkern,
entspricht einem dreischichtigen Multilayer-Perzeptron (multilayer perceptron, MLP): Jeder Stützvektor ist ein verdecktes Neuron mit Gewichtsvektor , Bias und -Aktivierung, die sind die Ausgabegewichte. Allerdings erfüllt der Sigmoidkern die Bedingung des Mercer-Theorems nur für bestimmte Werte von und .
Ergänzung – Gegenbeispiel: Für ist . Ein gültiger Kern muss aber erfüllen (vgl. Checkliste in 7.5). In der Praxis wird der Sigmoidkern deshalb selten verwendet.
Der Gaußkern (RBF-Kern)
Eine lineare Maschine mit diesem Kern entspricht einem RBF-Netzwerk (radial basis function network): Um jeden Stützvektor sitzt eine Gauß-Glocke, die Entscheidungsfunktion ist eine gewichtete Summe dieser Glocken. Der Gaußkern ist ein sehr häufig eingesetzter Standardkern.
Ergänzung, nicht auf den Folien – Eigenschaften und Parameter:
- Wertebereich: , mit . Jeder Punkt hat also im Merkmalsraum die Länge 1, alle liegen auf einer Einheitskugel.
- Radial / translationsinvariant: hängt nur vom Abstand ab.
- Merkmalsraum unendlichdimensional: siehe die Herleitung in 7.4. Die Gram-Matrix ist für paarweise verschiedene Punkte sogar strikt positiv definit, d. h. man kann jede Klassenaufteilung trennen.
- Breite legt fest, ab welchem Abstand zwei Punkte als „unähnlich“ gelten:
| bei | bei | bei | |
|---|---|---|---|
| (z. B. vs. ) | |||
| (z. B. vs. ) |
- klein: Nur sehr nahe Punkte sind ähnlich, wird fast zur Einheitsmatrix. Jeder Trainingspunkt bekommt seine eigene schmale Glocke, die Entscheidungsgrenze wird sehr zerklüftet. Gefahr: Überanpassung (overfitting), im Extrem ein „Auswendiglernen“ der Trainingsdaten.
- groß: Alle Punkte sind sich ähnlich, wird fast zur Matrix aus lauter Einsen. Die Entscheidungsfunktion wird sehr glatt, fast linear. Gefahr: Unteranpassung (underfitting).
- In scikit-learn heißt der Parameter
gammamit , also . Großesgamma= kleines = komplexeres Modell. - (bzw. ) und werden gemeinsam per Kreuzvalidierung (siehe Kapitel 5) gewählt, typischerweise mit einer Gittersuche auf logarithmischer Skala.
Der Gaußkern basiert auf dem euklidischen Abstand. Hat ein Merkmal Werte in der Größenordnung 1000 und ein anderes um 1, dominiert das erste den Abstand komplett. Vor dem Einsatz des RBF-Kerns die Merkmale standardisieren. (Ergänzung)
Kerne als nichtlineare Ähnlichkeitsmaße
Da Kerne einem Skalarprodukt nach der Einbettung in den Merkmalsraum entsprechen, kann man sie sich als nichtlineares Ähnlichkeitsmaß vorstellen (vgl. Skalarprodukt als Ähnlichkeitsmaß in 7.2). Beim Gaußkern ist das besonders anschaulich: 1 bei identischen Punkten, gegen 0 bei weit entfernten.
Konstruktion von Kernen aus Kernen
📄 10_kern.pdf, Folie 26Sind , und gültige Kernfunktionen, so sind auch folgende Funktionen gültige Kerne:
| Regel | Begründung (Ergänzung, über die Gram-Matrix bzw. die Einbettung) |
|---|---|
| für | ; Einbettung |
| ; Einbettung: und hintereinanderhängen | |
| Einbettung aus allen Produkten (Tensorprodukt); in Matrixform: Satz von Schur | |
| für beliebiges | eindimensionale Einbettung ; |
| für beliebige Abbildung | die Gram-Matrix ist die von auf den Punkten , also psd |
Es gibt eine Reihe weiterer erlaubter Operationen, z. B. Tensorprodukte von Kernen, Faltungen, direkte Summen (siehe Schölkopf & Smola, 2002).
Differenzen und negative Vielfache sind im Allgemeinen keine Kerne. Beispiel: hat , sobald .
Anwendungsbeispiel (Ergänzung): Damit lässt sich zeigen, dass die Kerne von Folie 25 gültig sind, ohne auszurechnen.
- Polynomkern: ist ein Kern (Einbettung = Identität). Nach der Produktregel ist ein Kern. Die Konstante ist ein Kern (Regel mit ), also ist ein Kern, und damit auch .
- Gaußkern: Zerlege
Der zweite Faktor ist , eine Summe von Polynomkernen mit nichtnegativen Vorfaktoren, also (als Grenzwert) ein Kern. Mit der Produktregel ist der Gaußkern ein Kern.
Kerne für nichtvektorielle Daten
📄 10_kern.pdf, Folie 27Oft lassen sich die Daten nicht sinnvoll als Vektoren darstellen, z. B. bei der Klassifikation von Texten oder Genomsequenzen (unterschiedliche Länge, keine natürliche Koordinatenzuordnung). Man kann aber Ähnlichkeitsmaße für solche Objekte definieren. Diese müssen natürlich die Bedingungen des Mercer-Theorems erfüllen, damit man sie sinnvoll in einer linearen Lernmaschine einsetzen kann.
Der Charme dabei: Der Algorithmus (z. B. die SVM) braucht nur die Kernwerte . Ob die Vektoren, Strings oder Graphen sind, ist ihm egal.
Beispiele:
- Stringkern (string kernel): Die Ähnlichkeit zweier Zeichenketten wird über die Häufigkeit und Länge aller gemeinsamen Teilstrings gemessen. Sie lässt sich rekursiv in linearer Zeit berechnen.
- Ähnlichkeit von Gesten: Das Produkt der Gelenkwinkel stellt ebenfalls einen Kern dar.
Ergänzung – ein einfacher Stringkern zum Nachrechnen (Spektrumkern): Für ein festes sei die Anzahl, wie oft das Wort der Länge in vorkommt, und . Das ist nach Konstruktion ein Skalarprodukt, also ein gültiger Kern. Für , ABAB, BABA: enthält AB zweimal und BA einmal, enthält AB einmal und BA zweimal. Also , während .
Nichtlineare SVM mit Kernfunktion
📄 10_kern.pdf, Folie 28Mit dem Kernel-Trick lässt sich die SVM (und Pegasos) auf einfache Weise in eine nichtlineare Lernmaschine umwandeln. Man ersetzt in der dualen Formulierung aus 7.2 einfach jedes Skalarprodukt durch :
Minimiere
unter den Nebenbedingungen ()
Entscheidungsfunktion: .
(Auf der Folie fehlen der Faktor vor der Doppelsumme und der Faktor in der Nebenbedingung; hier ist die zu Folie 12 konsistente Form angegeben. Die Nebenbedingungen sind die Margin-Bedingungen plus die Bedingungen .)
Für Pegasos dual (Folie 13) gilt dasselbe: .
Aufgrund der Maximierung der Trennbreite funktioniert die nichtlineare SVM auch in unendlichdimensionalen Merkmalsräumen!
Ergänzung – warum? Die Kapazität einer linearen Maschine mit großem Margin hängt nicht von der Dimension des Raumes ab, sondern vom Verhältnis zwischen Datenradius und Margin. Die SVM wählt unter allen Trennebenen die mit größtem Margin, also die „einfachste“. Deshalb passt sie sich trotz unendlich vieler Merkmale nicht beliebig an die Trainingsdaten an (sofern und die Kernparameter sinnvoll gewählt sind).
Kurzes Beispiel in scikit-learn
Ergänzung, nicht auf den Folien. Zwei konzentrische Kreise, das Paradebeispiel aus 7.1:
from sklearn.datasets import make_circles
from sklearn.svm import SVC
X, y = make_circles(n_samples=200, factor=0.4, noise=0.1, random_state=0)
for clf in [SVC(kernel="linear", C=1),
SVC(kernel="poly", degree=2, coef0=1, C=1), # (gamma*x'y + coef0)^2
SVC(kernel="rbf", gamma=1.0, C=1)]: # exp(-gamma*||x-y||^2)
clf.fit(X, y)
print(clf.kernel, clf.score(X, y), "Stützvektoren:", clf.n_support_.sum())
Der lineare Kern bleibt bei etwa Ratewahrscheinlichkeit, Polynom- (Grad 2) und RBF-Kern trennen die Kreise nahezu perfekt. Eigene Kerne übergibt man als Funktion (kernel=meine_funktion, liefert die Gram-Matrix) oder als vorberechnete Gram-Matrix (kernel="precomputed").