Tweet Share Share

Ultima actualizare la 9 August 2019

descompunerile matricei sunt un instrument util pentru reducerea unei matrice la părțile lor constitutive pentru a simplifica o serie de operații mai complexe.

probabil cel mai utilizat tip de descompunere a matricei este eigendecompoziția care descompune o matrice în vectori proprii și valori proprii. Această descompunere joacă, de asemenea, un rol în metodele utilizate în învățarea automată, cum ar fi în metoda de analiză a componentelor principale sau PCA.

în acest tutorial, veți descoperi compoziția proprie, vectorii proprii și valorile proprii în algebra liniară.

după finalizarea acestui tutorial, veți ști:

  • ce este o compoziție proprie și rolul vectorilor proprii și al valorilor proprii.
  • cum se calculează o compoziție proprie în Python cu NumPy.
  • cum se confirmă că un vector este un vector propriu și cum se reconstruiește o matrice din vectori proprii și valori proprii.

începeți proiectul cu noua mea carte algebra liniară pentru învățarea automată, inclusiv tutoriale pas cu pas și fișierele de cod sursă Python pentru toate exemplele.

Să începem.

introducere blândă la compoziția proprie, valorile proprii și vectorii proprii pentru învățarea automată
foto de Mathias Appel, unele drepturi rezervate.

tutorial prezentare generală

acest tutorial este împărțit în 5 părți; acestea sunt:

  1. compoziția proprie a unei matrice
  2. vectorii proprii și valorile proprii
  3. calculul compoziției proprii
  4. confirmați Un vector propriu și valoarea proprie
  5. reconstruiți matricea originală

aveți nevoie de ajutor cu algebra liniară pentru învățarea automată?

Ia-Mi gratuit 7 zile de e-mail crash course acum (cu codul de probă).

Faceți clic pentru a vă înscrie și pentru a obține, de asemenea, o versiune gratuită PDF Ebook a cursului.

descărcați Mini-cursul gratuit

Eigendecompoziția unei matrice

Eigendecompoziția unei matrice este un tip de descompunere care implică descompunerea unei matrice pătrate într-un set de vectori proprii și valori proprii.

unul dintre cele mai utilizate tipuri de descompunere a matricei se numește eigendecomposition, în care descompunem o matrice într-un set de vectori proprii și valori proprii.

— pagina 42, Deep Learning, 2016.

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

1
A . v = lambda . v

aceasta se numește ecuația valorii proprii, unde A este matricea pătrată părinte pe care o descompunem, v este Vectorul propriu al matricei, iar lambda este litera greacă minusculă și reprezintă scalarul valorii proprii.

sau fără notația punctului.

1
Av = lambdav

A matrix could have one eigenvector and eigenvalue for each dimension of the parent matrix. Nu toate matricile pătrate pot fi descompuse în vectori proprii și valori proprii, iar unele pot fi descompuse doar într-un mod care necesită numere complexe. Matricea părinte se poate dovedi a fi un produs al vectorilor proprii și al valorilor proprii.

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 format din valorile proprii de-a lungul diagonalei (uneori reprezentate cu o Lambda majusculă), iar Q^-1 este inversul matricei formate din vectorii proprii.

cu toate acestea, dorim adesea să descompunem matricile în valorile proprii și vectorii proprii. Acest lucru ne poate ajuta să analizăm anumite proprietăți ale matricei, la fel cum descompunerea unui număr întreg în factorii săi primi ne poate ajuta să înțelegem comportamentul acelui număr întreg.

— pagina 43, Deep Learning, 2016.

Eigen nu este un nume, de ex. metoda nu este numită după „Eigen”; eigen (pronunțat eye-gan) este un cuvânt German care înseamnă „propriu” sau „înnăscut”, ca în apartenența la matricea părinte.

o operație de descompunere nu are ca rezultat o comprimare a matricei; în schimb, o descompune în părți constitutive pentru a face anumite operații pe matrice mai ușor de efectuat. Ca și alte metode de descompunere a matricei, Eigendecompoziția este utilizată ca element pentru a simplifica calculul altor operații de matrice mai complexe.

aproape toți vectorii își schimbă direcția, atunci când sunt înmulțiți cu A. Anumiți vectori excepționali x sunt în aceeași direcție ca Ax. Aceștia sunt „vectorii proprii”. Înmulțiți un vector propriu cu A, iar axul vectorial este numărul lambda ori x original.valoarea proprie lambda spune dacă vectorul special x este întins sau micșorat sau inversat sau lăsat neschimbat – când este înmulțit cu A.

— pagina 289, Introducere în Algebra liniară, ediția a cincea, 2016.

compoziția proprie poate fi utilizată și pentru a calcula componentele principale ale unei matrice în metoda de analiză a componentelor principale sau PCA care poate fi utilizată pentru a reduce dimensionalitatea datelor în învățarea automată.

vectorii proprii și valorile proprii

vectorii proprii sunt vectori unitari, ceea ce înseamnă că lungimea sau magnitudinea lor este egală cu 1,0. Ele sunt adesea denumite vectori dreapta, ceea ce înseamnă pur și simplu un vector coloană (spre deosebire de un vector rând sau un vector stânga). Un vector drept este un vector așa cum îl înțelegem.valorile proprii sunt coeficienți aplicați vectorilor proprii care dau vectorilor lungimea sau magnitudinea lor. De exemplu, o valoare proprie negativă poate inversa direcția vectorului propriu ca parte a scalării acestuia.

o matrice care are doar valori proprii pozitive este denumită matrice pozitivă definită, în timp ce dacă valorile proprii sunt toate negative, este denumită matrice definită negativă.

descompunerea unei matrice în termeni de valori proprii și vectori proprii oferă informații valoroase despre proprietățile matricei. Anumite calcule ale matricei, cum ar fi calculul puterii matricei, devin mult mai ușoare atunci când folosim eigendecompoziția matricei.

— Page 262, No Bullshit Guide To Linear Algebra, 2017

calculul Eigendecomposition

o eigendecomposition este calculată pe o matrice pătrată folosind un algoritm iterativ eficient, despre care nu vom intra în detalii.

adesea se găsește mai întâi o valoare proprie, apoi se găsește un vector propriu pentru a rezolva ecuația ca un set de coeficienți.

compoziția proprie poate fi calculată în NumPy folosind funcția eig ().

exemplul de mai jos definește mai întâi o matrice pătrată de 3,3 la sută. Compoziția proprie este calculată pe matricea care returnează valorile proprii și vectorii proprii.

rularea exemplului imprimă mai întâi matricea definită, urmată de valorile proprii și vectorii proprii. Mai precis, vectorii proprii sunt vectorii proprii din partea dreaptă și sunt normalizați la lungimea unității.

confirmați Un vector propriu și o valoare proprie

putem confirma că un vector este într-adevăr un vector propriu al unei matrice.

facem acest lucru prin înmulțirea vectorului propriu candidat cu vectorul propriu și compararea rezultatului cu valoarea proprie.mai întâi, vom defini o matrice, apoi vom calcula valorile proprii și vectorii proprii. Vom testa apoi dacă primul vector și valoarea sunt de fapt o valoare proprie și un vector propriu pentru matrice. Știm că sunt, dar este un exercițiu bun.vectorii proprii sunt returnați ca o matrice cu aceleași dimensiuni ca matricea părinte, unde fiecare coloană este un vector propriu, de ex.primul vector propriu este vectori. Valorile proprii sunt returnate ca o listă, unde indicii de valoare din matricea returnată sunt împerecheați cu vectorii proprii după indexul coloanei, de ex.prima valoare proprie la valori este asociată cu primul vector propriu la vectori.

exemplul multiplică matricea originală cu primul vector propriu și o compară cu primul vector propriu înmulțit cu prima valoare proprie.

rularea exemplului imprimă rezultatele acestor două înmulțiri care arată același vector rezultat, așa cum ne-am aștepta.

1
2
3

Reconstruct Original Matrix

We poate inversa procesul și reconstrui matricea originală dat doar vectorii proprii și valorile proprii.

În primul rând, lista vectorilor proprii trebuie convertită într-o matrice, unde fiecare vector devine un rând. Valorile proprii trebuie aranjate într-o matrice diagonală. Funcția NumPy diag () poate fi utilizată pentru aceasta.

în continuare, trebuie să calculăm inversul matricei vectorului propriu, pe care îl putem realiza cu funcția inv() NumPy. În cele din urmă, aceste elemente trebuie înmulțite împreună cu funcția dot ().

exemplul calculează valorile proprii și vectorii proprii din nou și le folosește pentru a reconstrui matricea originală.

rularea exemplului imprimă mai întâi matricea originală, apoi matricea reconstruită din valori proprii și vectori proprii care se potrivesc matricei originale.

1
2
3
4
5
6
7

]
]

extensii

această secțiune enumeră câteva idei pentru extinderea tutorialului pe care ați putea dori să le explorați.

  • creați 5 Exemple folosind fiecare operație cu propriile date.
  • implementați fiecare operație de matrice manual pentru matricile definite ca liste de liste.
  • căutați lucrări de învățare automată și găsiți 1 Exemplu de fiecare operație utilizată.

dacă explorați oricare dintre aceste extensii, mi-ar plăcea să știu.

lecturi suplimentare

această secțiune oferă mai multe resurse pe această temă dacă doriți să aprofundați.

Cărți

  • secțiunea 6.1 valorile proprii și vectorii proprii. Nici Un Ghid De Rahat Pentru Algebra Liniară, 2017.
  • Capitolul 6 valori proprii și vectori proprii, Introducere în Algebra liniară, ediția a cincea, 2016.secțiunea 2.7 Eigendecomposition, Deep Learning, 2016.
  • Capitolul 5 valori proprii, vectori proprii și subspații Invariante, Algebra liniară făcută corect, ediția a treia, 2015.
  • prelegerea 24, probleme de valoare proprie, Algebră liniară numerică, 1997.

API

  • numpy.linalg.eig () API
  • numpy.diag () API
  • numpy.punct () API
  • numpy.linalg.inv() API

articole

  • eigen pe Wikționar
  • valorile proprii și vectorii proprii
  • Eigendecompoziția unei matrice
  • algoritmul de valori proprii
  • descompunerea matricei

rezumat

În acest tutorial, ați descoperit eigendecompoziția, vectori proprii și valori proprii în algebra liniară.

în mod specific, ați învățat:

  • ce este o compoziție proprie și rolul vectorilor proprii și al valorilor proprii.
  • cum se calculează o compoziție proprie în Python cu NumPy.
  • cum se confirmă că un vector este un vector propriu și cum se reconstruiește o matrice din vectori proprii și valori proprii.

aveți întrebări?
Pune-ți întrebările în comentariile de mai jos și voi face tot posibilul să răspund.

ia un mâner pe Algebra liniară pentru Mașină de învățare!

dezvoltați o înțelegere de lucru a algebrei liniare

…scriind linii de cod în python

Descoperiți cum în noua mea carte electronică:
algebra liniară pentru Machine Learning

oferă tutoriale de auto-studiu pe teme precum:
norme vectoriale, multiplicare matrice, tensori, Eigendecomposition, SVD, PCA și multe altele…

în cele din urmă să înțeleagă matematica de date

sări academicieni. Doar Rezultate.

vezi ce este în interiorul

Tweet Share Share

Lasă un răspuns

Adresa ta de email nu va fi publicată.