De laatste jaren hebben Kernelmethoden veel aandacht gekregen, vooral door de toegenomen populariteit van de Ondersteuningsvectormachines. Kernelfuncties kunnen in veel toepassingen worden gebruikt omdat ze een eenvoudige brug bieden van lineariteit naar niet-lineariteit voor algoritmen die kunnen worden uitgedrukt in termen van dot-producten. In dit artikel zullen we een aantal kernelfuncties en enkele van hun eigenschappen weergeven.
- Controleer hier de broncode voor alle kernelfuncties.
veel van deze functies zijn opgenomen in Accord.NET, een kader voor het creëren van machine learning, statistieken, en computer vision toepassingen.
- Inhoud
- Kernel Methodes
- de kerneltruc
- Kerneleigenschappen
- het kiezen van de juiste Kernel
- kernelfuncties
- 1. Lineaire Kernel
- 2. Polynomiale Kernel
- 3. Gaussiaanse Kernel
- 4. Exponentiële Kernel
- 5. Laplacian Kernel
- 6. Anova Kernel
- 7. Hyperbolische tangens (Sigmoid) Kernel
- 8. Rational Quadratic Kernel
- 9. Multiquadric Kernel
- 10. Inverse Multiquadric Kernel
- 11. Circulaire Kernel
- 12. Sferische kern
- 13. Wave Kernel
- 14. Power Kernel
- 15. Log Kernel
- 16. Spline Kernel
- 17. B-Spline (radiale basisfunctie) Kernel
- 18. Bessel Kernel
- 19. Cauchy Kernel
- 20. Chi-kwadraat Kernel
- 21. Histogram Intersection Kernel
- 22. Gegeneraliseerde Histogram kruising
- 23. Gegeneraliseerde T-Student Kernel
- 24. Bayesiaanse Kernel
- 25. De Wavelet-Kernel
- broncode
- Zie ook:
- dit werk citeren
Inhoud
- Kernel Methoden
- De Kernel Trick
- Kernel Eigenschappen
- het Kiezen van de Juiste Kernel
- Kernel Functies
- Lineaire Kernel
- Polynomiale Kernel
- Gaussian Kernel
- Exponentiële Kernel
- Laplacian Kernel
- ANOVA-Kernel
- Hyperbolische Tangens (Sigmoïd) Kernel
- Rationeel Kwadratische Kernel
- Multiquadric Kernel
- Inverse Multiquadric Kernel
- Ronde Kernel
- Sferische Kernel
- Golf-Kernel
- Power-Kernel
- Log-Kernel
- Spline Kernel
- B-Spline-Kernel
- Bessel-Kernel
- Cauchy-Kernel
- Chi-Square Kernel
- Histogram Kruising Kernel
- Gegeneraliseerde Histogram Kruising Kernel
- Gegeneraliseerde T-Student-Kernel
- Bayes-Kernel
- de Wavelet-Kernel
- Source code
- Zie ook
Kernel Methodes
Kernel methoden zijn een klasse van algoritmen voor het patroon analyse of erkenning, waarvan de bekendste element is de support vector machine (SVM). De algemene taak van patroonanalyse is het vinden en bestuderen van algemene soorten relaties (zoals clusters, rankings, belangrijkste componenten, correlaties, classificaties) in algemene soorten gegevens (zoals sequenties, tekstdocumenten, sets van punten, vectoren, afbeeldingen, grafieken, enz.) (Wikipedia, 2010a).
Het belangrijkste kenmerk van Kernelmethoden is echter hun eigen benadering van dit probleem. Kernelmethoden brengen de gegevens in hoger-dimensionale ruimten in de hoop dat in deze hoger-dimensionale ruimte de gegevens gemakkelijker kunnen worden gescheiden of beter gestructureerd. Er zijn ook geen beperkingen aan de vorm van deze afbeelding, die zelfs zou kunnen leiden tot oneindig-dimensionale ruimten. Deze mapping functie, echter, hoeft nauwelijks te worden berekend vanwege een tool genaamd de kernel Truc.
de kerneltruc
De Kerneltruc is een zeer interessant en krachtig hulpmiddel. Het is krachtig omdat het een brug van lineariteit aan niet-lineariteit aan om het even welk algoritme verstrekt dat uitsluitend op termen van puntproducten tussen twee vectoren kan worden uitgedrukt. Het komt voort uit het feit dat, als we eerst onze inputgegevens in een hoger-dimensionale ruimte in kaart brengen, een lineair algoritme dat in deze ruimte werkt zich niet-lineair zal gedragen in de oorspronkelijke inputruimte.
nu is de kerneltruc echt interessant omdat die mapping nooit hoeft te worden berekend. Als ons algoritme alleen kan worden uitgedrukt in termen van een binnenproduct tussen twee vectoren, alles wat we nodig hebben is dit binnenproduct te vervangen door het binnenproduct van een andere geschikte ruimte. Daar bevindt zich de “truc”: waar een dot product wordt gebruikt, wordt het vervangen door een Kernel functie. De kernelfunctie geeft een binnenproduct aan in de eigenschappenruimte en wordt gewoonlijk aangeduid als:
K(x,y) = <φ(x),φ(y)>
met behulp van de kernelfunctie kan het algoritme vervolgens naar een ruimte met een hogere dimensie worden uitgevoerd zonder de invoerpunten expliciet in deze ruimte in kaart te brengen. Dit is zeer wenselijk, omdat onze hoger-dimensionale eigenschappenruimte soms zelfs oneindig-dimensionaal kan zijn en dus niet te berekenen is.
Kerneleigenschappen
kernelfuncties moeten continu, symmetrisch zijn en het liefst een positieve (semi-) definitieve Grammatrix hebben. Kernels waarvan wordt gezegd dat ze voldoen aan de stelling van Mercer zijn positief semi-definitief, wat betekent dat hun kernelmatrices alleen niet-negatieve eigen waarden hebben. Het gebruik van een positief bepaalde kernel zorgt ervoor dat het optimalisatieprobleem convex zal zijn en de oplossing uniek zal zijn.
echter, veel kernelfuncties die niet strikt positief bepaald zijn, hebben ook aangetoond dat ze in de praktijk zeer goed presteren. Een voorbeeld is de Sigmoid kernel, die, ondanks zijn brede gebruik, niet positief semi-definitief is voor bepaalde waarden van zijn parameters. Boughorbel (2005) toonde ook experimenteel aan dat Kernels die slechts voorwaardelijk positief bepaald zijn, in sommige toepassingen mogelijk beter kunnen presteren dan de meeste klassieke kernels.
Kernels kunnen ook worden ingedeeld als anisotroop stationaire, isotroop stationaire, compact ondersteunde, lokaal stationaire, niet-stationaire of scheidbare niet-stationaire. Bovendien kunnen kernels ook worden gelabeld als schaal-invariant of schaal-afhankelijk, wat een interessante eigenschap is als schaal-invariant kernels drijven het trainingsproces invariant tot een schaling van de gegevens.
het kiezen van de juiste Kernel
het kiezen van de meest geschikte kernel hangt sterk af van het probleem – en het fijnafstellen van de parameters kan gemakkelijk een vervelende en omslachtige taak worden. Automatische kernelselectie is mogelijk en wordt besproken in de werken van Tom Howley en Michael Madden.
De keuze van een Kernel hangt af van het probleem omdat het afhangt van wat we proberen te modelleren. Een veelterm kern, bijvoorbeeld, stelt ons in staat om functieconjuncties te modelleren tot de Orde van de veelterm. Radiale basisfuncties maken het mogelijk om cirkels (of hypersferen) te kiezen – in constrast met de lineaire kernel, die het alleen mogelijk maakt om lijnen (of hyperplanes) te kiezen.
de motivatie achter de keuze van een bepaalde kernel kan zeer intuïtief en eenvoudig zijn, afhankelijk van wat voor soort informatie we verwachten te extraheren over de data. Zie de laatste opmerkingen over dit onderwerp van inleiding tot het opvragen van informatie, door Manning, Raghavan en Schütze voor een betere uitleg over het onderwerp.
kernelfuncties
Hieronder is een lijst met enkele kernelfuncties die beschikbaar zijn uit de bestaande literatuur. Zoals het geval was met eerdere artikelen, zijn alle LaTeX notaties voor de onderstaande formules direct beschikbaar via hun alternatieve tekst html tag. Ik kan niet garanderen dat ze allemaal perfect correct zijn, dus gebruik ze op eigen risico. De meeste daarvan hebben links naar artikelen waar ze oorspronkelijk zijn gebruikt of voorgesteld.
1. Lineaire Kernel
- lineaire kernel documentatie-lineaire kernel broncode-hoe SVM ‘ s in. net te maken met Accord.NET
De lineaire kernel is de eenvoudigste kernelfunctie. Het wordt gegeven door het interne product <x,y> plus een optionele constante C. Kernelalgoritmen die een lineaire kernel gebruiken zijn vaak gelijkwaardig aan hun niet-kernel tegenhangers, d.w.z. KPCA met lineaire kernel is hetzelfde als standaard PCA.
2. Polynomiale Kernel
De polynomiale kernel is een niet-stationaire kernel. Polynomiale kernels zijn zeer geschikt voor problemen waarbij alle trainingsgegevens genormaliseerd zijn.
instelbare parameters zijn de helling alfa, de constante term c en de polynomiale graad d.
3. Gaussiaanse Kernel
De Gaussiaanse kernel is een voorbeeld van de radiale basisfunctie kernel.
alternatief kan het ook worden geïmplementeerd met
de instelbare parameter Sigma speelt een belangrijke rol in de prestaties van de kernel, en moet zorgvuldig worden afgestemd op het probleem. Bij overschatting zal de exponentiële zich bijna lineair gedragen en zal de hoger-dimensionale projectie zijn niet-lineaire kracht beginnen te verliezen. Anderzijds zal, indien onderschat, de functie niet regulariseren en zal de beslissingsgrens zeer gevoelig zijn voor lawaai in trainingsgegevens.
4. Exponentiële Kernel
de exponentiële kernel is nauw verwant aan de Gaussiaanse kernel, met alleen het kwadraat van de norm weggelaten. Het is ook een radiale basis functie kernel.
5. Laplacian Kernel
de Laplace Kernel is volledig gelijk aan de exponentiële kernel, behalve dat deze minder gevoelig is voor veranderingen in de Sigma parameter. Omdat het equivalent, het is ook een radiale basis functie kernel.
Het is belangrijk op te merken dat de observaties over de Sigma parameter voor de Gaussiaanse kernel ook van toepassing zijn op de exponentiële en Laplaciaanse kernels.
6. Anova Kernel
de ANOVA kernel is ook een radiale basisfunctie kernel, net als de Gaussiaanse en Laplaciaanse kernels. Er wordt gezegd dat het goed presteert in multidimensionale regressieproblemen (Hofmann, 2008).
7. Hyperbolische tangens (Sigmoid) Kernel
de hyperbolische tangens Kernel is ook bekend als de Sigmoid Kernel en als de Multilayer Perceptron (MLP) kernel. De sigmoid Kernel komt uit het neurale netwerk veld, waar de bipolaire sigmoid functie vaak wordt gebruikt als een activeringsfunctie voor kunstmatige neuronen.
Het is interessant om op te merken dat een SVM-model dat gebruik maakt van een sigmoid-kernelfunctie gelijk is aan een perceptron neuraal netwerk met twee lagen. Deze kernel was vrij populair voor ondersteuning vector machines vanwege zijn oorsprong uit neurale netwerktheorie. Ook, ondanks het feit dat slechts voorwaardelijk positief definitief, is gebleken om goed te presteren in de praktijk.
Er zijn twee instelbare parameters in de sigmoid-kernel, de helling alfa en de interceptconstante c. een gemeenschappelijke waarde voor Alfa is 1 / N, waarbij N de gegevensdimensie is. Een meer gedetailleerde studie over sigmoid kernels is te vinden in de werken van Hsuan-Tien en Chih-Jen.
8. Rational Quadratic Kernel
De Rational Quadratic kernel is minder rekenintensief dan de Gaussian kernel en kan als alternatief worden gebruikt wanneer het gebruik van de Gaussian te duur wordt.
9. Multiquadric Kernel
De Multiquadric kernel kan worden gebruikt in dezelfde situaties als de Rational Quadratic kernel. Zoals het geval is met de kernel Sigmoid, is het ook een voorbeeld van een niet-positieve definitieve kernel.
10. Inverse Multiquadric Kernel
de inverse Multi Quadric kernel. Net als bij de Gaussiaanse kernel, resulteert het in een kernel matrix met volledige rang (Micchelli, 1986) en vormt zo een oneindige dimensie feature space.
11. Circulaire Kernel
de circulaire kernel wordt gebruikt in geostatische toepassingen. Het is een voorbeeld van een isotrope stationaire kernel en is positief bepaald in R2.
12. Sferische kern
De sferische kern is vergelijkbaar met de cirkelvormige kern, maar is positief bepaald in R3.
13. Wave Kernel
De Wave kernel is ook symmetrisch positief semi-definitief (Huang, 2008).
14. Power Kernel
De Power kernel is ook bekend als de (niet-gecorrigeerde) driehoekige kernel. Het is een voorbeeld van schaal-invariante kernel (Sahbi en Fleuret, 2004) en is ook slechts voorwaardelijk positief definitief.
15. Log Kernel
De log kernel lijkt bijzonder interessant voor images, maar is slechts voorwaardelijk positief definitief.
16. Spline Kernel
De Spline kernel wordt gegeven als een stuk-wise kubieke veelterm, zoals afgeleid in de werken van Gunn (1998).
Echter, wat het eigenlijk is:
Met
17. B-Spline (radiale basisfunctie) Kernel
De kernel B-Spline wordt gedefinieerd op het interval . Het wordt gegeven met de recursieve formule:
in het werk van Bart Hamers wordt het gegeven door:
alternatief kan Bn worden berekend met behulp van de expliciete uitdrukking (fomel, 2000):
waarbij x + is gedefinieerd als de afgeknotte power-functie:
18. Bessel Kernel
De Bessel kernel is bekend in de theorie van functieruimten met fractionele gladheid. Het wordt gegeven door:
waarbij J de Bessel-functie van de eerste soort is. In het Kernlab voor R-documentatie wordt echter gezegd dat de Bessel – kernel:
19. Cauchy Kernel
De Cauchy kernel komt uit de Cauchy distributie (Basak, 2008). Het is een long-tailed kernel en kan worden gebruikt om lange afstand invloed en gevoeligheid over de hoge dimensie ruimte te geven.
20. Chi-kwadraat Kernel
De Chi-kwadraat kernel komt uit de chi-kwadraat distributie:
echter, zoals opgemerkt door commentator Alexis Mignon, is deze versie van de kernel slechts voorwaardelijk positief-definitief (CPD). Een positieve-definitieve versie van deze kernel wordt gegeven in (Vedaldi and Zisserman, 2011) als
en is geschikt voor gebruik met andere methoden dan ondersteunende vectormachines.
21. Histogram Intersection Kernel
De Histogram Intersection Kernel is ook bekend als de min Kernel en is bewezen nuttig in beeldclassificatie.
22. Gegeneraliseerde Histogram kruising
de gegeneraliseerde Histogram kruising kernel is gebouwd op basis van de Histogram kruising Kernel voor beeldclassificatie, maar is van toepassing in een veel grotere verscheidenheid van contexten (Boughorbel, 2005). Het wordt gegeven door:
23. Gegeneraliseerde T-Student Kernel
de gegeneraliseerde T-Student Kernel is bewezen een Mercel Kernel te zijn, dus met een positieve semi-definitieve kernel matrix (Boughorbel, 2004). Het wordt gegeven door:
24. Bayesiaanse Kernel
de Bayesiaanse kernel kan worden gegeven als:
waarbij
Het hangt echter echt af van het probleem dat gemodelleerd wordt. Voor meer informatie, zie het werk van Alashwal, Deris en Othman, waarin zij een SVM met Bayesiaanse kernels gebruikten in de voorspelling van eiwit-eiwitinteracties.
25. De Wavelet-Kernel
De Wavelet kernel (Zhang et al, 2004) komt van de Wavelet-theorie en is gegeven als:
Waar a en c zijn de wavelet verwijding en vertaling coëfficiënten respectievelijk (het formulier hierboven is een vereenvoudiging, zie het originele artikel voor meer informatie). Een vertaling-invariante versie van deze kernel kan worden gegeven als:
waar in beide h(x) staat voor een moeder wavelet-functie. In het artikel van Li Zhang, Weida Zhou, en Licheng Jiao, suggereren de auteurs een mogelijke h(x) als:
wat ze ook bewijzen als een toelaatbare kernelfunctie.
broncode
de laatste versie van de broncode voor bijna alle bovenstaande kernels is beschikbaar in de Accord.NET Framework. Sommige zijn ook beschikbaar in het vervolg van dit artikel, Kernel ondersteuning Vector Machines voor classificatie en regressie in C#. Ze worden geleverd samen met een uitgebreide en eenvoudige implementatie van SVMs (Support Vector Machines) In C#. Echter, voor de nieuwste bronnen, die bugfixes en andere verbeteringen kunnen bevatten, download de meest recente versie beschikbaar van Accord.NET.
Zie ook:
- Kernel Support Vector Machines (kSVMs)
- Principal Component Analyse (PCA)
- Kernel Principaal Component Analyse (KPCA)
- Lineaire Discriminant Analyse (LDA)
- Niet-Lineaire Discriminant Analyse met Kernels (KDA)
- Logistische Regressie Analyse in C#
- De Accord.NET Kader: Scientific Computing in .NETTO
- Haar-functie object detectie in C# (De Viola-Jones Classifier)
- Handschriftherkenning met behulp van Kernel Discriminant Analyse
- Handschriftherkenning Revisited: Kernel ondersteuning Vector Machines
- logistieke regressieanalyse
- Online voorspelling Wiki-bijdragers. “Kernel Methoden.”Online Voorspelling Wiki. http://onlineprediction.net/?n=Main.KernelMethods (geraadpleegd op 3 maart 2010).
- Genton, Marc G. ” Classes of Kernels for Machine Learning: A Statistics Perspective.”Journal of Machine Learning Research 2 (2001) 299-312.
- Hofmann, T., B. Schölkopf, en A. J. Smola. “Kernel methoden in machine learning.” Anne. Statist. Deel 36, Nummer 3 (2008), 1171-1220.
- Gunn, S. R. (1998, mei). “Ondersteuning vector machines voor classificatie en regressie.”Technisch verslag, Faculteit Ingenieurswetenschappen, wetenschap en wiskunde School van elektronica en Informatica.
- Karatzoglou, A., Smola, A., Hornik, K. and Zeileis, A. “Kernlab – an R package for kernel Learning.” (2004).
- Karatzoglou, A., Smola, A., Hornik, K. and Zeileis, A. “Kernlab-an S4 package for kernel methods in R.” J. Statistical Software, 11, 9 (2004).
- Karatzoglou, A., Smola, A., Hornik, K. and Zeileis, A. ” R: kernelfuncties.”Documentatie voor pakket ‘kernlab’ versie 0.9-5. http://rss.acs.unt.edu/Rdoc/library/kernlab/html/dots.html (geraadpleegd op 3 maart 2010).
- Howley, T. and Madden, M. G. “The genetic kernel support vector machine: Description and evaluation”. Artificial Intelligence Review. Volume 24, Number 3 (2005), 379-395.
- Shawkat Ali en Kate A. Smith. “Kernel breedte selectie voor SVM Classificatie: een Meta-Learning aanpak.”International Journal of Data Warehousing & Mining, 1 (4), 78-97, October-December 2005.
- Hsuan-Tien Lin en Chih-Jen Lin. “A study on sigmoid kernels for SVM and the training of non-PSD kernels by SMO-type methods.”Technical report, Department of Computer Science, National Taiwan University, 2003.
- Boughorbel, S., Jean-Philippe Tarel, and Nozha Boujemaa. “Project-Imedia: Object Recognition.”Inria-Inria Activity Reports-RalyX. http://ralyx.inria.fr/2004/Raweb/imedia/uid84.html (geraadpleegd op 3 maart 2010).
- Huang, Lingkang. “Variabele selectie in Multi-class ondersteuning Vector Machine en toepassingen in genomische data-analyse.”PhD Thesis, 2008.Manning, Christopher D., Prabhakar Raghavan, and Hinrich Schütze. “Niet-Lineaire SVMs.”The Stanford NLP (Natural Language Processing) Group. http://nlp.stanford.edu/IR-book/html/htmledition/nonlinear-svms-1.html (geraadpleegd op 3 maart 2010).
- Fomel, Sergey. “Inverse B-spline interpolatie.”Stanford Exploration Project, 2000. http://sepwww.stanford.edu/public/docs/sep105/sergey2/paper_html/node5.html (geraadpleegd op 3 maart 2010).
- Basak, Jayanta. “Een minst vierkante kernel machine met box beperkingen.”International Conference on Pattern Recognition 2008 1 (2008): 1-4.
- Alashwal, H., Safaai Deris, en Razib M. Othman. “A Bayesian Kernel for the Prediction of Protein-Protein Interactions.”International Journal of Computational Intelligence 5, no. 2 (2009): 119-124.hichem Sahbi en François Fleuret. “Kernel methoden en schaal invariantie met behulp van de driehoekige kernel”. Inria Research Report, N-5143, maart 2004.Sabri Boughorbel, Jean-Philippe Tarel en Nozha Boujemaa. “Generalized histogram intersection kernel for image recognition”. Proceedings of the 2005 Conference on Image Processing, volume 3, pages 161-164, 2005.
- Micchelli, Charles. Interpolatie van verspreide gegevens: Afstandsmatrices en conditioneel positieve bepaalde functies. Constructive Approximation 2, no. 1 (1986): 11-22.
- Wikipedia-bijdragers, “Kernel methods,” Wikipedia, the Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=Kernel_methods&oldid=340911970 (geraadpleegd op 3 maart 2010).
- Wikipedia-bijdragers, “Kernel trick,” Wikipedia, de vrije encyclopedie, http://en.wikipedia.org/w/index.php?title=Kernel_trick&oldid=269422477 (geraadpleegd op 3 maart 2010).
- Weisstein, Eric W. ” Positive Semidefinite Matrix.”Van MathWorld-A Wolfram Web Resource. http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html
- Hamers B. “Kernel Models for Large Scale Applications”, Ph. D., Katholieke Universiteit Leuven, België, 2004.
- Li Zhang, Weida Zhou, Licheng Jiao. Wavelet Ondersteuning Vector Machine. IEEE transacties op Systeem, mens en cybernetica, Deel B, 2004, 34(1): 34-39.
- Vedaldi, A. and Zisserman, A. Efficient Additive Kernels via Explicit Feature Maps. IEEE Transactions on Pattern Recognition and Machine Intelligence, Vol. XX, Nee. XX, juni 2011.
dit werk citeren
Als u wilt, citeer dit werk als: Souza, César R. “kernelfuncties voor Machine Learning-toepassingen.”17 mrt. 2010. Web. <http://crsouza.blogspot.com/2010/03/kernel-functions-for-machine-learning.html>.