Jakie jest intuicyjne wyjaśnienie, w jaki sposób PCA zmienia się z problemu geometrycznego (z odległościami) w problem algebry liniowej (z wektorami własnymi)?


54

Dużo czytałem o PCA, w tym różne tutoriale i pytania (takie jak ten , ten , ten i ten ).

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.

wprowadź opis zdjęcia tutaj

Kiedy po raz pierwszy to przeczytałem, od razu pomyślałem o regresji liniowej; w razie potrzeby możesz to rozwiązać za pomocą opadania gradientu.

Jednak wtedy mój umysł był oszołomiony, gdy przeczytałem, że problem optymalizacji rozwiązano za pomocą algebry liniowej i znalezienia wektorów własnych i wartości własnych. Po prostu nie rozumiem, jak to zastosowanie algebry liniowej wchodzi w grę.

Moje pytanie brzmi zatem: w jaki sposób PCA może zmienić problem optymalizacji geometrycznej w problem algebry liniowej? Czy ktoś może podać intuicyjne wyjaśnienie?

Nie szukam odpowiedzi takiej jak ta, która mówi: „Kiedy rozwiążesz matematyczny problem PCA, kończy się to równoważeniem znalezienia wartości własnych i wektorów własnych macierzy kowariancji”. Wyjaśnij, dlaczego wektory własne okazują się głównymi składnikami i dlaczego wartości własne okazują się wariancją rzutowanych na nie danych

Nawiasem mówiąc, jestem inżynierem oprogramowania, a nie matematykiem.

Uwaga: powyższy rysunek został pobrany i zmodyfikowany w tym samouczku PCA .


2
W długim gwintem za pierwszym linku, istnieje @ ameba za odpowiedź z animacją, co tłumaczy rzeczą podstawową. PCA jest rotacją osi danych (kolumn), dopóki nie staną się nieskorelowane jako wektory danych (zmienne). Taka matryca rotacyjna znajduje się w składzie eigend lub rozkładzie wartości osobliwych i nazywa się macierzą wektorów własnych.
ttnphns,

2
Poza tym, nawet jeśli nie jesteś matematykiem (ja też nie jestem), prawdopodobnie słyszałeś o tym, że algebra liniowa i geometria euklidesowa to bardzo ściśle powiązane pola matematyki; są nawet badane razem jako dyscyplina zwana geometrią analityczną.
ttnphns,

1
optimization problemTak, sądzę, że problem PCA można rozwiązać za pomocą (iteracyjnych, zbieżnych) metod optymalizacji. Ale skoro ma matematyczne rozwiązanie zamknięte, dlaczego nie zastosować tego prostszego, wydajnego rozwiązania?
ttnphns,

Ty prosisz provide an intuitive explanation. Zastanawiam się, dlaczego intuicyjna i jasna odpowiedź ameby, z którą się połączyłem, nie będzie ci odpowiadać. Pytasz _why_ eigenvectors come out to be the principal components...dlaczego Zgodnie z definicją! Wektory własne to główne kierunki chmury danych.
ttnphns

6
CwCw=λw

Odpowiedzi:


54

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).

Cww=1wCw

(Na wszelki wypadek, gdy nie jest to jasne: jeśli jest wyśrodkowaną macierzą danych, to rzut jest podawany przez a jego wariancja to ).XXw1n1(Xw)Xw=w(1n1XX)w=wCw

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 dajewCww=ww=1wCwλ(ww1)Cwλw=0λwCwλ(ww1)=wCw=λww=λ . 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λiwCwλiwi2w=(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ń.λ1wCw

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,00)Cw1=(C11,C21,Cp1)λ1w1=(λ1,0,00)

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=(λ10000),

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

w1Cv=(w1Cv)=vCw1=vCw1=λ1vw1=λ10=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


„Mnożnik Lagrange'a” jest dla mnie naprawdę jasny. Czy możesz mi jednak powiedzieć, dlaczego potrzebujemy ograniczenia długości jednostki? Dzięki
Haitao Du

2
@ hxd1011 Tu jest już dokładnie to pytanie , ale krótko: to dlatego, że w przeciwnym razie możesz pomnożyć przez dowolną liczbę, a zwiększy się o kwadrat tej liczby. Problem jest więc źle zdefiniowany: maksimum tego wyrażenia jest nieskończone. W rzeczywistości wariancja rzutu na kierunek wynosi tylko wtedy, gdy jest długością jednostkową. wwCwwwCww
ameba mówi Przywróć Monikę

Myślę, że może być nieco bardziej znany większości czytelników; Wymieniłem to tutaj. Dzięki. n1
ameba mówi Przywróć Monikę

@amoeba: Dziękuję za odpowiedź. Jestem zdziwiony niektórymi twoimi notacjami. Używasz w, aby wskazać wektor długości jednostki, który okazuje się pierwszym wektorem własnym (główny składnik). Kiedy uruchamiam PCA w R (np. prcomp(iris[,1:4], center=T, scale=T)), Widzę wektory własne o długości jednostkowej z wieloma pływakami jak (0.521, -0.269, 0.580, 0.564). Jednak w odpowiedzi w części „Dowody” piszesz. Niemal natychmiast, aby zmaksymalizować to wyrażenie, należy po prostu przyjąć w = (1,0,0,…, 0), tj. Pierwszy wektor własny . Dlaczego wektor własny w twoim dowodzie wygląda tak dobrze uformowany?
stackoverflowuser2010

1
Cześć @ user58865, dzięki za szturchanie: po prostu zapomniałem odpowiedzieć za pierwszym razem. Cienka jest, jest skalarem - to tylko liczba. Każda liczba jest „symetryczna” :) i jest równa jej transpozycji. Czy jest sens? w1Cv
ameba mówi Przywróć Monikę

5

Jest wynik z 1936 r. Autorstwa Eckarta i Younga ( https://ccrma.stanford.edu/~dattorro/eckart%26young.1936.pdf ), który stwierdza, co następuje

1rdkukvkT=argminX^ϵM(r)||XX^||F2

gdzie M (r) jest zbiorem macierzy ranga-r, co w zasadzie oznacza, że ​​pierwsze r składowe SVD X dają najlepsze przybliżenie macierzy X rangi niskiej, a najlepsze jest zdefiniowane w kategoriach kwadratu normy Frobeniusa - sumy kwadratu elementy macierzy.

Jest to ogólny wynik dla matryc i na pierwszy rzut oka nie ma nic wspólnego z zestawami danych ani redukcją wymiarów.

Jeśli jednak nie myślisz o jako macierzy, a raczej o kolumnach macierzy reprezentujących wektory punktów danych, to jest przybliżeniem z minimalnym błędem reprezentacji pod względem kwadratowych różnic błędów.XXX^


4

To jest moje zdanie na temat algebry liniowej za PCA. W algebrze liniowej jednym z kluczowych twierdzeń jest . Stwierdza, że ​​jeśli S jest dowolną symetryczną macierzą n na n o rzeczywistych współczynnikach, to S ma n wektorów własnych, przy czym wszystkie wartości własne są rzeczywiste. Oznacza to, że możemy napisać pomocą D macierzy diagonalnej z dodatnimi wartościami. To jest i nie ma nic złego w założeniu, że . A jest zmianą matrycy bazowej. To znaczy, jeśli naszą pierwotną podstawą było , to w odniesieniu do podstawy podanej przezSpectral TheoremS=ADA1D=diag(λ1,λ2,,λn)λ1λ2λnx1,x2,,xnA(x1),A(x2),A(xn), działanie S jest diagonalne. Oznacza to również, że można uznać za podstawę ortogonalną z Gdyby nasza macierz kowariancji dotyczyła n obserwacji n zmiennych, zrobilibyśmy to. Podstawą podaną przez jest podstawa PCA. Wynika to z faktów algebry liniowej. Zasadniczo jest to prawdą, ponieważ podstawa PCA jest podstawą wektorów własnych, a istnieją wektory własne n macierzy kwadratowej o rozmiarze n. Oczywiście większość macierzy danych nie jest kwadratowa. Jeśli X jest macierzą danych z n obserwacjami zmiennych p, to X ma rozmiar n przez p. Zakładam, że (więcej obserwacji niż zmiennych) i żeA(xi)||A(xi)||=λiA(xi)
n>prk(X)=p(wszystkie zmienne są liniowo niezależne). Żadne z tych założeń nie jest konieczne, ale pomoże intuicyjnie. Algebra liniowa ma uogólnienie na podstawie twierdzenia spektralnego zwanego rozkładem wartości osobliwych. Dla takiego X stwierdza, że z U, V macierzami ortonormalnymi (kwadratowymi) o rozmiarze nip oraz prawdziwa macierz diagonalna z tylko nieujemnymi wpisy na przekątnej. Ponownie możemy zmienić podstawę V, aby W kategoriach macierzowych oznacza to, że jeśli i jeśli . X=UΣVtΣ=(sij)s11s22spp>0X(vi)=siiuiipsii=0i>nvidać rozkład PCA. Dokładniej jest rozkładem PCA. Dlaczego? Ponownie, algebra liniowa mówi, że mogą istnieć tylko wektory własne. SVD podaje nowe zmienne (podane przez kolumny V), które są ortogonalne i mają malejącą normę. ΣVt


4

„co jednocześnie maksymalizuje wariancję prognozowanych danych”. Czy słyszałeś o ilorazie Rayleigha ? Może to jeden ze sposobów na to. Mianowicie współczynnik rayleigha macierzy kowariancji daje wariancję rzutowanych danych. (a strona wiki wyjaśnia, dlaczego wektory własne maksymalizują iloraz Rayleigha)


1

@amoeba daje staranne sformalizowanie i dowód:

Możemy sformalizować go w następujący sposób: biorąc pod uwagę macierz kowariancji C, szukamy wektora w o długości jednostkowej, ‖w‖ = 1, tak że w T Cw jest maksymalna.

Myślę jednak, że istnieje jeden intuicyjny dowód na:

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.

Możemy interpretować w T Cw jako iloczyn iloczynu między wektorem w i Cw, który jest uzyskiwany przez przejście przez transformację C:

w T Cw = ‖w‖ * ‖Cw‖ * cos (w, Cw)

Ponieważ w ma stałą długość, aby zmaksymalizować W T Cw, potrzebujemy:

  1. maksymalizuj ‖Cw‖
  2. maksymalizuj cos (w, Cw)

Okazuje się, że jeśli weźmiemy w jako wektor własny C o największej wartości własnej, możemy zarchiwizować oba jednocześnie:

  1. ‖Cw‖ wynosi maksimum (jeśli w odbiegamy od tego wektora własnego, dekomponujemy go wzdłuż ortogonalnych wektorów własnych, powinieneś zobaczyć spadek ‖Cw‖).
  2. w i Cw w tym samym kierunku, cos (w, Cw) = 1, max

Ponieważ wektory własne są ortogonalne, wraz z innymi wektorami własnymi C tworzą zestaw podstawowych składników X.


dowód 1

rozłożyć w na pierwotny i wtórny wektor własny v1 i v2 , zakładając , że ich długość wynosi odpowiednio v1 i v2. chcemy to udowodnić

1 w) 2 > ((λ 1 v1) 2 + (λ 2 v2) 2 )

od λ 1 > λ 2 mamy

((λ 1 v1) 2 + (λ 2 v2) 2 )

<((λ 1 v1) 2 + (λ 1 v2) 2 )

= (λ 1 ) 2 * (v1 2 + v2 2 )

= (λ 1 ) 2 * w 2

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.