Opis problemu
Geometryczny problem, który PCA próbuje zoptymalizować, jest dla mnie jasny: PCA próbuje znaleźć pierwszy główny składnik, minimalizując błąd rekonstrukcji (projekcji), który jednocześnie maksymalizuje wariancję rzutowanych danych.
Zgadza się. Wyjaśniam związek między tymi dwoma sformułowaniami w mojej odpowiedzi tutaj (bez matematyki) lub tutaj (z matematyki).
Cw∥w∥=1w⊤Cw
(Na wszelki wypadek, gdy nie jest to jasne: jeśli jest wyśrodkowaną macierzą danych, to rzut jest podawany przez a jego wariancja to ).XXw1n−1(Xw)⊤⋅Xw=w⊤⋅(1n−1X⊤X)⋅w=w⊤Cw
Z drugiej strony wektorem własnym jest z definicji dowolny wektor taki, że .CvCv=λv
Okazuje się, że pierwszy główny kierunek jest nadawany przez wektor własny o największej wartości własnej. To nietrywialne i zaskakujące stwierdzenie.
Dowody
Jeśli otworzysz jakąkolwiek książkę lub samouczek na temat PCA, znajdziesz tam prawie jednoliniowy dowód powyższego stwierdzenia. Chcemy zmaksymalizować pod warunkiem, że ; można tego dokonać wprowadzając mnożnik Lagrange'a i maksymalizując ; różnicując, otrzymujemy , co jest równaniem wektora własnego. Widzimy, że musi być największą wartością własną, zastępując to rozwiązanie funkcją celu, co dajew⊤Cw∥w∥=w⊤w=1w⊤Cw−λ(w⊤w−1)Cw−λw=0λw⊤Cw−λ(w⊤w−1)=w⊤Cw=λw⊤w=λ . Z uwagi na fakt, że tę funkcję celu należy zmaksymalizować, musi być największą wartością własną, QED.λ
Dla większości ludzi nie jest to zbyt intuicyjne.
Lepszy dowód (patrz np. Ta zgrabna odpowiedź @cardinal ) mówi, że ponieważ jest macierzą symetryczną, jest ona diagonalna w swojej wektorze własnym. (Tak naprawdę nazywa się to twierdzeniem spektralnym .) Możemy więc wybrać podstawę ortogonalną, mianowicie tę podaną przez wektory własne, gdzie jest przekątna, a na jego przekątnej mają wartości własne . Na tej podstawie upraszcza do , lub innymi słowy, wariancja jest dana przez ważoną sumę wartości własnych. Jest niemal natychmiastowe, że aby zmaksymalizować to wyrażenie, wystarczy wziąćCCλiw⊤Cw∑λiw2iw=(1,0,0,…,0), tj. pierwszy wektor własny, dający wariancję (w rzeczywistości odejście od tego rozwiązania i „wymiana” części największej wartości własnej na części mniejszych doprowadzi tylko do mniejszej ogólnej wariancji). Zauważ, że wartość nie zależy od podstawy! Przejście na podstawę wektora własnego oznacza obrót, więc w 2D można sobie wyobrazić po prostu obrócenie kawałka papieru za pomocą wykresu rozrzutu; oczywiście nie może to zmienić żadnych odchyleń.λ1w⊤Cw
Myślę, że jest to bardzo intuicyjny i bardzo użyteczny argument, ale opiera się na twierdzeniu spektralnym. Myślę więc, że prawdziwym problemem jest: jaka jest intuicja stojąca za twierdzeniem spektralnym?
Twierdzenie spektralne
Wziąć symetryczną matrycą . Weź swój wektor własny z największą wartością własną . Ustaw ten wektor własny jako pierwszy wektor podstawowy i wybierz losowo inne wektory podstawowe (tak, aby wszystkie z nich były ortonormalne). Jak będzie wyglądać na tej podstawie?Cw1λ1C
Będzie miał w lewym górnym rogu, ponieważ na tej podstawie i musi być równy .λ1w1=(1,0,0…0)Cw1=(C11,C21,…Cp1)λ1w1=(λ1,0,0…0)
Pod tym samym argumentem będzie miał zera w pierwszej kolumnie pod .λ1
Ale ponieważ jest symetryczny, również będzie miał zera w pierwszym rzędzie po . Będzie to wyglądać tak:λ1
C=⎛⎝⎜⎜⎜⎜λ10⋮00…0⎞⎠⎟⎟⎟⎟,
gdzie pusta przestrzeń oznacza, że jest tam blok niektórych elementów. Ponieważ macierz jest symetryczna, ten blok również będzie symetryczny. Możemy więc zastosować do niego dokładnie ten sam argument, skutecznie wykorzystując drugi wektor własny jako drugi wektor podstawowy i uzyskując i na przekątnej. Można to kontynuować, dopóki będzie przekątna. Jest to zasadniczo twierdzenie spektralne. (Zwróć uwagę, jak to działa tylko dlatego, że jest symetryczny).λ1λ2CC
Oto bardziej abstrakcyjne przeformułowanie dokładnie tego samego argumentu.
Wiemy, że , więc pierwszy wektor własny definiuje 1-wymiarową podprzestrzeń, w której działa jak zwielokrotnienie skalarne. Weźmy teraz dowolny wektor ortogonalny do . Zatem jest niemal natychmiastowe, że jest również ortogonalny do . W rzeczy samej:Cw1=λ1w1Cvw1Cvw1
w⊤1Cv=(w⊤1Cv)⊤=v⊤C⊤w1=v⊤Cw1=λ1v⊤w1=λ1⋅0=0.
Oznacza to, że działa na całą pozostałą podprzestrzeń prostopadłą do tak że pozostaje oddzielony od . Jest to kluczowa właściwość macierzy symetrycznych. Możemy więc znaleźć tam największy wektor własny, , i postępować w ten sam sposób, ostatecznie konstruując ortonormalną podstawę wektorów własnych.Cw1w1w2