Es scheint viele Algorithmen für maschinelles Lernen zu geben, die auf Kernelfunktionen beruhen. SVMs und NNs, um nur zwei zu nennen. Was ist also die Definition einer Kernelfunktion und welche Voraussetzungen müssen erfüllt sein, damit sie gültig ist?
svm
terminology
kernel-trick
Franck Dernoncourt
quelle
quelle
Antworten:
Für x, y auf S können bestimmte Funktionen K (x, y) als inneres Produkt (in der Regel in einem anderen Raum) ausgedrückt werden. K wird oft als Kernel oder Kernelfunktion bezeichnet. Das Wort Kernel wird in der gesamten Mathematik unterschiedlich verwendet, aber dies ist die häufigste Verwendung beim maschinellen Lernen.
Der Kernel-Trick ist eine Möglichkeit, Beobachtungen aus einer allgemeinen Menge S in einen inneren Produktraum V (ausgestattet mit seiner natürlichen Norm) abzubilden, ohne die Abbildung jemals explizit berechnen zu müssen, in der Hoffnung, dass die Beobachtungen in V eine sinnvolle lineare Struktur erhalten Dies ist wichtig für die Effizienz (sehr schnelle Berechnung von Punktprodukten in einem sehr großen dimensionalen Raum) und für die Praktikabilität (wir können lineare ML-Algorithmen in nichtlineare ML-Algorithmen umwandeln).
Damit eine Funktion K als gültiger Kernel betrachtet werden kann, muss sie die Bedingungen von Mercer erfüllen . In der Praxis bedeutet dies, dass wir sicherstellen müssen, dass die Kernelmatrix (Berechnung des Kernelprodukts für jeden Datenpunkt, den Sie haben) immer positiv und semidefinit ist. Dies stellt sicher, dass die Trainingszielfunktion konvex ist, eine sehr wichtige Eigenschaft.
quelle
Von Williams, Christopher KI und Carl Edward Rasmussen. " Gaußsche Prozesse für maschinelles Lernen ". 3 (2006). Seite 80 .
Auch Kernel = Kernelfunktion.
Kernel, die in Algorithmen für maschinelles Lernen verwendet werden, erfüllen in der Regel mehr Eigenschaften, z. B. eine positive Semidefinitität.
quelle
Ich werde versuchen, eine weniger technische Erklärung zu finden.
Beginnen Sie zunächst mit dem Skalarprodukt zwischen zwei Vektoren. Dies zeigt Ihnen, wie "ähnlich" die Vektoren sind. Wenn die Vektoren Punkte in Ihrem Datensatz darstellen, zeigt das Skalarprodukt an, ob sie ähnlich sind oder nicht.
In einigen (vielen) Fällen ist das Skalarprodukt jedoch nicht die beste Ähnlichkeitsmetrik. Beispielsweise:
Anstatt also das Skalarprodukt zu verwenden, verwenden Sie einen "Kernel", der nur eine Funktion ist, die zwei Punkte annimmt und Ihnen ein Maß für ihre Ähnlichkeit gibt. Ich bin mir nicht hundertprozentig sicher, welche technischen Voraussetzungen eine Funktion erfüllen muss, um ein Kernel zu sein, aber das ist die Idee.
Eine sehr schöne Sache ist, dass der Kernel Ihnen dabei helfen kann, Ihr Domain-Wissen in das Problem einzubringen, in dem Sinne, dass Sie sagen können, dass zwei Punkte aus xyz-Gründen gleich sind, wenn Sie etwas über die Domain wissen.
quelle