Czytałem o jądrze PCA ( 1 , 2 , 3 ) z jądrem Gaussa i wielomianem.
W jaki sposób jądro Gaussa wyjątkowo dobrze oddziela pozornie jakiekolwiek dane nieliniowe? Proszę podać intuicyjną analizę, a także matematycznie, jeśli to możliwe.
Jaka jest właściwość jądra Gaussa (z idealnym ), czego inne jądra nie mają? Przychodzą mi na myśl sieci neuronowe, SVM i RBF.
- Dlaczego nie poddamy normy, powiedzmy, pliku PDF z Cauchy i nie oczekujemy takich samych wyników?
machine-learning
pca
svm
kernel-trick
Simon Kuang
źródło
źródło
Odpowiedzi:
Myślę, że kluczem do magii jest gładkość. Moja długa odpowiedź, która następuje, to po prostu wyjaśnienie tej gładkości. To może być odpowiedź, której się nie spodziewasz.
Krótka odpowiedź:
Pozytywny określony jądra istnieje odpowiadający mu przestrzeni funkcji H . Właściwości funkcji są określane przez jądro. Okazuje się, że jeśli k jest jądrem Gaussa, funkcje w H są bardzo płynne. Zatem wyuczona funkcja (np. Funkcja regresji, główne składniki w RKHS jak w jądrze PCA) jest bardzo płynna. Zazwyczaj założenie płynności jest sensowne w przypadku większości zestawów danych, które chcemy rozwiązać. To wyjaśnia, dlaczego jądro Gaussa jest magiczne.k H k H
Długa odpowiedź na pytanie, dlaczego jądro Gaussa zapewnia płynne funkcje:
Dodatni określony jądra określa (pośrednio) wewnętrznego produktu k ( x , y ) = ⟨ φ ( x ) , φ ( y ) ⟩ H na wektor cech cp ( x ) zbudowane z wejściowego x i H jest przestrzenią Hilberta. Oznaczenie ⟨ φ ( x ) , φ ( y ) ⟩k(x,y) k(x,y)=⟨ϕ(x),ϕ(y)⟩H ϕ(x) x H ⟨ϕ(x),ϕ(y)⟩
oznacza iloczyn wewnętrzny między a ϕ ( y ) . Dla naszego celu możesz wyobrazić sobie H jako zwykłą przestrzeń euklidesową, ale być może o nieskończonej liczbie wymiarów. Wyobraź sobie zwykły wektor, który jest nieskończenie długi, jak ϕ ( x ) = ( ϕ 1 ( x ) , ϕ 2 ( x ) , … ) . W metodach jądra Hϕ(x) ϕ(y) H ϕ(x)=(ϕ1(x),ϕ2(x),…) H to przestrzeń funkcji zwana przestrzenią jądra Hilberta (RKHS). Przestrzeń ta ma szczególną właściwość o nazwie `` nieruchomość odtwarzania '', który jest, że . Mówi to, że aby ocenić f ( x ) , najpierw konstruujemy wektor cech (nieskończenie długi, jak wspomniano) dla f . Następnie konstruujesz wektor cech dla x oznaczonego przez ϕ ( x ) (nieskończenie długi). Ocena f ( x )f(x)=⟨f,ϕ(x)⟩ f(x) f x ϕ(x) f(x) jest otrzymywany poprzez wzięcie wewnętrznego iloczynu obu tych czynników. Oczywiście w praktyce nikt nie zbuduje nieskończenie długiego wektora. Ponieważ zależy nam tylko na jego wewnętrznym produkcie, po prostu bezpośrednio oceniamy jądra . Ominięcie obliczeń jawnych funkcji i bezpośrednie obliczenie jego wewnętrznego produktu jest znane jako „sztuczka jądra”.k
Jakie są funkcje?
Ciągle powtarzałem funkcje bez określania, czym one są. Biorąc pod uwagę jądro k , funkcje nie są unikalne. Jednak ⟨ φ ( x ) , φ ( y ) ⟩ jest jednoznacznie określony. Aby wyjaśnić płynność funkcji, rozważmy cechy Fouriera. Załóżmy, że jądro k niezmiennika translacji k , co oznacza k ( x , y ) = k ( x - yϕ1(x),ϕ2(x),… k ⟨ϕ(x),ϕ(y)⟩ k
tj. jądro zależy tylko od różnicy dwóch argumentów. Jądro Gaussa ma tę właściwość. Niech k oznacza transformaty Fouriera k .k(x,y)=k(x−y) k^ k
W tej perspektywie Fouriera funkcje są przez F : = ( ⋯ , F l / √f . To znaczy, że reprezentacja funkcji twojej funkcjif
jest wyrażona przez jej transformatę Fouriera podzieloną przez transformację Fourera jądrak. Reprezentacja cechyx, która jestϕ(x),
to(⋯,√f:=(⋯,f^l/k^l−−√,⋯) f k x ϕ(x)
, gdziei=√(⋯,k^l−−√exp(−ilx),⋯) . Można wykazać, że własność reprodukcyjna zachowuje się (ćwiczenie dla czytelników).i=−1−−−√
Kiedy więc ta norma jest skończona, tj. należy do przestrzeni? Wtedy spada szybciej niż tak że suma jest zbieżna. Teraz transformacja Fouriera jądra gaussowskiegof 2 l K L k ( x , y ) = exp ( - ‖ x - y ‖ 2f f^2l k^l k(x,y)=exp(−∥x−y∥2σ2)
jest kolejnym gaussowskim, gdzie maleje wykładniczo szybko z . Więc jeśli ma być w tej przestrzeni, jego transformata Fouriera musi spaść nawet szybciej niż . Oznacza to, że funkcja będzie miała efektywnie tylko kilka komponentów niskiej częstotliwości o dużych masach. Sygnał zawierający tylko komponenty niskiej częstotliwości nie `` bardzo się porusza ''. To wyjaśnia, dlaczego jądro Gaussa zapewnia płynną funkcję.LMKk^l l f k
Dodatkowo: Co z jądrem Laplace?
Jeśli weźmiesz pod uwagę jądro Laplace'a , jego transformacja Fouriera jest rozkładem Cauchy'ego, który spada znacznie wolniej niż wykładniczy funkcja w transformacie Fouriera jądra Gaussa. Oznacza to, że funkcja będzie miała więcej komponentów wysokiej częstotliwości. W rezultacie funkcja nadana przez jądro Laplace'a jest `` szorstsza '' niż funkcja nadana przez jądro Gaussa.k(x,y)=exp(−∥x−y∥σ) f
Niezależnie od szerokości Gaussa jedną właściwością jest to, że jądro Gaussa jest `` uniwersalne ''. Intuicyjnie oznacza to, że biorąc pod uwagę ograniczoną funkcję ciągłą (dowolną), istnieje funkcja taka, że i są bliskie (w znaczeniu do wymaganej dokładności. Zasadniczo oznacza to, że jądro Gaussa udostępnia funkcje, które mogą dowolnie przybliżać funkcje „ładne” (ograniczone, ciągłe). Jądra Gaussa i Laplace'a są uniwersalne. Jądro wielomianowe na przykład nie jest.g f∈H f g ∥⋅∥∞)
Ogólnie rzecz biorąc, możesz robić cokolwiek zechcesz, o ile wynikowa wartość jest dodatnia. Pozytywna definitywność jest zdefiniowana jako dla wszystkich , i wszystkich (zestaw liczb naturalnych) . Jeśli nie jest określone dodatnio, to nie odpowiada wewnętrznej przestrzeni produktu. Cała analiza psuje się, ponieważ nie masz nawet przestrzeni funkcji jak wspomniano. Niemniej jednak może działać empirycznie. Na przykład hiperboliczne jądro stycznej (patrz numer 7 na tej stronie )k ∑Ni=1∑Nj=1k(xi,xj)αiαj>0 αi∈R {xi}Ni=1 N∈N k H
który ma naśladować sigmoidalne jednostki aktywacyjne w sieciach neuronowych, jest tylko pozytywnie określony dla niektórych ustawień i . Wciąż zgłaszano, że działa w praktyce.α c
Co z innymi rodzajami funkcji?
Powiedziałem, że funkcje nie są unikalne. W przypadku jądra gaussowskiego inny zestaw funkcji zapewnia rozszerzenie Mercer . Zobacz rozdział 4.3.1 słynnej książki procesu Gaussa . W tym przypadku cechami są wielomiany Hermite'a oceniane przy .ϕ(x) x
źródło
Zrobię co w mojej mocy, aby odpowiedzieć na to pytanie nie dlatego, że jestem ekspertem w tej dziedzinie (wręcz przeciwnie), ale dlatego, że jestem ciekawy dziedziny i tematu w połączeniu z pomysłem, że może to być dobre doświadczenie edukacyjne . Tak czy inaczej, oto wynik moich krótkich badań amatorskich na ten temat.
TL; DR : Jako krótką odpowiedź na to pytanie rozważę następujący fragment artykułu badawczego „Związek między operatorami regularyzacji a jądrem wektorów pomocniczych” :
Teraz szczegółowa odpowiedź (o ile mi wiadomo; w celu uzyskania szczegółów matematycznych proszę skorzystać z referencji).
Jak wiemy, analiza głównych składników (PCA) jest bardzo popularnym podejściem do redukcji wymiarowości , samodzielnie i do późniejszej klasyfikacji danych: http://www.visiondummy.com/2014/05/feature-extraction-using-pca . Jednak w sytuacjach, gdy dane przenoszą zależności nieliniowe (innymi słowy liniowo nierozdzielne ), tradycyjne PCA nie ma zastosowania (nie działa dobrze). W takich przypadkach można zastosować inne podejścia, a nieliniowe PCA jest jednym z nich.
Podejścia, w których PCA opiera się na wykorzystaniu funkcji jądra, zwykle się nazywa, używając ogólnego terminu „jądro PCA” ( kPCA ). Korzystanie z jądra Gaussa jako funkcji radialnej (RBF) jest prawdopodobnie najpopularniejszą odmianą. To podejście jest szczegółowo opisane w wielu źródłach, ale bardzo podoba mi się doskonałe wyjaśnienie Sebastiana Raschki w tym poście na blogu . Jednak wspominając o możliwości korzystania z funkcji jądra innych niż Gaussian RBF, post skupia się na tym ostatnim ze względu na jego popularność. Ten miły wpis na blogu , przedstawiający przybliżenia jądra i sztuczkę jądra , wymienia jeszcze jeden możliwy powód popularności jądra Gaussa dla PCA: nieskończona wymiarowość.
Dodatkowe spostrzeżenia można znaleźć w kilku odpowiedziach na temat Quora. W szczególności czytanie tej doskonałej dyskusji ujawnia kilka punktów na temat potencjalnych przyczyn popularności jądra Gaussa, jak następuje.
Na koniec dodatkowe punkty z tej miłej odpowiedzi :
UWAGI:
Powyższy punkt na temat optymalnego wyboru jądra Gaussa , szczególnie gdy nie ma wcześniejszej wiedzy na temat danych, znajduje poparcie w następującym zdaniu z tej odpowiedzi CV :
Dla osób ciekawych nieistotnych różnic między jądrem Gaussa RBF a standardowym jądrem Gaussa odpowiedź ta może być interesująca: https://stats.stackexchange.com/a/79193/31372 .
Dla tych, którzy są zainteresowani wdrożeniem kPCA dla przyjemności lub w interesach, ten miły wpis na blogu może być pomocny. Jest napisany przez jednego z autorów (twórców?) Accord.NET - bardzo interesującego środowiska .NET typu open source do analizy statystycznej, uczenia maszynowego, przetwarzania sygnałów i wielu innych.
źródło
Pozwól mi włożyć moje dwa centy.
Sposób, w jaki myślę o jądrach Gaussa, jest w pewnym sensie klasyfikatorami najbliższych sąsiadów. Jądro gaussowskie robi to, że reprezentuje każdy punkt z odległością do wszystkich innych punktów w zestawie danych. Pomyślmy teraz o klasyfikatorach z liniowymi lub wielomianowymi granicami, granice są ograniczone do pewnych kształtów. Jednak gdy spojrzysz na najbliższego sąsiada, granica może praktycznie przybrać dowolny kształt. Dlatego myślę, że myślimy o jądrze Gaussa również jako nieparametrycznym, tj. Dostosowującym granicę w zależności od danych. Innym sposobem myślenia o tym jest dostosowanie jądra Gaussa do lokalnego kształtu w regionie, podobnie do tego, jak najbliższy sąsiad lokalnie dostosowuje granicę, patrząc na odległość do innych punktów w lokalnym regionie.
Nie mam na to matematycznego argumentu, ale myślę, że fakt, że jądro Gaussa faktycznie mapuje na nieskończoną przestrzeń wymiarową, ma coś wspólnego z jego sukcesem. W przypadku jąder liniowych i wielomianowych produkty kropkowe są pobierane w skończonych przestrzeniach wymiarowych; stąd wydajniejsze wydaje się robienie rzeczy na większej przestrzeni. Mam nadzieję, że ktoś lepiej to zrozumie. Oznacza to również, że jeśli znajdziemy inne jądra z nieskończonymi przestrzeniami wymiarowymi, powinny one również być dość potężne. Niestety, nie znam żadnego takiego jądra.
Jeśli chodzi o twój ostatni punkt, myślę, że Cauchy pdf lub jakikolwiek inny pdf, który w jakiś sposób mierzy odległość do innych punktów, powinien działać równie dobrze. Ponownie nie mam za tym dobrego argumentu matematycznego, ale połączenie z najbliższym sąsiadem czyni to możliwym.
Edytować:
Oto kilka pomysłów na to, jak myśleć o klasyfikatorze wykorzystującym jądra Gaussa jako klasyfikatory najbliższego sąsiada. Najpierw zastanówmy się, co robi klasyfikator najbliższego sąsiada. Zasadniczo klasyfikator najbliższego sąsiada jest standardowym klasyfikatorem, który wykorzystuje odległości między punktami jako dane wejściowe. Bardziej formalnie, wyobraźmy sobie, że tworzymy reprezentację elementu dla każdego punktu w zestawie danych, obliczając jego odległość do wszystkich innych punktów. Powyżej, jest funkcją odległości. Następnie to, co robi klasyfikator najbliższego sąsiada, to przewidywanie etykiety klasy dla punktu na podstawie tej reprezentacji funkcji i etykiet klasy dla danych. gdzieϕi xi
Sposób, w jaki myślę o jądrach, polega na tym, że robią podobne rzeczy; tworzą reprezentację cech każdego punktu za pomocą jego wartości jądra z innymi punktami w zestawie danych. Podobnie jak w przypadku najbliższego sąsiada, formalnie byłoby to Teraz połączenie z najbliższym sąsiadem jest dość oczywiste; jeśli nasza funkcja jądra jest jakąś miarą związaną z pomiarami odległości stosowanymi w klasyfikatorach najbliższych sąsiadów, nasz klasyfikator oparty na jądrze będzie podobny do modelu najbliższego sąsiada.
Uwaga: Klasyfikatory, które trenujemy przy użyciu jąder, nie działają bezpośrednio z tymi reprezentacjami , ale myślę, że właśnie to robią w sposób dorozumiany.ϕi
źródło
Powodem jest to, że wymiar VC dla jąder Gaussa jest nieskończony, a zatem, biorąc pod uwagę prawidłowe wartości parametrów (sigma), mogą one poprawnie klasyfikować dowolnie dużą liczbę próbek.
RBF działają dobrze, ponieważ zapewniają, że macierz ma pełną pozycję. Chodzi o to, że , a terminy nie przekątne można dowolnie zmniejszyć, zmniejszając wartość . Zauważ, że jądro odpowiada iloczynowi w przestrzeni funkcji. W tej przestrzeni cech wymiar jest nieskończony (biorąc pod uwagę ekspansję szeregową wykładniczą). Można zatem postrzegać to jako rzutowanie tych punktów w różnych wymiarach, aby można je było rozdzielić.K ( x i , x i ) > 0 σK(xi,xj) K(xi,xi)>0 σ
Rozważmy natomiast przypadek liniowych jąder, które mogą zniszczyć tylko cztery punkty na płaszczyźnie.
Możesz rzucić okiem na ten artykuł , choć jest on bardzo techniczny. Jedna ze standardowych książek na temat maszyn wirtualnych powinna ułatwić dostęp do tej koncepcji.
źródło