Jakie są zalety jądra PCA w porównaniu ze standardowym PCA?

18

Chcę zaimplementować algorytm w dokumencie, który używa jądra SVD do dekompozycji macierzy danych. Czytałem więc materiały na temat metod jądra i PCA jądra itp. Ale wciąż jest to dla mnie bardzo niejasne, szczególnie jeśli chodzi o szczegóły matematyczne, i mam kilka pytań.

  1. Dlaczego metody jądra? Lub jakie są zalety metod jądra? Jaki jest intuicyjny cel?

    Czy przy założeniu, że przestrzeń o znacznie wyższych wymiarach jest bardziej realistyczna w rzeczywistych problemach i może ujawnić nieliniowe relacje w danych, w porównaniu do metod innych niż jądro? Według materiałów metody jądra rzutują dane na wielowymiarową przestrzeń cech, ale nie muszą jawnie obliczać nowej przestrzeni cech. Zamiast tego wystarczy obliczyć tylko produkty wewnętrzne między obrazami wszystkich par punktów danych w przestrzeni cech. Dlaczego więc rzutować na przestrzeń o wyższych wymiarach?

  2. Przeciwnie, SVD zmniejsza przestrzeń funkcji. Dlaczego robią to w różnych kierunkach? Metody jądra szukają wyższego wymiaru, podczas gdy SVD poszukuje niższego wymiaru. Dla mnie to dziwne połączenie ich. Zgodnie z artykułem, który czytam ( Symeonidis i in. 2010 ), wprowadzenie Kernel SVD zamiast SVD może rozwiązać problem rzadkości w danych, poprawiając wyniki.

wprowadź opis zdjęcia tutaj

Na podstawie porównania na rysunku widać, że KPCA otrzymuje wektor własny o wyższej wariancji (wartości własnej) niż PCA, jak sądzę? Ponieważ dla największej różnicy rzutów punktów na wektor własny (nowe współrzędne), KPCA jest okręgiem, a PCA jest linią prostą, więc KPCA uzyskuje większą wariancję niż PCA. Czy to oznacza, że ​​KPCA otrzymuje wyższe główne składniki niż PCA?

Tyler 傲 来 国 主
źródło
3
Bardziej komentarz niż odpowiedź: KPCA jest bardzo podobny do Spectral Clustering - w niektórych ustawieniach jest nawet taki sam. (patrz np. cirano.qc.ca/pdf/publication/2003s-19.pdf ).
Przepraszam za spóźnioną odpowiedź. Tak, twoja odpowiedź jest bardzo pouczająca.
Tyler 24 来 国 主

Odpowiedzi:

24

PCA (jako technika redukcji wymiarowości) próbuje znaleźć niskowymiarową liniową podprzestrzeń, do której ograniczone są dane. Ale może się zdarzyć, że dane ograniczą się do niskowymiarowej nieliniowej podprzestrzeni. Co się wtedy stanie?

Spójrz na ten rysunek zaczerpnięty z podręcznika Bishopa „Rozpoznawanie wzorców i uczenie maszynowe” (rysunek 12.16):

jądro PCA z książki Bishopa ML

Punkty danych tutaj (po lewej) są zlokalizowane głównie wzdłuż krzywej w 2D. PCA nie może zmniejszyć wymiaru z dwóch do jednego, ponieważ punkty nie są umieszczone wzdłuż linii prostej. Jednak dane są „oczywiście” umieszczone wokół jednowymiarowej krzywej nieliniowej. Tak więc, podczas gdy PCA zawodzi, musi być inny sposób! I rzeczywiście, jądro PCA może znaleźć ten nieliniowy rozmaitość i odkryć, że dane są w rzeczywistości prawie jednowymiarowe.

Odbywa się to poprzez mapowanie danych w przestrzeń o wyższych wymiarach. To może rzeczywiście wyglądać na sprzeczność (twoje pytanie nr 2), ale tak nie jest. Dane są odwzorowywane na przestrzeń o wyższych wymiarach, ale okazuje się, że leżą na jej podprzestrzeni o niższych wymiarach. Zwiększasz więc wymiarowość, aby móc go zmniejszyć.

Istotą „sztuczki jądra” jest to, że tak naprawdę nie trzeba wyraźnie rozważać przestrzeni o wyższych wymiarach, więc ten potencjalnie mylący skok wymiarowy jest wykonywany całkowicie pod przykrywką. Pomysł pozostaje jednak ten sam.

ameba mówi Przywróć Monikę
źródło
Niezła odpowiedź. Ale tylko kolejne pytanie. Powiedziałeś, że jeśli punkty danych są nieliniowe, jak pokazano na powyższym rysunku, PCA nie będzie działać i wymagane jest PCA jądra. Ale skąd w ogóle wiemy, czy punkty danych nie są liniowe dla zestawu danych, który ma więcej niż 4 cechy (przypadek świata rzeczywistego). Aby zwizualizować takie dane, musimy zmniejszyć wymiarowość, co oznacza, że ​​w końcu zastosujemy PCA w celu zmniejszenia wymiarów, co byłoby niewłaściwe, ponieważ dane mogą być nieliniowe, a do wizualizacji używamy normalnego PCA. Skąd więc wiadomo, czy dane nie są liniowe, aby użyć jądra PCA zamiast PCA
Baktaawar
Dzięki, użytkownik. Myślę, że to zależy od zastosowania PCA / kPCA. Na przykład, jeśli zostanie zastosowany jako krok wstępnego przetwarzania dla jakiegoś algorytmu klasyfikacji, regresji lub klastrowania, wówczas można ocenić, jak dobrze PCA vs. kPCA działało na podstawie tego, jak dobrze działa ten kolejny algorytm.
ameba mówi Przywróć Monikę
1
Dzięki @amoeba. Myślę jednak, że chciałem zapytać, że tak jak wspomniano powyżej, musimy użyć kPCA, gdy dane są nieliniowe, to skąd wiadomo, czy dane mają nieliniowość, jeśli nie. funkcji jest więcej niż 3 ?. Nie możemy tego sobie wyobrazić bez osiągnięcia wymiarów, a to jest jak problem z kurczakiem i jajkami
Baktaawar
2
@Baktaawar Jeśli uczysz się uczenia maszynowego, nie wizualizuj, pozwól, aby Twój model sam się tego nauczył. Zasadniczo dołącz krok KPCA do wewnętrznej pętli ponownego próbkowania i przetestuj jądra jako parametry, w tym jądro liniowe i wszelkie inne, na które chcesz / możesz pozwolić sobie przetestować.
Firebug,