Jaka jest różnica między wybielaniem ZCA a wybielaniem PCA?

60

Jestem zdezorientowany co do wybielania ZCA i normalnego wybielania (które uzyskuje się poprzez podzielenie głównych składników przez pierwiastki kwadratowe wartości własnych PCA). Z tego co mi wiadomo,

xZCAwhite=UxPCAwhite,
gdzie to wektory własne PCA.U

Jakie są zastosowania wybielania ZCA? Jakie są różnice między wybielaniem normalnym a wybielaniem ZCA?

RockTheStar
źródło
2
Według „Neural Networks: Tricks of the Trade”, PCA i ZCA różnią się tylko rotacją.
Martin Thoma

Odpowiedzi:

81

Niech twoje (wyśrodkowane) dane będą przechowywane w macierzy z funkcjami (zmiennymi) w kolumnach i punktami danych w rzędach. Niech macierz kowariancji ma wektory własne w kolumnach i wartości własne na przekątnej , tak aby .n×dXdnC=XX/nEDC=EDE

To, co nazywacie „normalną” transformacją wybielania PCA, podaje , patrz np. Moja odpowiedź w Jak wybielić dane za pomocą Analiza głównych składowych?WPCA=D1/2E

Ta transformacja wybielania nie jest jednak wyjątkowa. Rzeczywiście, wybielone dane pozostaną wybielone po każdym obrocie, co oznacza, że ​​każdy z macierzą ortogonalną będzie również transformacją wybielającą. W tak zwanym wybielaniu ZCA bierzemy (ułożone razem wektory własne macierzy kowariancji) jako tę macierz ortogonalną, tj.W=RWPCARE

WZCA=ED1/2E=C1/2.

Jedną z cech definiujących transformację ZCA ( czasami nazywaną także „transformacją Mahalanobisa”) jest to, że powoduje ona wybielenie danych, które są jak najbardziej zbliżone do pierwotnych danych (w sensie najmniejszych kwadratów). Innymi słowy, jeśli chcesz zminimalizować zastrzeżeniem, że jest wybielony, powinieneś wziąć . Oto ilustracja 2D:XXA2XAA=WZCA

Wybielanie PCA i ZCA

Lewy wykres podrzędny pokazuje dane i ich główne osie. Zwróć uwagę na ciemne cieniowanie w prawym górnym rogu rozkładu: oznacza jego orientację. Rzędy są pokazane na drugim wykresie: są to wektory, na które rzutowane są dane. Po wybieleniu (poniżej) rozkład wygląda na okrągły, ale zauważ, że również wygląda na obrócony - ciemny narożnik znajduje się teraz po stronie wschodniej, a nie po stronie północno-wschodniej. Rzędy są pokazane na trzeciej podplocie (zwróć uwagę, że nie są one ortogonalne!). Po wybieleniu (poniżej) rozkład wygląda na okrągły i jest zorientowany w taki sam sposób, jak pierwotnie. Oczywiście, można uzyskać od PCA wybielone dane ZCA wybielone danych poprzez obracanie z .WPCAWZCAE

Termin „ZCA” wydaje się być wprowadzony w Bell and Sejnowski 1996w kontekście niezależnej analizy składników i oznacza „analizę składników fazy zerowej”. Zobacz tam po więcej szczegółów. Najprawdopodobniej trafiłeś na ten termin w kontekście przetwarzania obrazu. Okazuje się, że po nałożeniu na kilka naturalnych obrazów (piksele jako cechy, każdy obraz jako punkt danych), główne osie wyglądają jak składowe Fouriera o rosnących częstotliwościach, patrz pierwsza kolumna ich ryc. 1 poniżej. Są więc bardzo „globalni”. Z drugiej strony wiersze transformacji ZCA wyglądają bardzo „lokalnie”, patrz druga kolumna. Dzieje się tak właśnie dlatego, że ZCA stara się jak najmniej przekształcać dane, dlatego też każdy wiersz powinien być bliższy pierwotnej funkcji bazowej (która byłaby obrazem z tylko jednym aktywnym pikselem). I można to osiągnąć,

PCA i ZCA w Bell and Sejnowski 1996

Aktualizacja

Więcej przykładów filtrów ZCA i obrazów przekształconych za pomocą ZCA podano w Kriżewskim, 2009, Uczenie się wielu warstw cech z małych obrazów , patrz także przykłady w odpowiedzi @ bayerj (+1).

Myślę, że te przykłady dają wyobrażenie, kiedy wybielanie ZCA może być lepsze niż PCA. Mianowicie, obrazy wybielone ZCA nadal przypominają zwykłe obrazy , podczas gdy obrazy wybielone PCA nie przypominają normalnych obrazów. Jest to prawdopodobnie ważne w przypadku algorytmów takich jak splotowe sieci neuronowe (jak np. Używane w pracy Kriżewskiego), które traktują sąsiednie piksele razem, a zatem bardzo zależą od lokalnych właściwości naturalnych obrazów. W przypadku większości innych algorytmów uczenia maszynowego absolutnie nie ma znaczenia, czy dane są wybierane za pomocą PCA, czy ZCA.

ameba mówi Przywróć Monikę
źródło
Dzięki! Mam pytanie: czy to znaczy, że ZCA zasadniczo zmienia dostęp, ale nie zmienia dużo pozycji danych? (w oparciu o obszar cieniowania). Czy to oznacza, że ​​za każdym razem, gdy wybielamy, powinniśmy wybielać ZCA? Jak zdecydowalibyśmy się zastosować wybielanie PCAwhite lub ZCA?
RockTheStar
4
(1) Nie jestem do końca pewien, co masz na myśli, ale powiedziałbym to w ten sposób: ZCA rozciąga zbiór danych, aby był sferyczny, ale próbuje go nie obracać (podczas gdy PCA obraca go dość często). (2) Właściwie uważam, że w większości przypadków nie ma znaczenia, czy używasz wybielacza PCA czy ZCA. Jedyną sytuacją, jaką mogę sobie wyobrazić, gdzie ZCA mógłby być lepszy, jest wstępne przetwarzanie dla splotowych sieci neuronowych. Proszę zobaczyć aktualizację mojej odpowiedzi.
ameba mówi Przywróć Monikę
5
PCA przypomina przekształcenie Fouriera, ZCA przypomina przekształcanie, mnożenie i przekształcanie z powrotem, stosując filtr liniowy (fazy zerowej). Widzimy więc odpowiedź impulsową filtra na każdym pikselu. „Składniki” zaangażowane w operację są takie same, kolumny E, które są „głównymi składnikami” ... Mam na myśli, że można również wywoływać rzędy składowych W, ale myślę, że ważne jest, aby zrozumieć, że zaangażowane są te same „główne elementy”, a kiedy zastosujesz ZCA, wrócisz do oryginalnej domeny, podczas gdy w PCA musisz „zrekonstruować” sygnał.
dividebyzero
1
@dividebyzero +1 do twojego ostatniego komentarza, myślę, że jest to cenna perspektywa. W każdym razie mam nadzieję, że znaczenie mojej ostatniej figury (zaczerpnięte z powiązanego dokumentu) jest teraz jasne.
ameba mówi Przywróć Monikę
1
@learning Na tej stronie nie widać bielonych obrazów PCA! Pokazują „obrazy o zmniejszonym wymiarze PCA”, tj. Rekonstrukcje za pomocą PCA, ale nie same projekcje PCA.
ameba mówi Przywróć Monikę
23

Biorąc pod uwagę skład Eigend macierzy kowariancji gdzie jest diagonalną macierzą wartości własnych , zwykłe wybielanie polega na przekształceniu danych w przestrzeń, w której macierz kowariancji jest ukośna: (z pewnym nadużyciem notacji.) Oznacza to, że możemy przekątnie kowariancję, przekształcając dane zgodnie z

X¯X¯T=LDLT
D=diag(λ1,λ2,,λn)
D1L1X¯X¯TLTD1=D1L1LDLTLTD1=I
X~=D1L1X.

Jest to zwykłe wybielanie za pomocą PCA. Teraz ZCA robi coś innego - dodaje mały epsilon do wartości własnych i przekształca dane z powrotem. Oto kilka zdjęć z zestawu danych CIFAR przed i po ZCA.

X~=L(D+ϵ)1L1X.

Przed ZCA:

przed ZCA

Po ZCA zϵ=0.0001

po ZCA 1e-4

Po ZCA zϵ=0.1

po ZCA z .1

W przypadku danych wizyjnych dane o wysokiej częstotliwości zwykle znajdują się w przestrzeni rozpiętej przez niższe wartości własne. Dlatego ZCA to sposób na ich wzmocnienie, prowadzące do bardziej widocznych krawędzi itp.

bayerj
źródło
1
Czy nie należy dodawać epsilon przed odwróceniem? Myślę, że jest to po prostu dodane, aby ustabilizować inwersję w przypadku prawie zerowych wartości własnych. Tak więc, jeśli dodanie go do wybielania ZCA ma sens, warto dodać go również do wybielania PCA.
ameba mówi Przywróć Monikę
Tak, przed odwrotnością, dzięki. Ponieważ zwykle wykonuje się to z SVD w praktyce, nie wiem, czy w ogóle konieczna jest stabilizacja inwersji.
bayerj
Dodałem kolejne zdjęcie, aby pokazać efekt.
bayerj
2
+1, ale mam jeszcze kilka drobiazgów i pytań. (1) Chodziło mi o epsilon, że nie jest on specyficzny dla ZCA, można go również stosować do wybielania PCA. (2) Nie jestem pewien, czy rozumiem twój komentarz na temat SVD: SVD czy nie, trzeba odwrócić pojedyncze wartości, stąd potrzeba epsilon. (3) Transformacja wybielania PCA to , napisałeś to na odwrót, a to sprawia, że ​​obliczenia w drugiej formule są nieprawidłowe ... (4) Ładne liczby, gdzie one są? od? (5) Czy wiesz, w jakich sytuacjach wybielanie ZCA byłoby lepsze niż wybielanie PCA i dlaczego? D1/2L
ameba mówi Przywróć Monikę
(1) zgodził się. Nie mam jednak intuicji, co to znaczy. (2) Moja wiedza na temat dekompozycji jest tutaj niepełna, ale założyłem, że klasyczna macierz inwersji na pojedynczej macierzy kowariancji zawiedzie, podczas gdy SVD na macierzy danych powodującej powstanie pojedynczej kowariancji nie. (3) Dzięki, naprawię to. (4) Z mojego kodu :) (5) Podejrzewam, że w przypadku wielu algorytmów, które dają zbyt niepełne reprezentacje (np. GainShape K-Means, Auto enkodery, RICA) i / lub wykonują podobną pracę, jak PCA, algebraiczna niezależność cech boli, ale Nie mam twardej wiedzy na ten temat.
bayerj