ML Atlas

01 · Podstawy · 4 min czytania · Interaktywne · aktualizacja

Czym są wektory własne i wartości własne macierzy i do czego służą w uczeniu maszynowym?

W skrócie

Wektor własny to kierunek, który macierz tylko rozciąga, nie obracając go. Wartość własna mówi, jak mocno. Na tym opiera się PCA i analiza dynamiki.

Co to jest

Wektor własny macierzy kwadratowej A to niezerowy wektor v, który po przemnożeniu przez A zmienia tylko długość (i ewentualnie zwrot), ale nie kierunek: A·v = λ·v. Liczba λ to odpowiadająca mu wartość własna — współczynnik rozciągnięcia. Para (λ, v) opisuje „naturalne osie” przekształcenia, które reprezentuje macierz.

Intuicja: wyobraź sobie gumową płachtę, którą ktoś rozciąga w jednym kierunku i ściska w drugim. Większość narysowanych na niej strzałek po deformacji zmienia kierunek. Ale strzałki leżące dokładnie wzdłuż kierunku rozciągania i ściskania tylko się wydłużają lub skracają — to wektory własne. W tych osiach skomplikowane przekształcenie staje się prostym skalowaniem każdej osi osobno.

Mechanizm — dlaczego tak działa

Równanie A·v = λ·v można przepisać jako (A − λI)·v = 0. Niezerowe rozwiązanie istnieje tylko wtedy, gdy macierz A − λI jest osobliwa, czyli det(A − λI) = 0. To wielomian stopnia n względem λ, więc macierz n×n ma n wartości własnych (licząc krotności, czasem zespolonych). W praktyce nikt nie liczy wyznaczników — algorytmy numeryczne (QR, metoda Lanczosa) robią to stabilnie.

Najważniejszy przypadek w statystyce i ML to macierze symetryczne, takie jak macierz kowariancji. Twierdzenie spektralne gwarantuje, że mają rzeczywiste wartości własne i wzajemnie prostopadłe wektory własne. Macierz rozkłada się wtedy jako A = Q·Λ·Qᵀ: obrót do osi własnych, skalowanie wzdłuż nich i obrót z powrotem. Dla macierzy kowariancji wartości własne są nieujemne i mają bezpośredni sens: to wariancja danych wzdłuż danego kierunku. Największy wektor własny to kierunek, w którym dane są najbardziej rozciągnięte — pierwsza składowa główna w PCA.

Wartości własne opisują też, co dzieje się przy wielokrotnym stosowaniu macierzy. Aᵏ·v = λᵏ·v, więc składowe wzdłuż osi z |λ| > 1 rosną wykładniczo, a z |λ| < 1 zanikają. Stąd metoda potęgowa: mnożąc dowolny wektor przez A i normalizując, po kilkunastu krokach dostaje się dominujący wektor własny; tempo zbieżności zależy od stosunku dwóch największych wartości własnych. Na tej zasadzie działa PageRank (wektor własny macierzy przejść między stronami) i analiza stabilności układów dynamicznych.

W sieciach neuronowych ta sama matematyka tłumaczy zanikające i eksplodujące gradienty w sieciach rekurencyjnych: gradient przechodzi przez wielokrotne mnożenie przez tę samą macierz wag, więc jego wielkość rośnie lub maleje jak potęga największej wartości własnej (dokładniej — wartości osobliwej). Wartości własne hesjanu funkcji straty mówią, jak zakrzywiony jest krajobraz: duże oznaczają strome kierunki wymagające małego kroku uczenia, ujemne — punkt siodłowy.

Ograniczenia. Nie każda macierz ma pełny zestaw wektorów własnych (macierze niediagonalizowalne), a macierze niesymetryczne mogą mieć wartości zespolone, oznaczające obrót. Rozkład własny dotyczy tylko macierzy kwadratowych. Dla prostokątnych macierzy danych używa się rozkładu według wartości osobliwych (SVD), który istnieje zawsze.

Na przykładzie

Iris: 150 kwiatów, 4 cechy w centymetrach, po standaryzacji. Macierz korelacji ma wartości własne 2,918; 0,914; 0,147 i 0,021, które sumują się do 4 — łącznej wariancji czterech standaryzowanych cech. Pierwszy kierunek własny skupia 73,0% wariancji, drugi 22,9%, dwa ostatnie razem tylko 4,2%. Czterowymiarowe dane są w praktyce prawie płaskie: niemal cała zmienność leży na płaszczyźnie wyznaczonej przez dwa pierwsze wektory własne.

Pierwszy wektor własny ma współrzędne około (0,52; −0,27; 0,58; 0,56) dla długości i szerokości działki kielicha oraz długości i szerokości płatka. To oś „wielkości kwiatu”: trzy silnie skorelowane cechy (korelacja długości i szerokości płatka wynosi 0,96) ładują się na nią razem, szerokość działki przeciwnie. Drugi wektor (0,38; 0,92; 0,02; 0,07) to niemal czysta szerokość działki kielicha. Metoda potęgowa, startując od wektora z równymi współrzędnymi, znalazła pierwszy wektor po 13 iteracjach — szybko, bo druga wartość własna stanowi tylko 31% pierwszej. Bez standaryzacji pierwszy kierunek przejąłby 92,5% wariancji, głównie dlatego, że długość płatka ma największy rozrzut w centymetrach.

Ta ilustracja działa w przeglądarce z włączonym JavaScriptem: PCA na 13 cechach win: bez standaryzacji PC1 wyjaśnia 99,8% wariancji i jest w zasadzie proliną, ze standaryzacją odmiany wyraźnie się rozdzielają.

Dane: Iris (irysy Fishera)

W praktyce

  • numpy.linalg.eigh(C) dla macierzy symetrycznych (kowariancja, hesjan) — szybsza i stabilniejsza; zwraca wartości rosnąco. numpy.linalg.eig dla ogólnych.
  • sklearn.decomposition.PCA liczy składowe przez SVD danych, nie przez rozkład własny kowariancji — wynik ten sam, numerycznie lepiej; explained_variance_ to wartości własne kowariancji.
  • Dla dużych macierzy rzadkich i kilku największych wartości: scipy.sparse.linalg.eigsh(A, k=10).
  • Znak wektora własnego jest dowolny (v i −v są równie dobre) — nie interpretuj znaku bez ustalenia konwencji, a różne biblioteki mogą dać przeciwne znaki.
  • Przed PCA standaryzuj cechy o różnych jednostkach (StandardScaler), inaczej wektory własne odzwierciedlą jednostki, a nie strukturę danych.

Najczęstsze pytania

Czym różni się wartość własna od wektora własnego?
Wektor własny to kierunek, który przekształcenie zachowuje. Wartość własna to liczba mówiąca, ile razy wektor się w tym kierunku wydłuża (λ > 1), skraca (0 < λ < 1) lub odwraca (λ < 0).
Jaki jest związek wektorów własnych z PCA?
Składowe główne to wektory własne macierzy kowariancji danych, posortowane malejąco według wartości własnych. Wartość własna to wariancja danych wzdłuż danej składowej, więc jej udział w sumie to odsetek wyjaśnionej wariancji.
Czy każda macierz ma wektory własne?
Każda macierz kwadratowa ma co najmniej jedną wartość własną, choć może być zespolona — macierz obrotu na płaszczyźnie nie ma rzeczywistych wektorów własnych. Macierze symetryczne zawsze mają pełny zestaw rzeczywistych, prostopadłych wektorów własnych.

Źródła

  • Strang, G. (2016). Introduction to Linear Algebra, 5th ed. Wellesley-Cambridge Press, rozdz. 6 (Eigenvalues and Eigenvectors).
  • Goodfellow, I., Bengio, Y., Courville, A. (2016). Deep Learning. MIT Press, rozdz. 2.7 (Eigendecomposition).
  • Golub, G. H., Van Loan, C. F. (2013). Matrix Computations, 4th ed. Johns Hopkins University Press.
  • Murphy, K. P. (2022). Probabilistic Machine Learning: An Introduction. MIT Press, rozdz. 7 (Linear Algebra).

Zobacz też