w ostatnich latach metody Jądra zyskały dużą uwagę, szczególnie ze względu na rosnącą popularność maszyn wektorów pomocniczych. Funkcje jądra mogą być używane w wielu aplikacjach, ponieważ zapewniają prosty Most od liniowości do nieliniowości dla algorytmów, które mogą być wyrażone w kategoriach produktów punktowych. W tym artykule wymienimy kilka funkcji jądra i niektóre z ich właściwości.
- Sprawdź kod źródłowy wszystkich funkcji jądra tutaj.
wiele z tych funkcji zostało włączonych do Accord.NET, framework do tworzenia aplikacji machine learning, statistics, and computer vision.
- spis treści
- metody jądra
- sztuczka z kernelem
- właściwości Jądra
- wybór odpowiedniego Jądra
- funkcje jądra
- 1. Linear Kernel
- 2. Jądro wielomianowe
- 3. Jądro Gaussa
- 4. Jądro wykładnicze
- 5. Jądro Laplace’a
- 6. Jądro ANOVA
- 7. Jądro styczne hiperboliczne (esicy)
- 8. Racjonalne jądro kwadratowe
- 9. Jądro wielowątkowe
- 10. Inverse Multiquadric Kernel
- 11. Jądro okrągłe
- 12. Jądro kuliste
- 13. Jądro falowe
- 14. Jądro mocy
- 15. Jądro dziennika
- 16. Jądro splajnu
- 17. Jądro B-spline (Radial Basis Function)
- 18. Jądro Bessela
- 19. Jądro Cauchy 'ego
- 20. Jądro chi-kwadrat
- 21. Jądro przecięcia histogramu
- 22. Uogólnione przecięcie histogramu
- 23. Uogólnione jądro t-Studenta
- 24. Jądro bayesowskie
- 25. Jądro falkowe
- kod źródłowy
- Zobacz również
- powołując się na tę pracę
spis treści
- metody Jądra
- sztuczka Jądra
- właściwości Jądra
- wybór właściwego Jądra
- funkcje jądra
- jądro liniowe
- jądro wielomianowe
- jądro Gaussa
- jądro wykładnicze
- jądro Laplacjalne
- jądro ANOVA
- jądro styczne hiperboliczne (sigmoidalne)
- jądro kwadratowe racjonalne
- jądro wielowątkowe
- jądro wielowątkowe odwrotne
- jądro okrągłe
- jądro kuliste
- jądro falowe
- jądro energetyczne
- jądro log
- spline Jądro
- jądro B-Spline
- jądro Bessel
- jądro Cauchy
- jądro chi-kwadrat
- jądro przecięcia histogramu
- uogólnione jądro przecięcia histogramu
- uogólnione jądro T-Student
- jądro bayesowskie
- jądro Falkowe
- kod źródłowy
- patrz także
metody jądra
metody jądra są klasą algorytmów analizy wzorców lub rozpoznawania, których najbardziej znanym elementem jest maszyna wektorów wsparcia (SVM). Ogólnym zadaniem analizy wzorców jest wyszukiwanie i badanie ogólnych typów relacji (takich jak klastry, rankingi, główne składniki, korelacje, klasyfikacje) w ogólnych typach danych (takich jak sekwencje, dokumenty tekstowe, zbiory punktów, wektory, obrazy, wykresy itp.) (Wikipedia, 2010a).
główną cechą metod jądra jest jednak ich odmienne podejście do tego problemu. Metody jądra mapują dane do przestrzeni o wyższych wymiarach w nadziei, że w tej przestrzeni o wyższych wymiarach dane mogą stać się łatwiej oddzielone lub lepiej ustrukturyzowane. Nie ma też ograniczeń co do formy tego odwzorowania, co mogłoby prowadzić nawet do nieskończenie wymiarowych przestrzeni. Ta funkcja mapowania nie musi być jednak obliczana z powodu narzędzia zwanego sztuczką jądra.
sztuczka z kernelem
sztuczka z kernelem jest bardzo ciekawym i potężnym narzędziem. Jest potężny, ponieważ zapewnia Most od liniowości do nieliniowości do dowolnego algorytmu, który może wyrażać się wyłącznie na iloczynach punktowych między dwoma wektorami. Wynika to z faktu, że jeśli najpierw odwzorujemy nasze dane wejściowe na przestrzeń o wyższych wymiarach, algorytm liniowy działający w tej przestrzeni będzie zachowywał się nieliniowo w pierwotnej przestrzeni wejściowej.
teraz sztuczka jądra jest naprawdę interesująca, ponieważ mapowanie nie musi być nigdy obliczane. Jeśli nasz algorytm może być wyrażony tylko w kategoriach iloczynu wewnętrznego między dwoma wektorami, wystarczy, że zastąpimy ten iloczyn wewnętrzny iloczynem wewnętrznym z innej odpowiedniej przestrzeni. Tam znajduje się „trik”: wszędzie tam, gdzie używany jest produkt kropkowy, jest on zastępowany przez funkcję jądra. Funkcja jądra oznacza wewnętrzny produkt w przestrzeni funkcji i jest zwykle oznaczana jako:
K(x,y) = <φ(x),φ(y)>
korzystając z funkcji jądra, algorytm może być przeniesiony do przestrzeni o wyższym wymiarze bez jawnego mapowania punktów wejściowych na tę przestrzeń. Jest to bardzo pożądane, ponieważ czasami nasza przestrzeń Cechowa o wyższych wymiarach może być nawet nieskończenie wymiarowa, a zatem niemożliwa do obliczenia.
właściwości Jądra
funkcje jądra muszą być ciągłe, symetryczne i najkorzystniej powinny mieć dodatnią (pół) określoną macierz gramową. Jądra, o których mówi się, że spełniają twierdzenie Mercer ’ a, są dodatnie półprzezroczyste, co oznacza, że ich macierze jądra mają tylko nieujemne wartości Eigena. Zastosowanie dodatniego jądra definiującego zapewnia, że problem optymalizacji będzie wypukły, a rozwiązanie będzie unikalne.
jednak wiele funkcji jądra, które nie są ściśle dodatnie, również okazało się działać bardzo dobrze w praktyce. Przykładem jest jądro esicy, które mimo szerokiego zastosowania nie jest dodatnie półprzezroczyste dla pewnych wartości swoich parametrów. Boughorbel (2005) również eksperymentalnie wykazał, że jądra, które są tylko warunkowo dodatnie definiowane, mogą ewentualnie przewyższać większość klasycznych jąder w niektórych zastosowaniach.
jądra mogą być również klasyfikowane jako anizotropowe stacjonarne, izotropowe stacjonarne, zwarte, lokalnie stacjonarne, niestacjonarne lub rozdzielne niestacjonarne. Co więcej, jądra mogą być również oznaczone jako scale-invariant lub scale-dependant, co jest interesującą właściwością, ponieważ jądra scale-invariant napędzają proces szkoleniowy invariant do skalowania danych.
wybór odpowiedniego Jądra
wybór najodpowiedniejszego jądra w dużym stopniu zależy od problemu – a dostrojenie jego parametrów może łatwo stać się żmudnym i uciążliwym zadaniem. Automatyczny wybór jądra jest możliwy i jest omawiany w pracach Toma Howleya i Michaela Maddena.
wybór jądra zależy od problemu, ponieważ zależy od tego, co próbujemy modelować. Jądro wielomianowe, na przykład, pozwala nam modelować koniunkcje funkcji aż do rzędu wielomianu. Radialne funkcje bazowe pozwalają na wybieranie okręgów (lub hiperplanów) – w konstruowaniu z jądrem liniowym, co pozwala tylko na wybieranie linii (lub hiperplanów).
motywacja wyboru konkretnego jądra może być bardzo intuicyjna i prosta w zależności od tego, jakiego rodzaju informacji oczekujemy na wydobycie danych. Zapoznaj się z końcowymi uwagami na ten temat od wprowadzenia do wyszukiwania informacji przez Manninga, Raghavana i Schütze, aby uzyskać lepsze wyjaśnienie na ten temat.
funkcje jądra
poniżej znajduje się lista niektórych funkcji jądra dostępnych w istniejącej literaturze. Podobnie jak w przypadku poprzednich artykułów, każda notacja LaTeX dla poniższych formuł jest łatwo dostępna z ich alternatywnego tagu html. Nie mogę zagwarantować, że wszystkie z nich są całkowicie poprawne, dlatego używaj ich na własne ryzyko. Większość z nich ma linki do artykułów, w których zostały pierwotnie użyte lub zaproponowane.
1. Linear Kernel
- Linear Kernel documentation – liniowy kod źródłowy jądra – jak tworzyć maszyny SVM w. Net z Accord.NET
jądro liniowe jest najprostszą funkcją jądra. Jest ona podawana przez wewnętrzny produkt <x,y> plus opcjonalna stała c. algorytmy Jądra wykorzystujące jądro liniowe są często równoważne z ich odpowiednikami spoza jądra, tzn. KPCA z jądrem liniowym jest taki sam jak standardowy PCA.
2. Jądro wielomianowe
jądro wielomianowe jest jądrem niestacjonarnym. Jądra wielomianowe są dobrze przystosowane do problemów, w których wszystkie dane treningowe są znormalizowane.
regulowanymi parametrami są nachylenie Alfa, stała C i wielomian stopnia D.
3. Jądro Gaussa
jądro Gaussa jest przykładem jądra radialnej funkcji bazowej.
Alternatywnie można go również zaimplementować za pomocą
regulowany parametr Sigma odgrywa ważną rolę w wydajności jądra i powinien być starannie dostrojony do problemu. Jeśli przecenimy, wykładnik zachowa się niemal liniowo, a projekcja o wyższych wymiarach zacznie tracić swoją nieliniową moc. Z drugiej strony, jeśli jest niedoceniana, funkcja będzie pozbawiona regularyzacji, a granica decyzji będzie bardzo wrażliwa na hałas w danych treningowych.
4. Jądro wykładnicze
jądro wykładnicze jest ściśle związane z jądrem Gaussa, pomijając tylko kwadrat normy. Jest to również jądro funkcji bazowej promieniowej.
5. Jądro Laplace’a
jądro Laplace’ a jest całkowicie równoważne jądrowi wykładniczemu, z wyjątkiem tego, że jest mniej wrażliwe na zmiany w parametrze sigma. Będąc równoważnym, jest to również jądro promieniowej funkcji bazowej.
ważne jest, aby pamiętać, że obserwacje dokonane na temat parametru sigma dla jądra Gaussa dotyczą również jąder wykładniczych i Laplacjańskich.
6. Jądro ANOVA
jądro ANOVA jest również jądrem o radialnej funkcji bazowej, podobnie jak jądra Gaussa i Laplaciana. Mówi się, że działa dobrze w problemach regresji wielowymiarowej (Hofmann, 2008).
7. Jądro styczne hiperboliczne (esicy)
jądro styczne hiperboliczne jest również znane jako jądro esicy i wielowarstwowe jądro perceptronu (MLP). Jądro esicy pochodzi z pola sieci neuronowych, gdzie bipolarna funkcja esicy jest często używana jako funkcja aktywacji sztucznych neuronów.
warto zauważyć, że model SVM wykorzystujący funkcję jądra esicy jest odpowiednikiem dwuwarstwowej sieci neuronowej perceptron. Jądro to było dość popularne w maszynach wektorów nośnych ze względu na swoje pochodzenie z teorii sieci neuronowych. Ponadto, pomimo tego, że jest tylko warunkowo dodatni, stwierdzono, że sprawdza się dobrze w praktyce.
w jądrze esicy istnieją dwa regulowane parametry, nachylenie alfa i stała przechwytywania c. wspólną wartością dla Alfa jest 1/N, gdzie n jest wymiarem danych. Bardziej szczegółowe badania na jądrach esicy można znaleźć w pracach Hsuan-Tien i Chih-Jen.
8. Racjonalne jądro kwadratowe
racjonalne jądro kwadratowe jest mniej intensywne obliczeniowo niż jądro Gaussa i może być użyte jako alternatywa, gdy użycie Gaussa staje się zbyt drogie.
9. Jądro wielowątkowe
jądro wielowątkowe może być używane w takich samych sytuacjach jak jądro kwadratowe. Podobnie jak w przypadku jądra esicy, jest to również przykład nie-dodatniego jądra definiowanego.
10. Inverse Multiquadric Kernel
the Inverse Multi Quadric kernel. Podobnie jak w przypadku jądra Gaussa, powoduje to powstanie macierzy jądra o pełnym randze (Micchelli, 1986) i tym samym tworzy nieskończoną przestrzeń funkcji wymiarowych.
11. Jądro okrągłe
jądro Okrągłe jest używane w zastosowaniach geostatycznych. Jest to przykład izotropowego jądra stacjonarnego i jest dodatni w R2.
12. Jądro kuliste
jądro kuliste jest podobne do jądra kolistego, ale jest dodatnie określone w R3.
13. Jądro falowe
jądro falowe jest również symetrycznie dodatnie półprzezroczyste (Huang, 2008).
14. Jądro mocy
jądro mocy jest również znane jako (niezretyfikowane) jądro trójkątne. Jest to przykład jądra niezmienniczego skali (Sahbi i Fleuret, 2004)i jest również tylko warunkowo dodatnio definiowany.
15. Jądro dziennika
jądro dziennika wydaje się być szczególnie interesujące dla obrazów, ale jest tylko warunkowo dodatnie.
16. Jądro splajnu
jądro splajnu jest podane jako cząstkowy wielomian sześcienny, wyprowadzony w pracach Gunna (1998).
jednak w rzeczywistości oznacza to:
z
17. Jądro B-spline (Radial Basis Function)
jądro B-Spline jest zdefiniowane w przedziale. Jest ona określona przez wzór rekurencyjny:
w pracy Barta Hamersa podano:
Alternatywnie można obliczyć Bn za pomocą wyrażenia jawnego (Fomel, 2000):
gdzie X + jest zdefiniowany jako obcięta funkcja mocy:
18. Jądro Bessela
jądro Bessela jest dobrze znane w teorii przestrzeni funkcyjnych o gładkości ułamkowej. Jest on podany przez:
gdzie J jest funkcją Bessela pierwszego rodzaju. Jednak w dokumentacji Kernlab for R, jądro Bessela ma postać:
19. Jądro Cauchy 'ego
jądro Cauchy’ ego pochodzi z dystrybucji Cauchy ’ ego (Basak, 2008). Jest to jądro długoogonowe i może być używane do nadawania dalekiego zasięgu oddziaływania i czułości w przestrzeni o dużych wymiarach.
20. Jądro chi-kwadrat
jądro Chi-kwadrat pochodzi z dystrybucji Chi-kwadrat:
jednak, jak zauważył komentator Alexis Mignon, ta wersja jądra jest tylko warunkowo dodatnio-określona (CPD). Dodatnio definiowana wersja tego jądra jest podana w (Vedaldi and Zisserman, 2011) jako
i nadaje się do stosowania metodami innymi niż maszyny wektorów pomocniczych.
21. Jądro przecięcia histogramu
jądro przecięcia histogramu jest również znane jako jądro Min i okazało się przydatne w klasyfikacji obrazów.
22. Uogólnione przecięcie histogramu
uogólnione jądro przecięcia histogramu jest zbudowane w oparciu o jądro przecięcia histogramu do klasyfikacji obrazów, ale ma zastosowanie w znacznie większej różnorodności kontekstów (Boughorbel, 2005). Jest on podany przez:
23. Uogólnione jądro t-Studenta
udowodniono, że uogólnione jądro t-Studenta jest jądrem Mercel, a więc ma dodatnią macierz Jądra półprzezroczystego (Boughorbel, 2004). Jest on podany przez:
24. Jądro bayesowskie
jądro bayesowskie może być podane jako:
gdzie
jednak to naprawdę zależy od problemu, który jest modelowany. Aby uzyskać więcej informacji, zobacz pracę alashwala, Derisa i Othmana, w której wykorzystali SVM z jądrami Bayesa do przewidywania interakcji białko-białko.
25. Jądro falkowe
jądro Falkowe (Zhang et al, 2004) pochodzi z teorii falkowej i jest podane jako:
gdzie A i c są odpowiednio współczynnikami dylatacji falkowej i translacji (forma przedstawiona powyżej jest uproszczeniem, szczegóły w oryginalnej pracy). Tłumaczenie-niezmienna wersja tego jądra może być podana jako:
gdzie w obu h(x) oznacza funkcję falkową matki. W pracy li Zhang, Weida Zhou i Licheng Jiao autorzy sugerują możliwe h(x) jako:
, co również udowadniają jako dopuszczalną funkcję jądra.
kod źródłowy
najnowsza wersja kodu źródłowego dla prawie wszystkich jąder wymienionych powyżej jest dostępna w Accord.NET ramy. Niektóre są również dostępne w sequelu tego artykułu, Maszyny wektorowe obsługujące jądro do klasyfikacji i regresji w C#. Są one dostarczane wraz z kompleksową i prostą implementacją maszyn SVM (Support Vector Machines) w języku C#. Jednak w przypadku najnowszych źródeł, które mogą zawierać poprawki błędów i inne ulepszenia, Pobierz najnowszą dostępną wersję Accord.NET.
Zobacz również
- Maszyny wektorowe wspierające jądro (kSVMs)
- analiza głównych komponentów (PCA)
- analiza głównych komponentów Jądra (KPCA)
- liniowa Analiza dyskryminacyjna (LDA)
- nieliniowa Analiza dyskryminacyjna z jądrami (kDa)
- Analiza regresji logistycznej w C#
- Accord.NET Framework: obliczenia naukowe w. NET
- Haar – wykrywanie obiektów w C# (klasyfikator violi-Jonesa)
- rozpoznawanie pisma ręcznego przy użyciu analizy Rozróżniającej Jądra
- rozpoznawanie pisma ręcznego: Maszyny wektorowe wspierające jądro
- Analiza regresji logistycznej
- on-Line Prediction Wiki Contributors. „Metody Jądra.”On-Line Prediction Wiki. http://onlineprediction.net/?n=Main.KernelMethods (dostęp 3 marca 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, and A. J. Smola. „Metody jądra w uczeniu maszynowym.”Ann. Stan. Tom 36, Numer 3 (2008), 1171-1220.
- Gunn, S. R. (1998, maj). „Maszyny wektorowe wspomagające klasyfikację i regresję.”Raport techniczny, Wydział Inżynierii, Nauki i matematyki szkoły elektroniki i Informatyki.
- Karatzoglou, A., Smola, A., Hornik, K. and Zeileis, A. ” Kernlab – pakiet R do nauki jądra.” (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: Kernel Functions .”Dokumentacja dla pakietu 'kernlab’ w wersji 0.9-5. http://rss.acs.unt.edu/Rdoc/library/kernlab/html/dots.html (dostęp 3 marca 2010).
- Howley, T. and Madden, M. G. „the genetic kernel support vector machine: Description and evaluation”. Przegląd Sztucznej Inteligencji. Tom 24, Numer 3 (2005), 379-395.
- Shawkat Ali i Kate A. Smith. „Kernel Width Selection for SVM Classification: a Meta-Learning Approach.”International Journal of Data Warehousing & Mining, 1 (4), 78-97, październik-grudzień 2005.
- Hsuan-Tien Lin i 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 i Nozha Boujemaa. „Projekt-Imedia: Rozpoznawanie Obiektów.”Inria-Inria Activity Reports-Ralix. http://ralyx.inria.fr/2004/Raweb/imedia/uid84.html (dostęp 3 marca 2010).
- Huang, Lingkang. „Wybór zmiennych w wielopłaszczyznowej maszynie wektorowej i aplikacjach w analizie danych genomowych.”Praca Doktorska, 2008.
- Manning, Christopher D., Prabhakar Raghavan i Hinrich Schütze. „Nieliniowe Maszyny SVM.”The Stanford NLP (Natural Language Processing) Group. http://nlp.stanford.edu/IR-book/html/htmledition/nonlinear-svms-1.html (dostęp 3 marca 2010).
- Fomel, Siergiej. „Odwrotna interpolacja B-spline.”Stanford Exploration Project, 2000. http://sepwww.stanford.edu/public/docs/sep105/sergey2/paper_html/node5.html (dostęp 3 marca 2010).
- Basak, Jayanta. „Najmniej Kwadratowa maszyna jądra z ograniczeniami SKRZYNKOWYMI.”International Conference on Pattern Recognition 2008 1 (2008): 1-4.
- Alashwal, H., Safaai Deris, and 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 i François Fleuret. „Kernel methods and scale invariance using the triangular kernel”. Inria Research Report, N-5143, marzec 2004.
- Sabri Boughorbel, Jean-Philippe Tarel i Nozha Boujemaa. Generalized histogram intersection kernel for image recognition (ang.). Proceedings of the 2005 Conference on Image Processing, volume 3, pages 161-164, 2005.
- Micchelli, Charles. Interpolacja danych rozproszonych: Macierze odległości i warunkowo dodatnie funkcje określone. Constructive Approximation 2, no. 1 (1986): 11-22.
- autorzy Wikipedii, „metody Jądra”, Wikipedia, wolna encyklopedia, http://en.wikipedia.org/w/index.php?title=Kernel_methods&oldid=340911970 (dostęp 3 marca 2010).
- wikipedyści, „Kernel trick”, Wikipedia, wolna encyklopedia,http://en.wikipedia.org/w/index.php?title=Kernel_trick&oldid=269422477. [dostęp 3 marca 2010].
- Weisstein, Eric W. ” Positive Semidefinite Matrix.”From MathWorld-A Wolfram Web Resource. http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html
- Hamers B. „Kernel Models for Large Scale Applications”, Ph.d., Katholieke Universiteit Leuven, Belgium, 2004.
- Li Zhang, Weida Zhou, Licheng Jiao. Wavelet Support Vector Machine. IEEE Transactions on System, Man, and Cybernetics, Part B, 2004, 34(1): 34-39.
- Vedaldi, A. i Zisserman, A. wydajne Jądra addytywne za pomocą jawnych map funkcji. IEEE Transactions on Pattern Recognition and Machine Intelligence, Vol. XX, Nie. XX, czerwiec, 2011.
powołując się na tę pracę
Jeśli chcesz, Zacytuj tę pracę jako: Souza, César R. „funkcje jądra dla aplikacji uczenia maszynowego.”17 Mar. 2010. Www. <http://crsouza.blogspot.com/2010/03/kernel-functions-for-machine-learning.html>.