în ultimii ani, metodele de Kernel au primit o atenție majoră, în special datorită popularității crescute a mașinilor vectoriale de sprijin. Funcțiile Kernel pot fi utilizate în multe aplicații, deoarece oferă o punte simplă de la liniaritate la neliniaritate pentru algoritmi care pot fi exprimați în termeni de produse dot. În acest articol, vom enumera câteva funcții de kernel și unele dintre proprietățile lor.
- Verificați codul sursă pentru toate funcțiile kernel-ului aici.
multe dintre aceste funcții au fost încorporate în Accord.NET, un cadru pentru crearea de aplicații de învățare automată, Statistici și viziune computerizată.
- cuprins
- metode Kernel
- trucul Kernel-ului
- proprietățile nucleului
- alegerea nucleului potrivit
- funcții Kernel
- 1. Linear Kernel
- 2. Nucleul polinomial
- 3. Nucleul Gaussian
- 4. Nucleul exponențial
- 5. Nucleul Laplacian
- 6. Nucleul ANOVA
- 7. Nucleul Tangent hiperbolic (Sigmoid)
- 8. Nucleul Pătratic rațional
- 9. Nucleul Multiquadric
- 10. Kernel Multiquadric invers
- 11. Nucleul Circular
- 12. Nucleul sferic
- 13. Nucleu de undă
- 14. Kernel de putere
- 15. Nucleul jurnal
- 16. Nucleul Spline
- 17. Nucleul B-Spline (Radial Basis Function)
- 18. Nucleul Bessel
- 19. Nucleul Cauchy
- 20. Chi – pătrat Kernel
- 21. Histograma intersecția Kernel
- 22. Intersecția histogramei generalizate
- 23. Nucleul t-Student generalizat
- 24. Kernel Bayesian
- 25. Nucleul Wavelet
- cod sursă
- A se vedea, de asemenea,
- citând această lucrare
cuprins
- metode Kernel
- truc Kernel
- proprietăți Kernel
- alegerea Kernel dreapta
- Kernel liniar
- Kernel polinomial
- Kernel Gaussian
- Kernel exponențială
- Kernel Laplacian
- ANOVA kernel
- hyperbolic tangent (sigmoid) Kernel
- rational quadratic kernel
- multiquadric kernel
- invers multiquadric kernel
- circular Kernel
- sferic Kernel
- Val Kernel
- putere kernel
- log kernel
- spline Kernel
- B-Spline Kernel
- Bessel Kernel
- Cauchy Kernel
- Chi-pătrat Kernel
- histograma intersecție Kernel
- generalizate histograma intersecție Kernel
- generalizate t-Student Kernel
- Bayesian Kernel
- wavelet Kernel
- codul sursă
- a se vedea, de asemenea
funcții Kernel
metode Kernel
metodele Kernel sunt o clasă de algoritmi pentru analiza sau recunoașterea modelelor, al căror element cel mai cunoscut este mașină Vector suport (SVM). Sarcina generală a analizei tiparelor este de a găsi și studia tipuri generale de relații (cum ar fi clustere, clasamente, componente principale, corelații, clasificări) în tipuri generale de date (cum ar fi secvențe, documente text, seturi de puncte, vectori, imagini, grafice etc.) (Wikipedia, 2010a).cu toate acestea, principala caracteristică a metodelor Kernel-ului este abordarea lor distinctă a acestei probleme. Metodele Kernel mapează datele în spații mai înalt dimensionale în speranța că în acest spațiu mai înalt dimensional datele ar putea deveni mai ușor separate sau mai bine structurate. De asemenea, nu există constrângeri asupra formei acestei cartografieri, care ar putea duce chiar la spații infinit-dimensionale. Cu toate acestea, această funcție de mapare nu trebuie calculată din cauza unui instrument numit kernel trick.
trucul Kernel-ului
trucul Kernel-ului este un instrument foarte interesant și puternic. Este puternic, deoarece oferă o punte de la liniaritate la neliniaritate la orice algoritm care poate fi exprimat exclusiv în termeni de produse dot între doi vectori. Provine din faptul că, dacă ne mapăm mai întâi datele de intrare într-un spațiu cu dimensiuni superioare, un algoritm liniar care operează în acest spațiu se va comporta neliniar în spațiul de intrare original.
acum, trucul Kernel-ului este cu adevărat interesant, deoarece cartografierea nu trebuie să fie calculată vreodată. Dacă algoritmul nostru poate fi exprimat doar în termenii unui produs interior între doi vectori, tot ce avem nevoie este să înlocuim acest produs interior cu produsul interior dintr-un alt spațiu adecvat. Aici se află „trucul”: oriunde este utilizat un produs dot, acesta este înlocuit cu o funcție de Kernel. Funcția kernel-ului denotă un produs interior în spațiul de caracteristici și este de obicei notată ca:
K(x,y) = <(X), (Y)>
folosind funcția Kernel-ului, algoritmul poate fi apoi transportat într-un spațiu de dimensiuni superioare fără a cartografia în mod explicit punctele de intrare în acest spațiu. Acest lucru este foarte de dorit, deoarece uneori spațiul nostru de caracteristici mai înalt dimensional ar putea fi chiar infinit-dimensional și, prin urmare, imposibil de calculat.
proprietățile nucleului
funcțiile nucleului trebuie să fie continue, simetrice și, de preferință, ar trebui să aibă o matrice Gram pozitivă (semi-) definită. Nucleele despre care se spune că satisfac teorema lui Mercer sunt pozitive semi-definite, ceea ce înseamnă că matricile lor de kernel au doar valori proprii non-negative. Utilizarea unui nucleu definit pozitiv asigură că problema de optimizare va fi convexă și soluția va fi unică.
cu toate acestea, multe funcții ale nucleului care nu sunt definite strict pozitive s-au dovedit a funcționa foarte bine în practică. Un exemplu este nucleul Sigmoid, care, în ciuda utilizării sale largi, nu este pozitiv semi-definit pentru anumite valori ale parametrilor săi. Boughorbel (2005) a demonstrat, de asemenea, experimental că nucleele care sunt definite doar condiționat pozitive pot depăși cele mai multe nuclee clasice în unele aplicații.
nucleele pot fi, de asemenea, clasificate ca staționare anizotrope, staționare izotrope, susținute compact, staționare local, nestaționare sau nestaționare separabile. Mai mult, nucleele pot fi, de asemenea, etichetate invariant la scară sau dependent de scară, care este o proprietate interesantă, deoarece nucleele invariante la scară conduc procesul de instruire invariant la o scalare a datelor.
alegerea nucleului potrivit
alegerea celui mai potrivit nucleu depinde foarte mult de problema la îndemână – iar reglarea fină a parametrilor acestuia poate deveni cu ușurință o sarcină obositoare și greoaie. Selectarea automată a nucleului este posibilă și este discutată în lucrările lui Tom Howley și Michael Madden.
alegerea unui nucleu depinde de problema la îndemână, deoarece depinde de ceea ce încercăm să modelăm. Un kernel polinomial, de exemplu, ne permite să modelăm conjuncțiile caracteristicilor până la ordinea polinomului. Funcții de bază radiale permite de a alege cercuri (sau hyperspheres) – în constrast cu kernel liniar, care permite doar pentru a alege linii (sau hiperplane).
motivația din spatele alegerii unui anumit nucleu poate fi foarte intuitivă și simplă, în funcție de ce fel de informații ne așteptăm să extragem despre date. Vă rugăm să consultați notele finale cu privire la acest subiect de la introducere la regăsirea informațiilor, de Manning, Raghavan și Sch Xvtze pentru o explicație mai bună pe această temă.
funcții Kernel
mai jos este o listă a unor funcții kernel disponibile din literatura de specialitate existentă. Ca și în cazul articolelor anterioare, fiecare notație LaTeX pentru formulele de mai jos este ușor disponibilă din eticheta html text alternativ. Nu pot garanta că toate sunt perfect corecte, astfel le folosiți pe propriul risc. Cele mai multe dintre ele au link-uri către articole în cazul în care acestea au fost inițial utilizate sau propuse.
1. Linear Kernel
- Linear kernel documentation – linear kernel source code – cum se creează SVM-uri în. net cu Accord.NET
nucleul liniar este cea mai simplă funcție a nucleului. Este dat de produsul interior<x,y> plus o constantă opțională c. algoritmii Kernel-ului care utilizează un kernel liniar sunt adesea echivalenți cu omologii lor non-kernel, adică KPCA cu kernel liniar este același cu PCA standard.
2. Nucleul polinomial
nucleul polinomial este un nucleu non-staționar. Nucleele polinomiale sunt potrivite pentru problemele în care toate datele de antrenament sunt normalizate.
parametrii reglabili sunt panta alfa, termenul constant c și gradul polinomial d.
3. Nucleul Gaussian
nucleul Gaussian este un exemplu de nucleu de funcție de bază radială.
alternativ, ar putea fi implementat și folosind
parametrul reglabil Sigma joacă un rol major în performanța kernel-ului și ar trebui să fie atent reglat la problema la îndemână. Dacă este supraestimat, exponențialul se va comporta aproape liniar, iar proiecția dimensională superioară va începe să-și piardă puterea neliniară. Pe de altă parte, dacă este subestimată, funcția va lipsi de regularizare, iar limita de decizie va fi extrem de sensibilă la zgomotul din datele de antrenament.
4. Nucleul exponențial
nucleul exponențial este strâns legat de nucleul Gaussian, cu doar pătratul normei lăsat afară. Este, de asemenea, un nucleu radial funcție de bază.
5. Nucleul Laplacian
nucleul Laplace este complet echivalent cu nucleul exponențial, cu excepția faptului că este mai puțin sensibil la modificările parametrului sigma. Fiind echivalent, este, de asemenea, o bază radială funcția kernel.
este important să rețineți că observațiile făcute despre parametrul sigma pentru nucleul Gaussian se aplică și nucleelor exponențiale și laplaciene.
6. Nucleul ANOVA
nucleul ANOVA este, de asemenea, un nucleu de funcție de bază radială, la fel ca nucleele gaussiene și Laplaciene. Se spune că funcționează bine în problemele de regresie multidimensională (Hofmann, 2008).
7. Nucleul Tangent hiperbolic (Sigmoid)
nucleul Tangent hiperbolic este, de asemenea, cunoscut sub numele de nucleul Sigmoid și ca nucleul percepton multistrat (MLP). Nucleul Sigmoid provine din câmpul rețelelor neuronale, unde funcția sigmoidă bipolară este adesea folosită ca funcție de activare pentru neuronii artificiali.
este interesant de observat că un model SVM care utilizează o funcție de nucleu sigmoid este echivalent cu o rețea neuronală perceptron cu două straturi. Acest kernel a fost destul de popular pentru mașinile vectoriale de sprijin datorită originii sale din teoria rețelei neuronale. De asemenea, în ciuda faptului că este definit doar condiționat pozitiv, s-a constatat că funcționează bine în practică.
există doi parametri reglabili în nucleul sigmoid, panta alfa și constanta de interceptare c. o valoare comună pentru alfa este 1 / n, unde N este dimensiunea datelor. Un studiu mai detaliat asupra nucleelor sigmoide poate fi găsit în lucrările lui Hsuan-Tien și Chih-Jen.
8. Nucleul Pătratic rațional
nucleul Pătratic rațional este mai puțin intensiv din punct de vedere computațional decât nucleul Gaussian și poate fi folosit ca alternativă atunci când utilizarea Gaussianului devine prea scumpă.
9. Nucleul Multiquadric
nucleul Multiquadric poate fi utilizat în aceleași situații ca și nucleul Pătratic rațional. Ca și în cazul nucleului Sigmoid, este, de asemenea, un exemplu de nucleu definit non-pozitiv.
10. Kernel Multiquadric invers
kernel Multi Quadric invers. Ca și în cazul kernel-ului Gaussian, rezultă o matrice de kernel cu rang Complet (Micchelli, 1986) și formează astfel un spațiu infinit de dimensiuni.
11. Nucleul Circular
nucleul circular este utilizat în aplicații geostatice. Este un exemplu de nucleu staționar izotrop și este pozitiv definit în R2.
12. Nucleul sferic
nucleul sferic este similar cu nucleul circular, dar este pozitiv definit în R3.
13. Nucleu de undă
nucleul de undă este, de asemenea, simetric pozitiv semi-definit (Huang, 2008).
14. Kernel de putere
kernel-ul de putere este, de asemenea, cunoscut sub numele de kernel triunghiular (nerecifiat). Este un exemplu de nucleu invariant la scară (Sahbi și Fleuret, 2004) și este, de asemenea, definit doar condiționat pozitiv.
15. Nucleul jurnal
nucleul jurnal pare a fi deosebit de interesant pentru imagini, dar este definit doar condiționat pozitiv.
16. Nucleul Spline
nucleul Spline este dat ca un polinom cubic în bucăți, așa cum este derivat în lucrările lui Gunn (1998).
cu toate acestea, ceea ce înseamnă de fapt este:
cu
17. Nucleul B-Spline (Radial Basis Function)
nucleul B-Spline este definit pe interval . Este dat de Formula recursivă:
în lucrarea lui Bart Hamers este dat de:
alternativ, Bn poate fi calculat folosind expresia explicită (Fomel, 2000):
unde x + este definit ca funcția de putere trunchiată:
18. Nucleul Bessel
nucleul Bessel este bine cunoscut în teoria spațiilor funcționale de netezime fracționată. Este dat de:
unde J este funcția Bessel de primul fel. Cu toate acestea, în documentația Kernlab pentru R,nucleul Bessel este declarat a fi:
19. Nucleul Cauchy
nucleul Cauchy provine din distribuția Cauchy (Basak, 2008). Este un nucleu cu coadă lungă și poate fi folosit pentru a da influență și sensibilitate pe distanțe lungi asupra spațiului cu dimensiuni ridicate.
20. Chi – pătrat Kernel
chi-pătrat kernel provine din distribuția Chi-pătrat:
cu toate acestea, după cum a menționat comentatorul Alexis Mignon, această versiune a nucleului este doar condiționată pozitiv-definită (CPD). O versiune pozitivă a acestui nucleu este dată în (Vedaldi și Zisserman, 2011) ca
și este adecvată pentru a fi utilizată prin alte metode decât mașinile vectoriale de sprijin.
21. Histograma intersecția Kernel
histograma intersecția Kernel este, de asemenea, cunoscut sub numele de Kernel Min și a fost dovedit util în clasificarea imaginii.
22. Intersecția histogramei generalizate
nucleul de intersecție histogramă generalizată este construit pe baza nucleului de intersecție histogramă pentru clasificarea imaginii, dar se aplică într-o varietate mult mai mare de contexte (Boughorbel, 2005). Este dat de:
23. Nucleul t-Student generalizat
nucleul t-Student generalizat s-a dovedit a fi un nucleu Mercel, având astfel o matrice de nucleu semi-definită pozitivă (Boughorbel, 2004). Este dat de:
24. Kernel Bayesian
kernel Bayesian ar putea fi dat ca:
unde
cu toate acestea, depinde într-adevăr de problema modelată. Pentru mai multe informații, vă rugăm să consultați lucrarea lui Alashwal, Deris și Othman, în care au folosit un SVM cu kerneluri Bayesiene în predicția interacțiunilor proteine-proteine.
25. Nucleul Wavelet
nucleul Wavelet (Zhang et al, 2004) provine din teoria Wavelet și este dat ca:
unde a și c sunt dilatarea wavelet și coeficienții de traducere, respectiv (forma prezentată mai sus este o simplificare, vă rugăm să consultați lucrarea originală pentru detalii). O versiune invariantă de traducere a acestui nucleu poate fi dată ca:
unde în ambele h(x) denotă o funcție wavelet mamă. În lucrarea lui Li Zhang, Weida Zhou și Licheng Jiao, autorii sugerează un posibil h(x) ca:
pe care îl dovedesc, de asemenea, ca o funcție de kernel admisibilă.
cod sursă
cea mai recentă versiune a codului sursă pentru aproape toate nucleele enumerate mai sus este disponibilă în Accord.NET Cadru. Unele sunt, de asemenea, disponibile în continuarea acestui articol, Kernel mașini Vector de sprijin pentru clasificare și regresie în C#. Acestea sunt furnizate împreună cu o implementare cuprinzătoare și simplă a SVM-urilor (Support Vector Machines) în C#. Cu toate acestea, pentru cele mai recente surse, care pot conține remedieri de erori și alte îmbunătățiri, vă rugăm să descărcați cea mai recentă versiune disponibilă a Accord.NET.
A se vedea, de asemenea,
- Kernel support Vector Machines (kSVMs)
- analiza componentelor principale (PCA)
- analiza componentelor principale ale nucleului (KPCA)
- analiza discriminantă liniară (Lda)
- analiza discriminantă neliniară cu nucleele (KDA)
- analiza regresiei logistice în C#
- analiza Accord.NET Cadru: calcul științific în. Net
- Haar-caracteristică de detectare a obiectelor în C #(clasificatorul Viola-Jones)
- recunoașterea scrierii de mână folosind Kernel analiză discriminantă
- recunoașterea scrierii de mână Revisited: Suport Kernel mașini Vector
- analiza de regresie logistică
- on-line predicție Wiki contribuitori. „Metode De Kernel.”Predicție On-Line Wiki. http://onlineprediction.net/?n=Main.KernelMethods (accesat la 3 martie 2010).
- Genton, Marc G. ” clase de nuclee pentru învățarea automată: o perspectivă Statistică.”Journal of machine Learning Research 2 (2001) 299-312.
- Hofmann, T., B. Sch Unkticlkopf și A. J. Smola. „Metode de Kernel în învățarea automată.”Ann. Statist. Volumul 36, Numărul 3 (2008), 1171-1220.
- Gunn, S. R. (1998, mai). „Mașini vectoriale de sprijin pentru clasificare și regresie.”Raport tehnic, Facultatea de inginerie, științe și Matematică școala de electronică și Informatică.
- Karatzoglou, A., Smola, A., Hornik, K. și Zeileis, A. „Kernlab – un pachet R pentru învățarea kernel-ului.” (2004).
- Karatzoglou, A., Smola, A., Hornik, K. și Zeileis, A. „kernlab – un pachet S4 pentru metode de kernel în R.” J. software statistic, 11, 9 (2004).
- Karatzoglou, A., Smola, A., Hornik, K. și Zeileis, A. „R: funcții Kernel.”Documentație pentru pachetul „kernlab” versiunea 0.9-5. http://rss.acs.unt.edu/Rdoc/library/kernlab/html/dots.html (accesat la 3 martie 2010).
- Howley, T. și Madden, M. G. „mașina vectorială de susținere a nucleului genetic: descriere și evaluare”. Revizuirea Inteligenței Artificiale. Volumul 24, Numărul 3 (2005), 379-395.
- Shawkat Ali și Kate A. Smith. „Selectarea lățimii nucleului pentru clasificarea SVM: o abordare Meta-învățare.”Jurnalul Internațional de depozitare a datelor & minerit, 1(4), 78-97, octombrie-decembrie 2005.
- Hsuan-Tien Lin și Chih-Jen Lin. „Un studiu privind nucleele sigmoide pentru SVM și formarea nucleelor non-PSD prin metode de tip SMO.”Raport tehnic, Departamentul de Informatică, Universitatea Națională din Taiwan, 2003.Boughorbel, S., Jean-Philippe Tarel și Nozha Boujemaa. „Proiect-Imedia: Recunoașterea Obiectelor.”INRIA – Inria rapoarte de activitate-RalyX. http://ralyx.inria.fr/2004/Raweb/imedia/uid84.html (accesat la 3 martie 2010).
- Huang, Lingkang. „Selecție variabilă în mașină Vector Suport multi-clasă și aplicații în analiza datelor genomice.”Teză De Doctorat, 2008.
- Manning, Christopher D., Prabhakar Raghavan, și Hinrich Sch Inktze. „SVMs Neliniare.”Grupul Stanford NLP (Natural Language Processing). http://nlp.stanford.edu/IR-book/html/htmledition/nonlinear-svms-1.html (accesat la 3 martie 2010).
- Fomel, Serghei. „Interpolare inversă B-spline.”Proiectul De Explorare Stanford, 2000. http://sepwww.stanford.edu/public/docs/sep105/sergey2/paper_html/node5.html (accesat la 3 martie 2010).
- Basak, Jayanta. „O mașină de kernel puțin pătrat cu constrângeri cutie.”Conferința Internațională privind recunoașterea modelelor 2008 1 (2008): 1-4.Alashwal, H., Safaai Deris și Razib M. Othman. „Un Kernel Bayesian pentru predicția interacțiunilor proteine – proteine.”Jurnalul Internațional de inteligență computațională 5, Nr. 2 (2009): 119-124.
- Hichem Sahbi și Fran Inquois Fleuret. „Metode de Kernel și invarianță la scară folosind kernelul triunghiular”. Raport de cercetare INRIA, N-5143, martie 2004.Sabri Boughorbel, Jean-Philippe Tarel și Nozha Boujemaa. „Nucleu de intersecție histogramă generalizată pentru recunoașterea imaginii”. Lucrările conferinței din 2005 privind procesarea imaginilor, Volumul 3, paginile 161-164, 2005.
- Micchelli, Charles. Interpolarea datelor împrăștiate: matrice de distanță și funcții definite condițional pozitive. Aproximare constructivă 2, Nr. 1 (1986): 11-22.
- colaboratori Wikipedia, „metode Kernel”, Wikipedia, enciclopedia liberă,http://en.wikipedia.org/w/index.php?title=Kernel_methods&oldid=340911970 (accesat la 3 martie 2010).
- contribuitori Wikipedia, „kernel trick”, Wikipedia, enciclopedia liberă,http://en.wikipedia.org/w/index.php?title=Kernel_trick&oldid=269422477 (accesat la 3 martie 2010).
- Weisstein, Eric W. ” matrice Semidefinită pozitivă.”Din MathWorld–O Resursă Web Wolfram. http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html
- Hamers B. „modele de Kernel pentru aplicații la scară largă”, Ph.D., Katholieke Universiteit Leuven, Belgia, 2004.
- Li Zhang, Weida Zhou, Licheng Jiao. Wavelet Suport Vector Mașină. Tranzacții IEEE pe sistem, om și Cibernetică, Partea B, 2004, 34(1): 34-39.
- Vedaldi, A. și Zisserman, A. kerneluri aditive eficiente prin hărți de caracteristici explicite. Tranzacții IEEE privind recunoașterea modelelor și inteligența mașinilor, Vol. XX, nu. XX, iunie, 2011.
citând această lucrare
dacă doriți, vă rugăm să citați această lucrare ca: Souza, c Inktsar R. „funcții Kernel pentru aplicații de învățare automată.”17 Mar. 2010. Web. <http://crsouza.blogspot.com/2010/03/kernel-functions-for-machine-learning.html>.