Tweet Udostępnij Udostępnij

Ostatnia aktualizacja 09.08.2019

rozkład macierzy jest przydatnym narzędziem do redukcji macierzy do ich części składowych w celu uproszczenia szeregu bardziej złożonych operacji.

prawdopodobnie najczęściej używanym rodzajem rozkładu macierzy jest rozkład własny, który rozkłada macierz na wektory własne i wartości własne. Rozkład ten odgrywa również rolę w metodach stosowanych w uczeniu maszynowym, takich jak Metoda analizy głównych składowych lub PCA.

w tym samouczku odkryjesz własne wektory, wektory własne i wartości własne w algebrze liniowej.

Po ukończeniu tego kursu dowiesz się:

  • czym jest wektor własny i rola wektorów własnych i wartości własnych.
  • Jak obliczyć eigendecomposition w Pythonie za pomocą NumPy.
  • Jak potwierdzić, że wektor jest wektorem własnym i jak zrekonstruować macierz z wektorów własnych i wartości własnych.

Rozpocznij swój projekt z moją nową książką Linear Algebra for Machine Learning, zawierającą samouczki krok po kroku i pliki kodu źródłowego Pythona dla wszystkich przykładów.

zaczynajmy.

delikatne Wprowadzenie do własnej kompilacji, wartości własnych i wektorów własnych do uczenia maszynowego
zdjęcie Mathias Appel, niektóre prawa zastrzeżone.

opis poradnika

Ten poradnik jest podzielony na 5 części; są to:

  1. Eigendecomposition macierzy
  2. wektory własne i wartości własne
  3. Obliczanie Eigendecomposition
  4. Potwierdź wektor własny i wartość własną
  5. Zrekonstruuj oryginalną macierz

potrzebujesz pomocy z liniowym algebra dla uczenia maszynowego?

weź mój darmowy 7-dniowy crash course e-mail teraz (z przykładowym kodem).

Kliknij, aby się zapisać, a także otrzymać darmową wersję ebooka kursu w formacie PDF.

Pobierz bezpłatny Mini-kurs

Eigendekompozycja macierzy

Eigendekompozycja macierzy to rodzaj rozkładu, który polega na rozłożeniu macierzy kwadratowej na zbiór wektorów własnych i wartości własnych.

jednym z najczęściej używanych rodzajów rozkładu macierzy jest eigendecomposition, w którym rozkładamy macierz na zbiór wektorów własnych i wartości własnych.

— strona 42, Deep Learning, 2016.

A vector is an eigenvector of a matrix if it satisfies the following equation.

1
A . v = lambda . v

nazywa się to równaniem wartości własnej, gdzie A jest macierzą kwadratową, którą rozkładamy, v jest wektorem własnym macierzy, a lambda jest małą literą grecką i reprezentuje Skalar wartości własnej.

lub bez zapisu kropkowego.

1
Av = lambdav

A matrix could have one eigenvector and eigenvalue for each dimension of the parent matrix. Nie wszystkie macierze kwadratowe mogą być rozkładane na wektory własne i wartości własne, a niektóre mogą być rozkładane tylko w sposób, który wymaga liczb zespolonych. Macierz macierzysta może być pokazana jako iloczyn wektorów własnych i wartości własnych.

1
A = Q . diag(V) . Q^-1

Or, without the dot notation.

1
A = Qdiag(V)Q^-1

Where Q is a matrix comprised of the eigenvectors, diag(V) is a diagonal matrix składa się z wartości własnych wzdłuż przekątnej (czasami reprezentowanych przez duże lambda), A Q^-1 jest odwrotnością macierzy składającej się z wektorów własnych.

jednak często chcemy rozkładać macierze na ich wartości własne i wektory własne. Może to pomóc nam przeanalizować pewne właściwości macierzy, tak samo jak rozkładanie liczby całkowitej na czynniki pierwsze może pomóc nam zrozumieć zachowanie tej liczby całkowitej.

— strona 43, Deep Learning, 2016.

Eigen nie jest nazwą, np. metoda nie jest nazwana po „Eigen”; eigen (wymawiane eye-gan) to niemieckie słowo, które oznacza „własne” lub „wrodzone”, jak przynależność do macierzy macierzystej.

operacja rozkładu nie powoduje kompresji macierzy; zamiast tego rozkłada ją na części składowe, aby ułatwić pewne operacje na macierzy. Podobnie jak inne metody rozkładu macierzy, Eigendecomposition jest używany jako element w celu uproszczenia obliczeń innych, bardziej złożonych operacji na macierzach.

prawie wszystkie wektory zmieniają kierunek, gdy są mnożone przez A. Niektóre wektory wyjątkowe x są w tym samym kierunku co Ax. To są „wektory własne”. Pomnóż wektor własny przez a, a Wektor Ax jest liczbą lambda razy x. wartość własna lambda mówi, czy specjalny wektor x jest rozciągnięty, skurczony, odwrócony lub pozostawiony bez zmian – gdy jest pomnożony przez A.

— strona 289, Introduction to Linear Algebra, Fifth Edition, 2016.

Eigendecomposition może być również używany do obliczania głównych składników macierzy w metodzie analizy głównych składników lub PCA, które mogą być wykorzystane do zmniejszenia wymiarowości danych w uczeniu maszynowym.

wektory własne i wartości własne

są wektorami jednostkowymi, co oznacza, że ich długość lub wielkość jest równa 1,0. Są one często określane jako wektory prawe, co oznacza po prostu wektor kolumnowy (w przeciwieństwie do wektora wierszowego lub wektora lewego). Wektor prawy jest wektorem, jak je rozumiemy.

wartości własne są współczynnikami stosowanymi do wektorów własnych, które nadają wektorom ich długość lub wielkość. Na przykład, ujemna wartość własna może odwrócić kierunek wektora własnego w ramach jego skalowania.

macierz, która ma tylko dodatnie wartości własne, jest określana jako dodatnia macierz określona, podczas gdy jeśli wszystkie wartości własne są ujemne, jest określana jako ujemna macierz określona.

rozkładanie macierzy pod względem jej wartości własnych i wektorów własnych daje cenny wgląd w właściwości macierzy. Niektóre obliczenia macierzy, takie jak obliczanie mocy macierzy, stają się znacznie łatwiejsze, gdy używamy własnej składowej macierzy.

— strona 262, No Bullshit Guide to Linear Algebra, 2017

Obliczanie własnej macierzy

własna macierz jest obliczana na macierzy kwadratowej przy użyciu wydajnego algorytmu iteracyjnego, którego nie będziemy wchodzić w szczegóły.

często najpierw znajduje się wartość własna, a następnie wektor własny rozwiązuje równanie jako zbiór współczynników.

eigendecomposition można obliczyć w NumPy za pomocą funkcji eig ().

poniższy przykład definiuje najpierw macierz kwadratową 3×3. Wartość własna obliczana jest na macierzy zwracającej wartości własne i wektory własne.

uruchomienie przykładu najpierw wyświetla zdefiniowaną macierz, a następnie wartości własne i wektory własne. Dokładniej rzecz ujmując, wektory własne są prawostronnymi wektorami własnymi i są znormalizowane do długości jednostkowej.

Potwierdź wektor własny i wartość własną

możemy potwierdzić, że wektor rzeczywiście jest wektorem własnym macierzy.

robimy to mnożąc wektor własny kandydata przez wektor własny i porównując wynik z wartością własną.

najpierw zdefiniujemy macierz, a następnie obliczymy wartości własne i wektory własne. Następnie sprawdzimy, czy pierwszy wektor i wartość są w rzeczywistości wartością własną i wektorem własnym dla macierzy. Wiemy, że są, ale to dobre ćwiczenie.

wektory własne są zwracane jako macierz o takich samych wymiarach jak macierz macierzysta, gdzie każda kolumna jest wektorem własnym, np. pierwszy wektor własny to wektory. Wartości własne są zwracane jako lista, gdzie indeksy wartości w zwracanej tablicy są sparowane z wektorami własnymi według indeksu kolumny, np. pierwsza wartość własna przy wartościach jest sparowana z pierwszym wektorem własnym przy wektorach.

przykład mnoży pierwotną macierz z pierwszym wektorem własnym i porównuje ją z pierwszym wektorem własnym pomnożonym przez pierwszą wartość własną.

uruchamiając przykład wyświetla wyniki tych dwóch mnożeń, które pokazują ten sam wektor wynikowy, jakiego byśmy się spodziewali.

1
2
3

Reconstruct Original Matrix

We może odwrócić proces i zrekonstruować oryginalną macierz, biorąc pod uwagę tylko wektory własne i wartości własne.

Po pierwsze, lista wektorów własnych musi zostać przekształcona w macierz, gdzie każdy wektor staje się rzędem. Wartości własne muszą być ułożone w macierz diagonalną. Można do tego użyć funkcji NumPy diag ().

następnie musimy obliczyć odwrotność macierzy wektora własnego, co możemy osiągnąć za pomocą funkcji Inv () NumPy. Wreszcie, elementy te muszą zostać pomnożone razem z funkcją dot ().

przykład ponownie oblicza wartości własne i wektory własne i wykorzystuje je do rekonstrukcji pierwotnej macierzy.

uruchamiając przykład najpierw wypisuje oryginalną macierz, a następnie macierz zrekonstruowaną z wartości własnych i wektorów własnych pasujących do oryginalnej macierzy.

1
2
3
4
5
6
7

]

rozszerzenia

Ta sekcja zawiera kilka pomysłów na rozszerzenie samouczka, które możesz chcieć zbadać.

  • Utwórz 5 przykładów przy użyciu każdej operacji z własnymi danymi.
  • implementuje każdą operację macierzy ręcznie dla macierzy zdefiniowanych jako listy list.
  • wyszukuje dokumenty uczenia maszynowego i znajduje 1 Przykład każdej użytej operacji.

Jeśli zbadasz którekolwiek z tych rozszerzeń, chciałbym wiedzieć.

Czytaj dalej

Ta sekcja zawiera więcej zasobów na ten temat, jeśli chcesz zagłębić się w ten temat.

Książki

  • sekcja 6.1 wartości własne i wektory własne. No Bullshit Guide To Linear Algebra, 2017.
  • Rozdział 6 wartości własne i wektory własne, Wprowadzenie do algebry liniowej, wydanie piąte, 2016.
  • sekcja 2.7 Eigendecomposition, Deep Learning, 2016.
  • Rozdział 5 wartości własne, wektory własne i podprzestrzenie Niezmiennicze, Linear Algebra Done Right, Third Edition, 2015.
  • Wykład 24, Eigenvalue Problems, Numerical Linear Algebra, 1997.

API

  • numpy.linalg.EIG () API
  • numpy.diag () API
  • numpy.dot () API
  • numpy.linalg.INV() API

Artykuły

  • eigen na Wikisłowniku
  • wartości własne i wektory własne
  • Eigendecomposition macierzy
  • algorytm wartości własnej
  • rozkład macierzy

podsumowanie

w tym tutorialu odkryłeś eigendecomposition, wektory własne i wartości własne w algebrze liniowej.

konkretnie, nauczyłeś się:

  • czym jest wektor własny i rola wektorów własnych i wartości własnych.
  • Jak obliczyć eigendecomposition w Pythonie za pomocą NumPy.
  • Jak potwierdzić, że wektor jest wektorem własnym i jak zrekonstruować macierz z wektorów własnych i wartości własnych.

masz pytania?
Zadawaj pytania w komentarzach poniżej, a ja postaram się odpowiedzieć.

poznaj algebrę liniową do uczenia maszynowego!

rozwiń robocze zrozumienie algebry liniowej

… pisząc linie kodu w Pythonie

Dowiedz się, jak w moim nowym ebooku:
Algebra liniowa do uczenia maszynowego

oferuje samouczki do samodzielnej nauki na takie tematy jak:
normy wektorowe, mnożenie macierzy, tensory, Eigendecomposition, SVD, PCA i wiele innych…

wreszcie zrozumieć matematykę danych

Pomiń naukowców. Tylko Wyniki.

Zobacz co jest w środku

Tweet Udostępnij Udostępnij

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.