C Jacobsar Souza

under de senaste åren har Kärnmetoder fått stor uppmärksamhet, särskilt på grund av den ökade populariteten hos Stödvektormaskinerna. Kärnfunktioner kan användas i många applikationer eftersom de ger en enkel bro från linjäritet till icke-linjäritet för algoritmer som kan uttryckas i termer av dot-produkter. I den här artikeln kommer vi att lista några kärnfunktioner och några av deras egenskaper.

  • kontrollera källkoden för alla kärnfunktioner här.

många av dessa funktioner har införlivats i Accord.NET, ett ramverk för att skapa maskininlärning, statistik och datorsynsapplikationer.

innehåll

  1. Kärnmetoder
    1. Kärntricket
    2. kärnegenskaper
    3. välja rätt kärna
  2. kärnfunktioner
    1. linjär kärna
    2. Polynomkärna
    3. Gaussisk kärna
    4. exponentiell kärna
    5. Laplacian kärna
    6. anova kernel
    7. hyperbolisk tangent (sigmoid) Kernel
    8. rationell kvadratisk kärna
    9. multiquadric kernel
    10. inverse multiquadric kernel
    11. cirkulär kärna
    12. sfärisk kärna
    13. Wave Kernel
    14. power Kernel
    15. log kernel
    16. spline Kernel
    17. B-Spline Kernel
    18. Bessel Kernel
    19. Cauchy Kernel
    20. Chi-Square Kernel
    21. Histogramkorsning Kernel
    22. generaliserad Histogramkorsning Kernel
    23. generaliserad t-Student Kernel
    24. Bayesian Kernel
    25. wavelet Kernel
  3. källkod
  4. se också

kärnmetoder

Kärnmetoder är en klass av algoritmer för mönsteranalys eller igenkänning, vars mest kända element är Supportvektormaskinen (SVM). Den allmänna uppgiften för mönsteranalys är att hitta och studera allmänna typer av relationer (såsom kluster, rankningar, huvudkomponenter, korrelationer, klassificeringar) i allmänna typer av data (såsom sekvenser, textdokument, uppsättningar punkter, vektorer, bilder, grafer etc.) (Wikipedia, 2010a).

huvudegenskapen för Kärnmetoder är dock deras distinkta inställning till detta problem. Kärnmetoder kartlägger data till högre dimensionella utrymmen i hopp om att data i detta högre dimensionella utrymme lättare kan separeras eller struktureras bättre. Det finns inte heller några begränsningar för formen av denna kartläggning, vilket till och med kan leda till oändliga dimensionella utrymmen. Denna kartläggningsfunktion behöver dock knappast beräknas på grund av ett verktyg som kallas kernel trick.

Kärntricket

Kärntricket är ett mycket intressant och kraftfullt verktyg. Det är kraftfullt eftersom det ger en bro från linjäritet till icke-linjäritet till någon algoritm som kan uttryckas enbart på termer av punktprodukter mellan två vektorer. Det kommer från det faktum att om vi först kartlägger våra inmatningsdata till ett högre dimensionellt utrymme, kommer en linjär algoritm som arbetar i detta utrymme att uppträda icke-linjärt i det ursprungliga inmatningsutrymmet.

Nu är kärntricket riktigt intressant eftersom den kartläggningen inte behöver beräknas någonsin. Om vår algoritm endast kan uttryckas i termer av en inre produkt mellan två vektorer, behöver vi bara ersätta denna inre produkt med den inre produkten från något annat lämpligt utrymme. Det är där ligger ”trick”: varhelst en punktprodukt används, ersätts den med en kärnfunktion. Kärnfunktionen betecknar en inre produkt i feature space och betecknas vanligtvis som:

K (x, y) = <Kubi(x), Kubi(y)>

med hjälp av kärnfunktionen kan algoritmen sedan föras in i ett utrymme med högre dimension utan att uttryckligen kartlägga inmatningspunkterna i detta utrymme. Detta är mycket önskvärt, eftersom ibland kan vårt högre dimensionella funktionsutrymme till och med vara oändligt dimensionellt och därmed omöjligt att beräkna.

kärnegenskaper

kärnfunktioner måste vara kontinuerliga, symmetriska och helst ha en positiv (halv) bestämd Grammatris. Kärnor som sägs tillfredsställa Mercers sats är positiva halvdefinitiva, vilket betyder att deras kärnmatriser endast har icke-negativa egenvärden. Användningen av en positiv bestämd kärna försäkrar att optimeringsproblemet blir konvex och lösningen blir unik.

men många kärnfunktioner som inte är strikt positiva definitiva har också visat sig fungera mycket bra i praktiken. Ett exempel är sigmoidkärnan, som trots sin breda användning inte är positiv semi-bestämd för vissa värden på dess parametrar. Boughorbel (2005) visade också experimentellt att kärnor som endast är villkorligt positiva bestämda möjligen kan överträffa de flesta klassiska kärnor i vissa applikationer.

kärnor kan också klassificeras som anisotropa stationära, isotropa stationära, kompakt stödda, lokalt stationära, icke-stationära eller separerbara icke-stationära. Dessutom kan kärnor också märkas skala-invariant eller skala-beroende, vilket är en intressant egenskap eftersom skala-invariant kärnor Driver träningsprocessen invariant till en skalning av data.

att välja rätt kärna

att välja den mest lämpliga kärnan beror mycket på det aktuella problemet – och finjustering av parametrarna kan enkelt bli en tråkig och besvärlig uppgift. Automatiskt kärnval är möjligt och diskuteras i verk av Tom Howley och Michael Madden.

valet av en kärna beror på det aktuella problemet eftersom det beror på vad vi försöker modellera. En polynomkärna tillåter oss till exempel att modellera funktionskonjunktioner upp till polynomets ordning. Radiella basfunktioner gör det möjligt att välja ut cirklar (eller hypersfärer) – i sammandrag med den linjära kärnan, vilket bara tillåter att välja ut linjer (eller hyperplaner).motivationen bakom valet av en viss kärna kan vara mycket intuitiv och enkel beroende på vilken typ av information vi förväntar oss att extrahera om data. Se de sista anteckningarna om detta ämne från introduktion till informationshämtning, av Manning, Raghavan och Sch Acrectze för en bättre förklaring om ämnet.

kärnfunktioner

nedan finns en lista över några kärnfunktioner tillgängliga från den befintliga litteraturen. Som var fallet med tidigare artiklar, varje LaTeX notation för formlerna nedan är lätt tillgängliga från deras alternativa text html-tagg. Jag kan inte garantera att alla är helt korrekta, så använd dem på egen risk. De flesta av dem har länkar till artiklar där de ursprungligen har använts eller föreslagits.

1. Linjär kärna

  • linjär kärndokumentation – linjär kärnkällkod – hur man skapar SVMs i. NET med Accord.NET

den linjära kärnan är den enklaste kärnfunktionen. Den ges av den inre produkten <x,y> plus en valfri konstant C. Kärnalgoritmer som använder en linjär kärna motsvarar ofta sina motsvarigheter utan kärna, dvs KPCA med linjär kärna är samma som standard PCA.

k (x, y) = x^T y + c

2. Polynomkärnan

Polynomkärnan är en icke-stationär kärna. Polynomkärnor är väl lämpade för problem där all träningsdata normaliseras.

k (x, y) = (alfa x^T y + c)^d
justerbara parametrar är lutningen alfa, den konstanta termen c och polynomgraden d.

3. Gaussian Kernel

den gaussiska kärnan är ett exempel på radiell grundfunktion kärna.

k(x, y) = expleft(-frac{ lvert x-y rVert ^2}{2sigma^2}höger)

Alternativt kan det också implementeras med

k(x, y) = expleft(- gamma lVert x-y rVert ^2)

den justerbara parametern Sigma spelar en viktig roll i kärnans prestanda och bör noggrant anpassas till det aktuella problemet. Om den överskattas kommer exponentialen att uppträda nästan linjärt och den högre dimensionella projektionen börjar förlora sin icke-linjära kraft. Å andra sidan, om den underskattas, kommer funktionen att sakna regularisering och beslutsgränsen kommer att vara mycket känslig för buller i träningsdata.

4. Exponentiell kärna

den exponentiella kärnan är nära besläktad med den gaussiska kärnan, med endast kvadraten av normen utelämnad. Det är också en radiell grundfunktion kärna.

k(x, y) = expleft (- frac{ lvert x-y rVert }{2sigma^2}höger)

5. Laplacian Kernel

Laplace-kärnan är helt ekvivalent med den exponentiella kärnan, förutom att den är mindre känslig för förändringar i Sigma-parametern. Att vara likvärdig är det också en radiell grundfunktionskärna.

k(x, y) = expleft(- frac{lvert x-y rVert }{Sigma}höger)

det är viktigt att notera att observationerna om Sigma-parametern för den gaussiska kärnan också gäller exponentiella och Laplacian-kärnorna.

6. ANOVA Kernel

ANOVA-kärnan är också en radiell grundfunktionskärna, precis som de gaussiska och Laplacian kärnorna. Det sägs fungera bra i flerdimensionella regressionsproblem (Hofmann, 2008).

k (x, y) = sum_{k=1}^n exp (- sigma (x^k - y^k)^2)^d

7. Hyperbolisk Tangent (sigmoid) kärna

den hyperboliska Tangentkärnan är också känd som Sigmoidkärnan och som Multilayer Perceptron (MLP) kärna. Sigmoidkärnan kommer från neurala nätverksfältet, där den bipolära sigmoidfunktionen ofta används som en aktiveringsfunktion för artificiella neuroner.

k(x, y) = tanh (alpha x^t y + c)

det är intressant att notera att en SVM-modell som använder en sigmoidkärnfunktion motsvarar ett tvåskiktigt, perceptron neuralt nätverk. Denna kärna var ganska populär för stödvektormaskiner på grund av sitt ursprung från neuralt nätverksteori. Trots att det bara är villkorligt positivt bestämt har det visat sig fungera bra i praktiken.

det finns två justerbara parametrar i sigmoidkärnan, lutningsalfa och avlyssningskonstanten c. ett gemensamt värde för Alfa är 1/N, där N är datadimensionen. En mer detaljerad studie om sigmoidkärnor finns i verk av Hsuan-Tien och Chih-Jen.

8. Rationell kvadratisk kärna

den rationella kvadratiska kärnan är mindre beräkningsintensiv än den gaussiska kärnan och kan användas som ett alternativ när man använder Gaussian blir för dyr.

k(x, y) = 1-frac{lVert x-y rVert^2}{lvert x-y rVert^2 + c}

9. Multiquadric Kernel

multiquadric kernel kan användas i samma situationer som den rationella kvadratiska kärnan. Som är fallet med sigmoid-kärnan är det också ett exempel på en icke-positiv bestämd kärna.

k(x, y) = sqrt{lVert x-y rVert^2 + c^2}

10. Inverse Multiquadric Kernel

den Inverse Multi Quadric kärnan. Som med den gaussiska kärnan resulterar det i en kärnmatris med full rang (Micchelli, 1986) och bildar därmed ett oändligt dimensioneringsutrymme.

k (x, y) = frac{1}{sqrt{lVert x-y rVert^2 + theta^2}}

11. Cirkulär kärna

den cirkulära kärnan används i geostatiska applikationer. Det är ett exempel på en isotropisk stationär kärna och är positiv bestämd i R2.

k(x, y) = frac{2}{pi} arccos ( - frac{ lVert x-y rVert}{sigma}) - frac{2}{pi} frac{ lVert x-y rVert}{sigma} sqrt{1 - vänster(frac{ lvert x-y rVert}{Sigma} höger)^2}
mbox{if}~ lvert X-Y rvert Sigma MBOX{, noll annars}

12. Sfärisk kärna

den sfäriska kärnan liknar den cirkulära kärnan, men är positiv bestämd i R3.

k(x, y) = 1 - frac{3}{2} frac{lVert x-y rVert}{Sigma} + frac{1}{2} vänster( frac{ lvert x-y rVert}{Sigma} höger)^3

mbox{if}~ lVert x-y rvert Sigma mbox{, noll annars}

13. Vågkärnan

Vågkärnan är också symmetrisk positiv halvdefinitiv (Huang, 2008).

k (x, y) = frac{theta}{lVert x-y rVert höger} sin frac{lVert x-y rVert }{theta}

14. Kraftkärnan

Kraftkärnan är också känd som den (oidentifierade) triangulära kärnan. Det är ett exempel på skalinvariant kärna (Sahbi och Fleuret, 2004) och är också endast villkorligt positiv bestämd.

k (x, y) = - lVert x-y rVert ^d

15. Loggkärnan

Loggkärnan verkar vara särskilt intressant för bilder, men är endast villkorligt positiv bestämd.

k (x, y) = - log (lVert x-y rVert ^d + 1)

16. Spline Kernel

Spline-kärnan ges som en bitvis kubisk polynom, som härledd i verk av Gunn (1998).

k(x, y) = 1 + xy + XY~min(x,y) - frac{x+y}{2}~min(x,y)^2+frac{1}{3}min(x,y)^3

men vad det egentligen betyder är:

k(x, y) = prod_{i=1}^D 1 + x_i y_i + x_i y_i min(x_i,y_i) - frac{x_i + y_i}{2} min(x_i, y_i)^2 + frac{min(x_i,y_i)^3}{3}

medX,Y i r^d

17. B-Spline (Radial Basis Function) Kernel

B-Spline-kärnan definieras på intervallet . Den ges av den rekursiva formeln:

k (x, y)=b_{2p+1}(x-y)

mbox{var~} p i n mbox{~med~} B_{i+1}: = B_i otimes B_0.

i arbetet av Bart Hamers ges det av:

k(x, y) = prod_{p=1}^d B_{2n+1}(x_p - y_p)

Alternativt kan Bn beräknas med det uttryckliga uttrycket (Fomel, 2000):

B_n(x) = frac{1}{n!} sum_{k=0}^{n+1} binom{n+1}{k} (-1)^k (x + frac{n + 1}{2} - k)^n_ +

där x + definieras som den stympade effektfunktionen:

x^d_ + = börja{fall} x^D, mbox{if }x 0 0, mbox{annars} avsluta{fall}

18. Bessel Kernel

Bessel-kärnan är välkänd i teorin om funktionsutrymmen med fraktionell jämnhet. Den ges av:

k(x, y) = frac{J_{v+1}( sigma lVert x-y rVert)}{ lVert x-y rVert ^ {-n(v+1)} }

där J är Bessel-funktionen av första slag. I kernlab för R-dokumentation sägs dock Bessel-kärnan vara:

k(x,x') = - Bessel_ {(nu+1)}^n (sigma |x - x'|^2)') = - Bessel_{(nu+1)}^n (sigma |x - x'|^2)

19. Cauchy Kernel

Cauchy-kärnan kommer från Cauchy-distributionen (Basak, 2008). Det är en långsvansad kärna och kan användas för att ge långväga inflytande och känslighet över utrymmet med hög dimension.

k (x, y) = frac{1}{1 + frac{lVert x-y rVert^2}{sigma^2} }

20. Chi-kvadratisk kärna

chi-kvadratisk kärna kommer från chi-kvadratisk distribution:

k(x,y) = 1 - sum_{i=1}^n frac{(x_i-y_i)^2}{frac{1}{2}(x_i+y_i)}

men som noterat av kommentator Alexis Mignon är denna version av kärnan endast villkorligt positiv-bestämd (CPD). En positiv bestämd version av denna kärna ges i (Vedaldi och Zisserman, 2011) som

och är lämplig att användas med andra metoder än stödvektormaskiner.

21. Histogramkorsningskärnan

Histogramkorsningskärnan är också känd som min-kärnan och har visat sig vara användbar vid bildklassificering.

k (x, y)=sum_{i = 1}^n min(x_i,y_i)

22. Generaliserad Histogramkorsning

den generaliserade Histogramkorsningskärnan är byggd baserat på Histogramkorsningskärnan för bildklassificering men gäller i en mycket större mängd sammanhang (Boughorbel, 2005). Den ges av:

k(x,y) = sum_{i=1}^m min(|x_i|^alfa,|y_i|^beta)

23. Generaliserad t-Student-kärna

den generaliserade t-Student-kärnan har visat sig vara en Mercel-kärna, vilket har en positiv halvdefinitiv Kärnmatris (Boughorbel, 2004). Den ges av:

k(x,y) = frac{1}{1 + lVert x-y rVert ^d}

24. Bayesian Kernel

Bayesian kernel kan ges som:

k(x,y) = prod_{l=1}^N kappa_l (x_l,y_l)

där

kappa_l(a,b) = sum_{C i {0;1}} p(y=c Mid X_l=a) ~ p(y=c mid x_l=b)

det beror dock verkligen på att problemet modelleras. För mer information, se arbetet av Alashwal, Deris och Othman, där de använde en SVM med Bayesian kärnor i förutsägelsen av protein-protein interaktioner.

25. Wavelet-kärnan

wavelet-kärnan (Zhang et al, 2004) kommer från wavelet-teorin och ges som:

k(x,y) = prod_{i=1}^N h(frac{x_i-c_i}{a}) : h(frac{y_i-c_i}{a})

där a och C är wavelet dilation och translation koefficienter, respektive (formuläret som presenteras ovan är en förenkling, se originalpapper för detaljer). En översättning-invariant version av denna kärna kan ges som:

k(x,y) = prod_{i=1}^N h(frac{x_i-y_i}{a})

där i båda h(x) betecknar en moder wavelet-funktion. I papperet av Li Zhang, Weida Zhou och Licheng Jiao föreslår författarna en möjlig h(x) som:

h(x) = cos (1.75 x)exp (- frac{x^2}{2})

som de också bevisar som en tillåtlig kärnfunktion.

källkod

den senaste versionen av källkoden för nästan alla kärnor som anges ovan finns i Accord.NET Ram. Vissa finns också i uppföljaren till denna artikel, Kernel Support Vector Machines för klassificering och Regression i C#. De tillhandahålls tillsammans med en omfattande och enkel implementering av SVMs (Support Vector Machines) i C#. Men för de senaste källorna, som kan innehålla buggfixar och andra förbättringar, ladda ner den senaste versionen av Accord.NET.

Se även

  • Kernel Support Vector Machines (kSVMs)
  • Principal Component Analysis (PCA)
  • Kernel Principal Component Analysis (KPCA)
  • linjär diskriminant analys (LDA)
  • icke-linjär diskriminant analys med kärnor (KDA)
  • logistisk regressionsanalys i C#
  • Accord.NET Framework: Scientific Computing in. net
  • Haar-funktionen objektdetektering i C #(Viola-Jones klassificerare)
  • handskriftsigenkänning med hjälp av Kernel Discriminant Analysis
  • handskriftsigenkänning Revisited: Kernel stöd vektor maskiner
  • logistisk regressionsanalys

  • on-Line förutsägelse Wiki bidragsgivare. ”Kärnmetoder.”On-Line Förutsägelse Wiki. http://onlineprediction.net/?n=Main.KernelMethods (åtkomst 3 mars 2010).
  • Genton, Marc G. ” klasser av kärnor för maskininlärning: ett Statistikperspektiv.”Journal of Machine Learning Research 2 (2001) 299-312.
  • Hofmann, T., B. Schiklkopf och A. J. Smola. ”Kärnmetoder i maskininlärning.”Ann. Statist. Volym 36, Nummer 3 (2008), 1171-1220.
  • Gunn, Sr (1998, maj). ”Stöd vektormaskiner för klassificering och regression.”Teknisk rapport, fakulteten för teknik, naturvetenskap och matematik Skolan för elektronik och datavetenskap.
  • Karatzoglou, A., Smola, A., Hornik, K. och Zeileis, A. ”Kernlab – ett r-paket för kärninlärning.” (2004).
  • Karatzoglou, A., Smola, A., Hornik, K. och Zeileis, A. ”Kernlab-ett S4-paket för kärnmetoder i R.” J. statistisk programvara, 11, 9 (2004).
  • Karatzoglou, A., Smola, A., Hornik, K. och Zeileis, A. ”R: kärnfunktioner.”Dokumentation för paketet ”kernlab” version 0.9-5. http://rss.acs.unt.edu/Rdoc/library/kernlab/html/dots.html (åtkomst 3 mars 2010).
  • Howley, T. och Madden, M. G. ”den genetiska kärnans stödvektormaskin: beskrivning och utvärdering”. Artificiell Intelligens Granskning. Volym 24, Nummer 3 (2005), 379-395.
  • Shawkat Ali och Kate A. Smith. ”Val av kärnbredd för SVM-Klassificering: en Meta-inlärningsmetod.”International Journal of Data Warehousing & Mining, 1 (4), 78-97, oktober-December 2005.
  • Hsuan-Tien Lin och Chih-Jen Lin. ”En studie om sigmoidkärnor för SVM och utbildning av icke-PSD-kärnor med SMO-typmetoder.”Teknisk rapport, Institutionen för datavetenskap, National Taiwan University, 2003.
  • Boughorbel, S., Jean-Philippe Tarel och Nozha Boujemaa. ”Projekt-IMedia: Objektigenkänning.”INRIA-INRIA aktivitetsrapporter-RalyX. http://ralyx.inria.fr/2004/Raweb/imedia/uid84.html(åtkomst 3 mars 2010).
  • Huang, Lingkang. ”Variabelt val i Multi-class Support Vector Machine och applikationer i genomisk dataanalys.”Doktorsavhandling, 2008.
  • Manning, Christopher D., Prabhakar Raghavan, och Hinrich Sch Acrectze. ”Icke-Linjära SVMs.”Stanford NLP (Natural Language Processing) – gruppen. http://nlp.stanford.edu/IR-book/html/htmledition/nonlinear-svms-1.html (åtkomst 3 mars 2010).
  • Fomel, Sergey. ”Omvänd B-spline interpolation.”Stanford Exploration Project, 2000. http://sepwww.stanford.edu/public/docs/sep105/sergey2/paper_html/node5.html (åtkomst 3 mars 2010).
  • Basak, Jayanta. ”En minst kvadratisk kärnmaskin med lådbegränsningar.”Internationell konferens om mönsterigenkänning 2008 1 (2008): 1-4.
  • Alashwal, H., Safaai Deris och Razib M. Othman. ”En Bayesiansk kärna för förutsägelse av protein – Protein interaktioner.”International Journal of Computational Intelligence 5, nr 2 (2009): 119-124.
  • Hichem Sahbi och Fran Ubicois Fleuret. ”Kärnmetoder och skala invarians med hjälp av den triangulära kärnan”. INRIA Research Report, N-5143, mars 2004.
  • Sabri Boughorbel, Jean-Philippe Tarel och Nozha Boujemaa. ”Generaliserad histogramkorsningskärna för bildigenkänning”. Proceedings of the 2005 Conference on Image Processing, volym 3, sidorna 161-164, 2005.
  • Micchelli, Charles. Interpolering av spridda data: Avståndsmatriser och villkorligt positiva bestämda funktioner. Konstruktiv Approximation 2, nr 1 (1986): 11-22.
  • Wikipedia-bidragsgivare,” Kärnmetoder”, Wikipedia, den fria encyklopedin, http://en.wikipedia.org/w/index.php?title=Kernel_methods&oldid=340911970 (åtkomst 3 mars 2010).
  • Wikipedia-bidragsgivare, ”Kernel trick”, Wikipedia, den fria encyklopedin, http://en.wikipedia.org/w/index.php?title=Kernel_trick&oldid=269422477 (åtkomst 3 mars 2010).
  • Weisstein, Eric W. ” positiv Semidefinitmatris.”Från MathWorld-En Wolfram Webbresurs. http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html
  • Hamers B.” kärnmodeller för storskaliga applikationer”, Ph.D., Katholieke Universiteit Leuven, Belgien, 2004.
  • Li Zhang, Weida Zhou, Licheng Jiao. Wavelet Stöd Vektor Maskin. IEEE-transaktioner på System -, Man-och cybernetik, del B, 2004, 34(1): 34-39.Vedaldi, A. och Zisserman, A. effektiva Tillsatskärnor via explicita Funktionskartor. IEEE-transaktioner om mönsterigenkänning och maskinintelligens, Vol. XX, Nej. XX, juni, 2011.

citering av detta arbete

om du vill, vänligen citera detta arbete som: Souza, C Jacobsar R. ”kärnfunktioner för Maskininlärningsapplikationer.”17 Mar. 2010. Webb. <http://crsouza.blogspot.com/2010/03/kernel-functions-for-machine-learning.html>.

Related Posts

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *