Jak intuicyjnie wyjaśnić, czym jest jądro?


96

Wiele klasyfikatorów uczenia maszynowego (np. Maszyny wektorów wsparcia) pozwala na określenie jądra. Jaki byłby intuicyjny sposób wyjaśnienia, czym jest jądro?

Jednym z aspektów, o którym myślałem, jest rozróżnienie między liniowymi i nieliniowymi jądrami. Mówiąc prościej, mógłbym mówić o „liniowych funkcjach decyzyjnych” i „nieliniowych funkcjach decyzyjnych”. Nie jestem jednak pewien, czy nazwanie jądra „funkcją decyzyjną” jest dobrym pomysłem.

Propozycje?

Odpowiedzi:


112

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 )φ:RnRmRnRmxyφ(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 , yR 2 φ x = ( x 1 , x 2 ) y = ( y 1 , y 2 )k(x,y)=(1+xTy)2x,yR2φx=(x1,x2)y=(y1,y2)

k(x,y)=(1+xTy)2=(1+x1y1+x2y2)2==1+x12y12+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,x12,x22,2x1,2x2,2x1x2)cp(x)=φ(x1,x2)=(1,x 2 1 ,x 2 2 ,(1,y12,y22,2y1,2y2,2y1y2)k(x,y)=(1+ x Ty)2=φ(x)Tφ(y)φ(x)=φ(x1,x2)=(1,x12,x22,2x1,2x2,2x1x2)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(γxy2)φ

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.


2
Obecna definicja znacznika: „Intuicyjny: pytania, które poszukują pojęciowego lub matematycznego zrozumienia statystyki”. Nie ma jednoznacznych wskazań, czy konceptualność jest traktowana jako synonim matematyki.
rolando2

40

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ę.αα


Produkt i rzut nie są do końca identyczne.
ttnphns

W przypadku SVM uważam, że jądra to miary odległości w różnych przestrzeniach. Jest to zgodne z ideą, że SVM uogólnia klasyfikator wektora pomocniczego. Ogólnie jądra mogą być bardziej skomplikowane.
aginensky

29

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.

wprowadź opis zdjęcia tutaj

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:

  • Zamapuj oryginalne elementy na większej przestrzeni transformatora (mapowanie elementów)
  • Wykonaj liniową SVM w tej wyższej przestrzeni
  • Uzyskaj zestaw wag odpowiadający hiperpłaszczyźnie granicy decyzji
  • Odwzoruj tę hiperpłaszczyznę z powrotem na pierwotną przestrzeń 2D, aby uzyskać nieliniową granicę decyzyjną

Istnieje wiele przestrzeni o wyższych wymiarach, w których punkty te można liniowo oddzielić. Oto jeden przykład

x1,x2:→z1,z2,z3
z1=2x1x2  z2=x12  z3=x22

Tutaj zaczyna się sztuczka jądra. Cytując powyższe świetne odpowiedzi

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.φ:RnRmRnRmxyφ(x)Tφ(y)kk(x,y)=φ(x)Tφ(y)

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)dd=2x=(x1,x2)T

k((x1x2),(x1x2))=(x1x2+x2x2)2=2x1x1x2x2+(x1x1)2+(x2x2)2=(2x1x2 x12 x22) (2x1x2x12x22)

k((x1x2),(x1x2))=ϕ(x)Tϕ(x)

ϕ((x1x2))=(2x1x2x12x22)

Wizualizacja mapy obiektów i wynikowej linii granicznej

  • Wykres po lewej stronie pokazuje punkty wykreślone w przekształconej przestrzeni wraz z hiperpłaszczyzną granicy liniowej SVM
  • Wykres po prawej stronie pokazuje wynik w oryginalnej przestrzeni 2-D

wprowadź opis zdjęcia tutaj


Źródło


4

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ć


Wydaje mi się, że mówisz o jądrach w sensie szacowania gęstości jądra, a nie o dodatnich pół-skończonych jądrach Mercer używanych w SVM i powiązanych metodach.
Dougal

@Dougal, w sensie tej odpowiedzi, jądro jest funkcją ważącą lub miarą używaną do korelowania danych w określony sposób lub do wykorzystywania niektórych funkcji danych, więc metody jądra SVM są również objęte
Nikos M.,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.