sidst opdateret den 9.August 2019

nedbrydning af matricer er et nyttigt værktøj til at reducere en matrice til deres bestanddele for at forenkle en række mere komplekse operationer.

måske er den mest anvendte type nedbrydning af matricen eigendekompositionen, der nedbryder en matrice til egenvektorer og egenværdier. Denne nedbrydning spiller også en rolle i metoder, der anvendes i maskinindlæring, såsom i Hovedkomponentanalysemetoden eller PCA.

i denne tutorial vil du opdage eigendecomposition, egenvektorer og egenværdier i lineær algebra.

Når du har gennemført denne tutorial, ved du:

  • hvad en egenendesammensætning er og rollen som egenvektorer og egenværdier.
  • Sådan beregnes en egensammensætning i Python med NumPy.
  • sådan bekræftes en vektor er en egenvektor, og hvordan man rekonstruerer en matrice fra egenvektorer og egenværdier.

kickstart dit projekt med min nye bog lineær Algebra til maskinindlæring, herunder trinvise vejledninger og Python-kildekodefiler til alle eksempler.

lad os komme i gang.

blid introduktion til Egenendesammensætning, egenværdier og egenvektorer til maskinindlæring
foto af Mathias Appel, nogle rettigheder forbeholdes.

Tutorial Oversigt

denne tutorial er opdelt i 5 dele; de er:

  1. Eigendekomposition af en matrice
  2. egenvektorer og egenværdier
  3. beregning af egenvektor
  4. Bekræft en egenvektor og egenværdi
  5. rekonstruere Original Matrice

brug for hjælp til lineær algebra til maskinindlæring?

Tag mit gratis 7-dages e-mail-crashkursus nu (med prøvekode).

Klik for at tilmelde dig og også få en gratis PDF Ebook version af kurset.

Hent dit gratis minikursus

Eigendekomposition af en matrice

Eigendekomposition af en matrice er en type nedbrydning, der involverer nedbrydning af en firkantet matrice i et sæt egenvektorer og egenværdier.

en af de mest anvendte former for nedbrydning af matricer kaldes eigendecomposition, hvor vi nedbryder en matrice i et sæt egenvektorer og egenværdier.

— side 42, dyb læring, 2016.

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

1
A . v = lambda . v

dette kaldes egenværdiligningen, hvor A er den overordnede firkantede matrice, som vi nedbryder, V er egenvektoren for matricen, og lambda er det små græske bogstav og repræsenterer egenværdiskalaren.

eller uden dot notation.

1
Av = lambdav

A matrix could have one eigenvector and eigenvalue for each dimension of the parent matrix. Ikke alle firkantede matricer kan nedbrydes til egenvektorer og egenværdier, og nogle kan kun nedbrydes på en måde, der kræver komplekse tal. Modermatricen kan påvises at være et produkt af egenvektorer og egenværdier.

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 består af egenværdierne langs diagonalen (undertiden repræsenteret med en hovedstad lambda), og K^-1 er den inverse af matricen, der består af egenvektorerne.

Vi ønsker dog ofte at nedbryde matricer i deres egenværdier og egenvektorer. Dette kan hjælpe os med at analysere visse egenskaber ved matricen, ligesom nedbrydning af et heltal i dets primære faktorer kan hjælpe os med at forstå opførslen af det heltal.

— side 43, dyb læring, 2016.

Eigen er ikke et navn, f. eks. er metoden ikke opkaldt efter “Eigen”; eigen (udtalt eye-gan) er et tysk ord, der betyder “egen” eller “medfødt”, som ved at tilhøre modermatricen.

en nedbrydningsoperation resulterer ikke i en komprimering af matricen; i stedet opdeler den den i bestanddele for at gøre visse operationer på matricen lettere at udføre. Ligesom andre metoder til nedbrydning af matricer, Eigendesammensætning bruges som et element til at forenkle beregningen af andre mere komplekse matricsoperationer.

næsten alle vektorer ændrer retning, når de multipliceres med A. Visse usædvanlige vektorer er i samme retning som økse. Det er “egenvektorerne”. Egenværdien lambda fortæller, om den specielle vektor er strakt eller krympet eller vendt eller efterladt uændret – når den ganges med A.

— side 289, Introduktion til lineær Algebra, femte udgave, 2016.

Eigendekomposition kan også bruges til at beregne hovedkomponenterne i en matrice i Hovedkomponentanalysemetoden eller PCA, der kan bruges til at reducere dimensionaliteten af data i maskinindlæring.

egenvektorer og egenværdier

egenvektorer er enhedsvektorer, hvilket betyder, at deres længde eller størrelse er lig med 1,0. De omtales ofte som højre vektorer, hvilket simpelthen betyder en kolonnevektor (i modsætning til en rækkevektor eller en venstre vektor). En højre-vektor er en vektor, som vi forstår dem.

egenværdier er koefficienter anvendt på egenvektorer, der giver vektorerne deres længde eller størrelse. For eksempel kan en negativ egenværdi vende retningen af egenvektoren som en del af skaleringen.

en matrice, der kun har positive egenværdier, kaldes en positiv bestemt matrice, mens hvis egenværdierne alle er negative, kaldes den en negativ bestemt matrice.

nedbrydning af en matrice med hensyn til dens egenværdier og dens egenvektorer giver værdifuld indsigt i matricens egenskaber. Visse matricsberegninger, som beregning af matricen, bliver meget lettere, når vi bruger matricens egenkomposition.

— side 262, Ingen Bullshit Guide til lineær Algebra, 2017

beregning af Eigendecomposition

en eigendecomposition beregnes på en firkantet matrice ved hjælp af en effektiv iterativ algoritme, hvoraf vi ikke vil gå ind i detaljerne.

ofte findes en egenværdi først, så findes en egenvektor til at løse ligningen som et sæt koefficienter.

eigendekompositionen kan beregnes i NumPy ved hjælp af funktionen eig ().

eksemplet nedenfor definerer først en 3-liters 3-kvadratmatrice. Eigendekompositionen beregnes på matricen, der returnerer egenværdierne og egenvektorerne.

kørsel af eksemplet udskriver først den definerede matrice efterfulgt af egenværdierne og egenvektorerne. Mere specifikt er egenvektorerne højre side egenvektorer og normaliseres til enhedslængde.

Bekræft en egenvektor og egenværdi

Vi kan bekræfte, at en vektor faktisk er en egenvektor af en matrice.

vi gør dette ved at multiplicere kandidat egenvektoren med egenvektoren og sammenligne resultatet med egenværdien.

først vil vi definere en matrice, derefter beregne egenværdier og egenvektorer. Vi tester derefter, om den første vektor og værdi faktisk er en egenværdi og egenvektor for matricen. Det ved vi godt, men det er en god øvelse.

egenvektorerne returneres som en matrice med de samme dimensioner som modermatricen, hvor hver søjle er en egenvektor, f.eks. den første egenvektor er vektorer. Egenværdier returneres som en liste, hvor værdiindeks i det returnerede array er parret med egenvektorer efter kolonneindeks, f.eks. den første egenværdi ved værdier er parret med den første egenvektor ved vektorer.

eksemplet multiplicerer den oprindelige matrice med den første egenvektor og sammenligner den med den første egenvektor ganget med den første egenværdi.

kørsel af eksemplet udskriver resultaterne af disse to multiplikationer, der viser den samme resulterende vektor, som vi ville forvente.

1
2
3

Reconstruct Original Matrix

We kan vende processen og rekonstruere den oprindelige matrice givet kun egenvektorer og egenværdier.

først skal listen over egenvektorer konverteres til en matrice, hvor hver vektor bliver en række. Egenværdierne skal arrangeres i en diagonal matrice. Funktionen NumPy diag () kan bruges til dette.

Dernæst skal vi beregne den inverse af egenvektormatricen, som vi kan opnå med inv() NumPy-funktionen. Endelig skal disse elementer multipliceres sammen med dot () – funktionen.

eksemplet beregner egenværdierne og egenvektorerne igen og bruger dem til at rekonstruere den oprindelige matrice.

kørsel af eksemplet udskriver først den originale matrice, derefter matricen rekonstrueret fra egenværdier og egenvektorer, der matcher den originale matrice.

1
2
3
4
5
6
7

]
]

udvidelser

dette afsnit viser nogle ideer til udvidelse af tutorial, som du måske ønsker at udforske.

  • Opret 5 eksempler ved hjælp af hver operation med dine egne data.
  • Implementer hver matricer operation manuelt for matricer defineret som lister over lister.
  • Søg machine learning papirer og finde 1 eksempel på hver operation, der anvendes.

Hvis du udforsker nogen af disse udvidelser, vil jeg meget gerne vide det.

yderligere læsning

dette afsnit giver flere ressourcer om emnet, hvis du ønsker at gå dybere.

bøger

  • Afsnit 6.1 egenværdier og egenvektorer. Ingen Bullshit Guide Til Lineær Algebra, 2017.
  • Kapitel 6 egenværdier og egenvektorer, Introduktion til lineær Algebra, femte udgave, 2016.
  • afsnit 2.7 Eigendekomposition, dyb læring, 2016.
  • Kapitel 5 egenværdier, egenvektorer og invariante underrum, Lineær Algebra gjort rigtigt, tredje udgave, 2015.
  • forelæsning 24, egenværdi problemer, numerisk Lineær Algebra, 1997.

API

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

artikler

  • egenværdier og egenvektorer
  • Eigendesammensætning af en matrice
  • egenværdialgoritme
  • nedbrydning af matricen

Resume

i denne tutorial opdagede du, at der var en eigendekomposition, egenvektorer og egenværdier i lineær algebra.

specifikt lærte du:

  • hvad en egenendesammensætning er og rollen som egenvektorer og egenværdier.
  • Sådan beregnes en egensammensætning i Python med NumPy.
  • sådan bekræftes en vektor er en egenvektor, og hvordan man rekonstruerer en matrice fra egenvektorer og egenværdier.

har du spørgsmål?
stil dine spørgsmål i kommentarerne nedenfor, og jeg vil gøre mit bedste for at svare.

få et håndtag på lineær Algebra til maskinindlæring!

udvikle en arbejdsforståelse af lineær algebra

…ved at skrive kodelinjer i python

Opdag hvordan i min nye e-bog:
Lineær Algebra for Machine Learning

det giver selvstudie tutorials om emner som:
vektor normer, Matrice multiplikation, tensorer, Eigendecomposition, SVD, PCA og meget mere…

endelig forstå matematikken af Data

spring over akademikerne. Bare Resultater.

se hvad der er indeni

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.