In den letzten Jahren haben Kernel-Methoden große Aufmerksamkeit erhalten, insbesondere aufgrund der zunehmenden Beliebtheit der Support-Vektor-Maschinen. Kernelfunktionen können in vielen Anwendungen verwendet werden, da sie eine einfache Brücke von der Linearität zur Nichtlinearität für Algorithmen bilden, die in Punktprodukten ausgedrückt werden können. In diesem Artikel werden wir einige Kernelfunktionen und einige ihrer Eigenschaften auflisten.
- Überprüfen Sie hier den Quellcode für alle Kernelfunktionen.
Viele dieser Funktionen wurden in Accord.NET , ein Framework zum Erstellen von Machine Learning-, Statistik- und Computer Vision-Anwendungen.
- Inhalt
- Kernelmethoden
- Der Kernel-Trick
- Kernel-Eigenschaften
- Auswahl des richtigen Kernels
- Kernelfunktionen
- 1. Linearer Kernel
- 2. Polynomial Kernel
- 3. Gaußscher Kernel
- 4. Exponentialkern
- 5. Laplace-Kernel
- 6. ANOVA-Kernel
- 7. Hyperbolic Tangent (Sigmoid) Kernel
- 8. Rationaler quadratischer Kernel
- 9. Multiquadrischer Kernel
- 10. Inverse Multiquadric Kernel
- 11. Circular Kernel
- 12. Sphärischer Kern
- 13. Wellenkern
- 14. Power Kernel
- 15. Log Kernel
- 16. Spline-Kernel
- 17. B-Spline (Radiale Basisfunktion) Kernel
- 18. Bessel-Kernel
- 19. Cauchy-Kernel
- 20. Chi-Quadrat-Kernel
- 21. Histogram Intersection Kernel
- 22. Generalized Histogram Intersection
- 23. Generalisierter T-Student-Kernel
- 24. Bayes-Kernel
- 25. Wavelet-Kernel
- Quellcode
- Siehe auch
- Zitieren dieser Arbeit
Inhalt
- Kernelmethoden
- Der Kerneltrick
- Kerneleigenschaften
- Den richtigen Kernel auswählen
- Kernelfunktionen
- Linearer Kernel
- Polynomkern
- Gaußscher Kernel
- Exponentieller Kernel
- Laplace-Kernel
- ANOVA Kernel
- Hyperbolischer Tangens (Sigmoid) Kernel
- Rationaler quadratischer Kernel
- Multiquadrischer Kernel
- Inverser Multiquadrischer Kernel
- Kreisförmiger Kernel
- Sphärischer Kernel
- Wellenkern
- Power Kernel
- Log Kernel
- Spline Kernel
- B-Spline-Kernel
- Bessel-Kernel
- Cauchy-Kernel
- Chi-Quadrat-Kernel
- Histogramm-Schnittpunkt-Kernel
- Verallgemeinerter Histogramm-Schnittpunkt-Kernel
- Verallgemeinerter T-Student-Kernel
- Bayes-Kernel
- Wavelet-Kernel
- Quellcode
- Siehe auch
Kernelmethoden
Kernelmethoden sind eine Klasse von Algorithmen zur Musteranalyse oder -erkennung, deren bekanntestes Element die Support Vector Machine (SVM) ist. Die allgemeine Aufgabe der Musteranalyse besteht darin, allgemeine Arten von Beziehungen (wie Cluster, Rankings, Hauptkomponenten, Korrelationen, Klassifikationen) in allgemeinen Datentypen (wie Sequenzen, Textdokumenten, Punktmengen, Vektoren, Bildern, Grafiken usw.) zu finden und zu untersuchen (Wikipedia, 2010a).
Das Hauptmerkmal von Kernelmethoden ist jedoch ihre unterschiedliche Herangehensweise an dieses Problem. Kernelmethoden bilden die Daten in höherdimensionale Räume ab, in der Hoffnung, dass die Daten in diesem höherdimensionalen Raum leichter getrennt oder besser strukturiert werden können. Es gibt auch keine Einschränkungen für die Form dieser Abbildung, die sogar zu unendlich dimensionalen Räumen führen könnten. Diese Zuordnungsfunktion muss jedoch aufgrund eines Tools namens Kernel Trick kaum berechnet werden.
Der Kernel-Trick
Der Kernel-Trick ist ein sehr interessantes und mächtiges Werkzeug. Es ist leistungsfähig, weil es eine Brücke von Linearität zu Nichtlinearität zu jedem Algorithmus bietet, der ausschließlich auf Punktprodukten zwischen zwei Vektoren basieren kann. Es ergibt sich aus der Tatsache, dass sich ein linearer Algorithmus, der in diesem Raum arbeitet, im ursprünglichen Eingaberaum nichtlinear verhält, wenn wir unsere Eingabedaten zuerst in einen höherdimensionalen Raum abbilden.
Nun, der Kernel-Trick ist wirklich interessant, weil diese Zuordnung nie berechnet werden muss. Wenn unser Algorithmus nur in Form eines inneren Produkts zwischen zwei Vektoren ausgedrückt werden kann, müssen wir dieses innere Produkt nur durch das innere Produkt aus einem anderen geeigneten Raum ersetzen. Hier liegt der „Trick“: Wo immer ein Punktprodukt verwendet wird, wird es durch eine Kernelfunktion ersetzt. Die Kernelfunktion bezeichnet ein inneres Produkt im Merkmalsraum und wird üblicherweise wie folgt bezeichnet:
K(x,y) = <φ(x),φ(y)>
Mit der Kernelfunktion kann der Algorithmus dann in einen höherdimensionalen Raum getragen werden, ohne die Eingabepunkte explizit in diesen Raum abzubilden. Dies ist sehr wünschenswert, da unser höherdimensionaler Merkmalsraum manchmal sogar unendlich dimensional und daher nicht berechenbar sein kann.
Kernel-Eigenschaften
Kernel-Funktionen müssen kontinuierlich, symmetrisch und am meisten bevorzugt eine positive (semi-) definite Gram-Matrix haben. Kerne, von denen gesagt wird, dass sie den Satz von Mercer erfüllen, sind positiv semidefiniert, was bedeutet, dass ihre Kernmatrizen nur nicht negative Eigenwerte haben. Die Verwendung eines positiv bestimmten Kernels stellt sicher, dass das Optimierungsproblem konvex und die Lösung einzigartig ist.
Es hat sich jedoch auch gezeigt, dass viele Kernelfunktionen, die nicht streng positiv definitiv sind, in der Praxis sehr gut funktionieren. Ein Beispiel ist der Sigmoidkern, der trotz seiner breiten Verwendung für bestimmte Werte seiner Parameter nicht positiv semidefiniert ist. Boughorbel (2005) zeigte auch experimentell, dass Kernel, die nur bedingt positiv definitiv sind, in einigen Anwendungen möglicherweise die meisten klassischen Kernel übertreffen können.Kerne können auch als anisotrop stationär, isotrop stationär, kompakt unterstützt, lokal stationär, nicht stationär oder trennbar nicht stationär klassifiziert werden. Darüber hinaus können Kernel auch als skaleninvariant oder skalenabhängig bezeichnet werden, was eine interessante Eigenschaft ist, da skaleninvariante Kernel den Trainingsprozess invariant zu einer Skalierung der Daten treiben.
Auswahl des richtigen Kernels
Die Wahl des am besten geeigneten Kernels hängt stark vom jeweiligen Problem ab – und die Feinabstimmung seiner Parameter kann leicht zu einer mühsamen und umständlichen Aufgabe werden. Die automatische Kernelauswahl ist möglich und wird in den Arbeiten von Tom Howley und Michael Madden diskutiert.
Die Wahl eines Kernels hängt vom jeweiligen Problem ab, da es davon abhängt, was wir modellieren möchten. Mit einem Polynomkern können wir beispielsweise Merkmalskonjunktionen bis zur Ordnung des Polynoms modellieren. Radiale Basisfunktionen erlauben es, Kreise (oder Hypersphären) auszuwählen – im Gegensatz zum linearen Kernel, der nur Linien (oder Hyperebenen) auswählen kann.
Die Motivation hinter der Wahl eines bestimmten Kernels kann sehr intuitiv und unkompliziert sein, je nachdem, welche Art von Informationen wir über die Daten extrahieren möchten. Bitte beachten Sie die abschließenden Anmerkungen zu diesem Thema aus Einführung in das Abrufen von Informationen, von Manning, Raghavan und Schütze für eine bessere Erklärung zu diesem Thema.
Kernelfunktionen
Nachfolgend finden Sie eine Liste einiger Kernelfunktionen, die in der vorhandenen Literatur verfügbar sind. Wie bei früheren Artikeln ist jede LaTeX-Notation für die folgenden Formeln in ihrem HTML-Tag für alternativen Text leicht verfügbar. Ich kann nicht garantieren, dass alle von ihnen vollkommen korrekt sind, so verwenden Sie sie auf eigene Gefahr. Die meisten von ihnen haben Links zu Artikeln, in denen sie ursprünglich verwendet oder vorgeschlagen wurden.
1. Linearer Kernel
- Lineare Kernel-Dokumentation – linearer Kernel-Quellcode – So erstellen Sie SVMs in .NET mit Accord.NET
Der lineare Kernel ist die einfachste Kernelfunktion. Es ist gegeben durch das innere Produkt <x,y> plus eine optionale Konstante c. Kernel-Algorithmen, die einen linearen Kernel verwenden, sind oft äquivalent zu ihren Nicht-Kernel-Pendants, dh KPCA mit linearem Kernel ist das gleiche wie Standard-PCA.
2. Polynomial Kernel
Der Polynomial Kernel ist ein nicht-stationärer Kernel. Polynomkerne eignen sich gut für Probleme, bei denen alle Trainingsdaten normalisiert sind.
Einstellbare Parameter sind die Steigung alpha, der konstante Term c und der Polynomgrad d.
3. Gaußscher Kernel
Der Gaußsche Kernel ist ein Beispiel für einen Basisfunktionskern.
Alternativ könnte es auch implementiert werden mit
Der einstellbare Parameter sigma spielt eine wichtige Rolle bei der Leistung des Kernels und sollte sorgfältig auf das jeweilige Problem abgestimmt werden. Wenn es überschätzt wird, verhält sich das Exponential fast linear und die höherdimensionale Projektion beginnt ihre nichtlineare Kraft zu verlieren. Auf der anderen Seite fehlt der Funktion, wenn sie unterschätzt wird, die Regularisierung, und die Entscheidungsgrenze reagiert sehr empfindlich auf Rauschen in Trainingsdaten.
4. Exponentialkern
Der Exponentialkern ist eng mit dem Gaußschen Kern verwandt, wobei nur das Quadrat der Norm weggelassen wird. Es ist auch ein radialer Basisfunktionskern.
5. Laplace-Kernel
Der Laplace-Kernel ist vollständig äquivalent zum Exponentialkern, mit der Ausnahme, dass er weniger empfindlich auf Änderungen des Sigma-Parameters reagiert. Als äquivalent ist es auch ein radialer Basisfunktionskern.
Es ist wichtig zu beachten, dass die Beobachtungen über den Sigma-Parameter für den Gaußschen Kern auch für den Exponentiellen und den Laplace-Kern gelten.
6. ANOVA-Kernel
Der ANOVA-Kernel ist ebenso wie der Gaußsche und der Laplacesche Kernel ein radialer Basisfunktionskern. Es wird gesagt, dass es bei mehrdimensionalen Regressionsproblemen gut funktioniert (Hofmann, 2008).
7. Hyperbolic Tangent (Sigmoid) Kernel
Der Hyperbolic Tangent Kernel ist auch als Sigmoid Kernel und als Multilayer Perceptron (MLP) Kernel bekannt. Der Sigmoidkern stammt aus dem Bereich der neuronalen Netze, wo die bipolare Sigmoidfunktion häufig als Aktivierungsfunktion für künstliche Neuronen verwendet wird.
Es ist interessant festzustellen, dass ein SVM-Modell, das eine Sigmoidkernfunktion verwendet, einem zweischichtigen neuronalen Perzeptron-Netzwerk entspricht. Dieser Kernel war für Support-Vektor-Maschinen aufgrund seines Ursprungs aus der neuronalen Netzwerktheorie sehr beliebt. Obwohl es nur bedingt positiv definitiv ist, hat es sich in der Praxis als gut erwiesen.
Im Sigmoidkern gibt es zwei einstellbare Parameter, die Steigung alpha und die Schnittpunktkonstante c. Ein gemeinsamer Wert für Alpha ist 1 / N, wobei N die Datendimension ist. Eine detailliertere Studie über Sigmoidkerne finden Sie in den Arbeiten von Hsuan-Tien und Chih-Jen.
8. Rationaler quadratischer Kernel
Der rationale quadratische Kernel ist weniger rechenintensiv als der Gaußsche Kernel und kann als Alternative verwendet werden, wenn die Verwendung des Gaußschen zu teuer wird.
9. Multiquadrischer Kernel
Der Multiquadrische Kernel kann in den gleichen Situationen wie der rationale quadratische Kernel verwendet werden. Wie beim Sigmoidkern ist es auch ein Beispiel für einen nicht positiv bestimmten Kernel.
10. Inverse Multiquadric Kernel
Der inverse multiquadrische Kernel. Wie beim Gaußschen Kern ergibt sich daraus eine Kernelmatrix mit vollem Rang (Micchelli, 1986) und bildet somit einen unendlichen dimensionalen Merkmalsraum.
11. Circular Kernel
Der Circular Kernel wird in geostatischen Anwendungen eingesetzt. Es ist ein Beispiel für einen isotropen stationären Kern und ist positiv definitiv in R2.
12. Sphärischer Kern
Der sphärische Kern ähnelt dem zirkulären Kern, ist aber in R3 positiv definiert.
13. Wellenkern
Der Wellenkern ist auch symmetrisch positiv semidefiniert (Huang, 2008).
14. Power Kernel
Der Power Kernel wird auch als (ungerichteter) Dreieckskern bezeichnet. Es ist ein Beispiel für einen skaleninvarianten Kernel (Sahbi und Fleuret, 2004) und ist auch nur bedingt positiv definitiv.
15. Log Kernel
Der Log Kernel scheint für Bilder besonders interessant zu sein, ist aber nur bedingt positiv definit.
16. Spline-Kernel
Der Spline-Kernel wird als stückweise kubisches Polynom angegeben, wie in den Arbeiten von Gunn (1998) abgeleitet.
Was es jedoch tatsächlich bedeutet, ist:
Mit
17. B-Spline (Radiale Basisfunktion) Kernel
Der B-Spline Kernel wird auf dem Intervall definiert. Es wird durch die rekursive Formel gegeben:
In der Arbeit von Bart Hamers ist es gegeben durch:
Alternativ kann Bn mit dem expliziten Ausdruck (Fomel, 2000) berechnet werden:
Wobei x+ als abgeschnittene Potenzfunktion definiert ist:
18. Bessel-Kernel
Der Bessel-Kernel ist in der Theorie der Funktionsräume gebrochener Glätte gut bekannt. Es ist gegeben durch:
wobei J die Bessel-Funktion der ersten Art ist. In der Kernlab for R-Dokumentation heißt der Bessel-Kernel jedoch:
19. Cauchy-Kernel
Der Cauchy-Kernel stammt aus der Cauchy-Distribution (Basak, 2008). Es ist ein langschwänziger Kern und kann verwendet werden, um weitreichenden Einfluss und Empfindlichkeit über den Raum mit hohen Dimensionen zu geben.
20. Chi-Quadrat-Kernel
Der Chi-Quadrat-Kernel stammt aus der Chi-Quadrat-Verteilung:
Wie der Kommentator Alexis Mignon feststellte, ist diese Version des Kernels jedoch nur bedingt positiv-definitiv (CPD). Eine positiv-definite Version dieses Kernels ist in (Vedaldi und Zisserman, 2011) als
angegeben und eignet sich für andere Methoden als Support Vector Machines.
21. Histogram Intersection Kernel
Der Histogram Intersection Kernel ist auch als Min-Kernel bekannt und hat sich bei der Bildklassifizierung als nützlich erwiesen.
22. Generalized Histogram Intersection
Der Generalized Histogram Intersection Kernel basiert auf dem Histogram Intersection Kernel für die Bildklassifizierung, gilt jedoch in einer viel größeren Vielfalt von Kontexten (Boughorbel, 2005). Es ist gegeben durch:
23. Generalisierter T-Student-Kernel
Der generalisierte T-Student-Kernel hat sich als Mercel-Kernel erwiesen und somit eine positive halbdefinierte Kernmatrix (Boughorbel, 2004). Es ist gegeben durch:
24. Bayes-Kernel
Der Bayes-Kernel könnte wie folgt angegeben werden:
wobei
Es hängt jedoch wirklich von dem zu modellierenden Problem ab. Weitere Informationen finden Sie in der Arbeit von Alashwal, Deris und Othman, in der sie eine SVM mit Bayes’schen Kernen zur Vorhersage von Protein-Protein-Wechselwirkungen verwendeten.
25. Wavelet-Kernel
Der Wavelet-Kernel (Zhang et al, 2004) stammt aus der Wavelet-Theorie und ist gegeben als:
Wobei a und c die Wavelet-Dilatations- und Translationskoeffizienten (die oben dargestellte Form ist eine Vereinfachung, Einzelheiten finden Sie im Originalpapier). Eine translationsinvariante Version dieses Kernels kann wie folgt angegeben werden:
Wobei in beiden Fällen h(x) eine Mutter-Wavelet-Funktion bezeichnet. In der Arbeit von Li Zhang, Weida Zhou und Licheng Jiao schlagen die Autoren ein mögliches h(x) als vor:
Was sie auch als zulässige Kernelfunktion beweisen.
Quellcode
Die neueste Version des Quellcodes für fast alle der oben aufgeführten Kernel ist im Accord.NET Rahmen. Einige sind auch in der Fortsetzung dieses Artikels verfügbar, Kernel Support Vector Machines for Classification and Regression in C #. Sie werden zusammen mit einer umfassenden und einfachen Implementierung von SVMs (Support Vector Machines) in C # bereitgestellt. Für die neuesten Quellen, die Fehlerbehebungen und andere Verbesserungen enthalten können, laden Sie bitte die neueste verfügbare Version von Accord.NET.
Siehe auch
- Kernel Support Vector Machines (kSVMs)
- Principal Component Analysis (PCA)
- Kernel Principal Component Analysis (KPCA)
- Lineare Diskriminanzanalyse (LDA)
- Nichtlineare Diskriminanzanalyse mit Kerneln (KDA)
- Logistische Regressionsanalyse in C#
- Die Accord.NET Framework: Scientific Computing in .NET
- Haar-Feature-Objekterkennung in C# (Der Viola-Jones-Klassifikator)
- Handschrifterkennung mit Kernel-Diskriminanzanalyse
- Handschrifterkennung überarbeitet: Kernel Support Vector Machines
- Logistische Regressionsanalyse
- Wiki-Mitwirkende zur Online-Vorhersage. „Kernel-Methoden.“ Online-Vorhersage Wiki. http://onlineprediction.net/?n=Main.KernelMethods (Zugriff am 3. März 2010).
- Genton, Marc G. „Klassen von Kerneln für maschinelles Lernen: Eine statistische Perspektive.“ Zeitschrift für maschinelle Lernforschung 2 (2001) 299-312.
- Hofmann, T., B. Schölkopf, und A. J. Smola. „Kernel-Methoden im maschinellen Lernen.“ Ann. Statist. Band 36, Nummer 3 (2008), 1171-1220.
- Gunn, S. R. (1998, Mai). „Support Vector machines für Klassifikation und Regression.“ Technischer Bericht, Fakultät für Ingenieurwissenschaften, Naturwissenschaften und Mathematik Schule für Elektronik und Informatik.
- Karatzoglou, A., Smola, A., Hornik, K. und Zeileis, A. „Kernlab – an R package for kernel Learning.” (2004).
- Karatzoglou, A., Smola, A., Hornik, K. und Zeileis, A. „Kernlab – ein S4-Paket für Kernelmethoden in R.“ J. Statistische Software, 11, 9 (2004).
- Karatzoglou, A., Smola, A., Hornik, K. und Zeileis, A. „R: Kernelfunktionen.“ Dokumentation zum Paket ‚kernlab‘ Version 0.9-5. http://rss.acs.unt.edu/Rdoc/library/kernlab/html/dots.html (Zugriff am 3. März 2010).
- Howley, T. und Madden, M.G. „Die genetische Kernel Support Vector Machine: Beschreibung und Bewertung“. Überprüfung der künstlichen Intelligenz. Band 24, Nummer 3 (2005), 379-395.
- Shawkat Ali und Kate A. Smith. „Auswahl der Kernelbreite für die SVM-Klassifizierung: Ein Meta-Learning-Ansatz.“ Internationales Journal für Data Warehousing & „, 1(4), 78-97, Oktober-Dezember 2005.
- Hsuan-Tien Lin und Chih-Jen Lin. „Eine Studie über Sigmoidkerne für SVM und das Training von Nicht-PSD-Kernen mit SMO-Methoden.“ Technischer Bericht, Abteilung für Informatik, National Taiwan University, 2003.
- Boughorbel, S., Jean-Philippe Tarel und Nozha Boujemaa. „Projekt-Imedia: Objekterkennung.“ INRIA – INRIA Tätigkeitsberichte – RalyX. http://ralyx.inria.fr/2004/Raweb/imedia/uid84.html (Zugriff am 3. März 2010).
- Huang, Lingkang. „Variablenauswahl in der Mehrklassen-Support-Vektor-Maschine und Anwendungen in der genomischen Datenanalyse.“ PhD Thesis, 2008.
- Manning, Christopher D., Prabhakar Raghavan und Hinrich Schütze. „Nichtlineare SVMs.“ Die Stanford NLP (Natural Language Processing) Gruppe. http://nlp.stanford.edu/IR-book/html/htmledition/nonlinear-svms-1.html (Zugriff am 3. März 2010).
- Fomel, Sergej. „Inverse B-Spline-Interpolation.“ Stanford Exploration Project, 2000. http://sepwww.stanford.edu/public/docs/sep105/sergey2/paper_html/node5.html (Zugriff am 3. März 2010).
- Basak, Jayanta. „Eine kleinste quadratische Kernel-Maschine mit Box-Einschränkungen.“ Internationale Konferenz zur Mustererkennung 2008 1 (2008): 1-4.
- Alashwal, H., Safaai Deris und Razib M. Othman. „Ein Bayes’scher Kern zur Vorhersage von Protein- Protein-Wechselwirkungen.“ Internationales Journal für Computational Intelligence 5, Nr. 2 (2009): 119-124.
- Hichem Sahbi und François Fleuret. „Kernelmethoden und Skaleninvarianz mit dem Dreieckskern“. INRIA Research Report, N-5143, März 2004.
- Sabri Boughorbel, Jean-Philippe Tarel und Nozha Boujemaa. „Generalized histogram intersection Kernel für die Bilderkennung“. Proceedings of the 2005 Conference on Image Processing, Band 3, Seiten 161-164, 2005.
- Das Leben ist schön. Interpolation von Streudaten: Distanzmatrizen und bedingt positiv bestimmte Funktionen. Konstruktive Approximation 2, Nr. 1 (1986): 11-22.
- Wikipedia contributors, „Kernel methods“, Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=Kernel_methods&oldid=340911970 (Zugriff am 3. März 2010).
- Wikipedia-Mitwirkende, „Kernel trick“, Wikipedia, Die Freie Enzyklopädie, http://en.wikipedia.org/w/index.php?title=Kernel_trick&oldid=269422477 (Zugriff 3. März 2010).
- Weisstein, Eric W. „Positive Semidefinite Matrix.“ Von MathWorld – Einer Wolfram-Webressource. http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html
- Hamers B. „Kernelmodelle für Großanwendungen“, Ph.D. , Katholieke Universiteit Leuven, Belgien, 2004.
- Li Zhang, Weida Zhou, Licheng Jiao. Wavelet Support Vector Machine. IEEE-Transaktionen über System, Mensch und Kybernetik, Teil B, 2004, 34(1): 34-39.
- Vedaldi, A. und Zisserman, A. Effiziente additive Kernel über explizite Feature-Maps. In: IEEE Transactions on Pattern Recognition and Machine Intelligence, Vol. XX, Nein. XX, Juni, 2011.
Zitieren dieser Arbeit
Wenn Sie möchten, zitieren Sie diese Arbeit bitte als: Souza, César R. „Kernel Functions for Machine Learning Applications.“ 17 Beschädigen. 2010. Web. <http://crsouza.blogspot.com/2010/03/kernel-functions-for-machine-learning.html>.