Jądro jest sposobem na obliczenie iloczynu kropkowego dwóch wektorów i w pewnej (prawdopodobnie bardzo wysoko wymiarowej) przestrzeni cech, dlatego funkcje jądra są czasem nazywane „uogólnionym produktem kropkowym”.yxy
Załóżmy, że mamy mapowanie które przenosi nasze wektory w do przestrzeni funkcji . Zatem iloczynem kropkowym i w tej przestrzeni jest . Jądro jest funkcją która odpowiada temu iloczynowi, tj. .R n R m x y φ( x ) T φ( y )kk( x , y )=φ( x ) T φ( y )φ:Rn→RmRnRmxyφ(x)Tφ(y)kk(x,y)=φ(x)Tφ(y)
Dlaczego to jest przydatne? Jądra umożliwiają obliczanie produktów punktowych w pewnym obszarze funkcji, nawet nie wiedząc, co to jest przestrzeń i co to jest .φ
Na przykład rozważmy proste wielomianowe jądro z . To nie wydaje się odpowiadać żadnej funkcji mapowania , to tylko funkcja, która zwraca liczbę rzeczywistą. Zakładając, że i , to wyrażenie:x , y ∈ R 2 φ x = ( x 1 , x 2 ) y = ( y 1 , y 2 )k(x,y)=(1+xTy)2x,y∈R2φx=(x1,x2)y=(y1,y2)
k(x,y)=(1+xTy)2=(1+x1y1+x2y2)2==1+x21y21+x22y22+2x1y1+2x2y2+2x1x2y1y2
Zauważ, że to nic innego jak iloczyn kropkowy między dwoma wektorami i i . Zatem jądro oblicza iloczyn iloczynu w Przestrzeń 6-wymiarowa bez wyraźnego odwiedzania tej przestrzeni.(1,y 2 1 ,y 2 2 , √(1,x21,x22,2–√x1,2–√x2,2–√x1x2)cp(x)=φ(x1,x2)=(1,x 2 1 ,x 2 2 , √(1,y21,y22,2–√y1,2–√y2,2–√y1y2)k(x,y)=(1+ x Ty)2=φ(x)Tφ(y)φ(x)=φ(x1,x2)=(1,x21,x22,2–√x1,2–√x2,2–√x1x2)k(x,y)=(1+xTy)2=φ(x)Tφ(y)
Innym przykładem jest jądro gaussowskie . Jeśli Taylor rozszerzy tę funkcję, zobaczymy, że odpowiada ona nieskończenie wymiarowej kodomenie .k(x,y)=exp(−γ∥x−y∥2)φ
Na koniec poleciłbym internetowy kurs „Uczenie się z danych” profesora Yasera Abu-Mostafy jako dobre wprowadzenie do metod opartych na jądrze. W szczególności wykłady „Obsługują maszyny wektorowe” , „Metody jądra” i „Funkcje radialnej podstawy” dotyczą jąder.
Bardzo prosty i intuicyjny sposób myślenia o jądrach (przynajmniej dla SVM) to funkcja podobieństwa. Biorąc pod uwagę dwa obiekty, jądro generuje pewną ocenę podobieństwa. Obiektami mogą być cokolwiek, począwszy od dwóch liczb całkowitych, dwóch wektorów o wartościach rzeczywistych, drzew, pod warunkiem, że funkcja jądra wie, jak je porównać.
Prawdopodobnie najprostszym przykładem jest jądro liniowe, zwane także iloczynem kropkowym. Biorąc pod uwagę dwa wektory, podobieństwo jest długością rzutowania jednego wektora na drugi.
Innym ciekawym przykładem jądra jest jądro Gaussa. Biorąc pod uwagę dwa wektory, podobieństwo zmniejszy się wraz z promieniem . Odległość między dwoma obiektami jest „ponownie ważona” przez ten parametr promienia.σ
Sukces uczenia się za pomocą jądra (ponownie, przynajmniej dla SVM), bardzo silnie zależy od wyboru jądra. Jądro można zobaczyć jako zwięzłą reprezentację wiedzy na temat problemu z klasyfikacją. Bardzo często jest to specyficzne dla problemu.
Nie nazwałbym jądra funkcją decyzyjną, ponieważ jądro jest używane wewnątrz funkcji decyzyjnej. Biorąc pod uwagę punkt danych do sklasyfikowania, funkcja decyzyjna korzysta z jądra, porównując ten punkt danych z wieloma wektorami pomocniczymi ważonymi przez wyuczone parametry . Wektory pomocnicze znajdują się w domenie tego punktu danych i wzdłuż wyuczonych parametrów znajdują się przez algorytm uczący się.α α
źródło
Wizualny przykład, który pomaga intuicji
Rozważ następujący zestaw danych, w którym żółtych i niebieskich punktów wyraźnie nie da się rozdzielić liniowo w dwóch wymiarach.
Gdybyśmy mogli znaleźć przestrzeń o większych wymiarach, w której punkty te byłyby liniowo rozdzielne , moglibyśmy wykonać następujące czynności:
Istnieje wiele przestrzeni o wyższych wymiarach, w których punkty te można liniowo oddzielić. Oto jeden przykład
Tutaj zaczyna się sztuczka jądra. Cytując powyższe świetne odpowiedzi
Gdybyśmy mogli znaleźć funkcję jądra równoważną powyższej mapie cech, moglibyśmy podłączyć funkcję jądra do liniowej maszyny SVM i wykonywać obliczenia bardzo skutecznie.
Jądro wielomianowe
Okazuje się, że powyższa mapa funkcji odpowiada dobrze znanemu wielomianowemu jądrze : . Niech i otrzymamyK(x,x′)=(xTx′)d d=2 x=(x1,x2)T
Wizualizacja mapy obiektów i wynikowej linii granicznej
Źródło
źródło
Bardzo prosto (ale dokładnie) jądro jest czynnikiem ważącym między dwiema sekwencjami danych. Ten współczynnik ważenia może przypisać większą wagę do jednego „ punktu danych ” w jednym „ punkcie czasowym ” niż do drugiego „ punktu danych ” lub przypisać równą wagę lub przypisać większą wagę do drugiego „ punktu danych ” i tak dalej.
W ten sposób korelacja ( iloczyn punktowy ) może przypisywać większą „ważność” w niektórych punktach niż w innych, a tym samym radzić sobie z nieliniowościami (np. Niepłaskie przestrzenie ), dodatkowymi informacjami, wygładzaniem danych i tak dalej.
W jeszcze inny sposób jądro jest sposobem zmiany względnych wymiarów (lub jednostek wymiarów ) dwóch sekwencji danych, aby poradzić sobie z rzeczami wymienionymi powyżej.
W trzeci sposób (związany z poprzednimi dwoma) jądro jest sposobem na mapowanie lub rzutowanie jednej sekwencji danych na drugą w sposób 1-do-1, biorąc pod uwagę podane informacje lub kryteria (np. Zakrzywioną przestrzeń, brakujące dane, dane ponowne zamawianie i tak dalej). Tak na przykład podano jądro może rozciągać lub kurczą lub roślin lub zginać sekwencję jeden dane w celu dopasowania lub MAP 1 do 1 na drugą.
Jądro może działać jak Procrustes , aby „ najlepiej pasować ”
źródło