Tweet Share Share

laatst bijgewerkt op 9 augustus 2019

Matrix decomposities zijn een nuttig hulpmiddel voor het reduceren van een matrix tot hun samenstellende delen om een reeks van meer complexe bewerkingen te vereenvoudigen.

misschien wel het meest gebruikte type van matrixdecompositie is de eigendecompositie die een matrix ontleedt in eigenvectoren en eigenwaarden. Deze ontleding speelt ook een rol in methodes die in machine het leren, zoals in de hoofdcomponentanalysemethode of PCA worden gebruikt.

in deze tutorial zult u de eigendecompositie, eigenvectoren en eigenwaarden in de lineaire algebra ontdekken.

na het voltooien van deze tutorial, zult u weten:

  • Wat een eigendecompositie is en de rol van eigenvectoren en eigenwaarden.
  • Hoe bereken je een eigen samenstelling in Python met NumPy.
  • Hoe te bevestigen dat een vector een eigenvector is en hoe een matrix te reconstrueren uit eigenvectoren en eigenwaarden.

start uw project met mijn nieuwe boek lineaire Algebra voor Machine Learning, inclusief stap-voor-stap tutorials en de Python broncode bestanden voor alle voorbeelden.

laten we beginnen.

Gentle Introduction to Eigendecomposition, eigenwaarden en eigenvectoren for Machine Learning
Foto door Mathias Appel, enkele rechten voorbehouden.

Tutorial Overview

Deze tutorial is verdeeld in 5 delen; ze zijn:

  1. Eigendecompositie van een Matrix
  2. eigenvectoren en eigenwaarden
  3. berekening van Eigendecompositie
  4. bevestig een Eigenvector en eigenwaarde
  5. Reconstrueer originele Matrix

hulp nodig met lineair algebra voor machine learning?

neem nu mijn gratis 7-daagse e-mail spoedcursus (met voorbeeldcode).

Klik om u aan te melden en ontvang ook een gratis PDF Ebook versie van de cursus.

download uw gratis minicursus

Eigendecompositie van een Matrix

Eigendecompositie van een matrix is een type ontleding waarbij een vierkante matrix wordt ontbonden in een verzameling eigenvectoren en eigenwaarden.

een van de meest gebruikte vormen van matrixdecompositie wordt eigendecomposition genoemd, waarin we een matrix ontleden in een verzameling eigenvectoren en eigenwaarden.

— Page 42, Deep Learning, 2016.

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

1
A . v = lambda . v

Dit wordt de eigenwaardevergelijking genoemd, waarbij A de bovenliggende kwadraatmatrix is die we ontleden, v de eigenvector van de matrix is, en lambda de kleine Griekse letter is en de eigenwaarde scalair vertegenwoordigt.

of zonder de puntnotatie.

1
Av = lambdav

A matrix could have one eigenvector and eigenvalue for each dimension of the parent matrix. Niet alle vierkante matrices kunnen worden ontbonden in eigenvectoren en eigenwaarden, en sommige kunnen alleen worden ontbonden op een manier die complexe getallen vereist. De moedermatrix kan een product zijn van de eigenvectoren en eigenwaarden.

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 samengesteld uit de eigenwaarden langs de diagonaal (soms weergegeven met een hoofdletter lambda), en Q^-1 is de inverse van de matrix samengesteld uit de eigenvectoren.

echter, we willen vaak matrices ontbinden in hun eigenwaarden en eigenvectoren. Dit kan ons helpen om bepaalde eigenschappen van de matrix te analyseren, net zoals het ontbinden van een geheel getal in zijn priemfactoren ons kan helpen het gedrag van dat geheel getal te begrijpen.

— Page 43, Deep Learning, 2016.

Eigen is geen naam, bijvoorbeeld de methode is niet vernoemd naar “Eigen”; eigen (eye-gan) is een Duits woord dat “eigen” of “aangeboren” betekent, zoals in behoren tot de oudermatrix.

een ontleding resulteert niet in een compressie van de matrix; in plaats daarvan wordt deze opgesplitst in samenstellende delen om bepaalde bewerkingen op de matrix gemakkelijker uit te voeren te maken. Net als andere matrix decompositiemethoden, wordt Eigendecomposition gebruikt als een element om de berekening van andere, meer complexe matrix operaties te vereenvoudigen.

bijna alle vectoren veranderen van richting, wanneer ze worden vermenigvuldigd met A. Bepaalde uitzonderlijke vectoren x zijn in dezelfde richting als Ax. Dat zijn de eigenvectoren. Vermenigvuldig een eigenvector met A, en de vectoras is het getal lambda maal de oorspronkelijke x. de eigenwaarde lambda vertelt of de speciale vector x is uitgerekt of gekrompen of omgekeerd of onveranderd gelaten – wanneer het wordt vermenigvuldigd met A.

– Page 289, Introduction to Linear Algebra, vijfde editie, 2016.

Eigendecomposition kan ook worden gebruikt om de belangrijkste componenten van een matrix te berekenen in de Hoofdcomponentanalysemethode of PCA die kan worden gebruikt om de dimensionaliteit van gegevens in machine learning te verminderen.

eigenvectoren en eigenwaarden

eigenvectoren zijn eenheidsvectoren, wat betekent dat hun lengte of magnitude gelijk is aan 1.0. Ze worden vaak aangeduid als rechts vectoren, wat gewoon betekent een kolom vector (in tegenstelling tot een Rij vector of een linker vector). Een rechtse vector is een vector zoals we ze begrijpen.

eigenwaarden zijn coëfficiënten die worden toegepast op eigenvectoren die de vectoren hun lengte of magnitude geven. Bijvoorbeeld, een negatieve eigenwaarde kan de richting van de eigenvector omkeren als onderdeel van het schalen ervan.

een matrix die alleen positieve eigenwaarden heeft wordt aangeduid als een positieve bepaalde matrix, terwijl als de eigenwaarden alle negatief zijn, wordt verwezen als een negatieve bepaalde matrix.

Het ontleden van een matrix in termen van eigenwaarden en eigenvectoren geeft waardevolle inzichten in de eigenschappen van de matrix. Bepaalde matrixberekeningen, zoals het berekenen van de kracht van de matrix, worden veel gemakkelijker wanneer we de eigen samenstelling van de matrix gebruiken.

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

Calculation of Eigendecomposition

een eigendecomposition wordt berekend op een vierkante matrix met behulp van een efficiënt iteratief algoritme, waarvan we niet in details zullen treden.

vaak wordt eerst een eigenwaarde gevonden, dan wordt een eigenvector gevonden om de vergelijking op te lossen als een verzameling coëfficiënten.

De eigendecomposition kan worden berekend in NumPy met behulp van de functie eigendecomposition ().

het voorbeeld hieronder definieert eerst een 3×3 vierkante matrix. De eigen samenstelling wordt berekend op basis van de matrix die de eigenwaarden en eigenvectoren teruggeeft.

als het voorbeeld wordt uitgevoerd, wordt eerst de gedefinieerde matrix afgedrukt, gevolgd door de eigenwaarden en de eigenvectoren. Meer specifiek, de eigenvectoren zijn de rechterkant eigenvectoren en zijn genormaliseerd tot eenheidslengte.

bevestig een Eigenvector en eigenwaarde

We kunnen bevestigen dat een vector inderdaad een eigenvector van een matrix is.

We doen dit door de kandidaat eigenvector te vermenigvuldigen met de eigenvector en het resultaat te vergelijken met de eigenwaarde.

eerst definiëren we een matrix, dan berekenen we de eigenwaarden en eigenvectoren. We zullen dan testen of de eerste vector en waarde in feite een eigenwaarde en eigenvector voor de matrix zijn. Dat weten we, maar het is een goede oefening.

de eigenvectoren worden geretourneerd als een matrix met dezelfde afmetingen als de oudermatrix, waarbij elke kolom een eigenvector is, bijvoorbeeld de eerste eigenvector is vectoren. Eigenwaarden worden geretourneerd als een lijst, waar waarde-indices in de geretourneerde array worden gekoppeld met eigenvectoren per kolomindex, bijvoorbeeld de eerste eigenwaarde bij waarden wordt gekoppeld met de eerste eigenvector bij vectoren.

het voorbeeld vermenigvuldigt de oorspronkelijke matrix met de eerste eigenvector en vergelijkt deze met de eerste eigenvector vermenigvuldigd met de eerste eigenwaarde.

het uitvoeren van het voorbeeld toont de resultaten van deze twee vermenigvuldigingen die dezelfde resulterende vector tonen, zoals we zouden verwachten.

1
2
3

Reconstruct Original Matrix

We kan het proces omkeren en de oorspronkelijke matrix reconstrueren gegeven alleen de eigenvectoren en eigenwaarden.

eerst moet de lijst van eigenvectoren worden omgezet in een matrix, waarbij elke vector een rij wordt. De eigenwaarden moeten worden gerangschikt in een diagonale matrix. Hiervoor kan de NumPy diag() functie worden gebruikt.

vervolgens moeten we de inverse van de eigenvector matrix berekenen, die we kunnen bereiken met de Inv () NumPy functie. Tenslotte moeten deze elementen samen met de dot() functie worden vermenigvuldigd.

het voorbeeld berekent de eigenwaarden en eigenvectoren opnieuw en gebruikt ze om de originele matrix te reconstrueren.

door het voorbeeld uit te voeren wordt eerst de originele matrix afgedrukt, daarna wordt de matrix gereconstrueerd uit eigenwaarden en eigenvectoren die overeenkomen met de originele matrix.

1
2
3
4
5
6
7

]
]

extensies

Deze sectie bevat enkele ideeën voor het uitbreiden van de tutorial die u misschien wilt verkennen.

  • Maak 5 voorbeelden met behulp van elke operatie met uw eigen gegevens.
  • implementeer elke matrixbewerking handmatig voor matrices gedefinieerd als lijsten van lijsten.
  • zoek machine learning papers en vind 1 voorbeeld van elke operatie die wordt gebruikt.

Als u een van deze extensies verkent, zou ik dat graag willen weten.

verder lezen

Deze sectie biedt meer bronnen over het onderwerp als u dieper wilt gaan.

boeken

  • paragraaf 6.1 eigenwaarden en eigenvectoren. No Bullshit Guide To Linear Algebra, 2017.
  • Chapter 6 Eigenvalues and Eigenvectors, Introduction to Linear Algebra, Fifth Edition, 2016.
  • sectie 2.7 Eigendecomposition, Deep Learning, 2016.
  • Chapter 5 Eigenvalues, Eigenvectors, and Invariant Subspaces, Linear Algebra Done Right, Third Edition, 2015.
  • Lecture 24, Eigenvalue Problems, Numerical Linear Algebra, 1997.

API

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

artikelen

  • eigenwaarde en eigenvectoren
  • eigenwaarde-samenstelling van een matrix
  • eigenwaarde-algoritme
  • Matrixdecompositie

samenvatting

In deze tutorial ontdekte u de eigendecomposition, eigenvectoren en eigenwaarden in de lineaire algebra.

specifiek leerde u:

  • Wat een eigendecompositie is en de rol van eigenvectoren en eigenwaarden.
  • Hoe bereken je een eigen samenstelling in Python met NumPy.
  • Hoe te bevestigen dat een vector een eigenvector is en hoe een matrix te reconstrueren uit eigenvectoren en eigenwaarden.

heeft u vragen?
Stel uw vragen in de opmerkingen hieronder en Ik zal mijn best doen om te beantwoorden.

Krijg grip op lineaire Algebra voor Machine Learning!

Ontwikkel een werkbegrip van lineaire algebra

… door regels code in python te schrijven

ontdek hoe in mijn nieuwe Ebook:
lineaire Algebra voor Machine Learning

Het biedt zelfstudie tutorials over onderwerpen zoals:
Vectornormen, matrixvermenigvuldiging, tensoren, Eigendecomposition, SVD, PCA en nog veel meer…

eindelijk de wiskunde van Data begrijpen

sla de academici over. Alleen Resultaten.

bekijk wat er in

Tweet Share Share

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.