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 )φ:Rn→RmRnRmxyφ(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 , y ∈ R 2 φ x = ( x 1 , x 2 ) y = ( y 1 , y 2 ) ,k(x,y)=(1+xTy)2x,y∈R2φx=(x1,x2)y=(y1,y2)
k(x,y)=(1+xTy)2=(1+x1y1+x2y2)2==1+x21y21+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,x21,x22,2–√x1,2–√x2,2–√x1x2)(1,y21,y22,2–√y1,2–√y2,2–√y1y2)k(x,y)=(1+ x Ty)2=φ(x)Tφ(y)φ(x)=φ(x1,x2)=(1,x21,x22,2–√x1,2–√x2,2–√x1x2)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(−γ∥x−y∥2)φ
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.
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.α α
quelle
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.
Wenn wir einen höherdimensionalen Raum finden könnten, in dem diese Punkte linear trennbar wären , dann könnten wir Folgendes tun:
Es gibt viele höherdimensionale Räume, in denen diese Punkte linear trennbar sind. Hier ist ein Beispiel
Hier kommt der Kernel-Trick ins Spiel. Ich zitiere die oben genannten tollen Antworten
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′)d d=2 x=(x1,x2)T
Visualisierung der Feature-Map und der daraus resultierenden Grenzlinie
Quelle
quelle
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 "
quelle