Wie kann man intuitiv erklären, was ein Kernel ist?

97

Bei vielen maschinellen Lernklassifikatoren (z. B. Support-Vektor-Maschinen) kann ein Kernel angegeben werden. Was wäre eine intuitive Art zu erklären, was ein Kernel ist?

Ein Aspekt, über den ich nachgedacht habe, ist die Unterscheidung zwischen linearen und nichtlinearen Kerneln. In einfachen Worten könnte ich von "linearen Entscheidungsfunktionen" und "nichtlinearen Entscheidungsfunktionen" sprechen. Ich bin mir jedoch nicht sicher, ob es eine gute Idee ist, einen Kernel als Entscheidungsfunktion zu bezeichnen.

Vorschläge?

hashkey
quelle

Antworten:

113

Kernel ist eine Methode zur Berechnung des Skalarprodukts zweier Vektoren und in einem (möglicherweise sehr hochdimensionalen) Merkmalsraum, weshalb Kernelfunktionen manchmal als "generalisiertes Skalarprodukt" bezeichnet werden.yxy

Angenommen, wir haben eine Zuordnung von , die unsere Vektoren in zu einem Merkmalsraum bringt . Dann ist das Skalarprodukt von und in diesem Raum . Ein Kernel ist eine Funktion , die diesem Skalarprodukt entspricht, dh .R n R m x y φ( x ) T φ( y )kk( x , y )=φ( x ) T φ( y )φ:RnRmRnRmxyφ(x)Tφ(y)kk(x,y)=φ(x)Tφ(y)

Warum ist das nützlich? Kernel bieten die Möglichkeit, Punktprodukte in einem bestimmten Funktionsbereich zu berechnen, ohne zu wissen, was dieser Bereich ist und was .φ

Betrachten Sie beispielsweise einen einfachen Polynomkern mit . Dies scheint keiner Zuordnungsfunktion zu entsprechen , es ist nur eine Funktion, die eine reelle Zahl zurückgibt. Angenommen, und , erweitern wir diesen Ausdruck:x , yR 2 φ x = ( x 1 , x 2 ) y = ( y 1 , y 2 ) ,k(x,y)=(1+xTy)2x,yR2φx=(x1,x2)y=(y1,y2)

k(x,y)=(1+xTy)2=(1+x1y1+x2y2)2==1+x12y12+x22y22+2x1y1+2x2y2+2x1x2y1y2

Beachten Sie, dass dies nichts anderes ist als ein Punktprodukt zwischen zwei Vektoren und und . Der Kernel berechnet also ein Skalarprodukt in 6-dimensionaler Raum, ohne diesen Raum explizit zu besuchen.(1,x12,x22,2x1,2x2,2x1x2)(1,y12,y22,2y1,2y2,2y1y2)k(x,y)=(1+ x Ty)2=φ(x)Tφ(y)φ(x)=φ(x1,x2)=(1,x12,x22,2x1,2x2,2x1x2)k(x,y)=(1+xTy)2=φ(x)Tφ(y)

Ein anderes Beispiel ist der Gaußsche Kernel . Wenn wir diese Funktion nach Taylor erweitern, werden wir sehen, dass sie einer unendlich dimensionalen Codomäne von .k(x,y)=exp(γxy2)φ

Abschließend würde ich einen Online-Kurs "Learning from Data" von Professor Yaser Abu-Mostafa empfehlen, um eine gute Einführung in kernelbasierte Methoden zu erhalten. In den Vorlesungen "Support Vector Machines" , "Kernel Methods" und "Radial Basis Functions" geht es insbesondere um Kernel.

Alexey Grigorev
quelle
2
Aktuelle Tag-Definition: "Intuitiv: Fragen, die ein konzeptuelles oder nicht mathematisches Verständnis der Statistik erfordern." Kein klarer Hinweis, ob begrifflich als Synonym für nichtmathematisch behandelt wird.
rolando2
40

Eine sehr einfache und intuitive Art, über Kernel nachzudenken (zumindest für SVMs), ist eine Ähnlichkeitsfunktion. Bei zwei gegebenen Objekten gibt der Kernel eine Ähnlichkeitsbewertung aus. Die Objekte können alles sein, beginnend mit zwei ganzen Zahlen, zwei reellen Vektoren und Bäumen, vorausgesetzt, die Kernelfunktion weiß, wie man sie vergleicht.

Das wohl einfachste Beispiel ist der lineare Kernel, auch Skalarprodukt genannt. Bei zwei Vektoren ist die Ähnlichkeit die Länge der Projektion eines Vektors auf einen anderen.

Ein weiteres interessantes Kernelbeispiel ist der Gaußsche Kernel. Bei zwei Vektoren nimmt die Ähnlichkeit mit dem Radius von . Der Abstand zwischen zwei Objekten wird durch diesen Radiusparameter "neu gewichtet".σ

Der Erfolg des Lernens mit Kerneln (zumindest für SVMs) hängt sehr stark von der Wahl des Kernels ab. Sie können einen Kernel als kompakte Darstellung des Wissens über Ihr Klassifizierungsproblem sehen. Es ist sehr oft problemspezifisch.

Ich würde einen Kernel nicht als Entscheidungsfunktion bezeichnen, da der Kernel innerhalb der Entscheidungsfunktion verwendet wird. Bei einem zu klassifizierenden Datenpunkt verwendet die Entscheidungsfunktion den Kernel, indem sie diesen Datenpunkt mit einer Anzahl von Unterstützungsvektoren vergleicht, die mit den gelernten Parametern gewichtet sind . Die Unterstützungsvektoren befinden sich in der Domäne dieses Datenpunkts und werden entlang der gelernten Parameter vom Lernalgorithmus gefunden.αα

Vladislavs Dovgalecs
quelle
Punktprodukt und Projektion sind nicht ganz identisch.
TTNPHNS
Im Falle von SVM glaube ich, dass Kernel Distanzmaße in verschiedenen Räumen sind. Dies steht im Einklang mit der Idee, dass eine SVM einen Unterstützungsvektorklassifizierer verallgemeinert. Im Allgemeinen können Kernel komplizierter sein.
aginensky
29

Ein visuelles Beispiel zur Unterstützung der Intuition

Betrachten Sie den folgenden Datensatz, bei dem der gelbe und der blaue Punkt in zwei Dimensionen eindeutig nicht linear trennbar sind.

Bildbeschreibung hier eingeben

Wenn wir einen höherdimensionalen Raum finden könnten, in dem diese Punkte linear trennbar wären , dann könnten wir Folgendes tun:

  • Ordnen Sie die ursprünglichen Features dem höheren Transformatorraum zu (Feature-Mapping).
  • Führen Sie in diesem höheren Bereich eine lineare SVM durch
  • Erhalten Sie eine Menge von Gewichten, die der Entscheidungsgrenzen-Hyperebene entsprechen
  • Ordnen Sie diese Hyperebene wieder dem ursprünglichen 2D-Raum zu, um eine nicht lineare Entscheidungsgrenze zu erhalten

Es gibt viele höherdimensionale Räume, in denen diese Punkte linear trennbar sind. Hier ist ein Beispiel

x1,x2:→z1,z2,z3
z1=2x1x2  z2=x12  z3=x22

Hier kommt der Kernel-Trick ins Spiel. Ich zitiere die oben genannten tollen Antworten

Angenommen, wir haben eine Zuordnung von , die unsere Vektoren in zu einem Merkmalsraum bringt . Dann ist das Skalarprodukt von und in diesem Raum . Ein Kernel ist eine Funktion , die diesem Skalarprodukt entspricht, dhφ:RnRmRnRmxyφ(x)Tφ(y)kk(x,y)=φ(x)Tφ(y)

Wenn wir eine Kernel-Funktion finden könnten, die der obigen Feature-Map entspricht, könnten wir die Kernel-Funktion in die lineare SVM einbinden und die Berechnungen sehr effizient durchführen.

Polynomkern

Es stellt sich heraus, dass die obige Feature-Map dem bekannten Polynomkern entspricht : . Lassen und erhalten wirK(x,x)=(xTx)dd=2x=(x1,x2)T

k((x1x2),(x1x2))=(x1x2+x2x2)2=2x1x1x2x2+(x1x1)2+(x2x2)2=(2x1x2 x12 x22) (2x1x2x12x22)

k((x1x2),(x1x2))=ϕ(x)Tϕ(x)

ϕ((x1x2))=(2x1x2x12x22)

Visualisierung der Feature-Map und der daraus resultierenden Grenzlinie

  • Das Diagramm auf der linken Seite zeigt die im transformierten Raum aufgetragenen Punkte zusammen mit der linearen Grenze der SVM-Hyperebene
  • Die Grafik auf der rechten Seite zeigt das Ergebnis im ursprünglichen 2D-Raum

Bildbeschreibung hier eingeben


Quelle

Xavier Bourret Sicotte
quelle
4

Sehr einfach (aber genau) ist ein Kernel ein Wichtungsfaktor zwischen zwei Datensequenzen. Dieser Gewichtungsfaktor kann mehr Gewicht auf einen „assign Datenpunkt “ an einem „ Zeitpunkt “ ist als der andere „ Datenpunkt “ oder weist gleiches Gewicht oder mehr Gewicht auf den anderen „assign Datenpunkt “ , und so weiter.

Auf diese Weise kann die Korrelation ( Skalarprodukt ) an einigen Stellen mehr "Wichtigkeit" als an anderen zuweisen und somit Nichtlinearitäten (z. B. nicht flache Räume ), zusätzliche Informationen, Datenglättung usw. berücksichtigen.

In noch einer anderen Weise ist ein Kernel eine Möglichkeit, die relativen Dimensionen (oder Dimensionseinheiten ) von zwei Datensequenzen zu ändern , um mit den oben erwähnten Dingen fertig zu werden.

In einer dritten Art (in Bezug auf die beiden vorhergehenden) ist ein kernal eine Art , eine Datensequenz eins zu eins auf die andere abzubilden oder zu projizieren , wobei bestimmte Informationen oder Kriterien (z. B. gekrümmter Raum, fehlende Daten, Daten) berücksichtigt werden Nachbestellung usw.). So kann beispielsweise ein bestimmter Kernel eine Datensequenz dehnen oder schrumpfen oder zuschneiden oder biegen , um sie 1-zu-1 auf die andere anzupassen oder zuzuordnen.

Ein Kernel kann sich wie ein Procrustes verhalten , um "am besten zu passen "

Nikos M.
quelle
Ich denke, Sie sprechen möglicherweise über Kernel im Sinne einer Schätzung der Kerneldichte, nicht über die positiv-semidefiniten Mercer-Kernel, die in SVMs und verwandten Methoden verwendet werden.
Dougal,
@Dougal, im Sinne dieser Antwort ist der Kernel eine Wiegefunktion oder ein Maß, das verwendet wird, um Daten auf eine bestimmte Weise zu korrelieren oder bestimmte Datenmerkmale auszunutzen. Daher werden auch SVM-Kernelmethoden behandelt
Nikos M.