Språk i innholdet
Tema 1

SVD, matriser og tensorer

Start med én idé: En matrise er en maskin. Du sender inn en vektor xx, og maskinen sender ut AxAx. SVD endrer ikke maskinen; den åpner den og viser tre enkle handlinger på innsiden:

x→  V⊤  finn hovedretningene→  Σ  strekk eller klem→  U  Ax.x\xrightarrow{\;V^\top\;}\text{finn hovedretningene} \xrightarrow{\;\Sigma\;}\text{strekk eller klem} \xrightarrow{\;U\;}Ax.

Det er hele historien i miniatyr. Resten av SVD-delen forklarer hvordan vi finner disse retningene, hvor sterke de er, og hva vi kan bruke dem til. Hvis ordene rang, verdirom, radrom, kjerne og norm er litt rustne, åpner du oppfriskningen under.

Oppfriskning fra lineær algebra: fem begreper som henger sammen

Vi bruker én matrise til å koble sammen alle begrepene:

A=(101011)∈R2×3.A= \begin{pmatrix} 1&0&1\\ 0&1&1 \end{pmatrix} \in\mathbb R^{2\times3}.

Formen 2×32\times3 betyr at AA tar inn en vektor med tre koordinater og gir ut en vektor med to koordinater:

A ⁣:R3⟶R2.A\colon\mathbb R^3\longrightarrow\mathbb R^2.

1. Rang — hvor mange uavhengige retninger har matrisen? Kolonnene er

c1=(10),c2=(01),c3=(11)=c1+c2.c_1=\begin{pmatrix}1\\0\end{pmatrix}, \qquad c_2=\begin{pmatrix}0\\1\end{pmatrix}, \qquad c_3=\begin{pmatrix}1\\1\end{pmatrix}=c_1+c_2.

Den tredje kolonnen er altså laget av de to første. Bare to kolonner gir nye retninger, så rank⁡(A)=2\operatorname{rank}(A)=2.

2. Verdirom eller kolonnerom — hvilke svar kan komme ut? For x=(x1,x2,x3)⊤x=(x_1,x_2,x_3)^\top er

Ax=x1c1+x2c2+x3c3.Ax=x_1c_1+x_2c_2+x_3c_3.

Alle utvektorer er derfor lineærkombinasjoner av kolonnene. Det er grunnen til at verdirommet og kolonnerommet er samme rom:

range⁡(A)=col⁡(A)=span⁡{c1,c2,c3}.\operatorname{range}(A)=\operatorname{col}(A) =\operatorname{span}\{c_1,c_2,c_3\}.

Her spenner c1c_1 og c2c_2 ut hele R2\mathbb R^2, så range⁡(A)=R2\operatorname{range}(A)=\mathbb R^2. Helt konkret, velg

x=(2−13).x=\begin{pmatrix}2\\-1\\3\end{pmatrix}.

Da får vi

Ax=(52),Ax=\begin{pmatrix}5\\2\end{pmatrix},

Dermed ligger vektoren

(52)\begin{pmatrix}5\\2\end{pmatrix}

i verdirommet. Verdirom betyr altså alle mulige svar AxAx, ikke tallene som tilfeldigvis står i matrisen.

3. Radrom — hvilke inputretninger kan matrisen registrere? Radene er vektorer i inputrommet R3\mathbb R^3:

row⁡(A)=span⁡{(101),(011)}.\operatorname{row}(A) =\operatorname{span}\left\{ \begin{pmatrix}1&0&1\end{pmatrix}, \begin{pmatrix}0&1&1\end{pmatrix} \right\}.

Radrommet og verdirommet ligger i forskjellige rom — henholdsvis R3\mathbb R^3 og R2\mathbb R^2 — men de har alltid samme dimensjon. Den dimensjonen er rangen, her 22.

4. Kjerne eller nullrom — hvilke input blir fullstendig visket ut? Vi løser Ax=0Ax=0:

x1+x3=0,x2+x3=0.x_1+x_3=0, \qquad x_2+x_3=0.

Setter vi x3=tx_3=t, får vi

x=t(−1−11),ker⁡(A)=span⁡{(−1−11)}.x=t\begin{pmatrix}-1\\-1\\1\end{pmatrix}, \qquad \ker(A)=\operatorname{span}\left\{ \begin{pmatrix}-1\\-1\\1\end{pmatrix} \right\}.

For eksempel, når

x=(−1−11),x=\begin{pmatrix}-1\\-1\\1\end{pmatrix},

får vi Ax=0Ax=0. Matrisen klarer ikke å skille denne retningen fra null.

5. Norm — hvor stor er en vektor eller matrise? For en vektor måler 2-normen vanlig euklidsk lengde:

∥(340)∥2=32+42+02=5.\left\|\begin{pmatrix}3\\4\\0\end{pmatrix}\right\|_2 =\sqrt{3^2+4^2+0^2}=5.

For en matrise måler Frobenius-normen størrelsen på alle elementene samlet, så ∥A∥F=12+12+12+12=2\|A\|_F=\sqrt{1^2+1^2+1^2+1^2}=2. Operatornormen måler i stedet den største strekkfaktoren,

∥A∥2=max⁡∥x∥2=1∥Ax∥2,\|A\|_2=\max_{\|x\|_2=1}\|Ax\|_2,

og senere ser vi at den er lik den største singulærverdien.

Koblingen du bør huske fra eksemplet er

rank⁡(A)=dim⁡range⁡(A)=dim⁡row⁡(A)=2,\operatorname{rank}(A) =\dim\operatorname{range}(A) =\dim\operatorname{row}(A)=2,

mens dim⁡ker⁡(A)=1\dim\ker(A)=1.

Rang–nullitet — regnskapet som alltid må gå opp. For enhver matrise A∈Rm×nA\in\mathbb R^{m\times n} gjelder

rank⁡(A)+dim⁡ker⁡(A)=n.\operatorname{rank}(A)+\dim\ker(A)=n.

Her er nn antall inputkoordinater, altså antall kolonner i AA. Hver inputretning havner i én av to bunker: enten kan matrisen registrere den, og da bidrar den til rangen, eller så viskes den ut, og da bidrar den til kjernen. I eksemplet vårt er regnskapet

2⏟registrerte retninger+1⏟nullretning=3⏟kolonner/inputkoordinater.\underbrace{2}_{\text{registrerte retninger}} +\underbrace{1}_{\text{nullretning}} =\underbrace{3}_{\text{kolonner/inputkoordinater}}.

Dette er rang–nullitet i praksis. Husk at høyresiden er antall kolonner, ikke antall rader.

Dette skal du kunne etter temaet
  • forklare hvorfor en matrise deles opp i enklere faktorer
  • lese dimensjonene i en full, redusert og kompakt SVD
  • regne ut en SVD for en liten matrise
  • tolke UU, Σ\Sigma og V⊤V^\top geometrisk
  • lese rang, verdirom, kjerne og normer fra singulærverdiene
  • bygge og vurdere en trunkert SVD
  • regne ut en pseudoinvers og tolke minste-kvadraters løsninger
  • lese orden, fibrer og snitt og bygge rang-11-tensorer med ytre produkt
  • bruke vektorisering, matriseringsrekkefølgen i kurset og kk-modusproduktet dimensjonssikkert
  • skille CP/ALS fra Tucker/HOSVD/HOOI og oppgi dimensjonene til alle faktorene

Del 1 · Matrisefaktorisering og egenverdidekomponering

Hvorfor faktoriserer vi en matrise?

Motivasjon

En matrisefaktorisering skriver én matrise som et produkt av enklere matriser.

For eksempel

A=BCeller mer genereltA=D1D2D3.A=BC \qquad\text{eller mer generelt}\qquad A=D_1D_2D_3.

Poenget er ikke å skrive om AA bare for moro skyld.

Vi velger faktorer som gjør AA billigere å lagre, enklere å bruke eller lettere å forstå.

Når A=BCA=BC virker på en vektor, virker faktoren lengst til høyre først:

x⟼Cx⟼B(Cx)=Ax.x\longmapsto Cx\longmapsto B(Cx)=Ax.
Oppfriskning: reglene for matrisemultiplikasjon

Hvis B∈Rm×kB\in\mathbb R^{m\times k} og C∈Rk×nC\in\mathbb R^{k\times n}, må de indre dimensjonene være like, og

BC∈Rm×n.BC\in\mathbb R^{m\times n}.

Oppføring (i,j)(i,j) er indreproduktet av rad ii i BB og kolonne jj i CC:

(BC)ij=∑ℓ=1kbiℓcℓj.(BC)_{ij}=\sum_{\ell=1}^{k}b_{i\ell}c_{\ell j}.

For eksempel

(120−1)(34)=(1⋅3+2⋅40⋅3−1⋅4)=(11−4).\begin{pmatrix}1&2\\0&-1\end{pmatrix} \begin{pmatrix}3\\4\end{pmatrix} =\begin{pmatrix}1\cdot3+2\cdot4\\0\cdot3-1\cdot4\end{pmatrix} =\begin{pmatrix}11\\-4\end{pmatrix}.

Med flere faktorer kontrollerer du hvert nabopar og husker at faktoren lengst til høyre virker først.

Se dette i praksis

Gjennomregnet minieksempel 1. La

A=(2003).A=\begin{pmatrix}2&0\\0&3\end{pmatrix}.

Å skrive A=IAA=IA er riktig, men avslører ingenting. En form med tre faktorer er

A=(1001)(2003)(1001).A= \begin{pmatrix}1&0\\0&1\end{pmatrix} \begin{pmatrix}2&0\\0&3\end{pmatrix} \begin{pmatrix}1&0\\0&1\end{pmatrix}.

Den midterste faktoren strekker første koordinat med 22 og andre koordinat med 33.

Identitetsmatrisene endrer ingenting.

Det nyttige er altså ikke bare at uttrykket er et produkt. Faktorene forteller hva operasjonen gjør.

Hurtigsjekk 1. La D=diag⁡(4,1)D=\operatorname{diag}(4,1). Skriv DD som tre faktorer med identitetsmatriser ytterst. Hva gjør den midterste faktoren med (x1,x2)⊤(x_1,x_2)^\top?

Løsning

Steg 1:

D=I2(4001)I2.D=I_2\begin{pmatrix}4&0\\0&1\end{pmatrix}I_2.

Steg 2: Identiteten til høyre lar inputen være uendret, den midterste matrisen sender (x1,x2)⊤(x_1,x_2)^\top til (4x1,x2)⊤(4x_1,x_2)^\top, og identiteten til venstre endrer igjen ingenting. Første koordinat strekkes altså med 44, mens den andre er uendret.

Lavrang-idé for lagring

Før du sovner, la meg forklare dette kjapt. Lav rang betyr at en stor matrise kan bygges opp fra noen få viktige retninger, så vi lagrer disse retningene i stedet for hver eneste oppføring.

Anta at A∈Rn×nA\in\mathbb R^{n\times n} er enorm. Hvis den kan representeres nøyaktig eller omtrent som

A≈BC,B∈Rn×k,C∈Rk×n,k≪n,A\approx BC, \qquad B\in\mathbb R^{n\times k}, \qquad C\in\mathbb R^{k\times n}, \qquad k\ll n,

er BB høy og CC bred.

Produktet BCBC har fortsatt størrelse n×nn\times n.

En full matrise lagrer n2n^2 tall, mens faktorene lagrer

nk+kn=2nknk+kn=2nk

tall.

Direkte bruk av AA krever omtrent n2n^2 operasjoner.

Faktorformen B(Cx)B(Cx) krever omtrent 2nk2nk.

Se dette i praksis

Gjennomregnet minieksempel 2. La n=1000n=1000 og k=5k=5. En full 1000×10001000\times1000-matrise lagrer

10002=1 000 0001000^2=1\,000\,000

tall. Faktorene B∈R1000×5B\in\mathbb R^{1000\times5} og C∈R5×1000C\in\mathbb R^{5\times1000} lagrer

1000⋅5+5⋅1000=10 0001000\cdot5+5\cdot1000=10\,000

tall. Faktorformen bruker derfor 1/1001/100 så mange tall—en komprimering med faktor 100100.

Hurtigsjekk 2. En 2400×24002400\times2400-matrise tilnærmes med BCBC med indre dimensjon k=12k=12. Finn dimensjonene til B,CB,C, sammenlign n2n^2 med 2nk2nk, og oppgi komprimeringsfaktoren.

Løsning

Steg 1: BB må være 2400×122400\times12, og CC må være 12×240012\times2400.

Steg 2: Den fulle matrisen lagrer

24002=5 760 0002400^2=5\,760\,000

tall, mens faktorene lagrer

2⋅2400⋅12=57 600.2\cdot2400\cdot12=57\,600.

Steg 3: Siden 5 760 000/57 600=1005\,760\,000/57\,600=100, bruker faktorformen 1/1001/100 så mange tall—en komprimering med faktor 100100.

Egenverdidekomponering som utgangspunkt

Påminnelse: egenverdier og egenvektorer

En egenverdi λ\lambda til en kvadratisk matrise AA og en tilhørende egenvektor v≠0v\ne0 oppfyller

Av=λv.Av=\lambda v.

Slik finner vi egenparene:

  1. Løs den karakteristiske ligningen det⁡(A−λI)=0\det(A-\lambda I)=0.
  2. For hver egenverdi λi\lambda_i, løs (A−λiI)vi=0(A-\lambda_iI)v_i=0.
  3. Normaliser egenvektorene når vi trenger en ortonormal basis.
Se dette i praksis

Gjennomregnet minieksempel 3. For

A=(2005)A=\begin{pmatrix}2&0\\0&5\end{pmatrix}

har vi

A(10)=2(10),A(01)=5(01).A\begin{pmatrix}1\\0\end{pmatrix} =2\begin{pmatrix}1\\0\end{pmatrix}, \qquad A\begin{pmatrix}0\\1\end{pmatrix} =5\begin{pmatrix}0\\1\end{pmatrix}.

Koordinataksene er altså egenvektorretninger med egenverdier 22 og 55.

Hurtigsjekk 3. Finn egenparene til D=diag⁡(4,−2)D=\operatorname{diag}(4,-2), og forklar den negative egenverdien geometrisk.

Løsning

Steg 1: De1=4e1De_1=4e_1, så (4,e1)(4,e_1) er ett egenpar.

Steg 2: De2=−2e2De_2=-2e_2, så (−2,e2)(-2,e_2) er det andre egenparet.

Steg 3: Tallet −2-2 betyr at e2e_2-retningen strekkes med 22 og snus.

Eksempel: diagonaliserbar matrise

Eksemplet fra forelesningsnotatene er

A=14(5−3−35).A=\frac14\begin{pmatrix}5&-3\\-3&5\end{pmatrix}.

Enhetsegenvektorene og egenverdiene er

v1=12(1−1),λ1=2,v2=12(11),λ2=12.v_1=\frac1{\sqrt2}\begin{pmatrix}1\\-1\end{pmatrix}, \quad \lambda_1=2, \qquad v_2=\frac1{\sqrt2}\begin{pmatrix}1\\1\end{pmatrix}, \quad \lambda_2=\frac12.

Dermed er

A=VΛV⊤,V=(v1 v2),Λ=diag⁡(2,12).A=V\Lambda V^\top, \qquad V=(v_1\ v_2), \qquad \Lambda=\operatorname{diag}\left(2,\frac12\right).

Rekkefølgen betyr noe: Hver diagonalverdi i Λ\Lambda må stå ved kolonnen i VV som tilhører samme egenpar.

Geometrisk betydning

Fordi dette eksemplet er symmetrisk, gir de ortonormale egenvektorene hovedaksene til bildet av enhetssirkelen. v1v_1-retningen strekkes med 22, mens v2v_2-retningen forkortes med 1/21/2.

Se dette i praksis

Gjennomregnet minieksempel 4. For

D=(3001)D=\begin{pmatrix}3&0\\0&1\end{pmatrix}

blir enhetsvektorene e1e_1 og e2e_2 sendt til 3e13e_1 og e2e_2. Enhetssirkelen blir derfor en ellipse med vannrett halvakse 33 og loddrett halvakse 11.

Hurtigsjekk 4. Beskriv bildet av enhetssirkelen under D=diag⁡(4,2)D=\operatorname{diag}(4,2). Hva er hovedretningene og halvaksenes lengder?

Løsning

Steg 1: De1=4e1De_1=4e_1 og De2=2e2De_2=2e_2.

Steg 2: Hovedretningene er dermed koordinataksene.

Steg 3: Bildet er en ellipse med halvakser 44 og 22.

Appendiks: egenverdiberegning og to snarveier i nullrommet

For forelesningsmatrisen er

det⁡(A−λI)=(54−λ)2−916=λ2−52λ+1.\det(A-\lambda I) =\left(\frac54-\lambda\right)^2-\frac9{16} =\lambda^2-\frac52\lambda+1.

Røttene er λ=1/2\lambda=1/2 og λ=2\lambda=2.

Hvorfor egenverdier ikke er nok

Begrensninger ved egenverdidekomponering

Det reelle geometriske egenverdibildet fungerer ryddig bare når AA har en nyttig reell egenbasis.

Tre problemer dukker opp:

  1. Rektangulære matriser har ingen vanlig egenverdidekomponering.
  2. Defekte matriser har for få egenvektorer.
  3. Reelle rotasjoner kan ha bare komplekse egenverdier.
Se dette i praksis

Gjennomregnet minieksempel 5. Matrisen

R=(0−110)R=\begin{pmatrix}0&-1\\1&0\end{pmatrix}

roterer alle vektorer 90∘90^\circ. Spesielt er Re1=e2Re_1=e_2, som ikke er parallell med e1e_1. Det karakteristiske polynomet er λ2+1\lambda^2+1, så det finnes ingen reelle egenverdier eller reelle egenvektorretninger. SVD gir likevel reelle, ikke-negative singulærverdier.

Hurtigsjekk 5. La S=(01−10)S=\begin{pmatrix}0&1\\-1&0\end{pmatrix}. Vis at den roterer −90∘-90^\circ og ikke har reelle egenverdier.

Løsning

Steg 1:

Se1=(0−1)=−e2,Se_1=\begin{pmatrix}0\\-1\end{pmatrix}=-e_2,

så den positive vannrette retningen roteres 90∘90^\circ med klokken.

Steg 2:

det⁡(S−λI)=det⁡(−λ1−1−λ)=λ2+1.\det(S-\lambda I) =\det\begin{pmatrix}-\lambda&1\\-1&-\lambda\end{pmatrix} =\lambda^2+1.

Steg 3: Røttene er ±i\pm i, så det finnes ingen reelle egenverdier.

Eksempel: ikke-diagonaliserbar matrise

For

A=(1c01),c≠0,A=\begin{pmatrix}1&c\\0&1\end{pmatrix}, \qquad c\ne0,

er den eneste egenverdien 11, med algebraisk multiplisitet 22. Men

(A−I)v=0⟹cv2=0,(A-I)v=0 \quad\Longrightarrow\quad cv_2=0,

så hver egenvektor er et multiplum av

(10).\begin{pmatrix}1\\0\end{pmatrix}.

Den geometriske multiplisiteten er bare 11.

Derfor kan AA ikke diagonaliseres. Det er nettopp for slike matriser at SVD er mer robust.

Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …

Del 2 · Singulærverdidekomponering

Ortogonale matriser

En kvadratisk matrise Q=(q1 ⋯ qn)Q=(q_1\ \cdots\ q_n) er ortogonal når

Q⊤Q=I.Q^\top Q=I.

Dette er ekvivalent med at kolonnene er ortonormale:

qi⊤qj={1,i=j,0,i≠j.q_i^\top q_j=\begin{cases}1,&i=j,\\0,&i\ne j.\end{cases}

Ekvivalensen kan leses oppføring for oppføring. Hvis en rektangulær SVD-faktor skrives Ur=(u1 ⋯ ur)U_r=(u_1\ \cdots\ u_r), er

(Ur⊤Ur)ij=ui⊤uj=δij.(U_r^\top U_r)_{ij}=u_i^\top u_j=\delta_{ij}.

Likheten Ur⊤Ur=IrU_r^\top U_r=I_r sier at kolonnene har norm 11 og står vinkelrett på hverandre.

Ikke snu utsagnet blindt.

UrUr⊤U_rU_r^\top er bare identitetsmatrisen når UrU_r er kvadratisk og ortogonal.

Kontroller ortonormale kolonner på forelesningsmatrisen på 3 ganger 2

For matrisen som brukes igjen i transponeringseksemplet,

A2=(21121−1),A_2=\begin{pmatrix}2&1\\1&2\\1&-1\end{pmatrix},

er de reduserte venstre singulærvektorene

u1=12(110),u2=16(1−12).u_1=\frac1{\sqrt2}\begin{pmatrix}1\\1\\0\end{pmatrix}, \qquad u_2=\frac1{\sqrt6}\begin{pmatrix}1\\-1\\2\end{pmatrix}.

Lengdekvadratene er

∥u1∥22=1+12=1,∥u2∥22=1+1+46=1,\|u_1\|_2^2=\frac{1+1}{2}=1, \qquad \|u_2\|_2^2=\frac{1+1+4}{6}=1,

og indreproduktet er

u1⊤u2=112−112+0=0.u_1^\top u_2 =\frac1{\sqrt{12}}-\frac1{\sqrt{12}}+0 =0.

Dermed har Ur=(u1 u2)U_r=(u_1\ u_2) egenskapen Ur⊤Ur=I2U_r^\top U_r=I_2. Den er fortsatt en 3×23\times2-matrise, ikke en ortogonal matrise i kvadratisk forstand, og

UrUr⊤=Prange⁡(A2)≠I3.U_rU_r^\top=P_{\operatorname{range}(A_2)}\ne I_3.

Den reduserte faktoren er nok for eksakt rekonstruksjon og pseudoinversen. Fullfør den med en tredje ortonormal vektor bare når du trenger en basis for hele R3\mathbb R^3 eller for ker⁡(A2⊤)\ker(A_2^\top).

Se dette i praksis

Gjennomregnet minieksempel 6. La

Q=(0−110).Q=\begin{pmatrix}0&-1\\1&0\end{pmatrix}.

Kolonnene er

q1=(01),q2=(−10).q_1=\begin{pmatrix}0\\1\end{pmatrix}, \qquad q_2=\begin{pmatrix}-1\\0\end{pmatrix}.

Begge har lengde 11, og q1⊤q2=0q_1^\top q_2=0.

Dermed er Q⊤Q=IQ^\top Q=I.

For

x=(34)x=\begin{pmatrix}3\\4\end{pmatrix}

får vi

Qx=(−43).Qx=\begin{pmatrix}-4\\3\end{pmatrix}.

Både xx og QxQx har lengde 55. Rotasjonen bevarer altså lengde.

Hurtigsjekk 6. Kontroller at Q=15(3−443)Q=\frac15\begin{pmatrix}3&-4\\4&3\end{pmatrix} er ortogonal, og vis direkte at den bevarer normen til

x=(50).x=\begin{pmatrix}5\\0\end{pmatrix}.
Løsning

Steg 1: Hver kolonne har lengdekvadrat (32+42)/25=1(3^2+4^2)/25=1, og indreproduktet mellom dem er (3(−4)+4(3))/25=0(3(-4)+4(3))/25=0.

Steg 2: Derfor er Q⊤Q=IQ^\top Q=I.

Steg 3:

Qx=(34),∥Qx∥2=5=∥x∥2.Qx=\begin{pmatrix}3\\4\end{pmatrix}, \qquad \|Qx\|_2=5=\|x\|_2.

SVD-setningen

Les produktet fra høyre mot venstre:

  1. V⊤V^\top uttrykker inputen i ortonormale inputretninger.
  2. Σ\Sigma strekker eller kollapser koordinatene.
  3. UU plasserer resultatet i ortonormale outputretninger.
Se dette i praksis

Gjennomregnet minieksempel 7. Den positive diagonalmatrisen

A=(3001)A=\begin{pmatrix}3&0\\0&1\end{pmatrix}

viser allerede SVD-en sin:

U=I,Σ=diag⁡(3,1),V=I.U=I, \qquad \Sigma=\operatorname{diag}(3,1), \qquad V=I.

Dermed er σ1=3\sigma_1=3 og σ2=1\sigma_2=1.

Hurtigsjekk 7. Oppgi en SVD av D=diag⁡(4,2)D=\operatorname{diag}(4,2) og finn singulærverdiene.

Løsning

Fasit:

D=I(4002)I⊤.D=I\begin{pmatrix}4&0\\0&2\end{pmatrix}I^\top.

Dermed er σ1=4\sigma_1=4 og σ2=2\sigma_2=2.

Forklaring: Diagonalverdiene er allerede ikke-negative og sortert avtakende, så vi trenger ingen retningsendring.

Formen til Σ\Sigma

Σ\Sigma har alltid samme form som AA.

Hvis m≤nm\le n, har den høyst mm ikke-null diagonalverdier og ekstra nullkolonner.

Hvis m≥nm\ge n, har den høyst nn ikke-null diagonalverdier og ekstra nullrader.

Se dette i praksis

Gjennomregnet minieksempel 8. Hvis A∈R3×2A\in\mathbb R^{3\times2}, er

Σ=(σ100σ200).\Sigma=\begin{pmatrix}\sigma_1&0\\0&\sigma_2\\0&0\end{pmatrix}.

Hvis A∈R2×3A\in\mathbb R^{2\times3} i stedet, er

Σ=(σ1000σ20).\Sigma=\begin{pmatrix}\sigma_1&0&0\\0&\sigma_2&0\end{pmatrix}.

Hurtigsjekk 8. Skriv den generelle formen til Σ\Sigma for A∈R4×2A\in\mathbb R^{4\times2} og for B∈R2×5B\in\mathbb R^{2\times5}.

Løsning

Fasit: For AA er

ΣA=(σ100σ20000).\Sigma_A=\begin{pmatrix}\sigma_1&0\\0&\sigma_2\\0&0\\0&0\end{pmatrix}.

For BB er

ΣB=(τ100000τ2000).\Sigma_B=\begin{pmatrix}\tau_1&0&0&0&0\\0&\tau_2&0&0&0\end{pmatrix}.

Begge har nøyaktig samme dimensjoner som den opprinnelige matrisen.

Forklaring: I full SVD har Σ\Sigma alltid samme rektangulære form som den opprinnelige matrisen. Bare diagonalposisjonene kan være ulike null.

Bevisidé: hvorfor finnes SVD?

For A≠0A\ne0 velger vi en enhetsvektor v1v_1 der ∥Av∥2\|Av\|_2 er størst, og setter

σ1=∥Av1∥2,u1=Av1σ1.\sigma_1=\|Av_1\|_2, \qquad u_1=\frac{Av_1}{\sigma_1}.

Fullfør v1v_1 og u1u_1 til ortonormale basiser.

I disse basisene skiller maksimaliteten det første strekket fra en mindre restblokk.

Gjenta på restblokken. Slik bygges alle singulærretningene.

Dette er et eksistensargument, ikke eksamensmetoden. I beregninger bruker vi A⊤AA^\top A eller AA⊤AA^\top.

Hvis A=0A=0, velger vi Σ=0\Sigma=0 og vilkårlige ortogonale UU og VV; da er A=UΣV⊤A=U\Sigma V^\top med én gang.

Se dette i praksis

Gjennomregnet minieksempel 9. For A=diag⁡(3,1)A=\operatorname{diag}(3,1) oppnås maksimum av ∥Ax∥2\|Ax\|_2 over enhetsvektorene ved v1=e1v_1=e_1, fordi Av1=3e1Av_1=3e_1. Dermed er σ1=3\sigma_1=3 og u1=e1u_1=e_1. I den gjenværende vinkelrette retningen e2e_2 er strekket 11, så σ2=1\sigma_2=1.

Hurtigsjekk 9. Bruk den samme største-strekk-ideen på D=diag⁡(5,2)D=\operatorname{diag}(5,2). Finn v1,u1,σ1v_1,u_1,\sigma_1 og den gjenværende singulærtrippelen.

Løsning

Fasit: v1=u1=e1v_1=u_1=e_1, σ1=5\sigma_1=5, og den gjenværende trippelen er v2=u2=e2v_2=u_2=e_2, σ2=2\sigma_2=2.

Forklaring: De1=5e1De_1=5e_1 er det største strekket. I den vinkelrette retningen er De2=2e2De_2=2e_2.

Full, redusert/økonomi og kompakt SVD

Jeg vet at dette ser helt jævlig ut, men la meg bryte det ned. Dette er ikke tre ulike dekomponeringer; det er de samme singulærretningene med ulik mengde bokføring av nullretninger.

La A∈Rm×nA\in\mathbb R^{m\times n} og q=min⁡(m,n)q=\min(m,n). Tre nært beslektede konvensjoner er vanlige:

  • Full SVD:

    A=UΣV⊤,U:m×m,Σ:m×n,V:n×n.A=U\Sigma V^\top, \qquad U:m\times m, \quad \Sigma:m\times n, \quad V:n\times n.

    Begge ytterfaktorene er kvadratiske ortogonale matriser:

    U⊤U=UU⊤=Im,V⊤V=VV⊤=In.U^\top U=UU^\top=I_m, \qquad V^\top V=VV^\top=I_n.
  • Redusert, tynn eller økonomi-SVD:

    A=UqΣqVq⊤,Uq:m×q,Σq:q×q,Vq:n×q.A=U_q\Sigma_qV_q^\top, \qquad U_q:m\times q, \quad \Sigma_q:q\times q, \quad V_q:n\times q.

    Denne bygger fortsatt opp AA nøyaktig, også når noen av de qq singulærverdiene er null.

    Kolonnene er ortonormale:

    Uq⊤Uq=Vq⊤Vq=Iq.U_q^\top U_q=V_q^\top V_q=I_q.

    En rektangulær UqU_q eller VqV_q er ikke en ortogonal matrise i den kvadratiske, fulle betydningen. Produktene i motsatt rekkefølge trenger ikke å være identitetsmatriser.

    Det er nyttig å skrive økonomidimensjonene separat for høye og brede matriser:

    Form på AAØkonomifaktoriseringFaktordimensjoner
    Høy, m≥nm\ge n og q=nq=nA=UqΣqV⊤A=U_q\Sigma_qV^\topUq:m×nU_q:m\times n, Σq:n×n\Sigma_q:n\times n, V:n×nV:n\times n
    Bred, n≥mn\ge m og q=mq=mA=UΣqVq⊤A=U\Sigma_qV_q^\topU:m×mU:m\times m, Σq:m×m\Sigma_q:m\times m, Vq:n×mV_q:n\times m

    I det høye tilfellet er høyrefaktoren allerede kvadratisk; i det brede tilfellet er venstrefaktoren allerede kvadratisk. Dette er den dimensjonssikre økonomikonvensjonen.

  • Kompakt eller rang-rr-SVD: Hvis r=rank⁡(A)r=\operatorname{rank}(A) er antallet positive singulærverdier, med r=0r=0 for nullmatrisen, forkaster vi alle null-singulærretningene:

    A=UrΣrVr⊤,Ur:m×r,Σr:r×r,Vr:n×r.A=U_r\Sigma_rV_r^\top, \qquad U_r:m\times r, \quad \Sigma_r:r\times r, \quad V_r:n\times r.

    Her er

    UrUr⊤=Prange⁡(A),VrVr⊤=Pker⁡(A)⊥.U_rU_r^\top=P_{\operatorname{range}(A)}, \qquad V_rV_r^\top=P_{\ker(A)^\perp}.

    Disse projektoridentitetene gjelder de kompakte faktorene med positive singulærverdier.

    Ikke bruk dem om en økonomifaktor som er fylt ut med vilkårlige null-singulærretninger. Når AA har full rang, er r=qr=q, og den kompakte formen er lik økonomiformen.

Økonomiformen foretrekkes vanligvis i beregninger og lagring.

Den bygger opp AA nøyaktig uten ubrukte basisvektorer.

Den kompakte formen er enda mindre når AA er rangdefekt. Den beholder akkurat de positive singulærretningene vi trenger for rekonstruksjon, pseudoinversen, verdirommet og ker⁡(A)⊥\ker(A)^\perp.

Bruk full form når du trenger komplette ortonormale basiser for Rm\mathbb R^m og Rn\mathbb R^n. Det inkluderer alle retninger i ker⁡(A⊤)\ker(A^\top) eller ker⁡(A)\ker(A).

Slik går du mellom formene:

  1. Finn de positive singulærtriplene. De gir kompakt SVD.
  2. Legg til ortonormale null-singulærretninger til hver tynn faktor har qq kolonner. Da får du økonomi-SVD.
  3. Fullfør begge sider til fulle ortonormale basiser, og fyll Σ\Sigma med nullrader eller nullkolonner. Da får du full SVD.

For en høy matrise legger full form hovedsakelig kolonner til UqU_q og nullrader til Σ\Sigma.

For en bred matrise legger full form hovedsakelig kolonner til VqV_q og nullkolonner til Σ\Sigma.

Full kontra redusert SVD på den håndregnede matrisen

Den korrigerte forelesningsmatrisen som brukes i hovedeksemplet nedenfor, er

A=(132231)∈R3×2.A=\begin{pmatrix}1&3\\2&2\\3&1\end{pmatrix}\in\mathbb R^{3\times2}.

Her er q=r=2q=r=2, så økonomi-SVD og kompakt SVD er samme form:

Ur=(1/3−1/21/301/31/2),Σr=(24002),Vr⊤=12(111−1).U_r= \begin{pmatrix} 1/\sqrt3&-1/\sqrt2\\ 1/\sqrt3&0\\ 1/\sqrt3&1/\sqrt2 \end{pmatrix}, \quad \Sigma_r=\begin{pmatrix}\sqrt{24}&0\\0&2\end{pmatrix}, \quad V_r^\top=\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix}.

De to kolonnene i UrU_r er ortonormale, så Ur⊤Ur=I2U_r^\top U_r=I_2. Men UrU_r er 3×23\times2, ikke en kvadratisk ortogonal matrise, og

UrUr⊤=(5/61/3−1/61/31/31/3−1/61/35/6)=Prange⁡(A)≠I3.U_rU_r^\top= \begin{pmatrix} 5/6&1/3&-1/6\\ 1/3&1/3&1/3\\ -1/6&1/3&5/6 \end{pmatrix} =P_{\operatorname{range}(A)}\ne I_3.

For å få full SVD fullfører vi kolonnene i UrU_r med en enhetsvektor som står vinkelrett på begge. Velg

u3=16(1−21).u_3=\frac1{\sqrt6}\begin{pmatrix}1\\-2\\1\end{pmatrix}.

Den ligger i venstre nullrom fordi

A⊤u3=16(123321)(1−21)=16(1−4+33−4+1)=0.A^\top u_3 =\frac1{\sqrt6} \begin{pmatrix}1&2&3\\3&2&1\end{pmatrix} \begin{pmatrix}1\\-2\\1\end{pmatrix} =\frac1{\sqrt6}\begin{pmatrix}1-4+3\\3-4+1\end{pmatrix} =0.

Dermed er

U=(u1 u2 u3)=(1/3−1/21/61/30−2/61/31/21/6),U⊤U=UU⊤=I3,U=(u_1\ u_2\ u_3) =\begin{pmatrix} 1/\sqrt3&-1/\sqrt2&1/\sqrt6\\ 1/\sqrt3&0&-2/\sqrt6\\ 1/\sqrt3&1/\sqrt2&1/\sqrt6 \end{pmatrix}, \qquad U^\top U=UU^\top=I_3,

og den fulle rektangulære diagonalfaktoren er

Σ=(2400200).\Sigma= \begin{pmatrix} \sqrt{24}&0\\ 0&2\\ 0&0 \end{pmatrix}.

V=VrV=V_r er allerede en full 2×22\times2 ortogonal matrise.

Den ekstra basisretningen bidrar ikke fordi den kobles til en nullrad:

UΣV⊤=UrΣrVr⊤+u3(00)V⊤⏟0=A.U\Sigma V^\top =U_r\Sigma_rV_r^\top +\underbrace{u_3\begin{pmatrix}0&0\end{pmatrix}V^\top}_{0} =A.

Den reduserte formen bygger altså opp AA nøyaktig.

Den er nok for singulærverdiene, VV, Σr\Sigma_r og

A†=VrΣr−1Ur⊤.A^\dagger=V_r\Sigma_r^{-1}U_r^\top.

Den fulle formen legger bare til u3u_3 når vi ønsker en komplett basis for R3\mathbb R^3, en eksplisitt basis for ker⁡(A⊤)\ker(A^\top) eller den komplementære projeksjonen

u3u3⊤=I3−UrUr⊤.u_3u_3^\top=I_3-U_rU_r^\top.
Se dette i praksis

Gjennomregnet minieksempel 10. Hvis A∈R100×3A\in\mathbb R^{100\times3} har full kolonnerang, bruker full SVD en 100×100100\times100-matrise UU, men bare tre kolonner kan bidra. Den reduserte formen bruker

Ur:100×3,Σr:3×3,Vr⊤:3×3.U_r:100\times3, \qquad \Sigma_r:3\times3, \qquad V_r^\top:3\times3.

Hurtigsjekk 10. Oppgi dimensjonene i redusert SVD for en fullrang 8×38\times3-matrise og en fullrang 3×83\times8-matrise.

Løsning

Fasit: For 8×38\times3 er

Ur:8×3,Σr:3×3,Vr⊤:3×3.U_r:8\times3, \quad \Sigma_r:3\times3, \quad V_r^\top:3\times3.

For 3×83\times8 er

Ur:3×3,Σr:3×3,Vr⊤:3×8.U_r:3\times3, \quad \Sigma_r:3\times3, \quad V_r^\top:3\times8.

Forklaring: Redusert/økonomi-SVD bruker q=min⁡(m,n)=3q=\min(m,n)=3 singulærretninger i begge tilfeller. Den rektangulære faktoren står på den største siden.

Transponering og symmetriske matriser

Transponeringsegenskapen

Før vi transponerer en hel SVD, tar vi den mekaniske regelen én gang:

Oppfriskning: transponer en 2 × 2-matrise

Å transponere betyr at kolonnene blir rader. For en generell 2×22\times2-matrise er regelen

(abcd) ⁣⊤=(acbd).\begin{pmatrix} a&b\\ c&d \end{pmatrix}^{\!\top} = \begin{pmatrix} a&c\\ b&d \end{pmatrix}.

Diagonaloppføringene aa og dd blir stående. De to oppføringene utenfor diagonalen, bb og cc, bytter plass. For eksempel:

A=(14−23)⟹A⊤=(1−243).A= \begin{pmatrix} 1&4\\ -2&3 \end{pmatrix} \quad\Longrightarrow\quad A^\top= \begin{pmatrix} 1&-2\\ 4&3 \end{pmatrix}.

En rask kontroll er at en ny transponering skal gi originalen tilbake: (A⊤)⊤=A(A^\top)^\top=A.

Transponering av A=UΣV⊤A=U\Sigma V^\top gir

A⊤=VΣ⊤U⊤.A^\top=V\Sigma^\top U^\top.

De venstre og høyre singulærretningene bytter roller.

Strekkstørrelsene endres ikke.

Derfor har AA og A⊤A^\top de samme singulærverdiene, og

∥A∥2=∥A⊤∥2.\|A\|_2=\|A^\top\|_2.

På én linje: Hvis full SVD er A=UΣV⊤A=U\Sigma V^\top, får vi full SVD av den transponerte matrisen ved å bytte venstre og høyre rolle og transponere den rektangulære midtfaktoren:

U~=V,Σ~=Σ⊤,V~=U.\widetilde U=V, \qquad \widetilde\Sigma=\Sigma^\top, \qquad \widetilde V=U.

For en redusert SVD gir samme snarvei

A⊤=VrΣrUr⊤,A^\top=V_r\Sigma_rU_r^\top,

fordi Σr\Sigma_r er diagonal. Spesielt er V~r=Ur\widetilde V_r=U_r.

Hele transponeringssnarveien på en konkret $3\times2$-matrise

La

A2=(21121−1)∈R3×2.A_2=\begin{pmatrix}2&1\\1&2\\1&-1\end{pmatrix}\in\mathbb R^{3\times2}.

Den minste Gram-matrisen er

A2⊤A2=(6336).A_2^\top A_2=\begin{pmatrix}6&3\\3&6\end{pmatrix}.

Egenverdiene er 99 og 33, så singulærverdiene er 33 og 3\sqrt3. De tilhørende normaliserte egenvektorene gir

V=12(111−1).V=\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix}.

Formelen ui=A2vi/σiu_i=A_2v_i/\sigma_i gir

u1=12(110),u2=16(1−12),Ur=(u1 u2)∈R3×2.u_1=\frac1{\sqrt2}\begin{pmatrix}1\\1\\0\end{pmatrix}, \qquad u_2=\frac1{\sqrt6}\begin{pmatrix}1\\-1\\2\end{pmatrix}, \qquad U_r=(u_1\ u_2)\in\mathbb R^{3\times2}.

En siste enhetsvektor,

u3=13(−111),u_3=\frac1{\sqrt3}\begin{pmatrix}-1\\1\\1\end{pmatrix},

oppfyller A2⊤u3=0A_2^\top u_3=0. En full venstrefaktor og den fulle rektangulære diagonalfaktoren er derfor

U=(u1 u2 u3)=(1/21/6−1/31/2−1/61/302/61/3),Σ=(300300).U=(u_1\ u_2\ u_3) =\begin{pmatrix} 1/\sqrt2&1/\sqrt6&-1/\sqrt3\\ 1/\sqrt2&-1/\sqrt6&1/\sqrt3\\ 0&2/\sqrt6&1/\sqrt3 \end{pmatrix}, \qquad \Sigma=\begin{pmatrix}3&0\\0&\sqrt3\\0&0\end{pmatrix}.

Faktordimensjonene for A2A_2 er

full: (3×3)(3×2)(2×2),redusert: (3×2)(2×2)(2×2).\text{full: }(3\times3)(3\times2)(2\times2), \qquad \text{redusert: }(3\times2)(2\times2)(2\times2).

Definer nå A3=A2⊤∈R2×3A_3=A_2^\top\in\mathbb R^{2\times3}. Uten noen ny utregning får vi

A3=A2⊤=VΣ⊤U⊤=U~Σ~V~⊤,A_3=A_2^\top=V\Sigma^\top U^\top =\widetilde U\widetilde\Sigma\widetilde V^\top,

der de viste fulle faktorene er

U~=V=12(111−1),Σ~=Σ⊤=(300030),V~=U.\widetilde U=V =\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix}, \qquad \widetilde\Sigma=\Sigma^\top =\begin{pmatrix}3&0&0\\0&\sqrt3&0\end{pmatrix}, \qquad \widetilde V=U.

De fulle dimensjonene for A3A_3 er altså (2×2)(2×3)(3×3)(2\times2)(2\times3)(3\times3). I redusert form er

A3=VΣrUr⊤,U~r=V:2×2,Σ~r=Σr:2×2,V~r=Ur:3×2.A_3=V\Sigma_rU_r^\top, \qquad \widetilde U_r=V:2\times2, \quad \widetilde\Sigma_r=\Sigma_r:2\times2, \quad \widetilde V_r=U_r:3\times2.

Full U,V,U~,V~U,V,\widetilde U,\widetilde V er kvadratiske ortogonale matriser.

Den rektangulære Ur=V~rU_r=\widetilde V_r har i stedet ortonormale kolonner:

Ur⊤Ur=I2.U_r^\top U_r=I_2.

Den er ikke en kvadratisk ortogonal matrise.

Transponering bytter bare hvilke singulærvektorer som beskriver input- og outputrommet.

Til slutt har

A2A2⊤=(54145−11−12)A_2A_2^\top= \begin{pmatrix}5&4&1\\4&5&-1\\1&-1&2\end{pmatrix}

egenverdiene 9,3,09,3,0, mens A2⊤A2A_2^\top A_2 har egenverdiene 9,39,3.

Egenverdiene som ikke er null, er de samme.

Den ekstra nullen hører til u3∈ker⁡(A2⊤)u_3\in\ker(A_2^\top). Etter transponering er dette den ekstra høyre nullromsretningen til A3A_3.

Nettopp derfor har den fulle 3×33\times3-faktoren én kolonne mer enn den reduserte faktoren.

Se dette i praksis

Gjennomregnet minieksempel 11. For A=diag⁡(3,1)A=\operatorname{diag}(3,1) er A⊤=AA^\top=A, så begge har singulærverdier 3,13,1. For den ikke-kvadratiske radmatrisen B=(1 2)B=(1\ 2) er

B⊤=(12),∥B∥2=∥B⊤∥2=12+22=5.B^\top=\begin{pmatrix}1\\2\end{pmatrix}, \qquad \|B\|_2=\|B^\top\|_2=\sqrt{1^2+2^2}=\sqrt5.

Hurtigsjekk 11. Finn den eneste positive singulærverdien til C=(2 −2)C=(2\ -2) og til C⊤C^\top.

Løsning

Fasit:

CC⊤=22+(−2)2=8.CC^\top=2^2+(-2)^2=8.

Den positive singulærverdien er derfor 8=22\sqrt8=2\sqrt2. Transponering endrer den ikke.

Forklaring: En matrise med én rad har én positiv singulærverdi lik den euklidske lengden til raden, og CC og C⊤C^\top deler denne verdien.

Sammenhengen med A⊤AA^\top A og AA⊤AA^\top

Her hoper symbolene seg opp, men grepet er enkelt: Sett inn SVD-en, forkort en ortogonal faktor og les av diagonalverdiene i andre.

Start dimensjonssikkert fra den fulle SVD-en A=UΣV⊤A=U\Sigma V^\top, der U:m×mU:m\times m, Σ:m×n\Sigma:m\times n og V:n×nV:n\times n. Da er

A⊤A=(UΣV⊤)⊤(UΣV⊤)=VΣ⊤U⊤U⏟ImΣV⊤=V(Σ⊤Σ)V⊤,A^\top A =(U\Sigma V^\top)^\top(U\Sigma V^\top) =V\Sigma^\top\underbrace{U^\top U}_{I_m}\Sigma V^\top =V(\Sigma^\top\Sigma)V^\top,

og tilsvarende

AA⊤=(UΣV⊤)(UΣV⊤)⊤=UΣV⊤V⏟InΣ⊤U⊤=U(ΣΣ⊤)U⊤.AA^\top =(U\Sigma V^\top)(U\Sigma V^\top)^\top =U\Sigma\underbrace{V^\top V}_{I_n}\Sigma^\top U^\top =U(\Sigma\Sigma^\top)U^\top.

Diagonalmatrisene Σ⊤Σ\Sigma^\top\Sigma og ΣΣ⊤\Sigma\Sigma^\top inneholder de samme positive tallene σi2\sigma_i^2.

De skiller seg bare i antallet nuller.

I kompakt form er den ikke-null diagonale blokken Σr2\Sigma_r^2.

Fordi V⊤vi=eiV^\top v_i=e_i og U⊤ui=eiU^\top u_i=e_i, gir multiplikasjon av de to dekomponeringene med én faktorkolonne

A⊤Avi=σi2vi,AA⊤ui=σi2ui.A^\top Av_i=\sigma_i^2v_i, \qquad AA^\top u_i=\sigma_i^2u_i.

Kolonnene i VV er altså egenvektorer til A⊤AA^\top A.

Kolonnene i UU er egenvektorer til AA⊤AA^\top.

De positive singulærverdiene er kvadratrøttene av de positive egenverdiene. For σi>0\sigma_i>0 er

ui=Aviσi,vi=A⊤uiσi.u_i=\frac{Av_i}{\sigma_i}, \qquad v_i=\frac{A^\top u_i}{\sigma_i}.

Begge Gram-matrisene er positivt semidefinite. For hver kompatibel vektor xx er nemlig

x⊤A⊤Ax=(Ax)⊤(Ax)=∥Ax∥22≥0.x^\top A^\top Ax=(Ax)^\top(Ax)=\|Ax\|_2^2\ge0.

Derfor er egenverdiene reelle og ikke-negative, og hver singulærverdi σi=λi\sigma_i=\sqrt{\lambda_i} er reell og ikke-negativ.

Sammenlign begge Gram-matrisene på forelesningsmatrisen på 3 ganger 2

For

A2=(21121−1)A_2=\begin{pmatrix}2&1\\1&2\\1&-1\end{pmatrix}

er den minste Gram-matrisen

A2⊤A2=(6336),A_2^\top A_2=\begin{pmatrix}6&3\\3&6\end{pmatrix},

med egenverdier 99 og 33. Den større Gram-matrisen er

A2A2⊤=(54145−11−12),A_2A_2^\top =\begin{pmatrix} 5&4&1\\ 4&5&-1\\ 1&-1&2 \end{pmatrix},

med egenverdier 9,3,09,3,0. Dermed er

spec⁡(A2⊤A2)={9,3},spec⁡(A2A2⊤)={9,3,0}.\operatorname{spec}(A_2^\top A_2)=\{9,3\}, \qquad \operatorname{spec}(A_2A_2^\top)=\{9,3,0\}.

Den ekstra nullverdien svarer til den manglende outputretningen u3∈ker⁡(A2⊤)u_3\in\ker(A_2^\top).

Begge matrisene gir singulærverdiene 33 og 3\sqrt3.

Velg den minste Gram-matrisen for å spare regning. Velg A⊤AA^\top A når du vil finne viv_i direkte, og AA⊤AA^\top når du vil finne uiu_i direkte.

Eksamenfelle: når begge Gram-matrisene er 2 × 2

For en 2×22\times2-matrise er både A⊤AA^\top A og AA⊤AA^\top av størrelse 2×22\times2. Det finnes derfor ingen størrelsesgevinst. Valget bestemmer bare hvilke singulærvektorer du får direkte:

A⊤A=VΣ2V⊤⟹egenvektorene er vi,A^\top A=V\Sigma^2V^\top \quad\Longrightarrow\quad \text{egenvektorene er }v_i, AA⊤=UΣ2U⊤⟹egenvektorene er ui.AA^\top=U\Sigma^2U^\top \quad\Longrightarrow\quad \text{egenvektorene er }u_i.

Singulærverdiene blir de samme. Velg én av Gram-matrisene, og koble deretter sammen venstre og høyre side med

ui=Aviσiellervi=A⊤uiσi,σi>0.u_i=\frac{Av_i}{\sigma_i} \qquad\text{eller}\qquad v_i=\frac{A^\top u_i}{\sigma_i}, \qquad \sigma_i>0.

Fellen er å diagonalisere begge Gram-matrisene hver for seg. Egenvektorer kan skifte fortegn. Ved gjentatte egenverdier kan du til og med velge ulike ortonormale basiser i samme egenrom. Da kan hver liste være riktig alene uten at uiu_i og viv_i er paret riktig, og rekonstruksjonen kan bli feil.

Ta

A=(200−3).A=\begin{pmatrix}2&0\\0&-3\end{pmatrix}.

Her er

A⊤A=AA⊤=(4009).A^\top A=AA^\top=\begin{pmatrix}4&0\\0&9\end{pmatrix}.

Med avtakende rekkefølge kan vi velge

V=(e2 e1)=(0110),Σ=diag⁡(3,2).V=(e_2\ e_1) =\begin{pmatrix}0&1\\1&0\end{pmatrix}, \qquad \Sigma=\operatorname{diag}(3,2).

Hvis vi bare kopierer og setter U=VU=V, får vi

UΣV⊤=(2003)≠A;U\Sigma V^\top =\begin{pmatrix}2&0\\0&3\end{pmatrix}\ne A;

minusfortegnet har forsvunnet. Formelen reparerer paret:

u1=Ae23=−e2,u2=Ae12=e1.u_1=\frac{Ae_2}{3}=-e_2, \qquad u_2=\frac{Ae_1}{2}=e_1.

Dermed er

U=(−e2 e1)=(01−10),UΣV⊤=A.U=(-e_2\ e_1) =\begin{pmatrix}0&1\\-1&0\end{pmatrix}, \qquad U\Sigma V^\top=A.

Praktisk eksamensregel. Bruk A⊤AA^\top A når oppgaven eller notatene ber om VV, og lag så hvert uiu_i med Avi/σiAv_i/\sigma_i. Ikke finn begge sider uavhengig.

Hvis σi=0\sigma_i=0, kan du ikke dele. I en full SVD fullfører du da UU med en enhetsvektor som er ortogonal på de venstre singulærvektorene du allerede har; den ligger i ker⁡(A⊤)\ker(A^\top). Det er samme idé som den ekstra u3u_3-retningen i den fulle SVD-en av en høy matrise.

Se dette i praksis

Gjennomregnet minieksempel 12. La

A=(300200).A=\begin{pmatrix}3&0\\0&2\\0&0\end{pmatrix}.

Da er

A⊤A=(9004).A^\top A=\begin{pmatrix}9&0\\0&4\end{pmatrix}.

Egenverdiene er 99 og 44, så singulærverdiene til AA er 33 og 22.

Hurtigsjekk 12. Bruk A⊤AA^\top A til å finne singulærverdiene til A=(400100)A=\begin{pmatrix}4&0\\0&1\\0&0\end{pmatrix}.

Løsning

Fasit:

A⊤A=(16001).A^\top A=\begin{pmatrix}16&0\\0&1\end{pmatrix}.

Dermed er σ1=4\sigma_1=4 og σ2=1\sigma_2=1.

Forklaring: Gram-egenverdiene er 1616 og 11, og singulærverdiene er de ikke-negative kvadratrøttene.

Symmetriske matriser

Hvis A=A⊤A=A^\top har egenverdidekomponeringen A=QΛQ⊤A=Q\Lambda Q^\top, er

A⊤A=QΛ2Q⊤.A^\top A=Q\Lambda^2Q^\top.

Singulærverdiene er derfor absoluttverdiene av egenverdiene, sortert avtakende:

σi=∣λi∣.\sigma_i=|\lambda_i|.
Se dette i praksis

Gjennomregnet minieksempel 13. Først: For A=diag⁡(−3,2)A=\operatorname{diag}(-3,2) er egenverdiene −3,2-3,2, mens singulærverdiene er 3,23,2. SVD husker størrelsen på hvert strekk; fortegnet tas opp i UU eller VV.

Se så på den symmetriske rang-11-matrisen

B=(1224)=(12)(12)=zz⊤,z=(12).B=\begin{pmatrix}1&2\\2&4\end{pmatrix} =\begin{pmatrix}1\\2\end{pmatrix} \begin{pmatrix}1&2\end{pmatrix} =zz^\top, \qquad z=\begin{pmatrix}1\\2\end{pmatrix}.

Den er åpenbart symmetrisk. Dessuten er

tr⁡(B)=5>0,det⁡(B)=4−4=0.\operatorname{tr}(B)=5>0, \qquad \det(B)=4-4=0.

Dermed er BB PSD, men ikke positiv definit. Determinanten er null og den andre kolonnen er dobbelt så stor som den første, så rangen er 11. Siden B=zz⊤B=zz^\top, er

λ1=σ1=∥z∥22=5,q1=z∥z∥2=15(12).\lambda_1=\sigma_1=\|z\|_2^2=5, \qquad q_1=\frac{z}{\|z\|_2} =\frac1{\sqrt5}\begin{pmatrix}1\\2\end{pmatrix}.

Velg den vinkelrette enhetsvektoren

q2=15(−21),Q=(q1 q2).q_2=\frac1{\sqrt5}\begin{pmatrix}-2\\1\end{pmatrix}, \qquad Q=(q_1\ q_2).

Fordi BB er PSD, er egenverdidekomponeringen allerede en SVD:

B=Q(5000)Q⊤,U=V=Q.B=Q\begin{pmatrix}5&0\\0&0\end{pmatrix}Q^\top, \qquad U=V=Q.

Den kompakte rang-11-SVD-en er enda kortere:

B=5q1q1⊤.B=5q_1q_1^\top.

Kjennetegn: Symmetri pluss at én ikke-null rad eller kolonne er et multiplum av den andre, skriker «rang-11 PSD». Hvis du kan skrive matrisen som zz⊤zz^\top, hopper du over begge Gram-matrisene.

Hurtigsjekk 13.

a) Finn singulærverdiene til D=diag⁡(−5,−1)D=\operatorname{diag}(-5,-1) og oppgi én gyldig SVD.

b) Vis at

E=(4−2−21)E=\begin{pmatrix}4&-2\\-2&1\end{pmatrix}

er symmetrisk PSD av rang 11, og oppgi både kompakt og full SVD.

Løsning

Steg 1: løs del a. Singulærverdiene er 55 og 11. Ett gyldig valg er

U=(−100−1),Σ=(5001),V=I,U=\begin{pmatrix}-1&0\\0&-1\end{pmatrix}, \quad \Sigma=\begin{pmatrix}5&0\\0&1\end{pmatrix}, \quad V=I,

fordi UΣV⊤=DU\Sigma V^\top=D.

Steg 2: se rang-11-PSD-strukturen i del b. Skriv

E=(2−1)(2−1)=ww⊤,w=(2−1).E= \begin{pmatrix}2\\-1\end{pmatrix} \begin{pmatrix}2&-1\end{pmatrix} =ww^\top, \qquad w=\begin{pmatrix}2\\-1\end{pmatrix}.

Dermed er EE symmetrisk PSD. Kolonnene er avhengige, så rangen er 11. Det samme ser vi fra tr⁡(E)=5>0\operatorname{tr}(E)=5>0 og det⁡(E)=4−4=0\det(E)=4-4=0.

Steg 3: les av den kompakte SVD-en. Siden ∥w∥22=5\|w\|_2^2=5, er

q1=15(2−1),E=5q1q1⊤.q_1=\frac1{\sqrt5}\begin{pmatrix}2\\-1\end{pmatrix}, \qquad E=5q_1q_1^\top.

Dermed har den kompakte SVD-en Ur=Vr=q1U_r=V_r=q_1 og Σr=(5)\Sigma_r=(5).

Steg 4: fullfør en ortonormal basis for full SVD. Velg

q2=15(12),Q=15(21−12).q_2=\frac1{\sqrt5}\begin{pmatrix}1\\2\end{pmatrix}, \qquad Q=\frac1{\sqrt5}\begin{pmatrix}2&1\\-1&2\end{pmatrix}.

Da er q1⊤q2=0q_1^\top q_2=0 og

E=Q(5000)Q⊤.E=Q\begin{pmatrix}5&0\\0&0\end{pmatrix}Q^\top.

Én full SVD er derfor U=V=QU=V=Q og Σ=diag⁡(5,0)\Sigma=\operatorname{diag}(5,0).

Oppskrift for håndregning

Slik regner du ut en liten SVD analytisk:

  1. Skriv dimensjonene.
  2. Bygg den minste av A⊤AA^\top A og AA⊤AA^\top.
  3. Finn de ikke-negative egenverdiene.
  4. Ta kvadratrøttene og sorter avtakende.
  5. Normaliser de tilhørende egenvektorene.
  6. Bruk ui=Avi/σiu_i=Av_i/\sigma_i eller vi=A⊤ui/σiv_i=A^\top u_i/\sigma_i.
  7. Hold hver singulærtrippel i samme rekkefølge.
  8. Multipliser tilbake og kontroller A=UrΣrVr⊤A=U_r\Sigma_rV_r^\top.
Se dette i praksis

Gjennomregnet minieksempel 14. For

A=(100200)∈R3×2A=\begin{pmatrix}1&0\\0&2\\0&0\end{pmatrix}\in\mathbb R^{3\times2}

er A⊤AA^\top A bare 2×22\times2, mens AA⊤AA^\top er 3×33\times3. Vi velger

A⊤A=diag⁡(1,4),A^\top A=\operatorname{diag}(1,4),

så singulærverdiene er 2,12,1 etter sortering.

Hurtigsjekk 14. For A=(20030000)A=\begin{pmatrix}2&0\\0&3\\0&0\\0&0\end{pmatrix}, finn den minste Gram-matrisen og singulærverdiene.

Løsning

Fasit: A⊤AA^\top A er den minste Gram-matrisen, og singulærverdiene er 33 og 22.

Forklaring: AA er 4×24\times2, så A⊤AA^\top A er bare 2×22\times2:

A⊤A=diag⁡(4,9).A^\top A=\operatorname{diag}(4,9).

Egenverdiene er 9,49,4 etter sortering. Kvadratrøttene er 3,23,2.

SVD finnes selv når diagonalisering feiler

En skjærmatrise kan ha for få lineært uavhengige egenvektorer til å kunne diagonaliseres. SVD har ikke denne begrensningen: Den bruker én ortonormal basis i inputrommet og en annen i outputrommet. Åpne utregningen nedenfor når du vil se hele algebraen.

Full utregning: SVD av en skjærmatrise som ikke kan diagonaliseres

For skjærmatrisen fra forelesningen,

A=(1c01),c≠0,A=\begin{pmatrix}1&c\\0&1\end{pmatrix}, \qquad c\ne0,

er

AA⊤=(1+c2cc1).AA^\top=\begin{pmatrix}1+c^2&c\\c&1\end{pmatrix}.

Egenverdiene er

λ1,2=1+c22±c2+c44,\lambda_{1,2}=1+\frac{c^2}{2}\pm\sqrt{c^2+\frac{c^4}{4}},

så singulærverdiene er kvadratrøttene. For c=8/3c=8/3 forenkles de til 33 og 1/31/3, og én SVD er

U=110(3−113),Σ=(3001/3),V=110(1−331).U=\frac1{\sqrt{10}}\begin{pmatrix}3&-1\\1&3\end{pmatrix}, \quad \Sigma=\begin{pmatrix}3&0\\0&1/3\end{pmatrix}, \quad V=\frac1{\sqrt{10}}\begin{pmatrix}1&-3\\3&1\end{pmatrix}.

Matrisen kan ikke diagonaliseres, men SVD skiller den likevel i ortogonale retningsendringer og ikke-negative strekk.

Hovedeksempel: en komplett håndregnet redusert SVD

Dette er hele håndregningsoppskriften på den korrigerte forelesningsmatrisen. De åtte stegene er foldet sammen slik at hovedsiden forblir lett å skumme; åpne dem når du vil se hver multiplikasjon og dimensjonskontroll.

Full utregning: en redusert SVD fra start til slutt

Bruk den korrigerte forelesningsmatrisen

A=(132231).A=\begin{pmatrix}1&3\\2&2\\3&1\end{pmatrix}.

Steg 1: les dimensjonene og velg den minste Gram-matrisen. AA er 3×23\times2, så de reduserte faktorene må ha dimensjoner Ur:3×2U_r:3\times2, Σr:2×2\Sigma_r:2\times2 og Vr⊤:2×2V_r^\top:2\times2. Den minste Gram-matrisen er A⊤AA^\top A.

Steg 2: bygg A⊤AA^\top A element for element. Kolonnene er

a1=(123),a2=(321).a_1=\begin{pmatrix}1\\2\\3\end{pmatrix}, \qquad a_2=\begin{pmatrix}3\\2\\1\end{pmatrix}.

Indreproduktene er

a1⊤a1=1+4+9=14,a2⊤a2=9+4+1=14,a_1^\top a_1=1+4+9=14, \qquad a_2^\top a_2=9+4+1=14,

og

a1⊤a2=3+4+3=10.a_1^\top a_2=3+4+3=10.

Dermed er

A⊤A=(14101014).A^\top A=\begin{pmatrix}14&10\\10&14\end{pmatrix}.

Steg 3: finn egenverdiene.

det⁡(A⊤A−λI)=(14−λ)2−100=λ2−28λ+96=(λ−24)(λ−4).\det(A^\top A-\lambda I) =(14-\lambda)^2-100 =\lambda^2-28\lambda+96 =(\lambda-24)(\lambda-4).

Altså er λ1=24\lambda_1=24 og λ2=4\lambda_2=4.

Steg 4: ta kvadratrøtter, ikke bruk egenverdiene direkte.

σ1=24=26,σ2=4=2.\sigma_1=\sqrt{24}=2\sqrt6, \qquad \sigma_2=\sqrt4=2.

Steg 5: finn og normaliser de høyre singulærvektorene. For λ1=24\lambda_1=24 er kolonnene i A⊤A−24IA^\top A-24I motsatte. Derfor ligger

(11)\begin{pmatrix}1\\1\end{pmatrix}

i nullrommet.

For λ2=4\lambda_2=4 er kolonnene identiske. Derfor ligger

(1−1)\begin{pmatrix}1\\-1\end{pmatrix}

i nullrommet. Etter normalisering:

v1=12(11),v2=12(1−1).v_1=\frac1{\sqrt2}\begin{pmatrix}1\\1\end{pmatrix}, \qquad v_2=\frac1{\sqrt2}\begin{pmatrix}1\\-1\end{pmatrix}.

Steg 6: finn de venstre singulærvektorene. Bruk ui=Avi/σiu_i=Av_i/\sigma_i:

Av1=12(444)⟹u1=13(111),Av_1=\frac1{\sqrt2}\begin{pmatrix}4\\4\\4\end{pmatrix} \quad\Longrightarrow\quad u_1=\frac1{\sqrt3}\begin{pmatrix}1\\1\\1\end{pmatrix},

og

Av2=12(−202)⟹u2=12(−101).Av_2=\frac1{\sqrt2}\begin{pmatrix}-2\\0\\2\end{pmatrix} \quad\Longrightarrow\quad u_2=\frac1{\sqrt2}\begin{pmatrix}-1\\0\\1\end{pmatrix}.

Steg 7: sett sammen tilhørende kolonner i samme rekkefølge.

Ur=(1/3−1/21/301/31/2),Σr=(24002),Vr=12(111−1).U_r=\begin{pmatrix}1/\sqrt3&-1/\sqrt2\\1/\sqrt3&0\\1/\sqrt3&1/\sqrt2\end{pmatrix}, \quad \Sigma_r=\begin{pmatrix}\sqrt{24}&0\\0&2\end{pmatrix}, \quad V_r=\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix}.

Dimensjonskontrollen er (3×2)(2×2)(2×2)=3×2(3\times2)(2\times2)(2\times2)=3\times2.

Steg 8: multipliser tilbake via rang-1-summen. Det første leddet er

σ1u1v1⊤=(222222),\sigma_1u_1v_1^\top =\begin{pmatrix}2&2\\2&2\\2&2\end{pmatrix},

og det andre er

σ2u2v2⊤=(−11001−1).\sigma_2u_2v_2^\top =\begin{pmatrix}-1&1\\0&0\\1&-1\end{pmatrix}.

Summen er nøyaktig

(222222)+(−11001−1)=(132231)=A.\begin{pmatrix}2&2\\2&2\\2&2\end{pmatrix} +\begin{pmatrix}-1&1\\0&0\\1&-1\end{pmatrix} =\begin{pmatrix}1&3\\2&2\\3&1\end{pmatrix}=A.

Uavhengig Axia-kontroll. Behold også den eksisterende matrisen

A~=(200211)\widetilde A=\begin{pmatrix}2&0\\0&2\\1&1\end{pmatrix}

for å vise at oppskriften ikke er knyttet til forelesningstallene. Her er

A~⊤A~=(5115),\widetilde A^\top\widetilde A =\begin{pmatrix}5&1\\1&5\end{pmatrix},

så egenverdiene er 6,46,4 og singulærverdiene er 6,2\sqrt6,2.

De høyre singulærvektorene er

v~1=12(11),v~2=12(1−1).\widetilde v_1=\frac1{\sqrt2}\begin{pmatrix}1\\1\end{pmatrix}, \qquad \widetilde v_2=\frac1{\sqrt2}\begin{pmatrix}1\\-1\end{pmatrix}.

De venstre singulærvektorene er

u~1=13(111),u~2=12(1−10).\widetilde u_1=\frac1{\sqrt3}\begin{pmatrix}1\\1\\1\end{pmatrix}, \qquad \widetilde u_2=\frac1{\sqrt2}\begin{pmatrix}1\\-1\\0\end{pmatrix}.

De to rang-1-leddene bygger matrisen nøyaktig:

A~=(111111)+(1−1−1100).\widetilde A= \begin{pmatrix}1&1\\1&1\\1&1\end{pmatrix} +\begin{pmatrix}1&-1\\-1&1\\0&0\end{pmatrix}.

Også denne multiplikasjonen gir nøyaktig den opprinnelige matrisen.

Laster interaktiv modell / Loading interactive model …
Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …

Del 3 · Geometri, matriseegenskaper og beste lavrang-approksimasjon

Geometrien: V⊤V^\top, så Σ\Sigma, så UU

SVD sender enhetssirkelen gjennom en ortogonal retningsendring, aksevis skalering og en siste ortogonal retningsendring. Resultatet er en ellipse med halvakser lik singulærverdiene.
SVD sender enhetssirkelen gjennom en ortogonal retningsendring, aksevis skalering og en siste ortogonal retningsendring. Resultatet er en ellipse med halvakser lik singulærverdiene.Full størrelse / Full size ↗
Se dette i praksis

Gjennomregnet minieksempel 15. For A=diag⁡(2,1)A=\operatorname{diag}(2,1) er

Ae1=2e1,Ae2=e2.Ae_1=2e_1, \qquad Ae_2=e_2.

Enhetssirkelen blir en ellipse med halvakser 22 og 11. Disse lengdene er nettopp singulærverdiene.

Hurtigsjekk 15. For A=diag⁡(3,1/2)A=\operatorname{diag}(3,1/2), finn bildene av e1,e2e_1,e_2 og beskriv ellipsen.

Løsning

Fasit: Ae1=3e1Ae_1=3e_1 og Ae2=(1/2)e2Ae_2=(1/2)e_2. Ellipsen har vannrett halvakse 33 og loddrett halvakse 1/21/2.

Forklaring: Bildene av enhetsvektorene viser halvaksenes retninger og lengder direkte.

Rang-1-summen og virkningen på en vektor

Den kompakte SVD-en kan skrives

A=∑i=1rσiuivi⊤,A=\sum_{i=1}^r\sigma_i u_iv_i^\top,

der hvert uivi⊤u_iv_i^\top er en rang-1-matrise. Når matrisen virker på xx, får vi

Ax=∑i=1rσi⟨vi,x⟩ui.Ax=\sum_{i=1}^r\sigma_i\langle v_i,x\rangle u_i.

Formelen måler først hvor mye av xx som ligger i hver viv_i-retning og bygger deretter outputen i den tilhørende uiu_i-retningen.

En matrise bygges som en sum av vektede rang-1-lag. De første lagene har størst vekt fordi singulærverdiene er sortert.
En matrise bygges som en sum av vektede rang-1-lag. De første lagene har størst vekt fordi singulærverdiene er sortert.Full størrelse / Full size ↗
Se dette i praksis

Gjennomregnet minieksempel 16. For A=diag⁡(3,1)A=\operatorname{diag}(3,1) er

A=3(10)(1 0)+1(01)(0 1)=(3001).A=3\begin{pmatrix}1\\0\end{pmatrix}(1\ 0) +1\begin{pmatrix}0\\1\end{pmatrix}(0\ 1) =\begin{pmatrix}3&0\\0&1\end{pmatrix}.

Hurtigsjekk 16. Skriv D=diag⁡(4,2)D=\operatorname{diag}(4,2) som en sum av to vektede rang-1-matriser, og bruk summen til å regne ut

D(13).D\begin{pmatrix}1\\3\end{pmatrix}.
Løsning

Fasit:

D=4e1e1⊤+2e2e2⊤.D=4e_1e_1^\top+2e_2e_2^\top.

Dermed er

D(13)=4⟨e1,(13)⟩e1+2⟨e2,(13)⟩e2=(46).D\begin{pmatrix}1\\3\end{pmatrix} =4\left\langle e_1,\begin{pmatrix}1\\3\end{pmatrix}\right\rangle e_1 +2\left\langle e_2,\begin{pmatrix}1\\3\end{pmatrix}\right\rangle e_2 =\begin{pmatrix}4\\6\end{pmatrix}.

Forklaring: De to indreproduktene leser av inputkoordinatene 11 og 33. Deretter skaleres de med 44 og 22.

Rang og singulærverdier lik null

La rr være antallet positive singulærverdier; for nullmatrisen setter vi r=0r=0. Da er

A=∑i=1rσiuivi⊤,A=\sum_{i=1}^r\sigma_i u_iv_i^\top,

fordi singulærverdier lik null ikke bidrar.

Se dette i praksis

Gjennomregnet minieksempel 17. For A=diag⁡(2,0)A=\operatorname{diag}(2,0) er singulærverdiene 2,02,0. Bare én er positiv, så r=1r=1 og rank⁡(A)=1\operatorname{rank}(A)=1. Den andre inputretningen kollapser til null.

Hurtigsjekk 17. Finn rangen til D=diag⁡(5,0,0)D=\operatorname{diag}(5,0,0), og identifiser den aktive og de kollapsede koordinatretningene.

Løsning

Fasit: rank⁡(D)=1\operatorname{rank}(D)=1. e1e_1 er aktiv, mens e2e_2 og e3e_3 kollapser.

Forklaring: Bare σ1=5\sigma_1=5 er positiv. Null-singulærverdiene bidrar ingen aktive retninger.

Hva SVD avslører uten at vi bygger opp AA

De positive singulærtriplene gir

rank⁡(A)=r,range⁡(A)=span⁡{u1,…,ur},\operatorname{rank}(A)=r, \qquad \operatorname{range}(A)=\operatorname{span}\{u_1,\ldots,u_r\}, ker⁡(A)=span⁡{v1,…,vr}⊥,∥A∥2=σ1,\ker(A)=\operatorname{span}\{v_1,\ldots,v_r\}^{\perp}, \qquad \|A\|_2=\sigma_1,

og

∥A∥F=(∑i=1rσi2)1/2.\|A\|_F=\left(\sum_{i=1}^r\sigma_i^2\right)^{1/2}.

Du trenger ikke bygge opp AA på nytt for å lese disse egenskapene. De ligger allerede i singulærverdiene og singulærvektorene.

Se dette i praksis

Gjennomregnet minieksempel 18. For A=diag⁡(4,0)A=\operatorname{diag}(4,0) er r=1r=1, ∥A∥2=4\|A\|_2=4, ∥A∥F=4\|A\|_F=4, og

range⁡(A)=span⁡{e1},ker⁡(A)=span⁡{e2}.\operatorname{range}(A)=\operatorname{span}\{e_1\}, \qquad \ker(A)=\operatorname{span}\{e_2\}.

Hurtigsjekk 18. For A=(300020)A=\begin{pmatrix}3&0&0\\0&2&0\end{pmatrix}, finn rang, verdirom, kjerne, spektralnorm og Frobenius-norm.

Løsning

Fasit: Rangen er 22, verdirommet er R2\mathbb R^2, og ker⁡(A)=span⁡{e3}\ker(A)=\operatorname{span}\{e_3\}. Dessuten er

∥A∥2=3,∥A∥F=32+22=13.\|A\|_2=3, \qquad \|A\|_F=\sqrt{3^2+2^2}=\sqrt{13}.

Forklaring: De positive singulærverdiene er 3,23,2. Den tredje inputkoordinaten har singulærverdi null og kollapser.

Trunkert SVD

For 0≤k≤r0\le k\le r definerer vi

Ak=∑i=1kσiuivi⊤.A_k=\sum_{i=1}^k\sigma_i u_iv_i^\top.

AkA_k beholder de kk sterkeste singulærretningene og har rang høyst kk.

Eckart–Young-teoremet

For 0≤k<r0\le k<r løser AkA_k begge problemene

min⁡rank⁡(B)≤k∥A−B∥2ogmin⁡rank⁡(B)≤k∥A−B∥F.\min_{\operatorname{rank}(B)\le k}\|A-B\|_2 \quad\text{og}\quad \min_{\operatorname{rank}(B)\le k}\|A-B\|_F.

De optimale feilene er

∥A−Ak∥2=σk+1,∥A−Ak∥F=(∑i=k+1rσi2)1/2.\|A-A_k\|_2=\sigma_{k+1}, \qquad \|A-A_k\|_F=\left(\sum_{i=k+1}^r\sigma_i^2\right)^{1/2}.

For k=rk=r er Ak=AA_k=A, og begge feilene er null.

Et fallende singulærverdispekter der de første verdiene beholdes og halen forkastes. Spektralfeilen styres av den første forkastede verdien, mens Frobenius-feilen bruker hele halen.
Et fallende singulærverdispekter der de første verdiene beholdes og halen forkastes. Spektralfeilen styres av den første forkastede verdien, mens Frobenius-feilen bruker hele halen.Full størrelse / Full size ↗

Eksempel: beste rang-1-approksimasjon

Se dette i praksis

Gjennomregnet minieksempel 19. For A=diag⁡(5,1)A=\operatorname{diag}(5,1) er den beste rang-1-approksimasjonen

A1=diag⁡(5,0).A_1=\operatorname{diag}(5,0).

Residualen er diag⁡(0,1)\operatorname{diag}(0,1), så

∥A−A1∥2=1,∥A−A1∥F=1.\|A-A_1\|_2=1, \qquad \|A-A_1\|_F=1.

Hurtigsjekk 19. Finn den beste rang-1-approksimasjonen til D=diag⁡(6,2)D=\operatorname{diag}(6,2) og begge feilnormene.

Løsning

Fasit: Behold den største singulærverdien 66:

D1=diag⁡(6,0).D_1=\operatorname{diag}(6,0).

Den eneste forkastede singulærverdien er 22, så

∥D−D1∥2=∥D−D1∥F=2.\|D-D_1\|_2=\|D-D_1\|_F=2.

Forklaring: Den eneste forkastede singulærverdien er 22, så både den største forkastede retningen og hele haleenergien har størrelse 22.

Hvorfor teoremet er optimalt

Halen A−AkA-A_k har selv en SVD med singulærverdier σk+1,…,σr\sigma_{k+1},\ldots,\sigma_r.

Det gir de to feilformlene direkte.

For å se hvorfor ingen annen rang-kk-matrise BB kan gjøre det bedre, observer at ker⁡(B)\ker(B) må ha en ikke-null enhetsvektor zz i span⁡{v1,…,vk+1}\operatorname{span}\{v_1,\ldots,v_{k+1}\}.

Da er Bz=0Bz=0 og

∥(A−B)z∥2=∥Az∥2≥σk+1.\|(A-B)z\|_2=\|Az\|_2\ge\sigma_{k+1}.

Dette nullromsargumentet beviser den nedre grensen i spektralnorm.

For Frobenius-normen roterer vi inn i singulærvektorkoordinatene og bruker Pytagoras.

En rang-kk-matrise kan høyst fange energien ∑i=1kσi2\sum_{i=1}^k\sigma_i^2, så haleenergien ∑i=k+1rσi2\sum_{i=k+1}^r\sigma_i^2 kan ikke unngås.

Trunkeringen AkA_k oppnår begge de nedre grensene.

For forelesningsmatrisen fra Del 2 er det beste rang-1-leddet

A1=σ1u1v1⊤=(222222),A_1=\sigma_1u_1v_1^\top =\begin{pmatrix}2&2\\2&2\\2&2\end{pmatrix},

og begge feilene er lik den eneste forkastede singulærverdien σ2=2\sigma_2=2.

Lagring av en trunkert SVD

Lagring av Ak=UkΣkVk⊤A_k=U_k\Sigma_kV_k^\top, med singulærverdiene lagret som en liste, krever

mk+k+nk=k(m+n+1)mk+k+nk=k(m+n+1)

tall i stedet for mnmn. Dette er nyttig bare når k(m+n+1)≪mnk(m+n+1)\ll mn og de forkastede singulærverdiene er små nok.

Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …

Del 4 · Moore–Penrose-inversen

Fra invers til pseudoinvers

Start med den kompakte SVD-en

A=UrΣrVr⊤.A=U_r\Sigma_rV_r^\top.

Her inneholder Σr\Sigma_r bare de rr positive singulærverdiene. Pseudoinversen er

A†=VrΣr−1Ur⊤.A^\dagger=V_r\Sigma_r^{-1}U_r^\top.

Les formelen fra høyre mot venstre:

  1. Ur⊤U_r^\top måler hvor mye av dataene som ligger i hver mulig output-retning.
  2. Σr−1\Sigma_r^{-1} angrer de positive strekkene.
  3. VrV_r bygger en inputvektor av resultatet.

Retninger som AA har knust til null, finnes ikke i Σr−1\Sigma_r^{-1}. Vi forsøker altså aldri å regne ut 1/01/0.

De fire vanligste eksamensvariantene er:

SituasjonRaskeste formelHva svaret betyr
AA er kvadratisk og invertibelA†=A−1A^\dagger=A^{-1}én eksakt løsning
AA er høy og har full kolonnerangA†=(A⊤A)−1A⊤A^\dagger=(A^\top A)^{-1}A^\topentydig minste-kvadraters løsning
AA er bred og har full radrangA†=A⊤(AA⊤)−1A^\dagger=A^\top(AA^\top)^{-1}eksakt løsning med minst norm
AA har rangmangelA†=VrΣr−1Ur⊤A^\dagger=V_r\Sigma_r^{-1}U_r^\topbeste tilpasning først, minst norm etterpå

Fire tilfeller, fire utregninger

Laster interaktiv modell / Loading interactive model …

Ikke velg en kortformel før du har kontrollert rangbetingelsen. SVD-formelen virker alltid.

Se dette i praksis

Gjennomregnet minieksempel 20. La

D=diag⁡(4,2,0),b=(865).D=\operatorname{diag}(4,2,0), \qquad b=\begin{pmatrix}8\\6\\5\end{pmatrix}.

Matrisen strekker de to første retningene med 44 og 22, men knuser den tredje retningen helt. Derfor finnes ikke D−1D^{-1}. Pseudoinversen snur bare strekkene som fortsatt kan snus:

D†=diag⁡(1/4,1/2,0).D^\dagger=\operatorname{diag}(1/4,1/2,0).

Når vi bruker den på bb, får vi

x†=D†b=(230).x^\dagger=D^\dagger b =\begin{pmatrix}2\\3\\0\end{pmatrix}.

Hvorfor blir siste koordinat null? Hver vektor DxDx har tredje koordinat lik null, så tallet 55 i bb er en output matrisen aldri kan lage. Setter vi løsningen inn igjen, får vi

DD†b=(860),b−DD†b=(005).DD^\dagger b =\begin{pmatrix}8\\6\\0\end{pmatrix}, \qquad b-DD^\dagger b =\begin{pmatrix}0\\0\\5\end{pmatrix}.

Pseudoinversen gjør altså to ting: Den reverserer retningene som overlevde, og fjerner output-retningen som er umulig å treffe. Derfor er

D†D=DD†=diag⁡(1,1,0),D^\dagger D=DD^\dagger=\operatorname{diag}(1,1,0),

ikke I3I_3. Hadde den siste diagonalverdien også vært positiv, ville pseudoinversen vært den vanlige inversen, og produktet ville blitt identiteten.

Vi kan også se begge Penrose-rekonstruksjonene direkte:

DD†D=D,D†DD†=D†.DD^\dagger D=D, \qquad D^\dagger DD^\dagger=D^\dagger.

Til slutt: Alle vektorer

x=(23t),t∈R,x=\begin{pmatrix}2\\3\\t\end{pmatrix}, \qquad t\in\mathbb R,

gir den samme best mulige outputen. Den frie tredje koordinaten ligger i kjernen til DD. Pseudoinversen velger t=0t=0, fordi

∥x∥22=22+32+t2=13+t2\|x\|_2^2=2^2+3^2+t^2=13+t^2

er minst akkurat da.

Hvorfor dette er en invers. D†D^\dagger er en generalisert invers: Den opphever de to positive strekkene og lar den kollapsede retningen være null, der en tosidig invers er umulig.

Slik bekrefter du det. Her er

P=D†D=DD†=diag⁡(1,1,0)P=D^\dagger D=DD^\dagger=\operatorname{diag}(1,1,0)

symmetrisk, PD=DPD=D og PD†=D†PD^\dagger=D^\dagger. Dette er nettopp de to rekonstruksjonsbetingelsene og de to symmetribetingelsene i de fire Moore–Penrose-betingelsene.

Hurtigsjekk 20. La

D=diag⁡(5,2,0),b=(1587).D=\operatorname{diag}(5,2,0), \qquad b=\begin{pmatrix}15\\8\\7\end{pmatrix}.

a) Finn D†D^\dagger.

b) Regn ut x†=D†bx^\dagger=D^\dagger b.

c) Regn ut DD†bDD^\dagger b, og forklar hva som skjer med tallet 77.

d) Beskriv alle minste-kvadraters løsninger, og forklar hvorfor x†x^\dagger har minst norm.

e) Forklar hvorfor D†D^\dagger teller som en generalisert invers, og bekreft det med rekonstruksjons- og symmetrikontrollene.

Løsning

Steg 1: Snu bare de positive strekkene.

D†=diag⁡(1/5,1/2,0).D^\dagger=\operatorname{diag}(1/5,1/2,0).

Nullen skal forbli null. Vi skal ikke prøve å dele på den.

Steg 2: Bruk pseudoinversen på dataene.

x†=D†b=((1/5)15(1/2)80⋅7)=(340).x^\dagger=D^\dagger b =\begin{pmatrix}(1/5)15\\(1/2)8\\0\cdot7\end{pmatrix} =\begin{pmatrix}3\\4\\0\end{pmatrix}.

Steg 3: Send løsningen gjennom DD igjen.

DD†b=D(340)=(1580).DD^\dagger b =D\begin{pmatrix}3\\4\\0\end{pmatrix} =\begin{pmatrix}15\\8\\0\end{pmatrix}.

De to første koordinatene kan gjenskapes nøyaktig. Den siste kan aldri gjenskapes, fordi tredje rad i DD er null. Derfor blir residualen

b−DD†b=(007).b-DD^\dagger b=\begin{pmatrix}0\\0\\7\end{pmatrix}.

Det er akkurat den delen av bb som ligger utenfor verdirommet til DD.

Steg 4: Finn friheten i kjernen.

Alle vektorer

x=(34t)x=\begin{pmatrix}3\\4\\t\end{pmatrix}

gir samme tilpassede output, fordi den siste kolonnen i DD er null. Normen oppfyller

∥x∥22=32+42+t2=25+t2.\|x\|_2^2=3^2+4^2+t^2=25+t^2.

Den blir minst for t=0t=0. Derfor er

x†=(340)x^\dagger=\begin{pmatrix}3\\4\\0\end{pmatrix}

den korteste av alle beste tilpasninger.

Hvorfor dette er en invers. Den reverserer faktorene 55 og 22 i retningene som overlever, og lar nullretningen være null.

Slik bekrefter du det. Med

P=D†D=DD†=diag⁡(1,1,0)P=D^\dagger D=DD^\dagger=\operatorname{diag}(1,1,0)

har vi P⊤=PP^\top=P, PD=DPD=D og PD†=D†PD^\dagger=D^\dagger. Dermed er DD†D=DDD^\dagger D=D, D†DD†=D†D^\dagger DD^\dagger=D^\dagger, og begge projektorproduktene er symmetriske.

Høye matriser: minste kvadrater

Anta at

A∈Rm×n,m>n,rank⁡(A)=n.A\in\mathbb R^{m\times n}, \qquad m>n, \qquad \operatorname{rank}(A)=n.

Matrisen har flere rader enn kolonner og full kolonnerang. Hvis

A=UΣV⊤A=U\Sigma V^\top

er den reduserte SVD-en, er Σ∈Rn×n\Sigma\in\mathbb R^{n\times n} invertibel. Da kan vi skrive

A†=VΣ−1U⊤∈Rn×m.A^\dagger=V\Sigma^{-1}U^\top \in\mathbb R^{n\times m}.

Her bytter formen retning: AA er m×nm\times n, mens A†A^\dagger er n×mn\times m.

Produktene i de to rekkefølgene gjør forskjellige jobber:

A†A=In,AA†=UU⊤=Prange⁡(A).A^\dagger A=I_n, \qquad AA^\dagger=UU^\top=P_{\operatorname{range}(A)}.

Når Ax=bAx=b har flere ligninger enn ukjente, kan kravene motsi hverandre. Minste kvadrater betyr da

x†=argmin⁡x∈Rn∥Ax−b∥2.x^\dagger =\underset{x\in\mathbb R^n}{\operatorname{argmin}} \|Ax-b\|_2.

Hvis AA har full kolonnerang, er denne løsningen entydig og

x†=A†b.x^\dagger=A^\dagger b.
Se dette i praksis

Gjennomregnet minieksempel 21. Fra fire punkter til en Moore–Penrose-invers. Vi tilpasser en linje

q(t)=x1+x2tq(t)=x_1+x_2t

til de fire datapunktene

(−1,0,4),(0,2,2),(1,3,4),(2,5,0).(-1,0{,}4),\qquad (0,2{,}2),\qquad (1,3{,}4),\qquad (2,5{,}0).

Her inneholder x=(x1,x2)⊤x=(x_1,x_2)^\top konstantleddet og stigningstallet. Vektoren xx inneholder ikke inputverdiene tit_i. Ett datapunkt blir én rad. For eksempel er

q(1)=x1+x2≈3,4⟺(11)(x1x2)≈3,4.q(1)=x_1+x_2\approx3{,}4 \quad\Longleftrightarrow\quad \begin{pmatrix}1&1\end{pmatrix} \begin{pmatrix}x_1\\x_2\end{pmatrix} \approx3{,}4.

Når vi stabler de fire radene, får vi

A=(1−1101112),b=(0,42,23,45,0),Ax≈b.A= \begin{pmatrix} 1&-1\\ 1&0\\ 1&1\\ 1&2 \end{pmatrix}, \qquad b= \begin{pmatrix} 0{,}4\\2{,}2\\3{,}4\\5{,}0 \end{pmatrix}, \qquad Ax\approx b.

Dimensjonene forteller allerede hva som skjer:

(4×2)(2×1)=(4×1).(4\times2)(2\times1)=(4\times1).

De to kolonnene i AA er ikke multipler av hverandre. Derfor har AA full kolonnerang, og vi kan bruke

A†=(A⊤A)−1A⊤.A^\dagger=(A^\top A)^{-1}A^\top.

Steg 1: Transponer AA. Radene blir kolonner:

A⊤=(1111−1012)∈R2×4.A^\top= \begin{pmatrix} 1&1&1&1\\ -1&0&1&2 \end{pmatrix} \in\mathbb R^{2\times4}.

Steg 2: Dann A⊤AA^\top A. En 2×42\times4-matrise ganger en 4×24\times2-matrise gir en 2×22\times2-matrise:

A⊤A=(1+1+1+1−1+0+1+2−1+0+1+2(−1)2+02+12+22)=(4226).A^\top A =\begin{pmatrix} 1+1+1+1&-1+0+1+2\\ -1+0+1+2&(-1)^2+0^2+1^2+2^2 \end{pmatrix} =\begin{pmatrix}4&2\\2&6\end{pmatrix}.

Resultatet er symmetrisk, slik enhver Gram-matrise A⊤AA^\top A skal være.

Steg 3: Inverter 2×22\times2-matrisen. Determinanten er

4⋅6−2⋅2=20.4\cdot6-2\cdot2=20.

Bytt plass på diagonalelementene, skift fortegn på elementene utenfor diagonalen, og del på determinanten:

(A⊤A)−1=120(6−2−24).(A^\top A)^{-1} =\frac1{20}\begin{pmatrix}6&-2\\-2&4\end{pmatrix}.

Steg 4: Multipliser med A⊤A^\top. Sluttformen er 2×42\times4, altså den omvendte formen av AA:

A†=(A⊤A)−1A⊤=120(6−2−24)(1111−1012)=110(4321−3−113).A^\dagger =(A^\top A)^{-1}A^\top =\frac1{20} \begin{pmatrix}6&-2\\-2&4\end{pmatrix} \begin{pmatrix}1&1&1&1\\-1&0&1&2\end{pmatrix} =\frac1{10} \begin{pmatrix} 4&3&2&1\\ -3&-1&1&3 \end{pmatrix}.

For en høy matrise med full kolonnerang er den raskeste kontrollen

A†A=I2.A^\dagger A=I_2.

Her blir multiplikasjonen

A†A=110(4321−3−113)(1−1101112)=110(100010)=I2.A^\dagger A =\frac1{10} \begin{pmatrix}4&3&2&1\\-3&-1&1&3\end{pmatrix} \begin{pmatrix}1&-1\\1&0\\1&1\\1&2\end{pmatrix} =\frac1{10} \begin{pmatrix}10&0\\0&10\end{pmatrix} =I_2.

Du skal ikke forvente at AA†=I4AA^\dagger=I_4. Dette produktet er den symmetriske projeksjonen

AA†=110(741−243211234−2147).AA^\dagger =\frac1{10} \begin{pmatrix} 7&4&1&-2\\ 4&3&2&1\\ 1&2&3&4\\ -2&1&4&7 \end{pmatrix}.

Den projiserer en datavektor på det todimensjonale kolonnerommet til AA. Symmetrien, sammen med A†A=I2A^\dagger A=I_2, gir også en kort kontroll av de fire Moore–Penrose-betingelsene.

Hvorfor dette er en invers. Siden AA har full kolonnerang, er A†A^\dagger en venstreinvers: A†A=I2A^\dagger A=I_2. Den gjenfinner enhver koeffisientvektor eksakt, selv om en tosidig invers ikke kan finnes for en 4×24\times2-matrise.

Slik bekrefter du det. Multiplikasjonen over gir numerisk A†A=I2A^\dagger A=I_2. Produktet i motsatt rekkefølge, AA†AA^\dagger, er symmetrisk og en projeksjon. Derfor er AA†A=AAA^\dagger A=A og A†AA†=A†A^\dagger AA^\dagger=A^\dagger, slik Moore–Penrose-betingelsene krever.

Hurtigsjekk 21. La

B=(100111).B=\begin{pmatrix} 1&0\\ 0&1\\ 1&1 \end{pmatrix}.

Finn B†B^\dagger med (B⊤B)−1B⊤(B^\top B)^{-1}B^\top, oppgi dimensjonen, og kontroller B†B=I2B^\dagger B=I_2. Forklar hvorfor dette gjør B†B^\dagger til en invers i det høye tilfellet, og bekreft at BB†BB^\dagger er en symmetrisk projeksjon.

Løsning

Steg 1: Bygg og inverter Gram-matrisen.

B⊤B=(2112),(B⊤B)−1=13(2−1−12).B^\top B =\begin{pmatrix}2&1\\1&2\end{pmatrix}, \qquad (B^\top B)^{-1} =\frac13\begin{pmatrix}2&-1\\-1&2\end{pmatrix}.

Steg 2: Multipliser med B⊤B^\top.

B†=13(2−11−121)∈R2×3.B^\dagger =\frac13\begin{pmatrix} 2&-1&1\\ -1&2&1 \end{pmatrix} \in\mathbb R^{2\times3}.

Steg 3: Kontroller riktig identitet.

B†B=13(3003)=I2.B^\dagger B =\frac13\begin{pmatrix}3&0\\0&3\end{pmatrix} =I_2.

Hvorfor dette er en invers. Identiteten B†B=I2B^\dagger B=I_2 sier at B†B^\dagger opphever BB på enhver inputvektor. Derfor er den en venstreinvers.

Slik bekrefter du det. I motsatt rekkefølge får vi

BB†=13(2−11−121112),BB^\dagger =\frac13\begin{pmatrix} 2&-1&1\\ -1&2&1\\ 1&1&2 \end{pmatrix},

som er symmetrisk. Sammen med B†B=I2B^\dagger B=I_2 gir dette BB†B=BBB^\dagger B=B, B†BB†=B†B^\dagger BB^\dagger=B^\dagger og begge symmetribetingelsene.

Se dette i praksis

Gjennomregnet minieksempel 22. Bruk pseudoinversen til å finne linjen. Vi fortsetter med matrisen, dataene og pseudoinversen fra minieksempel 21.

Minste-kvadraters-koeffisientene er

x†=A†b=110(4321−3−113)(0,42,23,45,0)=(21,5).x^\dagger =A^\dagger b =\frac1{10} \begin{pmatrix}4&3&2&1\\-3&-1&1&3\end{pmatrix} \begin{pmatrix}0{,}4\\2{,}2\\3{,}4\\5{,}0\end{pmatrix} =\begin{pmatrix}2\\1{,}5\end{pmatrix}.

Les de to radene hver for seg. Første rad regner ut konstantleddet,

x1=110(4(0,4)+3(2,2)+2(3,4)+1(5,0))=2010=2,x_1 =\frac1{10}\bigl(4(0{,}4)+3(2{,}2)+2(3{,}4)+1(5{,}0)\bigr) =\frac{20}{10}=2,

og andre rad regner ut stigningstallet,

x2=110(−3(0,4)−1(2,2)+1(3,4)+3(5,0))=1510=1,5.x_2 =\frac1{10}\bigl(-3(0{,}4)-1(2{,}2)+1(3{,}4)+3(5{,}0)\bigr) =\frac{15}{10}=1{,}5.

Vi oversetter vektoren tilbake til et polynom:

q(t)=2+1,5t.\boxed{q(t)=2+1{,}5t}.

De fire prediksjonene blir

q(−1)=2−1,5=0,5,q(0)=2,0,q(1)=2+1,5=3,5,q(2)=2+2(1,5)=5,0.q(-1)=2-1{,}5=0{,}5, \quad q(0)=2{,}0, \quad q(1)=2+1{,}5=3{,}5, \quad q(2)=2+2(1{,}5)=5{,}0.

Dermed er de tilpassede verdiene og residualen tilpasset minus observert

Ax†=(0,52,03,55,0),e=Ax†−b=(0,1−0,20,10).Ax^\dagger =\begin{pmatrix}0{,}5\\2{,}0\\3{,}5\\5{,}0\end{pmatrix}, \qquad e=Ax^\dagger-b =\begin{pmatrix}0{,}1\\-0{,}2\\0{,}1\\0\end{pmatrix}.

De fire beregningene er lettest å lese i en tabell:

tit_iobservert yiy_itilpasset q(ti)q(t_i)q(ti)−yiq(t_i)-y_i
−1-10,40{,}40,50{,}50,10{,}1
002,22{,}22,02{,}0−0,2-0{,}2
113,43{,}43,53{,}50,10{,}1
225,05{,}05,05{,}000

Kvadrer hvert residual før du summerer:

(0,1)2=0,01,(−0,2)2=0,04,(0,1)2=0,01,02=0.(0{,}1)^2=0{,}01, \qquad (-0{,}2)^2=0{,}04, \qquad (0{,}1)^2=0{,}01, \qquad 0^2=0.

Den kvadrerte feilen er derfor

∥Ax†−b∥22=0,01+0,04+0,01+0=0,06,\boxed{\|Ax^\dagger-b\|_2^2=0{,}01+0{,}04+0{,}01+0=0{,}06},

mens feilen i en oppgave på formen min⁡x∥Ax−b∥2\min_x\|Ax-b\|_2 er

∥Ax†−b∥2=0,12+(−0,2)2+0,12=610≈0,245.\boxed{ \|Ax^\dagger-b\|_2 =\sqrt{0{,}1^2+(-0{,}2)^2+0{,}1^2} =\frac{\sqrt6}{10} \approx0{,}245}.

Oppgi gjerne begge tallene. Da unngår du tvetydighet om «feil» betyr normen eller summen av kvadrerte avvik.

Til slutt kontrollerer vi optimalitetsbetingelsen:

A⊤e=(0,1−0,2+0,1+0(−1)(0,1)+0(−0,2)+1(0,1)+2(0))=(00).A^\top e =\begin{pmatrix} 0{,}1-0{,}2+0{,}1+0\\ (-1)(0{,}1)+0(-0{,}2)+1(0{,}1)+2(0) \end{pmatrix} =\begin{pmatrix}0\\0\end{pmatrix}.

Residualen står dermed vinkelrett på begge kolonnene i AA. Ingen gjenværende endring av konstantledd eller stigningstall kan redusere den kvadrerte feilen.

Hvorfor dette er en invers. Fra minieksempel 21 har vi A†A=I2A^\dagger A=I_2. Dermed er A†A^\dagger en venstreinvers som gjenfinner koeffisientvektorer eksakt. For data utenfor kolonnerommet projiserer den først dataene på de mulige outputene.

Slik bekrefter du det. Kontroller både A†A=I2A^\dagger A=I_2 og den numeriske optimalitetskontrollen A⊤e=0A^\top e=0 over. Den første bekrefter inversegenskapen; den andre bekrefter at x†=A†bx^\dagger=A^\dagger b er minste-kvadratersløsningen.

Hurtigsjekk 22. Bruk

B=(100111),c=(124),B=\begin{pmatrix}1&0\\0&1\\1&1\end{pmatrix}, \qquad c=\begin{pmatrix}1\\2\\4\end{pmatrix},

og B†B^\dagger fra Hurtigsjekk 21. Regn ut de to radene i x†=B†cx^\dagger=B^\dagger c hver for seg. Finn deretter hver prediksjon i Bx†Bx^\dagger, hver komponent og hvert kvadrat i residualen r=c−Bx†r=c-Bx^\dagger, den kvadrerte feilen ∥r∥22\|r\|_2^2 og feilen ∥r∥2\|r\|_2. Forklar til slutt hvorfor B†B^\dagger teller som en invers her, og oppgi hvordan resultatet bekreftes.

Løsning

Steg 1: Finn koeffisientene.

x†=13(2−11−121)(124)=(4/37/3).x^\dagger =\frac13\begin{pmatrix}2&-1&1\\-1&2&1\end{pmatrix} \begin{pmatrix}1\\2\\4\end{pmatrix} =\begin{pmatrix}4/3\\7/3\end{pmatrix}.

Rad for rad får vi

x1=2(1)−1(2)+1(4)3=43,x2=−1(1)+2(2)+1(4)3=73.x_1=\frac{2(1)-1(2)+1(4)}3=\frac43, \qquad x_2=\frac{-1(1)+2(2)+1(4)}3=\frac73.

Steg 2: Regn ut hver prediksjon.

Radene i BB gir

(Bx†)1=43,(Bx†)2=73,(Bx†)3=43+73=113.(Bx^\dagger)_1=\frac43, \qquad (Bx^\dagger)_2=\frac73, \qquad (Bx^\dagger)_3=\frac43+\frac73=\frac{11}3.

Steg 3: Regn ut residualen og begge feilkonvensjonene.

Bx†=(4/37/311/3),r=c−Bx†=(−1/3−1/31/3).Bx^\dagger =\begin{pmatrix}4/3\\7/3\\11/3\end{pmatrix}, \qquad r=c-Bx^\dagger =\begin{pmatrix}-1/3\\-1/3\\1/3\end{pmatrix}.

Hvert residualkvadrat vises separat:

(−13)2=19,(−13)2=19,(13)2=19.\left(-\frac13\right)^2=\frac19, \qquad \left(-\frac13\right)^2=\frac19, \qquad \left(\frac13\right)^2=\frac19.

Dermed

∥r∥22=19+19+19=13,∥r∥2=13=13.\boxed{\|r\|_2^2=\frac19+\frac19+\frac19=\frac13}, \qquad \boxed{\|r\|_2=\sqrt{\frac13}=\frac1{\sqrt3}}.

Steg 4: Kontroller ortogonaliteten.

B⊤r=(r1+r3r2+r3)=(00).B^\top r =\begin{pmatrix}r_1+r_3\\r_2+r_3\end{pmatrix} =\begin{pmatrix}0\\0\end{pmatrix}.

Dermed er residualen vinkelrett på hele kolonnerommet.

Hvorfor dette er en invers. Hurtigsjekk 21 viste B†B=I2B^\dagger B=I_2, så B†B^\dagger er en venstreinvers: Den opphever BB eksakt på koeffisientvektorer.

Slik bekrefter du det. Bruk matrisekontrollen B†B=I2B^\dagger B=I_2 og løsningskontrollen B⊤r=0B^\top r=0. Det symmetriske produktet BB†BB^\dagger fra Hurtigsjekk 21 bekrefter at den tilpassede vektoren er den ortogonale projeksjonen av cc.

Bevisideen, én linje om gangen

Jeg vet at dette ser helt jævlig ut ved første øyekast, men hvert likhetstegn gjør bare én ting.

Siden ΣV⊤∈Rn×n\Sigma V^\top\in\mathbb R^{n\times n} er invertibel, kan vi skrive inputen som

x=VΣ−1y.x=V\Sigma^{-1}y.

Da blir

Ax=UΣV⊤VΣ−1y=Uy.Ax =U\Sigma V^\top V\Sigma^{-1}y =Uy.

Dermed er problemet

min⁡x∥Ax−b∥22\min_x\|Ax-b\|_2^2

det samme som

min⁡y∥Uy−b∥22.\min_y\|Uy-b\|_2^2.

Kolonnene i UU er ortonormale. Derfor er punktet UyUy nærmest bb den ortogonale projeksjonen

Uy=UU⊤b.Uy=UU^\top b.

Multipliser med U⊤U^\top:

y=U⊤b.y=U^\top b.

Sett dette tilbake i uttrykket for xx:

x=VΣ−1U⊤b=A†b.x=V\Sigma^{-1}U^\top b=A^\dagger b.

Det er hele bevisideen: roter, projiser, angre strekket, roter tilbake.

Se dette i praksis

Gjennomregnet minieksempel 23. Visualiser linjen og endre polynomgraden. Den heltrukne linjen under er resultatet fra minieksempel 22. Hvert loddrette linjestykke er én komponent i Ax†−bAx^\dagger-b.

Fire datapunkter, den tilpassede linjen q(t)=2+1,5t og de fire loddrette residualene.
Fire datapunkter, den tilpassede linjen q(t)=2+1,5t og de fire loddrette residualene.Full størrelse / Full size ↗

Konstantleddet 22 er den tilpassede verdien ved t=0t=0. Stigningstallet 1,51{,}5 sier at den tilpassede verdien øker med 1,51{,}5 når tt øker med én. Linjen bommer litt på tre punkter fordi fire dataverdier stiller fire krav til bare to koeffisienter.

Matrisen viser hvordan vi endrer modellen. Kolonnene er basisfunksjonene evaluert i datapunktene. Et andregradspolynom legger til kolonnen t2t^2:

A2=(1−11100111124)∈R4×3.A_2= \begin{pmatrix} 1&-1&1\\ 1&0&0\\ 1&1&1\\ 1&2&4 \end{pmatrix} \in\mathbb R^{4\times3}.

Matrisen er fortsatt høy og har full kolonnerang. Derfor er

A2†=(A2⊤A2)−1A2⊤.A_2^\dagger=(A_2^\top A_2)^{-1}A_2^\top.

For disse dataene blir andregradstilpasningen

q2(t)=2,05+1,55t−0,05t2,∥A2x−b∥2=510≈0,224.q_2(t)=2{,}05+1{,}55t-0{,}05t^2, \qquad \|A_2x-b\|_2=\frac{\sqrt5}{10}\approx0{,}224.

Et tredjegradspolynom legger til enda en kolonne:

A3=(1−11−1100011111248)∈R4×4.A_3= \begin{pmatrix} 1&-1&1&-1\\ 1&0&0&0\\ 1&1&1&1\\ 1&2&4&8 \end{pmatrix} \in\mathbb R^{4\times4}.

De fire inputverdiene er forskjellige. Derfor er denne kvadratiske Vandermonde-matrisen inverterbar. Dette er den viktige endringen:

A3†=A3−1.A_3^\dagger=A_3^{-1}.

For denne numeriske matrisen er

A3†=A3−1=(0100−1/3−1/21−1/61/2−11/20−1/61/2−1/21/6).A_3^\dagger=A_3^{-1} =\begin{pmatrix} 0&1&0&0\\ -1/3&-1/2&1&-1/6\\ 1/2&-1&1/2&0\\ -1/6&1/2&-1/2&1/6 \end{pmatrix}.

Tredjegradspolynomet interpolerer dermed alle fire datapunktene eksakt:

q3(t)=115+43t−310t2+16t3,∥A3x−b∥2=0.q_3(t)=\frac{11}{5}+\frac43t-\frac3{10}t^2+\frac16t^3, \qquad \|A_3x-b\|_2=0.

Null feil i disse fire punktene garanterer ikke bedre prediksjoner mellom eller utenfor dem. Det betyr bare at et tredjegradspolynom har nøyaktig fire koeffisienter til de fire interpolasjonskravene.

Hvorfor disse er inverser. De høye matrisene AA og A2A_2 har full kolonnerang, så pseudoinversene deres er venstreinverser. Den kvadratiske fullrangsmatrisen A3A_3 er annerledes: Pseudoinversen er den vanlige tosidige inversen.

Slik bekrefter du dem. For de høye tilpasningene kontrollerer du A†A=I2A^\dagger A=I_2, A2†A2=I3A_2^\dagger A_2=I_3 og residualortogonalitet. For den kvadratiske matrisen i tredjegradsmodellen gir direkte multiplikasjon i begge rekkefølger

A3†A3=A3A3†=I4.\boxed{A_3^\dagger A_3=A_3A_3^\dagger=I_4}.

Hurtigsjekk 23. For BB, cc og x†x^\dagger fra Hurtigsjekk 22: Beskriv range⁡(B)\operatorname{range}(B) med koordinater, og bruk residualen til å forklare hvorfor Bx†Bx^\dagger er punktet i kolonnerommet som ligger nærmest cc. Forklar hvorfor B†B^\dagger teller som en invers for denne høye matrisen, og oppgi de avsluttende matrise- og residualkontrollene.

Løsning

Steg 1: Beskriv de mulige outputene.

range⁡(B)={(αβα+β):α,β∈R}.\operatorname{range}(B) =\left\{ \begin{pmatrix}\alpha\\\beta\\\alpha+\beta\end{pmatrix} :\alpha,\beta\in\mathbb R \right\}.

Steg 2: Bruk residualtesten.

Fra forrige sjekk har vi

Bx†=(4/37/311/3),r=(−1/3−1/31/3).Bx^\dagger =\begin{pmatrix}4/3\\7/3\\11/3\end{pmatrix}, \qquad r=\begin{pmatrix}-1/3\\-1/3\\1/3\end{pmatrix}.

Siden B⊤r=0B^\top r=0, står rr vinkelrett på begge retningene som spenner opp kolonnerommet. Derfor kan ingen annen mulig output ligge nærmere cc.

Hvorfor dette er en invers. Siden BB har full kolonnerang, er B†B=I2B^\dagger B=I_2: B†B^\dagger er en venstreinvers på koeffisientvektorer.

Slik bekrefter du det. Matrisekontrollen er B†B=I2B^\dagger B=I_2, som ble regnet ut i Hurtigsjekk 21. Datakontrollen er B⊤r=0B^\top r=0, som ble regnet ut over. Produktet BB†BB^\dagger er en symmetrisk projeksjon på range⁡(B)\operatorname{range}(B).

Brede matriser: løsningen med minst norm

Anta at

A∈Rm×n,m<n,rank⁡(A)=m.A\in\mathbb R^{m\times n}, \qquad m<n, \qquad \operatorname{rank}(A)=m.

Matrisen har flere kolonner enn rader og full radrang. Med redusert SVD er

A†=VΣ−1U⊤∈Rn×m.A^\dagger=V\Sigma^{-1}U^\top \in\mathbb R^{n\times m}.

Nå er identitetene snudd sammenlignet med den høye matrisen:

AA†=Im,A†A=VV⊤=Pker⁡(A)⊥.AA^\dagger=I_m, \qquad A^\dagger A=VV^\top=P_{\ker(A)^\perp}.

Et underbestemt system har flere ukjente enn ligninger. Under antakelsen om full radrang er hver b∈Rmb\in\mathbb R^m oppnåelig, så systemet er alltid konsistent. Rang–nullitet gir dessuten

dim⁡ker⁡(A)=n−m>0,\dim\ker(A)=n-m>0,

så det finnes alltid uendelig mange eksakte løsninger. Pseudoinversen løser

min⁡x∥x∥2slik at Ax=b.\min_x\|x\|_2 \qquad \text{slik at }Ax=b.
Se dette i praksis

Gjennomregnet minieksempel 24. Finn pseudoinversen til den brede matrisen

A=(101011).A=\begin{pmatrix} 1&0&1\\ 0&1&1 \end{pmatrix}.

Bygg først den lille 2×22\times2-matrisen

AA⊤=(2112).AA^\top =\begin{pmatrix}2&1\\1&2\end{pmatrix}.

Inversen er

(AA⊤)−1=13(2−1−12).(AA^\top)^{-1} =\frac13\begin{pmatrix}2&-1\\-1&2\end{pmatrix}.

Dermed

A†=A⊤(AA⊤)−1=13(2−1−1211).A^\dagger =A^\top(AA^\top)^{-1} =\frac13\begin{pmatrix} 2&-1\\ -1&2\\ 1&1 \end{pmatrix}.

Pseudoinversen har form 3×23\times2. Riktig kontroll for denne fulle radrangen er

AA†=13(101011)(2−1−1211)=13(3003)=I2.AA^\dagger =\frac13 \begin{pmatrix}1&0&1\\0&1&1\end{pmatrix} \begin{pmatrix}2&-1\\-1&2\\1&1\end{pmatrix} =\frac13\begin{pmatrix}3&0\\0&3\end{pmatrix} =I_2.

Hvorfor dette er en invers. Identiteten AA†=I2AA^\dagger=I_2 gjør A†A^\dagger til en høyreinvers: Den gjenskaper enhver mulig output eksakt.

Slik bekrefter du det. I tillegg til multiplikasjonen over kontrollerer du at

A†A=13(2−11−121112)A^\dagger A =\frac13\begin{pmatrix} 2&-1&1\\ -1&2&1\\ 1&1&2 \end{pmatrix}

er symmetrisk. Dette er den ortogonale projeksjonen som fjerner inputkomponenter i ker⁡(A)\ker(A).

Hurtigsjekk 24. La

B=(10101−1).B=\begin{pmatrix} 1&0&1\\ 0&1&-1 \end{pmatrix}.

Finn B†B^\dagger med B⊤(BB⊤)−1B^\top(BB^\top)^{-1}, oppgi dimensjonen og kontroller BB†=I2BB^\dagger=I_2. Forklar hvorfor dette gjør B†B^\dagger til en invers i det brede tilfellet, og bekreft at B†BB^\dagger B er en symmetrisk projeksjon.

Løsning

Steg 1: Bygg og inverter Gram-matrisen.

BB⊤=(2−1−12),(BB⊤)−1=13(2112).BB^\top =\begin{pmatrix}2&-1\\-1&2\end{pmatrix}, \qquad (BB^\top)^{-1} =\frac13\begin{pmatrix}2&1\\1&2\end{pmatrix}.

Steg 2: Multipliser fra venstre med B⊤B^\top.

B†=13(21121−1)∈R3×2.B^\dagger =\frac13\begin{pmatrix} 2&1\\ 1&2\\ 1&-1 \end{pmatrix} \in\mathbb R^{3\times2}.

Steg 3: Kontroller høyreinversen.

BB†=13(3003)=I2.BB^\dagger =\frac13\begin{pmatrix}3&0\\0&3\end{pmatrix} =I_2.

Hvorfor dette er en invers. Identiteten BB†=I2BB^\dagger=I_2 sier at B†B^\dagger er en høyreinvers: Hvis vi først bruker B†B^\dagger og deretter BB, får vi enhver outputvektor uendret tilbake.

Slik bekrefter du det. I motsatt rekkefølge får vi

B†B=13(21112−11−12),B^\dagger B =\frac13\begin{pmatrix} 2&1&1\\ 1&2&-1\\ 1&-1&2 \end{pmatrix},

som er symmetrisk. Dermed er dette den ortogonale projeksjonen på ker⁡(B)⊥\ker(B)^\perp, mens BB†=I2BB^\dagger=I_2 bekrefter høyreinversegenskapen.

Se dette i praksis

Gjennomregnet minieksempel 25. Løs

Ax=b,b=(33),Ax=b, \qquad b=\begin{pmatrix}3\\3\end{pmatrix},

med matrisen fra minieksempel 24. Pseudoinversen gir

x†=A†b=13(2−1−1211)(33)=(112).x^\dagger=A^\dagger b =\frac13\begin{pmatrix} 2&-1\\ -1&2\\ 1&1 \end{pmatrix} \begin{pmatrix}3\\3\end{pmatrix} =\begin{pmatrix}1\\1\\2\end{pmatrix}.

Dette er en eksakt løsning:

Ax†=(1+21+2)=(33)=b.Ax^\dagger =\begin{pmatrix}1+2\\1+2\end{pmatrix} =\begin{pmatrix}3\\3\end{pmatrix} =b.

Men den er ikke den eneste. Alle løsninger kan skrives

x=(112)+t(−1−11),t∈R.x =\begin{pmatrix}1\\1\\2\end{pmatrix} +t\begin{pmatrix}-1\\-1\\1\end{pmatrix}, \qquad t\in\mathbb R.

Den siste vektoren ligger i kjernen til AA. Dessuten er den ortogonal på x†x^\dagger, så

∥x∥22=∥x†∥22+3t2=6+3t2.\|x\|_2^2 =\|x^\dagger\|_2^2 +3t^2 =6+3t^2.

Normen er minst for t=0t=0.

Hvorfor dette er en invers. Minieksempel 24 viste AA†=I2AA^\dagger=I_2, så A†A^\dagger er en høyreinvers og garanterer Ax†=bAx^\dagger=b for enhver b∈R2b\in\mathbb R^2.

Slik bekrefter du det. Her er

x†⋅(−1−11)=−1−1+2=0.x^\dagger\cdot\begin{pmatrix}-1\\-1\\1\end{pmatrix} =-1-1+2=0.

Høyreinverskontrollen bekrefter eksakthet, og denne ortogonaliteten til ker⁡(A)\ker(A) bekrefter at ingen kjernevektor kan gjøre løsningen kortere.

Hurtigsjekk 25. Bruk

B=(10101−1),c=(11).B=\begin{pmatrix}1&0&1\\0&1&-1\end{pmatrix}, \qquad c=\begin{pmatrix}1\\1\end{pmatrix}.

Finn x†=B†cx^\dagger=B^\dagger c. Skriv deretter alle eksakte løsninger som x†+tzx^\dagger+t z, der zz spenner opp ker⁡(B)\ker(B), og forklar hvorfor t=0t=0 gir minst norm. Forklar hvorfor B†B^\dagger teller som en invers i dette brede tilfellet, og oppgi både eksakthets- og minstenormskontrollen.

Løsning

Steg 1: Finn pseudoinversløsningen.

x†=13(21121−1)(11)=(110).x^\dagger =\frac13\begin{pmatrix}2&1\\1&2\\1&-1\end{pmatrix} \begin{pmatrix}1\\1\end{pmatrix} =\begin{pmatrix}1\\1\\0\end{pmatrix}.

Steg 2: Finn kjernefriheten.

Ligningene er x1+x3=1x_1+x_3=1 og x2−x3=1x_2-x_3=1. Derfor

x=(110)+t(−111).x =\begin{pmatrix}1\\1\\0\end{pmatrix} +t\begin{pmatrix}-1\\1\\1\end{pmatrix}.

Steg 3: Sammenlign normene.

Kjernevektoren er ortogonal på x†x^\dagger fordi −1+1+0=0-1+1+0=0. Dermed

∥x∥22=2+3t2,\|x\|_2^2=2+3t^2,

som er minst for t=0t=0.

Hvorfor dette er en invers. Hurtigsjekk 24 ga BB†=I2BB^\dagger=I_2, så B†B^\dagger er en høyreinvers og Bx†=cBx^\dagger=c er eksakt.

Slik bekrefter du det. Kontroller BB†=I2BB^\dagger=I_2 og

x†⋅(−111)=−1+1+0=0.x^\dagger\cdot\begin{pmatrix}-1\\1\\1\end{pmatrix} =-1+1+0=0.

Den første testen bekrefter inversegenskapen; den andre bekrefter minst norm blant alle eksakte løsninger.

Bevisideen for minst norm, én linje om gangen

Sett

x†=A†b.x^\dagger=A^\dagger b.

Siden AA har full radrang,

Ax†=AA†b=b.Ax^\dagger=AA^\dagger b=b.

Altså er x†x^\dagger en eksakt løsning. La yy være en annen eksakt løsning. Da

Ay=bAy=b

og derfor

A†Ay=A†b=x†.A^\dagger Ay=A^\dagger b=x^\dagger.

Men A†AA^\dagger A er en ortogonal projeksjon. En projeksjon kan ikke gjøre en vektor lengre:

∥x†∥2=∥A†Ay∥2≤∥y∥2.\|x^\dagger\|_2 =\|A^\dagger Ay\|_2 \le \|y\|_2.

Dermed er pseudoinversløsningen den korteste eksakte løsningen.

Se dette i praksis

Gjennomregnet minieksempel 26. For systemet i minieksempel 25 er

x†=(112).x^\dagger=\begin{pmatrix}1\\1\\2\end{pmatrix}.

En annen eksakt løsning er

y=(330).y=\begin{pmatrix}3\\3\\0\end{pmatrix}.

Forskjellen er en kjernevektor:

y−x†=(22−2),A(y−x†)=0.y-x^\dagger =\begin{pmatrix}2\\2\\-2\end{pmatrix}, \qquad A(y-x^\dagger)=0.

Sammenlign normene:

∥x†∥2=6,∥y∥2=18.\|x^\dagger\|_2=\sqrt6, \qquad \|y\|_2=\sqrt{18}.

Begge treffer dataene nøyaktig. Pseudoinversen vinner bare fordi den unngår den unødvendige kjernekomponenten.

Hvorfor dette er en invers. Den samme identiteten AA†=I2AA^\dagger=I_2 fra minieksempel 24 gjør A†A^\dagger til en høyreinvers, så begge vektorene gjenskaper den ønskede outputen.

Slik bekrefter du det. Forskjellen ligger i ker⁡(A)\ker(A), og

(x†)⊤(y−x†)=2+2−4=0.(x^\dagger)^\top(y-x^\dagger)=2+2-4=0.

Høyreinversidentiteten bekrefter eksakthet, mens ortogonaliteten til kjernen bekrefter at x†x^\dagger har minst norm.

Hurtigsjekk 26. For systemet i Hurtigsjekk 25 er

x†=(110).x^\dagger=\begin{pmatrix}1\\1\\0\end{pmatrix}.

Vis at

y=(021)y=\begin{pmatrix}0\\2\\1\end{pmatrix}

også er en løsning. Finn y−x†y-x^\dagger, kontroller at forskjellen ligger i ker⁡(B)\ker(B), og sammenlign normene. Forklar hvorfor B†B^\dagger teller som en invers, og oppgi sluttkontrollene for eksakthet og minst norm.

Løsning

Steg 1: Kontroller begge løsningene.

By=(0+12−1)=(11)=c.By =\begin{pmatrix}0+1\\2-1\end{pmatrix} =\begin{pmatrix}1\\1\end{pmatrix} =c.

Steg 2: Finn kjernekomponenten og normene.

y−x†=(−111),B(y−x†)=0.y-x^\dagger =\begin{pmatrix}-1\\1\\1\end{pmatrix}, \qquad B(y-x^\dagger)=0.

Videre er

∥x†∥2=2,∥y∥2=5.\|x^\dagger\|_2=\sqrt2, \qquad \|y\|_2=\sqrt5.

Den ekstra kjernekomponenten endrer ikke outputen, men gjør løsningen lengre.

Hvorfor dette er en invers. Siden BB†=I2BB^\dagger=I_2, er B†B^\dagger en høyreinvers og Bx†=cBx^\dagger=c er eksakt.

Slik bekrefter du det. I tillegg til BB†=I2BB^\dagger=I_2 kontrollerer du

(x†)⊤(y−x†)=−1+1+0=0.(x^\dagger)^\top(y-x^\dagger)=-1+1+0=0.

Forskjellen ligger i ker⁡(B)\ker(B), så denne ortogonaliteten viser at den bare kan øke normen.

Til venstre projiseres data på kolonnerommet i et overbestemt problem. Til høyre velges punktet med minst norm blant mange eksakte løsninger i et underbestemt problem.
Til venstre projiseres data på kolonnerommet i et overbestemt problem. Til høyre velges punktet med minst norm blant mange eksakte løsninger i et underbestemt problem.Full størrelse / Full size ↗

Generell rangmangel: best tilpasning først, minst norm deretter

Dette er punktet der form alene slutter å være nok. En matrise kan være høy, bred eller kvadratisk og likevel ha rangmangel.

Behold derfor én sikker regel. Hvis

A=∑i=1rσiuivi⊤=UrΣrVr⊤A=\sum_{i=1}^r\sigma_i u_iv_i^\top =U_r\Sigma_rV_r^\top

er den kompakte SVD-en, så

A†=∑i=1r1σiviui⊤=VrΣr−1Ur⊤.A^\dagger =\sum_{i=1}^r\frac1{\sigma_i}v_iu_i^\top =V_r\Sigma_r^{-1}U_r^\top.

Bare positive singulærverdier inverteres.

Se dette i praksis

Gjennomregnet minieksempel 27. La

A=(1224),b=(36).A=\begin{pmatrix}1&2\\2&4\end{pmatrix}, \qquad b=\begin{pmatrix}3\\6\end{pmatrix}.

Matrisen er kvadratisk, men ikke invertibel: Den andre kolonnen er to ganger den første, så rank⁡(A)=1\operatorname{rank}(A)=1.

Dette er også en symmetrisk positiv semidefinit rang-1-matrise. Fra SVD-eksemplet tidligere har vi

σ1=5,u1=v1=15(12).\sigma_1=5, \qquad u_1=v_1 =\frac1{\sqrt5}\begin{pmatrix}1\\2\end{pmatrix}.

Derfor

A†=1σ1v1u1⊤=125(1224).A^\dagger =\frac1{\sigma_1}v_1u_1^\top =\frac1{25}\begin{pmatrix}1&2\\2&4\end{pmatrix}.

Løsningen blir

x†=A†b=125(1224)(36)=(3/56/5).x^\dagger=A^\dagger b =\frac1{25}\begin{pmatrix}1&2\\2&4\end{pmatrix} \begin{pmatrix}3\\6\end{pmatrix} =\begin{pmatrix}3/5\\6/5\end{pmatrix}.

Multipliser tilbake:

Ax†=(36)=b.Ax^\dagger =\begin{pmatrix}3\\6\end{pmatrix} =b.

Feilen er null fordi bb ligger i verdirommet:

b=3(12).b=3\begin{pmatrix}1\\2\end{pmatrix}.

Det finnes likevel uendelig mange løsninger:

x=(3/56/5)+t(−21).x =\begin{pmatrix}3/5\\6/5\end{pmatrix} +t\begin{pmatrix}-2\\1\end{pmatrix}.

Kjernevektoren står vinkelrett på x†x^\dagger. Derfor velger pseudoinversen t=0t=0 og dermed løsningen med minst norm.

Hvorfor dette er en invers. Ingen vanlig invers finnes, men A†A^\dagger reverserer den ene positive singulærretningen og lar den kollapsede retningen være null. Det er nettopp rollen til den generaliserte inversen.

Slik bekrefter du det. Siden A2=5AA^2=5A, er

AA†=A†A=15AAA^\dagger=A^\dagger A=\frac15A

symmetrisk, og dette gir AA†A=AAA^\dagger A=A og A†AA†=A†A^\dagger AA^\dagger=A^\dagger. Dermed er alle fire Moore–Penrose-betingelsene kontrollert.

Hurtigsjekk 27. La

C=(4221),d=(84).C=\begin{pmatrix}4&2\\2&1\end{pmatrix}, \qquad d=\begin{pmatrix}8\\4\end{pmatrix}.

a) Vis raskt at CC har rang 1 og er positiv semidefinit.

b) Bruk σ1=5\sigma_1=5 til å finne C†C^\dagger.

c) Finn x†=C†dx^\dagger=C^\dagger d, kontroller Cx†=dCx^\dagger=d, og beskriv alle løsninger.

d) Forklar hvorfor C†C^\dagger teller som en generalisert invers, og bekreft det med rekonstruksjons- og symmetrikontrollene.

Løsning

Steg 1: Se rang-1-mønsteret.

C=(21)(21).C=\begin{pmatrix}2\\1\end{pmatrix} \begin{pmatrix}2&1\end{pmatrix}.

Dermed er CC symmetrisk positiv semidefinit med rang 1 og eneste positive singulærverdi

∥(21)∥22=5.\left\|\begin{pmatrix}2\\1\end{pmatrix}\right\|_2^2=5.

Steg 2: Inverter den positive singulærverdien.

C†=125(4221).C^\dagger =\frac1{25}\begin{pmatrix}4&2\\2&1\end{pmatrix}.

Steg 3: Løs og finn kjernefriheten.

x†=C†d=(8/54/5).x^\dagger=C^\dagger d =\begin{pmatrix}8/5\\4/5\end{pmatrix}.

Kontrollen regnes helt ut:

Cx†=(4221)(8/54/5)=(40/520/5)=(84)=d.Cx^\dagger =\begin{pmatrix}4&2\\2&1\end{pmatrix} \begin{pmatrix}8/5\\4/5\end{pmatrix} =\begin{pmatrix}40/5\\20/5\end{pmatrix} =\begin{pmatrix}8\\4\end{pmatrix} =d.

Siden

ker⁡(C)=span⁡{(−12)},\ker(C)=\operatorname{span}\left\{\begin{pmatrix}-1\\2\end{pmatrix}\right\},

er alle løsninger

x=(8/54/5)+t(−12).x=\begin{pmatrix}8/5\\4/5\end{pmatrix} +t\begin{pmatrix}-1\\2\end{pmatrix}.

Hvorfor dette er en invers. CC har ingen vanlig invers, men C†C^\dagger reverserer den ene positive singulærretningen og lar ker⁡(C)\ker(C) være null.

Slik bekrefter du det. Siden C2=5CC^2=5C, er

CC†=C†C=15CCC^\dagger=C^\dagger C=\frac15C

symmetrisk. Derfor er CC†C=CCC^\dagger C=C og C†CC†=C†C^\dagger CC^\dagger=C^\dagger, som bekrefter alle fire Penrose-ligningene. Dessuten er

(x†)⊤(−12)=−85+85=0,(x^\dagger)^\top\begin{pmatrix}-1\\2\end{pmatrix} =-\frac85+\frac85=0,

som bekrefter minstenormsvalget.

Moore–Penrose-inversen kjennetegnes entydig av fire ligninger:

AA†A=A,A†AA†=A†,AA^\dagger A=A, \qquad A^\dagger AA^\dagger=A^\dagger, (AA†)⊤=AA†,(A†A)⊤=A†A.(AA^\dagger)^\top=AA^\dagger, \qquad (A^\dagger A)^\top=A^\dagger A.

De to første sier «rekonstruer det som kan rekonstrueres». De to siste sier at projektorene er ortogonale, ikke skjeve.

Se dette i praksis

Gjennomregnet minieksempel 28. For rang-1-matrisen fra minieksempel 27 er

A†=125A.A^\dagger=\frac1{25}A.

Siden A2=5AA^2=5A, får vi

AA†=A†A=15A=15(1224).AA^\dagger=A^\dagger A =\frac15A =\frac15\begin{pmatrix}1&2\\2&4\end{pmatrix}.

Dette er den ortogonale projeksjonen på

span⁡{(12)}.\operatorname{span}\left\{\begin{pmatrix}1\\2\end{pmatrix}\right\}.

Den er symmetrisk. Dessuten

AA†A=15A2=A,AA^\dagger A =\frac15A^2 =A,

og tilsvarende A†AA†=A†A^\dagger AA^\dagger=A^\dagger.

Hvorfor dette er en invers. Selv om AA er singulær, rekonstruerer A†A^\dagger alt i den overlevende singulærretningen og bruker ortogonale projeksjoner i retningene som ikke kan inverteres.

Slik bekrefter du det. De to rekonstruksjonsligningene over og symmetrien til både AA†AA^\dagger og A†AA^\dagger A er akkurat de fire Moore–Penrose-ligningene.

Hurtigsjekk 28. Bruk CC og C†C^\dagger fra Hurtigsjekk 27. Finn CC†CC^\dagger og C†CC^\dagger C, kontroller alle fire Penrose-ligningene, og bruk dem til å forklare hvorfor C†C^\dagger teller som en generalisert invers.

Løsning

Steg 1: Finn de to projektorproduktene.

Siden C2=5CC^2=5C,

CC†=C†C=15C=15(4221).CC^\dagger=C^\dagger C =\frac15C =\frac15\begin{pmatrix}4&2\\2&1\end{pmatrix}.

Begge er symmetriske.

Steg 2: Kontroller rekonstruksjonene.

CC†C=15C2=C,CC^\dagger C =\frac15C^2=C,

og

C†CC†=125C 15C=1125C2=125C=C†.C^\dagger CC^\dagger =\frac1{25}C\,\frac15C =\frac1{125}C^2 =\frac1{25}C =C^\dagger.

Dermed holder alle fire Penrose-ligningene.

Hvorfor dette er en invers. Rekonstruksjonsidentitetene viser at vi rekonstruerer alt som kan rekonstrueres når vi bruker CC, så C†C^\dagger, og så den opprinnelige avbildningen. De symmetriske produktene gjør operasjonene til ortogonale projeksjoner.

Slik bekrefter du det. Kontroller akkurat de fire ligningene som er regnet ut over: to rekonstruksjonsidentiteter og to symmetriidentiteter. At alle fire holder samtidig, bekrefter entydig Moore–Penrose-inversen.

For vilkårlige AA og bb følger x†=A†bx^\dagger=A^\dagger b alltid to prioriteringer:

  1. Minimer ∥Ax−b∥2\|Ax-b\|_2.
  2. Blant alle minimisatorer, velg den med minst ∥x∥2\|x\|_2.
Se dette i praksis

Gjennomregnet minieksempel 29. Behold

A=(1224),A=\begin{pmatrix}1&2\\2&4\end{pmatrix},

men bytt dataene til

b~=(10).\widetilde b=\begin{pmatrix}1\\0\end{pmatrix}.

Nå ligger ikke b~\widetilde b på linjen

span⁡{(12)}.\operatorname{span}\left\{\begin{pmatrix}1\\2\end{pmatrix}\right\}.

Pseudoinversen gir

x~=A†b~=(1/252/25).\widetilde x =A^\dagger\widetilde b =\begin{pmatrix}1/25\\2/25\end{pmatrix}.

Den best mulige outputen er

Ax~=AA†b~=(1/52/5).A\widetilde x =AA^\dagger\widetilde b =\begin{pmatrix}1/5\\2/5\end{pmatrix}.

Residualen er

b~−Ax~=(4/5−2/5),\widetilde b-A\widetilde x =\begin{pmatrix}4/5\\-2/5\end{pmatrix},

med norm

∥b~−Ax~∥2=25.\left\|\widetilde b-A\widetilde x\right\|_2 =\frac2{\sqrt5}.

Den står vinkelrett på verdirommet. Alle minste-kvadraters minimisatorer er

x=x~+t(−21),x=\widetilde x+t\begin{pmatrix}-2\\1\end{pmatrix},

og pseudoinversen velger igjen t=0t=0.

Hvorfor dette er en invers. Den samme A†A^\dagger som ble kontrollert i minieksempel 28, reverserer den overlevende singulærretningen. For uoppnåelige data gir AA†AA^\dagger den nærmeste mulige outputen i stedet for å late som en tosidig invers finnes.

Slik bekrefter du det. De fire Penrose-kontrollene står i minieksempel 28. For denne datavektoren kontrollerer du i tillegg

A⊤(b~−Ax~)=(1224)(4/5−2/5)=(00),x~⊤(−21)=−225+225=0.A^\top\left(\widetilde b-A\widetilde x\right) =\begin{pmatrix}1&2\\2&4\end{pmatrix} \begin{pmatrix}4/5\\-2/5\end{pmatrix} =\begin{pmatrix}0\\0\end{pmatrix}, \qquad \widetilde x^\top\begin{pmatrix}-2\\1\end{pmatrix} =-\frac2{25}+\frac2{25}=0.

Den første bekrefter beste tilpasning; den andre bekrefter minst norm.

Hurtigsjekk 29. Bruk

C=(4221),e=(01).C=\begin{pmatrix}4&2\\2&1\end{pmatrix}, \qquad e=\begin{pmatrix}0\\1\end{pmatrix}.

Finn x†=C†ex^\dagger=C^\dagger e, den best mulige outputen Cx†Cx^\dagger, residualen og residualnormen. Beskriv til slutt alle minste-kvadraters minimisatorer. Forklar hvorfor C†C^\dagger teller som en generalisert invers, og oppgi både matrise- og løsningskontrollene som bekrefter den.

Løsning

Steg 1: Finn pseudoinversløsningen.

x†=125(4221)(01)=(2/251/25).x^\dagger =\frac1{25}\begin{pmatrix}4&2\\2&1\end{pmatrix} \begin{pmatrix}0\\1\end{pmatrix} =\begin{pmatrix}2/25\\1/25\end{pmatrix}.

Steg 2: Finn tilpasning og residual.

Cx†=(2/51/5),r=e−Cx†=(−2/54/5).Cx^\dagger =\begin{pmatrix}2/5\\1/5\end{pmatrix}, \qquad r=e-Cx^\dagger =\begin{pmatrix}-2/5\\4/5\end{pmatrix}.

Dermed

∥r∥2=25.\|r\|_2=\frac2{\sqrt5}.

Steg 3: Legg til kjernefriheten.

Alle beste tilpasninger er

x=(2/251/25)+t(−12).x=\begin{pmatrix}2/25\\1/25\end{pmatrix} +t\begin{pmatrix}-1\\2\end{pmatrix}.

Pseudoinversen velger t=0t=0, fordi kjernevektoren er ortogonal på x†x^\dagger og alle andre valg øker normen.

Hvorfor dette er en invers. Hurtigsjekk 28 bekreftet alle fire Penrose-ligningene for denne C†C^\dagger. Dermed er den den entydige generaliserte inversen som bruker ortogonale projeksjoner.

Slik bekrefter du det. Bruk de fire matriseidentitetene fra Hurtigsjekk 28 om igjen. For løsningen kontrollerer du numerisk at

C⊤r=(4221)(−2/54/5)=(00),(x†)⊤(−12)=−225+225=0.C^\top r =\begin{pmatrix}4&2\\2&1\end{pmatrix} \begin{pmatrix}-2/5\\4/5\end{pmatrix} =\begin{pmatrix}0\\0\end{pmatrix}, \qquad (x^\dagger)^\top\begin{pmatrix}-1\\2\end{pmatrix} =-\frac2{25}+\frac2{25}=0.

Disse to testene bekrefter prioriteringene beste tilpasning og minst norm.

Eksempel fra den håndregnede SVD-en

Pseudoinversen bruker de samme singulærretningene som det fulle SVD-eksemplet, men reverserer bare de positive strekkene og snur rekkefølgen på ytterfaktorene. Åpne utregningen for hele matriseproduktet og begge projeksjonskontrollene.

Full utregning: pseudoinversen til den håndregnede matrisen

For den korrigerte forelesningsmatrisen

A=(132231)A=\begin{pmatrix}1&3\\2&2\\3&1\end{pmatrix}

bruker vi SVD-en fra Del 2.

Steg 1: inverter bare de positive singulærverdiene.

Σr−1=(1/24001/2).\Sigma_r^{-1} =\begin{pmatrix}1/\sqrt{24}&0\\0&1/2\end{pmatrix}.

Steg 2: snu rekkefølgen på singulærvektorfaktorene. Formelen er A†=VrΣr−1Ur⊤A^\dagger=V_r\Sigma_r^{-1}U_r^\top, ikke UrΣr−1Vr⊤U_r\Sigma_r^{-1}V_r^\top. Dimensjonene er

(2×2)(2×2)(2×3)=2×3,(2\times2)(2\times2)(2\times3)=2\times3,

som er den motsatte formen av AA.

Steg 3: sett inn matrisene.

A†=12(111−1)(1/24001/2)(1/31/31/3−1/201/2).A^\dagger =\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix} \begin{pmatrix}1/\sqrt{24}&0\\0&1/2\end{pmatrix} \begin{pmatrix}1/\sqrt3&1/\sqrt3&1/\sqrt3\\-1/\sqrt2&0&1/\sqrt2\end{pmatrix}.

Multiplikasjon gir

A†=(−1/61/121/31/31/12−1/6).A^\dagger =\begin{pmatrix}-1/6&1/12&1/3\\1/3&1/12&-1/6\end{pmatrix}.

Steg 4: kontroller identiteten som passer for en høy matrise med full kolonnerang.

A†A=I2.A^\dagger A=I_2.

Det motsatte produktet er en 3×33\times3-projeksjon, ikke I3I_3:

AA†=(5/61/3−1/61/31/31/3−1/61/35/6).AA^\dagger =\begin{pmatrix}5/6&1/3&-1/6\\1/3&1/3&1/3\\-1/6&1/3&5/6\end{pmatrix}.

Det projiserer data på det todimensjonale kolonnerommet til AA.

Uavhengig Axia-kontroll. For A~=(200211)\widetilde A=\begin{pmatrix}2&0\\0&2\\1&1\end{pmatrix} inverterer vi 6\sqrt6 og 22 i den uavhengige SVD-en fra Del 2. Det gir

A~†=(5/12−1/121/6−1/125/121/6),\widetilde A^\dagger =\begin{pmatrix}5/12&-1/12&1/6\\-1/12&5/12&1/6\end{pmatrix},

og direkte multiplikasjon bekrefter A~†A~=I2\widetilde A^\dagger\widetilde A=I_2. Begge eksemplene viser at det er metoden, ikke ett bestemt sett med tall, som skal gjenbrukes.

Hvorfor dette er en invers. Begge matrisene er høye og har full kolonnerang. Derfor er pseudoinversene venstreinverser som gjenfinner enhver vektor i det todimensjonale koeffisientrommet eksakt.

Slik bekrefter du det. Multipliser i venstreinversrekkefølgen og få A†A=I2A^\dagger A=I_2 og A~†A~=I2\widetilde A^\dagger\widetilde A=I_2. I motsatt rekkefølge kontrollerer du at AA†AA^\dagger og A~A~†\widetilde A\widetilde A^\dagger er symmetriske projeksjoner. For en minste-kvadraters datavektor skal den tilhørende residualen også oppfylle A⊤r=0A^\top r=0.

Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …

Del 5 · Trunkert SVD og L-kurvemetoden

Små singulærverdier og støy

Hvorfor er støy et problem?

Pseudoinversen deler på singulærverdier.

Det er ufarlig for store verdier. For bittesmå verdier kan det være katastrofalt.

La de målte dataene være

bδ=b+nδ,∥nδ∥2≤δ,b^\delta=b+n^\delta, \qquad \|n^\delta\|_2\le\delta,

og la x†=A†bx^\dagger=A^\dagger b. Den uregulariserte løsningen fra de støyete dataene er

xδ=A†bδ=x†+A†nδ.x^\delta=A^\dagger b^\delta =x^\dagger+A^\dagger n^\delta.

Når r≥1r\ge1, er ∥A†∥2=1/σr\|A^\dagger\|_2=1/\sigma_r, så den eksakte formelen for verst mulig forsterkning er

max⁡∥e∥2≤δ∥A†e∥2=max⁡∥nδ∥2≤δ∥xδ−x†∥2=δσr.\max_{\|e\|_2\le\delta}\|A^\dagger e\|_2 = \max_{\|n^\delta\|_2\le\delta} \|x^\delta-x^\dagger\|_2 =\frac{\delta}{\sigma_r}.
Se dette i praksis

Gjennomregnet minieksempel 30. Hvis σr=0,001\sigma_r=0{,}001 og δ=0,01\delta=0{,}01, er den verst mulige forsterkningen

δσr=0,010,001=10.\frac{\delta}{\sigma_r}=\frac{0{,}01}{0{,}001}=10.

En datafeil med størrelse 0,010{,}01 kan altså skape en løsningsfeil med størrelse 1010.

Hurtigsjekk 30. Finn den verste feilgrensen når σr=0,002\sigma_r=0{,}002 og δ=0,006\delta=0{,}006.

Løsning

Fasit:

δσr=0,0060,002=3.\frac{\delta}{\sigma_r}=\frac{0{,}006}{0{,}002}=3.

Dermed kan datastøy med norm høyst 0,0060{,}006 gi en løsningsfeil så stor som 33 i den verst orienterte retningen.

Forklaring: Operatornormen til pseudoinversen er 1/σr1/\sigma_r, så den farligste støyen peker langs den tilhørende venstre singulærretningen.

Trunkering av små singulærverdier

Løsningen er bevisst: Vi slutter å invertere retninger som er for ustabile.

For en terskel ε>0\varepsilon>0 definerer vi

Aε=∑σi≥εσiuivi⊤,Aε†=∑σi≥ε1σiviui⊤.A_\varepsilon =\sum_{\sigma_i\ge\varepsilon}\sigma_i u_iv_i^\top, \qquad A_\varepsilon^\dagger =\sum_{\sigma_i\ge\varepsilon}\frac1{\sigma_i}v_iu_i^\top.

For støyfrie data definerer vi xε=Aε†bx_\varepsilon=A_\varepsilon^\dagger b; for målte data definerer vi xεδ=Aε†bδx_\varepsilon^\delta=A_\varepsilon^\dagger b^\delta.

Terskelen ε\varepsilon er tillitsgrensen. Verdier over grensen brukes; verdier under grensen forkastes.

Se dette i praksis

Gjennomregnet minieksempel 31. Anta at singulærverdiene er 5,1,0,015,1,0{,}01 og velg ε=0,1\varepsilon=0{,}1. Vi beholder 55 og 11, men forkaster 0,010{,}01. Den trunkerte pseudoinversen bruker 1/51/5 og 11, men unngår den farlige faktoren 1/0,01=1001/0{,}01=100.

Hurtigsjekk 31. Singulærverdiene er 8,0,4,0,028,0{,}4,0{,}02, og ε=0,1\varepsilon=0{,}1. Hvilke verdier beholdes, og hvilke inverse faktorer står i Aε†A_\varepsilon^\dagger?

Løsning

Fasit: Behold 88 og 0,40{,}4, forkast 0,020{,}02, og bruk faktorene 1/81/8 og 1/0,4=2,51/0{,}4=2{,}5.

Forklaring: Bare singulærverdier som er minst ε=0,1\varepsilon=0{,}1, regnes som pålitelige. Den farlige faktoren 1/0,02=501/0{,}02=50 tas derfor ikke med.

Oppdeling av feilen

Det er her notasjonen blir tung. Hold to bokser i hodet: Trunkering gir skjevhet selv med støyfrie data, mens beholdte små singulærverdier forsterker målestøy.

Hvis b=Ax†b=Ax^\dagger, er

∥xεδ−x†∥2≤∥(I−Aε†A)x†∥2+δε.\|x_\varepsilon^\delta-x^\dagger\|_2 \le \|(I-A_\varepsilon^\dagger A)x^\dagger\|_2 +\frac{\delta}{\varepsilon}.

Det første leddet er informasjon som bevisst forkastes ved trunkering. Det andre er støyforsterkning. Liten ε\varepsilon mister mindre informasjon, men forsterker mer støy; stor ε\varepsilon gjør det motsatte.

Se dette i praksis

Gjennomregnet minieksempel 32. La δ=0,01\delta=0{,}01. Med ε=0,001\varepsilon=0{,}001 kan støyleddet bli så stort som 1010. Med ε=0,1\varepsilon=0{,}1 er det begrenset av 0,10{,}1. Den større terskelen er mer stabil, men kan forkaste flere nyttige retninger.

Hurtigsjekk 32. La δ=0,02\delta=0{,}02. Sammenlign støygrensene for ε=0,01\varepsilon=0{,}01 og ε=0,2\varepsilon=0{,}2.

Løsning

Fasit:

0,020,01=2,0,020,2=0,1.\frac{0{,}02}{0{,}01}=2, \qquad \frac{0{,}02}{0{,}2}=0{,}1.

Den større terskelen gir den minste støygrensen, men kan gi større trunkeringsfeil.

Forklaring: Støyleddet er δ/ε\delta/\varepsilon, så økningen fra 0,010{,}01 til 0,20{,}2 reduserer dette leddet fra 22 til 0,10{,}1.

Regulariseringsfeil uttrykt med koeffisienter

Minimumsnormløsningen ligger i span⁡{v1,…,vr}\operatorname{span}\{v_1,\ldots,v_r\} og kan skrives

x†=∑i=1rxi†vi.x^\dagger=\sum_{i=1}^r x_i^\dagger v_i.

Hvis terskelen forkaster alle σi<ε\sigma_i<\varepsilon, er

∥Aε†b−x†∥2=(∑σi<ε∣xi†∣2)1/2.\|A_\varepsilon^\dagger b-x^\dagger\|_2 =\left(\sum_{\sigma_i<\varepsilon}|x_i^\dagger|^2\right)^{1/2}.

Dette er ikke støyfeil. Det er nyttig innhold i løsningen som vi selv valgte å fjerne.

Se dette i praksis

Gjennomregnet minieksempel 33. La

x†=3v1+4v2+12v3x^\dagger=3v_1+4v_2+12v_3

og anta at terskelen forkaster den tredje retningen. Da er xε=3v1+4v2x_\varepsilon=3v_1+4v_2, og regulariseringsfeilen er ∥12v3∥2=12\|12v_3\|_2=12.

Hurtigsjekk 33. La x†=5v1+12v2+4v3x^\dagger=5v_1+12v_2+4v_3 med ortonormale viv_i, og forkast den tredje retningen. Finn den trunkerte løsningen og regulariseringsfeilen.

Løsning

Fasit:

xε=5v1+12v2,x†−xε=4v3.x_\varepsilon=5v_1+12v_2, \qquad x^\dagger-x_\varepsilon=4v_3.

Siden v3v_3 har lengde 11, er feilen 44.

Forklaring: Ortonormale retninger følger Pytagoras, og den eneste forkastede koeffisienten er 44.

Valg av kk i stedet for ε\varepsilon

I stedet for en terskel kan vi beholde nøyaktig de første kk singulærretningene:

Ak†=∑i=1k1σiviui⊤,xδ(k)=Ak†bδ.A_k^\dagger=\sum_{i=1}^k\frac1{\sigma_i}v_iu_i^\top, \qquad x_\delta^{(k)}=A_k^\dagger b^\delta.

Da er

∥xδ(k)∥22=∑i=1k∣⟨ui,bδ⟩∣2σi2,\|x_\delta^{(k)}\|_2^2 =\sum_{i=1}^k \frac{|\langle u_i,b^\delta\rangle|^2}{\sigma_i^2},

så løsningsnormen er ikke-avtakende i kk. Etter at u1,…,uru_1,\ldots,u_r er fullført til en ortonormal basis i datarommet, er

Axδ(k)−bδ=−∑i=k+1m⟨ui,bδ⟩ui,Ax_\delta^{(k)}-b^\delta =-\sum_{i=k+1}^{m}\langle u_i,b^\delta\rangle u_i,

så residualnormen er ikke-økende. Øvre grense er mm, dimensjonen til datarommet.

Se dette i praksis

Gjennomregnet minieksempel 34. For singulærverdiene 10,1,0,0110,1,0{,}01 bruker k=1k=1 bare den sterkeste retningen, k=2k=2 tar også med faktoren 11, og k=3k=3 deler på 0,010{,}01 og innfører faktoren 100100. Større kk kan gi bedre tilpasning, men en mye mindre stabil løsning.

Hurtigsjekk 34. For singulærverdiene 6,0,5,0,026,0{,}5,0{,}02, oppgi de inverse faktorene som innføres ved k=1,2,3k=1,2,3, og identifiser det risikable trinnet.

Løsning

Fasit: Faktorene er 1/61/6 ved k=1k=1, deretter 22 ved k=2k=2, og til slutt 5050 ved k=3k=3. Det risikable trinnet er k=3k=3.

Forklaring: Den tredje retningen deler på 0,020{,}02, så støy i denne retningen kan forstørres med 5050.

L-kurvemetoden

Se dette i praksis

Gjennomregnet minieksempel 35. Anta at vi har regnet ut

kkløsningsnormresidual
1110
224
342
4201,8
51001,7

Fram til k=3k=3 blir residualen mye mindre, mens løsningen vokser moderat. Etter k=3k=3 endres residualen nesten ikke, mens løsningsnormen eksploderer. Det sannsynlige hjørnet er k=3k=3.

Hurtigsjekk 35. Kun anvendelse: En ny tabell gir (0,8,12)(0{,}8,12), (1,5,5)(1{,}5,5), (3,2,2)(3,2{,}2), (18,2,0)(18,2{,}0) og (70,1,9)(70,1{,}9) for k=1,…,5k=1,\ldots,5, der hvert par er (løsningsnorm, residual). Finn det sannsynlige hjørnet og begrunn valget. Dette er tolkningsøving, ikke eksamensregning.

Løsning

Fasit: Det sannsynlige hjørnet er k=3k=3.

Forklaring: Fra k=1k=1 til 33 faller residualen fra 1212 til 2,22{,}2, mens normen bare vokser fra 0,80{,}8 til 33. Ved k=4k=4 og 55 blir residualen knapt mindre, men normen vokser til 1818 og 7070.

Oppsummering

  • Hver reell matrise har en SVD A=UΣV⊤A=U\Sigma V^\top.
  • Singulærverdiene er ikke-negative kvadratrøtter av egenverdiene til A⊤AA^\top A eller AA⊤AA^\top.
  • De positive singulærverdiene bestemmer rang, verdirom, kjerne og matrise-normer.
  • Trunkert SVD gir den beste lavrang-approksimasjonen i både spektralnorm og Frobenius-norm.
  • A†A^\dagger reverserer singulærretninger forskjellig fra null og gir minste-kvadraters løsningen med minst norm.
  • Små singulærverdier forsterker støy; trunkering bytter informasjon mot stabilitet.
Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …

Del 6 · Tensorer

Laster interaktiv modell / Loading interactive model …

Motivasjon

Strukturerte data har ofte mer enn to naturlige retninger. Et gråtonebilde med m×nm\times n piksler kan lagres som én matrise

A∈[0,1]m×n,A\in[0,1]^{m\times n},

der 00 betyr svart og 11 betyr hvitt. Et fargebilde trenger derimot én matrise for hver fargekanal,

R,G,B∈[0,1]m×n,R,G,B\in[0,1]^{m\times n},

og hele bildet kan derfor samles som

X∈[0,1]m×n×3.\mathcal X\in[0,1]^{m\times n\times3}.

En film trenger røde, grønne og blå matriser for hvert bilde i=1,…,Ni=1,\ldots,N, og får formen

X∈[0,1]m×n×3×N.\mathcal X\in[0,1]^{m\times n\times3\times N}.

Høyde, bredde, farge og tid er fire forskjellige modi, altså retninger i dataene. En romlig film kan i tillegg ha dybde og bli femdimensjonal.

Se dette i praksis

Et gråtonebilde med 2×32\times3 piksler kan lagres som

A=(010,5100,25).A= \begin{pmatrix} 0&1&0{,}5\\ 1&0&0{,}25 \end{pmatrix}.

Et fargebilde med samme størrelse trenger tre slike tabeller,

R,G,B∈R2×3.R,G,B\in\mathbb R^{2\times3}.

I stedet for å behandle dem som tre løse matriser, legger vi dem i én tensor

X∈R2×3×3.\mathcal X\in\mathbb R^{2\times3\times3}.

Den første modusen er høyde, den andre er bredde, og den tredje velger fargekanal. Ett bildeobjekt har altså tre naturlige retninger samtidig.

Hurtigsjekk 36. En videosnutt har 44 rader, 66 kolonner, tre fargekanaler og 88 bilder. Oppgi tensorens orden, form, betydningen av de fire modiene og antallet lagrede tall.

Løsning

Steg 1: Én indeks trengs for hver av retningene rad, kolonne, farge og tid. Tensoren har derfor orden 44.

Steg 2: Formen er

X∈R4×6×3×8.\mathcal X\in\mathbb R^{4\times6\times3\times8}.

Modus 11, 22, 33 og 44 betyr henholdsvis høyde, bredde, fargekanal og bildenummer.

Steg 3: Antallet tall er

4⋅6⋅3⋅8=576.4\cdot6\cdot3\cdot8=576.

Definisjon av en tensor

En matrise er en tensor av orden 22 fordi hvert tall trenger to indekser. Generelt trenger en tensor av orden dd nøyaktig dd indekser for å angi adressen til ett tall.

Se dette i praksis

Et tall trenger ingen indeks:

x=7,x=7,

så det er en tensor av orden 00.

En vektor trenger én indeks:

x=(251),x2=5,x=\begin{pmatrix}2\\5\\1\end{pmatrix}, \qquad x_2=5,

så den har orden 11.

En matrise trenger to indekser:

A=(1425),a2,1=2,A=\begin{pmatrix}1&4\\2&5\end{pmatrix}, \qquad a_{2,1}=2,

så den har orden 22.

En tensor X∈Rm×n×p\mathcal X\in\mathbb R^{m\times n\times p} trenger tre indekser. Adressen x2,1,3x_{2,1,3} betyr andre posisjon i modus 11, første posisjon i modus 22 og tredje posisjon i modus 33.

Hurtigsjekk 37. Klassifiser q=4q=4, v∈R5v\in\mathbb R^5, M∈R3×2M\in\mathbb R^{3\times2} og Y∈R3×2×4\mathcal Y\in\mathbb R^{3\times2\times4}. Hvor mange indekser trenger hvert objekt, og hva betyr y2,1,4y_{2,1,4}?

Løsning

Steg 1: qq er en skalar av orden 00, vv er en vektor av orden 11, MM er en matrise av orden 22, og Y\mathcal Y er en tensor av orden 33.

Steg 2: De trenger henholdsvis null, én, to og tre indekser for å velge én oppføring.

Steg 3: y2,1,4y_{2,1,4} er skalaren på posisjon 22 i første modus, posisjon 11 i andre modus og posisjon 44 i tredje modus.

Eksempler på tensorordener

dobjekttypisk rom0skalarx∈R1vektorx∈Rn2matriseA∈Rm×n3tredjeordens tensorX∈Rm×n×p\begin{array}{c|c|c} d&\text{objekt}&\text{typisk rom}\\ \hline 0&\text{skalar}&x\in\mathbb R\\ 1&\text{vektor}&x\in\mathbb R^n\\ 2&\text{matrise}&A\in\mathbb R^{m\times n}\\ 3&\text{tredjeordens tensor}&\mathcal X\in\mathbb R^{m\times n\times p} \end{array}

Orden er antallet indekser, ikke antallet tall, antallet lag eller tensor-rangen.

Notasjon

Kurset bruker notasjon som viser hva slags objekt vi arbeider med:

  • tall skrives med små bokstaver, for eksempel x∈Rx\in\mathbb R;
  • vektorer skrives med små fete bokstaver, for eksempel a∈Rm\mathbf a\in\mathbb R^m, og aia_i er én oppføring;
  • matriser skrives med store bokstaver, for eksempel A∈Rm×nA\in\mathbb R^{m\times n}, aja_j er kolonne jj, og aija_{ij} er én oppføring;
  • tensorer skrives med store fete eller kalligrafiske bokstaver, for eksempel X∈Rm×n×p\mathcal X\in\mathbb R^{m\times n\times p}.

Når du skriver for hånd, kan fete symboler markeres med understreking.

Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …

Del 7 · Indeksering av tensorer

Orden, fibre og snitt

En indeks er bare én koordinat i en adresse. For xijℓx_{ij\ell} velger ii rad, jj kolonne og ℓ\ell lag. Kolonet : betyr «la denne indeksen variere».

Les alltid indekser fra venstre mot høyre. Plass 11, 22 og 33 tilhører modus 11, 22 og 33 - også når noen av plassene inneholder kolon.

Fibre: fest alle unntatt én indeks

For en matrise A∈Rm×nA\in\mathbb R^{m\times n} er kolonne jj

a:j∈Rm,a_{:j}\in\mathbb R^m,

fordi jj er fast mens radindeksen varierer. Rad ii er tilsvarende ai:∈Rna_{i:}\in\mathbb R^n.

For X∈Rm×n×p\mathcal X\in\mathbb R^{m\times n\times p} kan to indekser festes og én få variere:

x:jℓ∈Rm(kolonnefiber, modus 1),x_{:j\ell}\in\mathbb R^m \quad\text{(kolonnefiber, modus 1)}, xi:ℓ∈Rn(radfiber, modus 2),x_{i:\ell}\in\mathbb R^n \quad\text{(radfiber, modus 2)}, xij:∈Rp(rørfiber, modus 3).x_{ij:}\in\mathbb R^p \quad\text{(rørfiber, modus 3)}.
Se dette i praksis

La X∈R2×2×2\mathcal X\in\mathbb R^{2\times2\times2} ha frontsnittene

X::1=(1234),X::2=(5678).X_{::1}=\begin{pmatrix}1&2\\3&4\end{pmatrix}, \qquad X_{::2}=\begin{pmatrix}5&6\\7&8\end{pmatrix}.

En kolonnefiber med j=1j=1 og ℓ=2\ell=2 er

x:1,2=(x1,1,2x2,1,2)=(57).x_{:1,2}=\begin{pmatrix}x_{1,1,2}\\x_{2,1,2}\end{pmatrix} =\begin{pmatrix}5\\7\end{pmatrix}.

En radfiber med i=2i=2 og ℓ=1\ell=1 er

x2,:,1=(34).x_{2,:,1}=\begin{pmatrix}3\\4\end{pmatrix}.

En rørfiber med i=1i=1 og j=2j=2 er

x1,2,:=(26).x_{1,2,:}=\begin{pmatrix}2\\6\end{pmatrix}.

I hvert tilfelle varierer akkurat én plass, så resultatet er en vektor.

Hurtigsjekk 38. La

Y::1=(2468),Y::2=(1357).Y_{::1}=\begin{pmatrix}2&4\\6&8\end{pmatrix}, \qquad Y_{::2}=\begin{pmatrix}1&3\\5&7\end{pmatrix}.

Finn y:2,2y_{:2,2}, y1,:,1y_{1,:,1} og y2,1,:y_{2,1,:}, og angi modusen til hver fiber.

Løsning

Steg 1: I y:2,2y_{:2,2} varierer første indeks. Vi leser kolonne 22 i andre frontsnitt:

y:2,2=(37),y_{:2,2}=\begin{pmatrix}3\\7\end{pmatrix},

en modus-11-fiber.

Steg 2: I y1,:,1y_{1,:,1} varierer andre indeks. Første rad i første frontsnitt gir

y1,:,1=(24),y_{1,:,1}=\begin{pmatrix}2\\4\end{pmatrix},

en modus-22-fiber.

Steg 3: I y2,1,:y_{2,1,:} varierer tredje indeks. Oppføringen på rad 22, kolonne 11 er 66 i første lag og 55 i andre:

y2,1,:=(65),y_{2,1,:}=\begin{pmatrix}6\\5\end{pmatrix},

en modus-33-fiber.

Snitt: fest én indeks

Hvis bare én indeks festes i en tredjeordens tensor, varierer to indekser, og resultatet er en matrise:

X::ℓ∈Rm×n(frontsnitt),X_{::\ell}\in\mathbb R^{m\times n}\quad\text{(frontsnitt)}, X:j:∈Rm×p(sidesnitt),X_{:j:}\in\mathbb R^{m\times p}\quad\text{(sidesnitt)}, Xi::∈Rn×p(horisontalsnitt).X_{i::}\in\mathbb R^{n\times p}\quad\text{(horisontalsnitt)}.
Se dette i praksis

Bruk tensoren

X::1=(1234),X::2=(5678).X_{::1}=\begin{pmatrix}1&2\\3&4\end{pmatrix}, \qquad X_{::2}=\begin{pmatrix}5&6\\7&8\end{pmatrix}.

Når ℓ=1\ell=1 er fast, får vi frontsnittet

X::1=(1234).X_{::1}=\begin{pmatrix}1&2\\3&4\end{pmatrix}.

Når j=2j=2 er fast, samler vi kolonne 22 fra begge lag:

X:2:=(2648).X_{:2:}=\begin{pmatrix}2&6\\4&8\end{pmatrix}.

Når i=1i=1 er fast, samler vi første rad fra begge lag:

X1::=(1526).X_{1::}=\begin{pmatrix}1&5\\2&6\end{pmatrix}.

To kolon betyr at to indekser varierer, så alle tre resultater er matriser.

Hurtigsjekk 39. Bruk tensoren fra hurtigsjekk 38. Finn Y::2Y_{::2}, Y:1:Y_{:1:} og Y2::Y_{2::}, og oppgi dimensjonen til hvert snitt.

Løsning

Steg 1: Andre frontsnitt er gitt direkte:

Y::2=(1357)∈R2×2.Y_{::2}=\begin{pmatrix}1&3\\5&7\end{pmatrix}\in\mathbb R^{2\times2}.

Steg 2: Kolonne 11 fra begge lag gir

Y:1:=(2165)∈R2×2.Y_{:1:}=\begin{pmatrix}2&1\\6&5\end{pmatrix}\in\mathbb R^{2\times2}.

Steg 3: Rad 22 fra begge lag gir

Y2::=(6587)∈R2×2.Y_{2::}=\begin{pmatrix}6&5\\8&7\end{pmatrix}\in\mathbb R^{2\times2}.
Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …

Del 8 · Indre og ytre produkter

Ytre produkter og tensor-rang

Laster interaktiv modell / Loading interactive model …

Indreprodukt og ytre produkt går i motsatt retning. Indreproduktet kollapser to vektorer til ett tall. Ytreproduktet bygger ut to vektorer til en matrise - og flere vektorer til en tensor.

Klassisk indreprodukt

For a,b∈Rna,b\in\mathbb R^n er indreproduktet skalaren

⟨a,b⟩=a⊤b=∑i=1naibi.\langle a,b\rangle=a^\top b=\sum_{i=1}^n a_i b_i.
Se dette i praksis

La

a=(123),b=(405).a=\begin{pmatrix}1\\2\\3\end{pmatrix}, \qquad b=\begin{pmatrix}4\\0\\5\end{pmatrix}.

Da er

⟨a,b⟩=1⋅4+2⋅0+3⋅5=19.\langle a,b\rangle =1\cdot4+2\cdot0+3\cdot5 =19.

Svaret er ett tall, ikke en vektor.

Hurtigsjekk 40. Regn ut indreproduktet mellom

u=(2−13),v=(14−2),u=\begin{pmatrix}2\\-1\\3\end{pmatrix}, \qquad v=\begin{pmatrix}1\\4\\-2\end{pmatrix},

og oppgi typen til resultatet.

Løsning

Steg 1: Gang samsvarende oppføringer og summer:

⟨u,v⟩=2⋅1+(−1)⋅4+3⋅(−2)=−8.\langle u,v\rangle=2\cdot1+(-1)\cdot4+3\cdot(-2)=-8.

Steg 2: Resultatet −8-8 er en skalar.

Klassisk ytre produkt

For u∈Rmu\in\mathbb R^m og v∈Rnv\in\mathbb R^n er det ytre produktet matrisen

A=uv⊤∈Rm×n,aij=uivj.A=uv^\top\in\mathbb R^{m\times n}, \qquad a_{ij}=u_i v_j.

Hver kolonne er en skalert kopi av uu, og hver rad er en skalert kopi av v⊤v^\top. Et ikke-null ytre produkt av to ikke-null vektorer har matriserang 11.

Se dette i praksis

La

u=(12),v=(345).u=\begin{pmatrix}1\\2\end{pmatrix}, \qquad v=\begin{pmatrix}3\\4\\5\end{pmatrix}.

Da er

uv⊤=(12)(345)=(3456810).uv^\top =\begin{pmatrix}1\\2\end{pmatrix} \begin{pmatrix}3&4&5\end{pmatrix} =\begin{pmatrix}3&4&5\\6&8&10\end{pmatrix}.

Kolonnene er 3u3u, 4u4u og 5u5u. Radene er v⊤v^\top og 2v⊤2v^\top. Matrisen har derfor bare én uavhengig rad- og kolonneretning.

Hurtigsjekk 41. La

u=(2−1),v=(403).u=\begin{pmatrix}2\\-1\end{pmatrix}, \qquad v=\begin{pmatrix}4\\0\\3\end{pmatrix}.

Regn ut uv⊤uv^\top, skriv kolonnene som skalerte kopier av uu, og bestem matriserangen.

Løsning

Steg 1: Multipliser hver oppføring i uu med hele raden v⊤v^\top:

uv⊤=(2−1)(403)=(806−40−3).uv^\top =\begin{pmatrix}2\\-1\end{pmatrix} \begin{pmatrix}4&0&3\end{pmatrix} =\begin{pmatrix}8&0&6\\-4&0&-3\end{pmatrix}.

Steg 2: Kolonnene er 4u4u, 0u0u og 3u3u.

Steg 3: Begge faktorene er ikke-null, så matrisen har rang 11.

Tensorens ytre produkt

La a(k)∈Rnka^{(k)}\in\mathbb R^{n_k} for k=1,…,dk=1,\ldots,d. Det ytre produktet er tensoren

X=a(1)⊚a(2)⊚⋯⊚a(d)∈Rn1×⋯×nd,\mathcal X=a^{(1)}\circledcirc a^{(2)}\circledcirc\cdots\circledcirc a^{(d)} \in\mathbb R^{n_1\times\cdots\times n_d},

med oppføringer

xi1,…,id=ai1(1)ai2(2)⋯aid(d).x_{i_1,\ldots,i_d} =a^{(1)}_{i_1}a^{(2)}_{i_2}\cdots a^{(d)}_{i_d}.

For d=2d=2 er dette det vanlige matriseytreproduktet. For d=3d=3 får vi

X=a⊚b⊚c,xijℓ=aibjcℓ.\mathcal X=a\circledcirc b\circledcirc c, \qquad x_{ij\ell}=a_i b_j c_\ell.

Tensor-rang

En ikke-null tensor a(1)⊚⋯⊚a(d)a^{(1)}\circledcirc\cdots\circledcirc a^{(d)} har rang 11 når alle faktorene er ikke-null. Nulltensoren har rang 00.

Tensor-rangen til X\mathcal X er det minste antallet rang-11-tensorer som trengs for å bygge X\mathcal X nøyaktig. Hvis

X=∑s=1rλsas(1)⊚as(2)⊚⋯⊚as(d),\mathcal X =\sum_{s=1}^{r}\lambda_s a_s^{(1)}\circledcirc a_s^{(2)}\circledcirc\cdots\circledcirc a_s^{(d)},

har vi vist at rank⁡(X)≤r\operatorname{rank}(\mathcal X)\le r. Likhet krever i tillegg at færre ledd er umulig.

Se dette i praksis

La

a=(12),b=(34),c=(56).a=\begin{pmatrix}1\\2\end{pmatrix}, \qquad b=\begin{pmatrix}3\\4\end{pmatrix}, \qquad c=\begin{pmatrix}5\\6\end{pmatrix}.

Tensoren

X=a⊚b⊚c\mathcal X=a\circledcirc b\circledcirc c

har oppføringer xijℓ=aibjcℓx_{ij\ell}=a_i b_j c_\ell. For eksempel

x2,1,2=a2b1c2=2⋅3⋅6=36.x_{2,1,2}=a_2b_1c_2=2\cdot3\cdot6=36.

Alle frontsnittene er skalerte kopier av grunnmatrisen ab⊤ab^\top:

X::1=5ab⊤,X::2=6ab⊤.X_{::1}=5ab^\top, \qquad X_{::2}=6ab^\top.

Siden ingen faktor er null, er dette én ikke-null rang-11-tensor.

Hurtigsjekk 42. La

u=(2−1),v=(13),w=(42),Y=u⊚v⊚w.u=\begin{pmatrix}2\\-1\end{pmatrix}, \quad v=\begin{pmatrix}1\\3\end{pmatrix}, \quad w=\begin{pmatrix}4\\2\end{pmatrix}, \qquad \mathcal Y=u\circledcirc v\circledcirc w.

Finn y2,2,1y_{2,2,1}, de to frontsnittene og tensor-rangen.

Løsning

Steg 1: Den valgte oppføringen er

y2,2,1=u2v2w1=(−1)⋅3⋅4=−12.y_{2,2,1}=u_2v_2w_1=(-1)\cdot3\cdot4=-12.

Steg 2: Grunnmatrisen er

uv⊤=(26−1−3).uv^\top=\begin{pmatrix}2&6\\-1&-3\end{pmatrix}.

Dermed

Y::1=4uv⊤=(824−4−12),Y::2=2uv⊤=(412−2−6).Y_{::1}=4uv^\top=\begin{pmatrix}8&24\\-4&-12\end{pmatrix}, \qquad Y_{::2}=2uv^\top=\begin{pmatrix}4&12\\-2&-6\end{pmatrix}.

Steg 3: Alle tre faktorene er ikke-null, så rank⁡(Y)=1\operatorname{rank}(\mathcal Y)=1.

Praktisk faktormatrisenotasjon

Samle vektorene i samme modus som kolonner:

A(k)=(a1(k)a2(k)⋯ar(k))∈Rnk×r.A^{(k)}= \begin{pmatrix} a_1^{(k)}&a_2^{(k)}&\cdots&a_r^{(k)} \end{pmatrix} \in\mathbb R^{n_k\times r}.

Da kan dekomponeringen skrives

[[λ;A(1),…,A(d)]]:=∑s=1rλsas(1)⊚⋯⊚as(d).[[\lambda;A^{(1)},\ldots,A^{(d)}]] := \sum_{s=1}^{r}\lambda_s a_s^{(1)}\circledcirc\cdots\circledcirc a_s^{(d)}.

Hvis alle λs=1\lambda_s=1, utelates vekten. For M∈Rm×nM\in\mathbb R^{m\times n} setter den tynne SVD-en q=min⁡{m,n}q=\min\{m,n\} og bruker Uq∈Rm×qU_q\in\mathbb R^{m\times q} og Vq∈Rn×qV_q\in\mathbb R^{n\times q}. Da passer SVD-en samme mønster:

M=[[σ;Uq,Vq]]=∑s=1qσsusvs⊤.M=[[\sigma;U_q,V_q]] =\sum_{s=1}^{q}\sigma_su_sv_s^\top.

For tre modi skriver vi

X=[[A,B,C]]=∑s=1ras⊚bs⊚cs,\mathcal X=[[A,B,C]] =\sum_{s=1}^{r}a_s\circledcirc b_s\circledcirc c_s,

og elementvis

xijℓ=∑s=1raisbjscℓs.x_{ij\ell}=\sum_{s=1}^{r}a_{is}b_{js}c_{\ell s}.
Se dette i praksis

La

A=(1234),B=(5678),C=(1001).A=\begin{pmatrix}1&2\\3&4\end{pmatrix}, \quad B=\begin{pmatrix}5&6\\7&8\end{pmatrix}, \quad C=\begin{pmatrix}1&0\\0&1\end{pmatrix}.

Den første kolonnen i hver matrise lager

a1⊚b1⊚c1,a_1\circledcirc b_1\circledcirc c_1,

og den andre kolonnen i hver matrise lager

a2⊚b2⊚c2.a_2\circledcirc b_2\circledcirc c_2.

Dermed er

X=[[A,B,C]]=a1⊚b1⊚c1+a2⊚b2⊚c2.\mathcal X=[[A,B,C]] =a_1\circledcirc b_1\circledcirc c_1 +a_2\circledcirc b_2\circledcirc c_2.

For én oppføring får vi

x1,2,2=a1,1b2,1c2,1+a1,2b2,2c2,2=1⋅7⋅0+2⋅8⋅1=16.x_{1,2,2} =a_{1,1}b_{2,1}c_{2,1}+a_{1,2}b_{2,2}c_{2,2} =1\cdot7\cdot0+2\cdot8\cdot1=16.

Hurtigsjekk 43. La

A=(1021),B=(213−1),C=(1201),Y=[[A,B,C]].A=\begin{pmatrix}1&0\\2&1\end{pmatrix}, \quad B=\begin{pmatrix}2&1\\3&-1\end{pmatrix}, \quad C=\begin{pmatrix}1&2\\0&1\end{pmatrix}, \qquad \mathcal Y=[[A,B,C]].

Skriv de to rang-11-leddene og regn ut y2,1,1y_{2,1,1}.

Løsning

Steg 1: Kolonne 11 kobles bare til kolonne 11, og kolonne 22 bare til kolonne 22:

Y=a1⊚b1⊚c1+a2⊚b2⊚c2.\mathcal Y=a_1\circledcirc b_1\circledcirc c_1 +a_2\circledcirc b_2\circledcirc c_2.

Steg 2: Bruk elementformelen:

y2,1,1=a2,1b1,1c1,1+a2,2b1,2c1,2=2⋅2⋅1+1⋅1⋅2=6.y_{2,1,1} =a_{2,1}b_{1,1}c_{1,1}+a_{2,2}b_{1,2}c_{1,2} =2\cdot2\cdot1+1\cdot1\cdot2=6.
Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …

Del 9 · Matriseoperasjoner

Vektorisering og tre ulike produkter

Laster interaktiv modell / Loading interactive model …

Vektorisering

Vektorisering lager én lang vektor ved å stable kolonnene i en matrise. For

A=(a1a2⋯an)∈Rm×nA=\begin{pmatrix}a_1&a_2&\cdots&a_n\end{pmatrix}\in\mathbb R^{m\times n}

definerer vi

vec⁡(A)=(a1a2⋮an)∈Rmn.\operatorname{vec}(A) =\begin{pmatrix}a_1\\a_2\\\vdots\\a_n\end{pmatrix} \in\mathbb R^{mn}.

Ingen tall endres; bare plasseringen endres.

Se dette i praksis

La

A=(1324).A=\begin{pmatrix}1&3\\2&4\end{pmatrix}.

Kolonnene er

a1=(12),a2=(34).a_1=\begin{pmatrix}1\\2\end{pmatrix}, \qquad a_2=\begin{pmatrix}3\\4\end{pmatrix}.

Derfor er

vec⁡(A)=(a1a2)=(1234).\operatorname{vec}(A) =\begin{pmatrix}a_1\\a_2\end{pmatrix} =\begin{pmatrix}1\\2\\3\\4\end{pmatrix}.

Vi leser altså nedover kolonnene, ikke bortover radene.

Hurtigsjekk 44. Vektoriser

P=(20−1534)P=\begin{pmatrix}2&0&-1\\5&3&4\end{pmatrix}

med kursets konvensjon.

Løsning

Steg 1: Stable første kolonne, deretter andre og tredje:

vec⁡(P)=(2503−14).\operatorname{vec}(P) =\begin{pmatrix}2\\5\\0\\3\\-1\\4\end{pmatrix}.

Steg 2: Matrisen har 2⋅3=62\cdot3=6 tall, så resultatet ligger i R6\mathbb R^6.

Kronecker-produkt

For

A=(aij)∈Rm×n,B∈Rp×q,A=(a_{ij})\in\mathbb R^{m\times n}, \qquad B\in\mathbb R^{p\times q},

er Kronecker-produktet blokkmatrisen

A⊗B=(a11B⋯a1nB⋮⋱⋮am1B⋯amnB)∈Rmp×nq.A\otimes B = \begin{pmatrix} a_{11}B&\cdots&a_{1n}B\\ \vdots&\ddots&\vdots\\ a_{m1}B&\cdots&a_{mn}B \end{pmatrix} \in\mathbb R^{mp\times nq}.

For vektorer a∈Rma\in\mathbb R^m og b∈Rpb\in\mathbb R^p er

a⊗b=(a1ba2b⋮amb)∈Rmp.a\otimes b =\begin{pmatrix}a_1b\\a_2b\\\vdots\\a_mb\end{pmatrix} \in\mathbb R^{mp}.

Hvis A=(a1 ⋯ an)A=(a_1\ \cdots\ a_n) og B=(b1 ⋯ bq)B=(b_1\ \cdots\ b_q), kan det samme matriseproduktet skrives kolonnevis som

A⊗B=[a1⊗b1 ⋯ a1⊗bq ∣ a2⊗b1 ⋯ a2⊗bq ∣ ⋯ ∣ an⊗b1 ⋯ an⊗bq].A\otimes B =\bigl[ a_1\otimes b_1\ \cdots\ a_1\otimes b_q\ \bigm|\ a_2\otimes b_1\ \cdots\ a_2\otimes b_q\ \bigm|\ \cdots\ \bigm|\ a_n\otimes b_1\ \cdots\ a_n\otimes b_q \bigr].

Her kommer altså alle parene aj⊗bℓa_j\otimes b_\ell med, ordnet med bb-indeksen raskest. Dette er forskjellig fra Khatri–Rao-produktet nedenfor, som bare bruker samsvarende kolonnenumre.

Se dette i praksis

La

A=(1234),B=(0567).A=\begin{pmatrix}1&2\\3&4\end{pmatrix}, \qquad B=\begin{pmatrix}0&5\\6&7\end{pmatrix}.

Da er

A⊗B=(1B2B3B4B)=(0501067121401502018212428).A\otimes B =\begin{pmatrix}1B&2B\\3B&4B\end{pmatrix} = \begin{pmatrix} 0&5&0&10\\ 6&7&12&14\\ 0&15&0&20\\ 18&21&24&28 \end{pmatrix}.

For eksempel kommer blokken øverst til høyre fra a12B=2Ba_{12}B=2B.

Hurtigsjekk 45. La

C=(1−120),D=(3102).C=\begin{pmatrix}1&-1\\2&0\end{pmatrix}, \qquad D=\begin{pmatrix}3&1\\0&2\end{pmatrix}.

Regn ut C⊗DC\otimes D og oppgi dimensjonen.

Løsning

Steg 1: Erstatt hvert tall i CC med en skalert kopi av DD:

C⊗D=(D−D2D0D).C\otimes D =\begin{pmatrix}D&-D\\2D&0D\end{pmatrix}.

Steg 2: Gang ut blokkene:

C⊗D=(31−3−1020−262000400).C\otimes D =\begin{pmatrix} 3&1&-3&-1\\ 0&2&0&-2\\ 6&2&0&0\\ 0&4&0&0 \end{pmatrix}.

Begge faktorene er 2×22\times2, så produktet er 4×44\times4.

Khatri–Rao-produkt

La

A=(a1⋯ar)∈Rm×r,B=(b1⋯br)∈Rp×rA=\begin{pmatrix}a_1&\cdots&a_r\end{pmatrix}\in\mathbb R^{m\times r}, \qquad B=\begin{pmatrix}b_1&\cdots&b_r\end{pmatrix}\in\mathbb R^{p\times r}

ha samme antall kolonner. Khatri–Rao-produktet defineres kolonnevis:

A⊙B=(a1⊗b1a2⊗b2⋯ar⊗br)∈Rmp×r.A\odot B =\begin{pmatrix} a_1\otimes b_1& a_2\otimes b_2& \cdots& a_r\otimes b_r \end{pmatrix} \in\mathbb R^{mp\times r}.
Se dette i praksis

La

A=(1234),B=(5678).A=\begin{pmatrix}1&2\\3&4\end{pmatrix}, \qquad B=\begin{pmatrix}5&6\\7&8\end{pmatrix}.

Første resultatkolonne er

a1⊗b1=(13)⊗(57)=(571521).a_1\otimes b_1 =\begin{pmatrix}1\\3\end{pmatrix} \otimes \begin{pmatrix}5\\7\end{pmatrix} =\begin{pmatrix}5\\7\\15\\21\end{pmatrix}.

Andre resultatkolonne er

a2⊗b2=(24)⊗(68)=(12162432).a_2\otimes b_2 =\begin{pmatrix}2\\4\end{pmatrix} \otimes \begin{pmatrix}6\\8\end{pmatrix} =\begin{pmatrix}12\\16\\24\\32\end{pmatrix}.

Dermed

A⊙B=(51271615242132).A\odot B =\begin{pmatrix} 5&12\\ 7&16\\ 15&24\\ 21&32 \end{pmatrix}.

Hurtigsjekk 46. Regn ut C⊙DC\odot D for

C=(1−123),D=(4205).C=\begin{pmatrix}1&-1\\2&3\end{pmatrix}, \qquad D=\begin{pmatrix}4&2\\0&5\end{pmatrix}.
Løsning

Steg 1: Kombiner første kolonne med første kolonne:

c1⊗d1=(12)⊗(40)=(4080).c_1\otimes d_1 =\begin{pmatrix}1\\2\end{pmatrix} \otimes \begin{pmatrix}4\\0\end{pmatrix} =\begin{pmatrix}4\\0\\8\\0\end{pmatrix}.

Steg 2: Kombiner andre kolonne med andre kolonne:

c2⊗d2=(−13)⊗(25)=(−2−5615).c_2\otimes d_2 =\begin{pmatrix}-1\\3\end{pmatrix} \otimes \begin{pmatrix}2\\5\end{pmatrix} =\begin{pmatrix}-2\\-5\\6\\15\end{pmatrix}.

Steg 3: Sett kolonnene sammen:

C⊙D=(4−20−586015).C\odot D =\begin{pmatrix} 4&-2\\ 0&-5\\ 8&6\\ 0&15 \end{pmatrix}.

Hadamard-produkt

For matriser A,B∈Rm×nA,B\in\mathbb R^{m\times n} med samme form er Hadamard-produktet elementvis multiplikasjon:

A∗B=(aijbij)∈Rm×n.A\ast B=(a_{ij}b_{ij})\in\mathbb R^{m\times n}.
Se dette i praksis

La

A=(1234),B=(10203040).A=\begin{pmatrix}1&2\\3&4\end{pmatrix}, \qquad B=\begin{pmatrix}10&20\\30&40\end{pmatrix}.

Da er

A∗B=(1⋅102⋅203⋅304⋅40)=(104090160).A\ast B =\begin{pmatrix} 1\cdot10&2\cdot20\\ 3\cdot30&4\cdot40 \end{pmatrix} =\begin{pmatrix}10&40\\90&160\end{pmatrix}.

Formen er fortsatt 2×22\times2.

Hurtigsjekk 47. Regn ut Hadamard-produktet

(2−103)∗(457−2).\begin{pmatrix}2&-1\\0&3\end{pmatrix} \ast \begin{pmatrix}4&5\\7&-2\end{pmatrix}.
Løsning

Steg 1: Gang oppføringer på samme plass:

(2⋅4(−1)⋅50⋅73⋅(−2))=(8−50−6).\begin{pmatrix} 2\cdot4&(-1)\cdot5\\ 0\cdot7&3\cdot(-2) \end{pmatrix} = \begin{pmatrix}8&-5\\0&-6\end{pmatrix}.

Steg 2: Resultatet har samme dimensjon, 2×22\times2.

Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …

Del 10 · Tensoroperasjoner

Matrisering og kk-modusproduktet

Matrisering

Nå kommer vi til delen som virkelig suger, men du må bare komme deg fucking gjennom dette, så blir resten smooth igjen.

Matrisering gjør en tensor om til en matrise uten å endre eller fjerne noen tall. Vi velger én modus som radretning og legger alle fibrene i den modusen som kolonner.

For

X∈Rn1×⋯×nd\mathcal X\in\mathbb R^{n_1\times\cdots\times n_d}

har modus-mm-matriseringen formen

X(m)∈Rnm×(n1⋯nm−1nm+1⋯nd).X_{(m)} \in \mathbb R^{n_m\times (n_1\cdots n_{m-1}n_{m+1}\cdots n_d)}.

Kurset bruker første indeks først blant de gjenværende modiene.

Jeg vet at dette ser helt jævlig ut, men la meg bryte det ned: den generelle formelen er bare en oppskrift på hvilket kolonnenummer én tensoroppføring får. For oppføringen xi1,…,idx_{i_1,\ldots,i_d} er kolonneadressen i X(m)X_{(m)}

j=1+∑k=1k≠md(ik−1)jk,jk=∏ℓ<kℓ≠mnℓ.j =1+\sum_{\substack{k=1\\k\ne m}}^d(i_k-1)j_k, \qquad j_k=\prod_{\substack{\ell<k\\\ell\ne m}}n_\ell.

Her er jj det nye kolonnenummeret, mens jkj_k er spranglengden til indeks iki_k. Et tomt produkt er 11.

Med andre ord: fjern radindeksen imi_m. La den første gjenværende indeksen variere raskest. Tell deretter videre modus for modus.

For X∈Rm×n×p\mathcal X\in\mathbb R^{m\times n\times p} gir oppskriften de tre konkrete tilfellene

(X(1))i, j+(ℓ−1)n=xijℓ,(X_{(1)})_{i,\,j+(\ell-1)n}=x_{ij\ell}, (X(2))j, i+(ℓ−1)m=xijℓ,(X_{(2)})_{j,\,i+(\ell-1)m}=x_{ij\ell}, (X(3))ℓ, i+(j−1)m=xijℓ.(X_{(3)})_{\ell,\,i+(j-1)m}=x_{ij\ell}.
Eksempel på matrisering

La X∈R3×4×2\mathcal X\in\mathbb R^{3\times4\times2} ha frontsnittene

X::1=(147102581136912),X::2=(131619221417202315182124).X_{::1}= \begin{pmatrix} 1&4&7&10\\ 2&5&8&11\\ 3&6&9&12 \end{pmatrix}, \qquad X_{::2}= \begin{pmatrix} 13&16&19&22\\ 14&17&20&23\\ 15&18&21&24 \end{pmatrix}.

Da blir

X(1)∈R3×8,X(2)∈R4×6,X(3)∈R2×12.X_{(1)}\in\mathbb R^{3\times8}, \qquad X_{(2)}\in\mathbb R^{4\times6}, \qquad X_{(3)}\in\mathbb R^{2\times12}.

Formene kommer før selve omplasseringen: valgt modus gir antallet rader, og produktet av de to andre modusene gir antallet kolonner.

X(1)=(147101316192225811141720233691215182124),X_{(1)}= \begin{pmatrix} 1&4&7&10&13&16&19&22\\ 2&5&8&11&14&17&20&23\\ 3&6&9&12&15&18&21&24 \end{pmatrix}, X(2)=(123131415456161718789192021101112222324),X_{(2)}= \begin{pmatrix} 1&2&3&13&14&15\\ 4&5&6&16&17&18\\ 7&8&9&19&20&21\\ 10&11&12&22&23&24 \end{pmatrix},

og

X(3)=(123456789101112131415161718192021222324).X_{(3)}= \begin{pmatrix} 1&2&3&4&5&6&7&8&9&10&11&12\\ 13&14&15&16&17&18&19&20&21&22&23&24 \end{pmatrix}.

I X(3)X_{(3)} blir hver rørfiber en kolonne. Først varierer radindeksen, deretter kolonneindeksen.

Multilineære transformasjoner

En tensor kan transformeres lineært i hver modus. La

X=[[A,B,C]]=∑s=1ras⊚bs⊚cs,\mathcal X=[[A,B,C]] =\sum_{s=1}^r a_s\circledcirc b_s\circledcirc c_s,

der A∈Rm×rA\in\mathbb R^{m\times r}, B∈Rn×rB\in\mathbb R^{n\times r} og C∈Rp×rC\in\mathbb R^{p\times r}. For

M∈Rm×u,N∈Rn×v,P∈Rp×wM\in\mathbb R^{m\times u},\qquad N\in\mathbb R^{n\times v},\qquad P\in\mathbb R^{p\times w}

definerer vi

X(M,N,P):=∑s=1r(M⊤as)⊚(N⊤bs)⊚(P⊤cs)∈Ru×v×w.\mathcal X(M,N,P) := \sum_{s=1}^r (M^\top a_s)\circledcirc (N^\top b_s)\circledcirc (P^\top c_s) \in\mathbb R^{u\times v\times w}.

Matrisene er skrevet med denne retningen fordi M⊤M^\top sender en mm-vektor til en uu-vektor, N⊤N^\top sender nn til vv, og P⊤P^\top sender pp til ww.

Det samme kan skrives

X(M,N,P)=[[M⊤A,N⊤B,P⊤C]].\mathcal X(M,N,P) =[[M^\top A,N^\top B,P^\top C]].
Se dette i praksis

Start med rang-11-tensoren

X=a⊚b⊚c,a=(12),b=(34),c=(56).\mathcal X=a\circledcirc b\circledcirc c, \qquad a=\begin{pmatrix}1\\2\end{pmatrix}, \quad b=\begin{pmatrix}3\\4\end{pmatrix}, \quad c=\begin{pmatrix}5\\6\end{pmatrix}.

Velg

M=(11),N=(10),P=(01).M=\begin{pmatrix}1\\1\end{pmatrix}, \qquad N=\begin{pmatrix}1\\0\end{pmatrix}, \qquad P=\begin{pmatrix}0\\1\end{pmatrix}.

Hver modus kollapser til ett indreprodukt:

M⊤a=3,N⊤b=3,P⊤c=6.M^\top a=3,\qquad N^\top b=3,\qquad P^\top c=6.

Den transformerte tensoren har form 1×1×11\times1\times1, altså bare tallet

X(M,N,P)=3⋅3⋅6=54.\mathcal X(M,N,P)=3\cdot3\cdot6=54.

Hurtigsjekk 48. La Y=u⊚v⊚w\mathcal Y=u\circledcirc v\circledcirc w med

u=(2−1),v=(13),w=(42).u=\begin{pmatrix}2\\-1\end{pmatrix},\quad v=\begin{pmatrix}1\\3\end{pmatrix},\quad w=\begin{pmatrix}4\\2\end{pmatrix}.

Bruk

M=(12),N=(2−1),P=(11).M=\begin{pmatrix}1\\2\end{pmatrix}, \qquad N=\begin{pmatrix}2\\-1\end{pmatrix}, \qquad P=\begin{pmatrix}1\\1\end{pmatrix}.

Finn Y(M,N,P)\mathcal Y(M,N,P).

Løsning

Steg 1: Regn ett indreprodukt i hver modus:

M⊤u=1⋅2+2(−1)=0,M^\top u=1\cdot2+2(-1)=0, N⊤v=2⋅1+(−1)3=−1,P⊤w=4+2=6.N^\top v=2\cdot1+(-1)3=-1, \qquad P^\top w=4+2=6.

Steg 2: Multipliser de tre skalarene:

Y(M,N,P)=0⋅(−1)⋅6=0.\mathcal Y(M,N,P)=0\cdot(-1)\cdot6=0.
Matriseeksempel

For A∈Rm×rA\in\mathbb R^{m\times r} og B∈Rn×rB\in\mathbb R^{n\times r} er

[[A,B]]=AB⊤.[[A,B]]=AB^\top.

Transformasjon i første modus gir M⊤AM^\top A, transformasjon i andre gir N⊤BN^\top B, og samlet

[[A,B]](M,N)=M⊤AB⊤N.[[A,B]](M,N)=M^\top AB^\top N.
Kollapseringseksempel

Hvis én ny dimensjon er 11, forsvinner denne modusen som egen akse. For P∈Rp×1P\in\mathbb R^{p\times1} er

P⊤cs=⟨P,cs⟩P^\top c_s=\langle P,c_s\rangle

en skalar. Produktet har da én modus mindre.

kk-modusproduktet

Pust. ×k\times_k er ikke en ny mystisk type multiplikasjon; det er vanlig matrisemultiplikasjon brukt langs én valgt tensorretning.

La

X∈Rn1×⋯×nd,Q∈Rq×nk.\mathcal X\in\mathbb R^{n_1\times\cdots\times n_d}, \qquad Q\in\mathbb R^{q\times n_k}.

kk-modusproduktet

Y=X×kQ∈Rn1×⋯×nk−1×q×nk+1×⋯×nd\mathcal Y=\mathcal X\times_kQ \in \mathbb R^{n_1\times\cdots\times n_{k-1}\times q\times n_{k+1}\times\cdots\times n_d}

har oppføringer

yi1,…,ik−1,j,ik+1,…,id=∑ik=1nkxi1,…,idqj,ik.y_{i_1,\ldots,i_{k-1},j,i_{k+1},\ldots,i_d} = \sum_{i_k=1}^{n_k} x_{i_1,\ldots,i_d}q_{j,i_k}.

I matrisert form blir hele regelen vanlig matrisemultiplikasjon:

Y(k)=QX(k).Y_{(k)}=QX_{(k)}.
Se dette i praksis

Se matrisen

B=(1234)B=\begin{pmatrix}1&2\\3&4\end{pmatrix}

som en tensor av orden 22.

I modus 11, med

A=(2001),A=\begin{pmatrix}2&0\\0&1\end{pmatrix},

får vi

B×1A=AB=(2434).B\times_1A=AB =\begin{pmatrix}2&4\\3&4\end{pmatrix}.

Første radretning dobles, mens den andre beholdes.

I modus 22, med

C=(1003),C=\begin{pmatrix}1&0\\0&3\end{pmatrix},

får vi

B×2C=BC⊤=(16312).B\times_2C=BC^\top =\begin{pmatrix}1&6\\3&12\end{pmatrix}.

Første kolonneretning beholdes, mens den andre tredobles.

Hurtigsjekk 49. La

D=(1023),P=(3001),Q=(1002).D=\begin{pmatrix}1&0\\2&3\end{pmatrix},\quad P=\begin{pmatrix}3&0\\0&1\end{pmatrix},\quad Q=\begin{pmatrix}1&0\\0&2\end{pmatrix}.

Finn D×1PD\times_1P og D×2QD\times_2Q.

Løsning

Steg 1: Modus 11 betyr venstremultiplikasjon:

D×1P=PD=(3023).D\times_1P=PD =\begin{pmatrix}3&0\\2&3\end{pmatrix}.

Steg 2: Modus 22 betyr multiplikasjon med transponert transformasjon på høyre side:

D×2Q=DQ⊤=(1026).D\times_2Q=DQ^\top =\begin{pmatrix}1&0\\2&6\end{pmatrix}.

Matrisetilfellene

En matrise har bare to modi. For B∈Rm×nB\in\mathbb R^{m\times n} kan vi derfor lese reglene som to kjente matriseprodukter.

I modus 11 transformeres radretningen:

B×1Q=QBfor Q∈Rq×m.B\times_1Q=QB \quad\text{for }Q\in\mathbb R^{q\times m}.

I modus 22 transformeres kolonneretningen:

B×2Q=BQ⊤for Q∈Rq×n.B\times_2Q=BQ^\top \quad\text{for }Q\in\mathbb R^{q\times n}.

Vektortilfellet av kk-modusproduktet

Når vi kontraherer med en vektor a∈Rnka\in\mathbb R^{n_k}, tolkes den som radtransformasjonen a⊤∈R1×nka^\top\in\mathbb R^{1\times n_k}. Modusen summeres bort, og tensorordenen synker med én:

Z=X×ka,\mathcal Z=\mathcal X\times_ka, zi1,…,ik−1,ik+1,…,id=∑ik=1nkxi1,…,idaik.z_{i_1,\ldots,i_{k-1},i_{k+1},\ldots,i_d} = \sum_{i_k=1}^{n_k} x_{i_1,\ldots,i_d}a_{i_k}.

For en matrise er

B×1v=B⊤v,B×2w=Bw.B\times_1v=B^\top v, \qquad B\times_2w=Bw.
Se dette i praksis

La

B=(1234).B=\begin{pmatrix}1&2\\3&4\end{pmatrix}.

Kontraher modus 11 med

v=(101).v=\begin{pmatrix}10\\1\end{pmatrix}.

Da får vi

B×1v=B⊤v=(1324)(101)=(1324).B\times_1v =B^\top v =\begin{pmatrix}1&3\\2&4\end{pmatrix} \begin{pmatrix}10\\1\end{pmatrix} =\begin{pmatrix}13\\24\end{pmatrix}.

Kontraher i stedet modus 22 med

w=(110).w=\begin{pmatrix}1\\10\end{pmatrix}.

Da får vi

B×2w=Bw=(1234)(110)=(2143).B\times_2w =Bw =\begin{pmatrix}1&2\\3&4\end{pmatrix} \begin{pmatrix}1\\10\end{pmatrix} =\begin{pmatrix}21\\43\end{pmatrix}.

En matrise av orden 22 er blitt en vektor av orden 11.

Hurtigsjekk 50. For

D=(21−13),v=(24),w=(3−1),D=\begin{pmatrix}2&1\\-1&3\end{pmatrix}, \quad v=\begin{pmatrix}2\\4\end{pmatrix}, \quad w=\begin{pmatrix}3\\-1\end{pmatrix},

finn D×1vD\times_1v og D×2wD\times_2w.

Løsning

Steg 1: Kontraksjon i første modus gir

D⊤v=(2−113)(24)=(014).D^\top v =\begin{pmatrix}2&-1\\1&3\end{pmatrix} \begin{pmatrix}2\\4\end{pmatrix} =\begin{pmatrix}0\\14\end{pmatrix}.

Steg 2: Kontraksjon i andre modus gir

Dw=(21−13)(3−1)=(5−6).Dw =\begin{pmatrix}2&1\\-1&3\end{pmatrix} \begin{pmatrix}3\\-1\end{pmatrix} =\begin{pmatrix}5\\-6\end{pmatrix}.

Khatri–Rao-produkt og matrisering

Hvis

X=[[A,B,C]]∈Rm×n×p,\mathcal X=[[A,B,C]] \in\mathbb R^{m\times n\times p},

er de tre viktige identitetene

X(1)=A(C⊙B)⊤,X_{(1)}=A(C\odot B)^\top, X(2)=B(C⊙A)⊤,X_{(2)}=B(C\odot A)^\top, X(3)=C(B⊙A)⊤.X_{(3)}=C(B\odot A)^\top.

Rekkefølgen følger kursets første-indeks-først-konvensjon. For ett rang-11-ledd blir for eksempel kolonnen med de andre faktorene c⊗bc\otimes b, ikke b⊗cb\otimes c.

Se dette i praksis

La

A=(1234),B=(1001),C=(2113).A=\begin{pmatrix}1&2\\3&4\end{pmatrix}, \quad B=\begin{pmatrix}1&0\\0&1\end{pmatrix}, \quad C=\begin{pmatrix}2&1\\1&3\end{pmatrix}.

De samsvarende Kronecker-kolonnene er

c1⊗b1=(2010),c2⊗b2=(0103).c_1\otimes b_1 =\begin{pmatrix}2\\0\\1\\0\end{pmatrix}, \qquad c_2\otimes b_2 =\begin{pmatrix}0\\1\\0\\3\end{pmatrix}.

Derfor

C⊙B=(20011003).C\odot B =\begin{pmatrix} 2&0\\ 0&1\\ 1&0\\ 0&3 \end{pmatrix}.

Nå blir tensoruttrykket en vanlig matriseproduktberegning:

X(1)=A(C⊙B)⊤=(221664312).X_{(1)} =A(C\odot B)^\top = \begin{pmatrix} 2&2&1&6\\ 6&4&3&12 \end{pmatrix}.

Hurtigsjekk 51. La

A=(1021),B=(1001),C=(1231).A=\begin{pmatrix}1&0\\2&1\end{pmatrix},\quad B=\begin{pmatrix}1&0\\0&1\end{pmatrix},\quad C=\begin{pmatrix}1&2\\3&1\end{pmatrix}.

Finn C⊙BC\odot B og deretter X(1)=A(C⊙B)⊤X_{(1)}=A(C\odot B)^\top.

Løsning

Steg 1: Beregn de samsvarende Kronecker-kolonnene:

c1⊗b1=(1030),c2⊗b2=(0201).c_1\otimes b_1 =\begin{pmatrix}1\\0\\3\\0\end{pmatrix}, \qquad c_2\otimes b_2 =\begin{pmatrix}0\\2\\0\\1\end{pmatrix}.

Dermed

C⊙B=(10023001).C\odot B =\begin{pmatrix} 1&0\\ 0&2\\ 3&0\\ 0&1 \end{pmatrix}.

Steg 2: Multipliser:

X(1)=(1021)(10300201)=(10302261).X_{(1)} =\begin{pmatrix}1&0\\2&1\end{pmatrix} \begin{pmatrix} 1&0&3&0\\ 0&2&0&1 \end{pmatrix} = \begin{pmatrix} 1&0&3&0\\ 2&2&6&1 \end{pmatrix}.
Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …

Del 11 · Tensordekomponering: CP og ALS

CP-dekomponering og ALS

Laster interaktiv modell / Loading interactive model …

CP står for Canonical Polyadic og er selve dekomponeringsmodellen. ALS står for Alternating Least Squares og er algoritmen vi bruker for å tilpasse modellen til dataene.

Motivasjon fra SVD

For M∈Rm×nM\in\mathbb R^{m\times n} setter vi q=min⁡{m,n}q=\min\{m,n\} og bruker de tynne SVD-faktorene Uq∈Rm×qU_q\in\mathbb R^{m\times q} og Vq∈Rn×qV_q\in\mathbb R^{n\times q}. Da skriver SVD matrisen som en sum av rang-11-matriser:

M=UqΣqVq⊤=∑s=1qσsusvs⊤=[[ σ;Uq,Vq ]].M=U_q\Sigma_qV_q^\top =\sum_{s=1}^{q}\sigma_su_sv_s^\top =[[\,\sigma;U_q,V_q\,]].

Tensoranalogen spør om en komplisert tensor kan bygges eller tilnærmes med noen få enkle ytre-produkt-blokker:

X≈∑s=1ras⊚bs⊚cs=[[A,B,C]].\mathcal X \approx \sum_{s=1}^{r}a_s\circledcirc b_s\circledcirc c_s =[[A,B,C]].

Flere blokker gir vanligvis en bedre tilnærming, men hver enkelt blokk er fortsatt rang 11.

Se dette i praksis

Ta to rang-11-ledd:

a1=(12),b1=(10),c1=(13),a_1=\begin{pmatrix}1\\2\end{pmatrix},\quad b_1=\begin{pmatrix}1\\0\end{pmatrix},\quad c_1=\begin{pmatrix}1\\3\end{pmatrix},

og

a2=(01),b2=(21),c2=(11).a_2=\begin{pmatrix}0\\1\end{pmatrix},\quad b_2=\begin{pmatrix}2\\1\end{pmatrix},\quad c_2=\begin{pmatrix}1\\1\end{pmatrix}.

Det første leddet har grunnmatrise

a1b1⊤=(1020)a_1b_1^\top=\begin{pmatrix}1&0\\2&0\end{pmatrix}

og frontsnitt

X::1(1)=(1020),X::2(1)=(3060).X^{(1)}_{::1}=\begin{pmatrix}1&0\\2&0\end{pmatrix}, \qquad X^{(1)}_{::2}=\begin{pmatrix}3&0\\6&0\end{pmatrix}.

Det andre leddet har grunnmatrise

a2b2⊤=(0021)a_2b_2^\top=\begin{pmatrix}0&0\\2&1\end{pmatrix}

og samme bidrag i begge lag. Når leddene legges sammen, blir

X::1≈(1041),X::2≈(3081).X_{::1}\approx\begin{pmatrix}1&0\\4&1\end{pmatrix}, \qquad X_{::2}\approx\begin{pmatrix}3&0\\8&1\end{pmatrix}.

Et rikere mønster er blitt bygget av to enkle blokker.

Hurtigsjekk 52. La

a1=(11),b1=(20),c1=(12),a_1=\begin{pmatrix}1\\1\end{pmatrix},\qquad b_1=\begin{pmatrix}2\\0\end{pmatrix},\qquad c_1=\begin{pmatrix}1\\2\end{pmatrix}, a2=(1−1),b2=(01),c2=(31).a_2=\begin{pmatrix}1\\-1\end{pmatrix},\qquad b_2=\begin{pmatrix}0\\1\end{pmatrix},\qquad c_2=\begin{pmatrix}3\\1\end{pmatrix}.

Finn de to frontsnittene til summen av de to rang-11-leddene.

Løsning

Steg 1: Grunnmatrisene er

a1b1⊤=(2020),a2b2⊤=(010−1).a_1b_1^\top=\begin{pmatrix}2&0\\2&0\end{pmatrix}, \qquad a_2b_2^\top=\begin{pmatrix}0&1\\0&-1\end{pmatrix}.

Steg 2: Første lag bruker vektene 11 og 33:

X::1=a1b1⊤+3a2b2⊤=(232−3).X_{::1} =a_1b_1^\top+3a_2b_2^\top =\begin{pmatrix}2&3\\2&-3\end{pmatrix}.

Steg 3: Andre lag bruker vektene 22 og 11:

X::2=2a1b1⊤+a2b2⊤=(414−1).X_{::2} =2a_1b_1^\top+a_2b_2^\top =\begin{pmatrix}4&1\\4&-1\end{pmatrix}.

Canonical Polyadic-dekomponering

Tensorens Frobenius-norm er

∥X∥F=∑i=1m∑j=1n∑ℓ=1pxijℓ2.\|\mathcal X\|_F = \sqrt{\sum_{i=1}^{m}\sum_{j=1}^{n}\sum_{\ell=1}^{p}x_{ij\ell}^2}.

Canonical Polyadic forkortes CP. Navnene CANDECOMP og PARAFAC brukes også. Et eksplisitt vekttall λs\lambda_s kan absorberes i én av faktorvektorene.

Se dette i praksis

La en tensor ha snittene

X::1=(1001),X::2=(2002).X_{::1}=\begin{pmatrix}1&0\\0&1\end{pmatrix}, \qquad X_{::2}=\begin{pmatrix}2&0\\0&2\end{pmatrix}.

En rang-11-modell

Y=a⊚b⊚c\mathcal Y=a\circledcirc b\circledcirc c

må ha snitt som skalerte kopier av den samme rang-11-matrisen ab⊤ab^\top. Velger vi

a=b=(10),c=(12),a=b=\begin{pmatrix}1\\0\end{pmatrix}, \qquad c=\begin{pmatrix}1\\2\end{pmatrix},

får vi

Y::1=(1000),Y::2=(2000).Y_{::1}=\begin{pmatrix}1&0\\0&0\end{pmatrix}, \qquad Y_{::2}=\begin{pmatrix}2&0\\0&0\end{pmatrix}.

Den øvre venstre strukturen treffes, men den nedre høyre mangler. Legger vi til

(01)⊚(01)⊚(12),\begin{pmatrix}0\\1\end{pmatrix} \circledcirc \begin{pmatrix}0\\1\end{pmatrix} \circledcirc \begin{pmatrix}1\\2\end{pmatrix},

rekonstrueres begge snittene nøyaktig med to rang-11-ledd.

Hurtigsjekk 53. En tensor har snittene

Z::1=(2003),Z::2=(−1006).Z_{::1}=\begin{pmatrix}2&0\\0&3\end{pmatrix}, \qquad Z_{::2}=\begin{pmatrix}-1&0\\0&6\end{pmatrix}.

Finn en eksakt CP-dekomponering med to ledd, og forklar hvorfor ett ledd ikke er nok.

Løsning

Steg 1: Del de to diagonalretningene:

Z=e1⊚e1⊚(2−1)+e2⊚e2⊚(36).\mathcal Z =e_1\circledcirc e_1\circledcirc \begin{pmatrix}2\\-1\end{pmatrix} + e_2\circledcirc e_2\circledcirc \begin{pmatrix}3\\6\end{pmatrix}.

Dette gir nøyaktig de oppgitte diagonalene i begge lag.

Steg 2: Allerede Z::1Z_{::1} har matriserang 22. Et enkelt tensorytreprodukt ville gitt et snitt som er en skalert rang-11-matrise. Ett ledd er derfor umulig, og CP-rangen er 22.

Beregning av CP-dekomponering med alternerende minste kvadrater

Direkte minimering er vanskelig fordi AA, BB og CC påvirker hverandre. Alternating Least Squares (ALS) fryser to faktormatriser og oppdaterer den tredje.

Ikke la de tre linjene nedenfor skremme deg: hver linje er bare et vanlig minste-kvadraters problem der to faktorer holdes fast og én får bevege seg.

Fra matriseringene får vi tre vanlige minste-kvadraters problemer:

Her er hevet ++ bare en merkelapp for den nyoppdaterte faktoren. Moore–Penrose-pseudoinversen som brukes i løsningene nedenfor, skrives †\dagger.

Oppdater AA. Hold BB og CC fast, og la bare AA bevege seg:

A+=arg⁡min⁡A~∥X(1)−A~(C⊙B)⊤∥F2,A^+ = \arg\min_{\widetilde A} \|X_{(1)}-\widetilde A(C\odot B)^\top\|_F^2,

Oppdater BB. Bruk den nye A+A^+, hold CC fast, og la BB bevege seg:

B+=arg⁡min⁡B~∥X(2)−B~(C⊙A+)⊤∥F2,B^+ = \arg\min_{\widetilde B} \|X_{(2)}-\widetilde B(C\odot A^+)^\top\|_F^2,

Oppdater CC. Bruk de nye A+A^+ og B+B^+, og la til slutt CC bevege seg:

C+=arg⁡min⁡C~∥X(3)−C~(B+⊙A+)⊤∥F2.C^+ = \arg\min_{\widetilde C} \|X_{(3)}-\widetilde C(B^+\odot A^+)^\top\|_F^2.

Pseudoinversen gir praktiske oppdateringer:

A+=X(1)((C⊙B)⊤)†,A^+=X_{(1)}\bigl((C\odot B)^\top\bigr)^\dagger, B+=X(2)((C⊙A+)⊤)†,B^+=X_{(2)}\bigl((C\odot A^+)^\top\bigr)^\dagger, C+=X(3)((B+⊙A+)⊤)†.C^+=X_{(3)}\bigl((B^+\odot A^+)^\top\bigr)^\dagger.
Se dette i praksis

Se først på matriseanalogen

X≈ab⊤.X\approx ab^\top.

La

X=(2436),b=(12).X=\begin{pmatrix}2&4\\3&6\end{pmatrix}, \qquad b=\begin{pmatrix}1\\2\end{pmatrix}.

Når bb holdes fast, velger vi aa slik at

ab⊤=(a1a2)(12)=(a12a1a22a2)ab^\top = \begin{pmatrix}a_1\\a_2\end{pmatrix} \begin{pmatrix}1&2\end{pmatrix} = \begin{pmatrix} a_1&2a_1\\ a_2&2a_2 \end{pmatrix}

passer XX. Her ser vi direkte at

a=(23),a=\begin{pmatrix}2\\3\end{pmatrix},

og da er ab⊤=Xab^\top=X. Tensor-ALS gjør den samme typen tilpasning, men veksler mellom AA, BB og CC.

Hurtigsjekk 54. La

Y=(3−61−2),b=(1−2).Y=\begin{pmatrix}3&-6\\1&-2\end{pmatrix}, \qquad b=\begin{pmatrix}1\\-2\end{pmatrix}.

Hold bb fast og finn aa slik at Y=ab⊤Y=ab^\top.

Løsning

Steg 1: Skriv modellen:

ab⊤=(a1a2)(1−2)=(a1−2a1a2−2a2).ab^\top = \begin{pmatrix}a_1\\a_2\end{pmatrix} \begin{pmatrix}1&-2\end{pmatrix} = \begin{pmatrix}a_1&-2a_1\\a_2&-2a_2\end{pmatrix}.

Steg 2: Sammenlign første kolonne med YY. Da får vi

a=(31).a=\begin{pmatrix}3\\1\end{pmatrix}.

Den andre kolonnen blir automatisk

(−6−2),\begin{pmatrix}-6\\-2\end{pmatrix},

så modellen er eksakt.

ALS-algoritmen

Velg modellstørrelse rr og startmatriser A(0),B(0),C(0)A^{(0)},B^{(0)},C^{(0)}. For k=0,1,…k=0,1,\ldots gjør vi

A(k+1)=X(1)((C(k)⊙B(k))⊤)†,A^{(k+1)} =X_{(1)} \left((C^{(k)}\odot B^{(k)})^\top\right)^\dagger, B(k+1)=X(2)((C(k)⊙A(k+1))⊤)†,B^{(k+1)} =X_{(2)} \left((C^{(k)}\odot A^{(k+1)})^\top\right)^\dagger, C(k+1)=X(3)((B(k+1)⊙A(k+1))⊤)†.C^{(k+1)} =X_{(3)} \left((B^{(k+1)}\odot A^{(k+1)})^\top\right)^\dagger.

Deretter bygges X^(k+1)\widehat{\mathcal X}^{(k+1)} og for eksempel den relative feilen

ρk+1=∥X−X^(k+1)∥F∥X∥F\rho_{k+1} = \frac{\|\mathcal X-\widehat{\mathcal X}^{(k+1)}\|_F} {\|\mathcal X\|_F}

kontrolleres. Stopp når feilen er liten nok, nesten ikke endres, eller et maksimalt antall iterasjoner er nådd.

Se dette i praksis

Velg en CP-modell med r=2r=2 ledd. Da har faktorene form

A∈Rm×2,B∈Rn×2,C∈Rp×2.A\in\mathbb R^{m\times2},\qquad B\in\mathbb R^{n\times2},\qquad C\in\mathbb R^{p\times2}.

Én iterasjon ser slik ut:

  1. Start med A(0),B(0),C(0)A^{(0)},B^{(0)},C^{(0)}.
  2. Frys B(0)B^{(0)} og C(0)C^{(0)}, og finn en bedre A(1)A^{(1)}.
  3. Bruk den nye A(1)A^{(1)}, frys den og C(0)C^{(0)}, og finn B(1)B^{(1)}.
  4. Bruk både A(1)A^{(1)} og B(1)B^{(1)}, og finn C(1)C^{(1)}.
  5. Bruk A(1),B(1),C(1)A^{(1)},B^{(1)},C^{(1)} som start for neste runde.

Tallet i parentes er iterasjonsnummeret; det er ikke en potens.

Hurtigsjekk 55. For X∈R4×3×2\mathcal X\in\mathbb R^{4\times3\times2} brukes en CP-modell med r=2r=2 ledd. Oppgi dimensjonene til A,B,CA,B,C, og fortell hvilke gamle eller nye faktorer som brukes i hver av de tre oppdateringene fra iterasjon kk til k+1k+1.

Løsning

Steg 1: Faktordimensjonene er

A:4×2,B:3×2,C:2×2.A:4\times2,\qquad B:3\times2,\qquad C:2\times2.

Steg 2: A(k+1)A^{(k+1)} bruker gamle B(k)B^{(k)} og C(k)C^{(k)}.

Steg 3: B(k+1)B^{(k+1)} bruker nye A(k+1)A^{(k+1)} og gamle C(k)C^{(k)}.

Steg 4: C(k+1)C^{(k+1)} bruker både nye A(k+1)A^{(k+1)} og nye B(k+1)B^{(k+1)}. Først da er én hel ALS-syklus ferdig.

Følg en hel numerisk ALS-syklus

Vi bruker rang r=1r=1 og måltensoren

X=a∗⊚b∗⊚c∗,a∗=(12),b∗=(13),c∗=(2−1).\mathcal X=a_*\circledcirc b_*\circledcirc c_*, \quad a_*=\begin{pmatrix}1\\2\end{pmatrix},\qquad b_*=\begin{pmatrix}1\\3\end{pmatrix},\qquad c_*=\begin{pmatrix}2\\-1\end{pmatrix}.

Frontsnittene er

X::1=(26412),X::2=(−1−3−2−6),X_{::1}=\begin{pmatrix}2&6\\4&12\end{pmatrix}, \qquad X_{::2}=\begin{pmatrix}-1&-3\\-2&-6\end{pmatrix},

og matriseringene er

X(1)=(26−1−3412−2−6),X_{(1)}=\begin{pmatrix}2&6&-1&-3\\4&12&-2&-6\end{pmatrix}, X(2)=(24−1−2612−3−6),X(3)=(24612−1−2−3−6).X_{(2)}=\begin{pmatrix}2&4&-1&-2\\6&12&-3&-6\end{pmatrix}, \qquad X_{(3)}=\begin{pmatrix}2&4&6&12\\-1&-2&-3&-6\end{pmatrix}.

Start med

b(0)=(11),c(0)=(10).b^{(0)}=\begin{pmatrix}1\\1\end{pmatrix}, \qquad c^{(0)}=\begin{pmatrix}1\\0\end{pmatrix}.

For rang 11 har problemet min⁡z∥X−zk⊤∥F2\min_z\|X-zk^\top\|_F^2 løsningen z=Xk/(k⊤k)z=Xk/(k^\top k).

Først

kA=c(0)⊗b(0)=(1100),a(1)=X(1)kAkA⊤kA=(48).k_A=c^{(0)}\otimes b^{(0)} =\begin{pmatrix}1\\1\\0\\0\end{pmatrix}, \qquad a^{(1)} =\frac{X_{(1)}k_A}{k_A^\top k_A} =\begin{pmatrix}4\\8\end{pmatrix}.

Deretter

kB=c(0)⊗a(1)=(4800),b(1)=X(2)kBkB⊤kB=(1/23/2).k_B=c^{(0)}\otimes a^{(1)} =\begin{pmatrix}4\\8\\0\\0\end{pmatrix}, \qquad b^{(1)} =\frac{X_{(2)}k_B}{k_B^\top k_B} =\begin{pmatrix}1/2\\3/2\end{pmatrix}.

Til slutt

kC=b(1)⊗a(1)=(24612),c(1)=X(3)kCkC⊤kC=(1−1/2).k_C=b^{(1)}\otimes a^{(1)} =\begin{pmatrix}2\\4\\6\\12\end{pmatrix}, \qquad c^{(1)} =\frac{X_{(3)}k_C}{k_C^\top k_C} =\begin{pmatrix}1\\-1/2\end{pmatrix}.

Faktorene oppfyller

a(1)=4a∗,b(1)=12b∗,c(1)=12c∗.a^{(1)}=4a_*, \qquad b^{(1)}=\tfrac12b_*, \qquad c^{(1)}=\tfrac12c_*.

Skalaene ganger seg til 11, så rekonstruksjonen er nøyaktig. Siden

∥X∥F=22+62+42+122+(−1)2+(−3)2+(−2)2+(−6)2=250,\|\mathcal X\|_F =\sqrt{2^2+6^2+4^2+12^2+(-1)^2+(-3)^2+(-2)^2+(-6)^2} =\sqrt{250},

blir den eksplisitte kontrollen

ρ1=0250=0.\rho_1=\frac{0}{\sqrt{250}}=0.

I generelle data må syklusen gjentas.

Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …

Del 12 · Tucker-dekomponering, HOSVD og HOOI

Tucker, HOSVD og HOOI

Laster interaktiv modell / Loading interactive model …

Motivasjon fra SVD og modusprodukter

Tucker ser først ut som CP med altfor mange bevegelige deler, men hovedideen er enkel: en liten kjerne forteller hvilke retninger som får lov til å blandes.

SVD kan skrives med modusprodukter:

M=UΣV⊤=Σ×1U×2V.M=U\Sigma V^\top =\Sigma\times_1U\times_2V.

Her er Σ\Sigma en liten, diagonal kjerne, mens UU og VV utvider kjernen i hver sin retning. For en tredjeordens tensor bruker Tucker samme idé med en kjerne og tre faktormatriser:

G∈Rr1×r2×r3,\mathcal G\in\mathbb R^{r_1\times r_2\times r_3}, A∈Rm×r1,B∈Rn×r2,C∈Rp×r3,A\in\mathbb R^{m\times r_1},\qquad B\in\mathbb R^{n\times r_2},\qquad C\in\mathbb R^{p\times r_3},

og

Y=G×1A×2B×3C.\mathcal Y =\mathcal G\times_1A\times_2B\times_3C.

Utvidet som ytre produkter er dette

Y=∑α=1r1∑β=1r2∑γ=1r3gαβγaα⊚bβ⊚cγ.\mathcal Y = \sum_{\alpha=1}^{r_1} \sum_{\beta=1}^{r_2} \sum_{\gamma=1}^{r_3} g_{\alpha\beta\gamma} a_\alpha\circledcirc b_\beta\circledcirc c_\gamma.

Hvis r1=r2=r3=rr_1=r_2=r_3=r og kjernen er superdiagonal,

gαβγ={λα,α=β=γ,0,ellers,g_{\alpha\beta\gamma} = \begin{cases} \lambda_\alpha,&\alpha=\beta=\gamma,\\ 0,&\text{ellers}, \end{cases}

står bare samsvarende tripler igjen. Da er CP et spesialtilfelle av Tucker.

Se dette i praksis

I en CP-modell med to ledd får vi bare de samsvarende triplene

a1⊚b1⊚c1+a2⊚b2⊚c2.a_1\circledcirc b_1\circledcirc c_1 + a_2\circledcirc b_2\circledcirc c_2.

En Tucker-kjerne kan også blande forskjellige kolonnenumre. La

G∈R2×2×2\mathcal G\in\mathbb R^{2\times2\times2}

ha bare to ikke-null oppføringer:

g1,1,1=5,g2,1,2=3.g_{1,1,1}=5, \qquad g_{2,1,2}=3.

Da er

Y=5a1⊚b1⊚c1+3a2⊚b1⊚c2.\mathcal Y =5a_1\circledcirc b_1\circledcirc c_1 +3a_2\circledcirc b_1\circledcirc c_2.

Det andre leddet kobler retning 22 fra AA, retning 11 fra BB og retning 22 fra CC. Kjernen tillater altså krysskoblinger som en superdiagonal CP-kjerne ikke tillater.

Hurtigsjekk 56. En 2×2×22\times2\times2-kjerne har bare g1,2,1=−2g_{1,2,1}=-2 og g2,1,2=4g_{2,1,2}=4 som ikke-null oppføringer. Skriv Tucker-modellen som en sum av to ytre produkter, og forklar hvorfor dette ikke er en CP-kjerne i den oppgitte basisen.

Løsning

Steg 1: Hver ikke-null kjerneoppføring velger én kolonne fra hver faktor:

Y=−2a1⊚b2⊚c1+4a2⊚b1⊚c2.\mathcal Y =-2a_1\circledcirc b_2\circledcirc c_1 +4a_2\circledcirc b_1\circledcirc c_2.

Steg 2: En CP-kjerne er superdiagonal og kobler bare (1,1,1)(1,1,1), (2,2,2)(2,2,2) og så videre. Her brukes (1,2,1)(1,2,1) og (2,1,2)(2,1,2), så kjernen har krysskoblinger.

Definisjon av Tucker-dekomponering

Se dette i praksis

Anta at den opprinnelige tensoren er

X∈R100×80×50,\mathcal X\in\mathbb R^{100\times80\times50},

og velg Tucker-størrelser

r1=5,r2=4,r3=3.r_1=5,\qquad r_2=4,\qquad r_3=3.

Da har kjernen og faktorene dimensjonene

G∈R5×4×3,\mathcal G\in\mathbb R^{5\times4\times3}, A∈R100×5,B∈R80×4,C∈R50×3.A\in\mathbb R^{100\times5},\qquad B\in\mathbb R^{80\times4},\qquad C\in\mathbb R^{50\times3}.

Modellen

X≈G×1A×2B×3C\mathcal X\approx \mathcal G\times_1A\times_2B\times_3C

lagrer en liten kjerne og tre smale faktormatriser. Den fulle tensoren krever

100⋅80⋅50=400 000100\cdot80\cdot50=400\,000

tall. Tucker-formen krever

5⋅4⋅3+100⋅5+80⋅4+50⋅3=60+500+320+150=10305\cdot4\cdot3+100\cdot5+80\cdot4+50\cdot3 =60+500+320+150 =1030

tall. Her er det nettopp den lille kjernen og de smale faktorene som gir komprimeringen.

Hurtigsjekk 57. For X∈R20×15×10\mathcal X\in\mathbb R^{20\times15\times10} brukes Tucker-størrelser (4,3,2)(4,3,2). Oppgi dimensjonene til G,A,B,C\mathcal G,A,B,C, og sammenlign antall lagrede tall i full tensor og Tucker-formen.

Løsning

Steg 1: Dimensjonene er

G:4×3×2,A:20×4,B:15×3,C:10×2.\mathcal G:4\times3\times2,\quad A:20\times4,\quad B:15\times3,\quad C:10\times2.

Steg 2: Full tensor krever

20⋅15⋅10=300020\cdot15\cdot10=3000

tall.

Steg 3: Tucker-formen krever

4⋅3⋅2+20⋅4+15⋅3+10⋅2=24+80+45+20=1694\cdot3\cdot2+20\cdot4+15\cdot3+10\cdot2 =24+80+45+20=169

tall, før eventuell administrativ informasjon.

Tucker-formler for matrisering

For

Y=G×1A×2B×3C\mathcal Y=\mathcal G\times_1A\times_2B\times_3C

gjelder

Y(1)=AG(1)(C⊗B)⊤,Y_{(1)}=AG_{(1)}(C\otimes B)^\top, Y(2)=BG(2)(C⊗A)⊤,Y_{(2)}=BG_{(2)}(C\otimes A)^\top, Y(3)=CG(3)(B⊗A)⊤.Y_{(3)}=CG_{(3)}(B\otimes A)^\top.

Tucker bruker Kronecker-produktet fordi kjernen kan koble alle kombinasjoner av faktorretninger. CP bruker Khatri–Rao fordi bare samsvarende kolonner kobles.

I den første formelen bygger AA ut modus 11, G(1)G_{(1)} inneholder blandingen fra kjernen, og C⊗BC\otimes B lister alle kombinasjoner fra modus 33 og 22. De to andre formlene er den samme ideen sett fra en annen modus.

SVD-analogien virker også baklengs:

M=UΣV⊤⟹Σ=U⊤MV=M×1U⊤×2V⊤.M=U\Sigma V^\top \quad\Longrightarrow\quad \Sigma=U^\top MV =M\times_1U^\top\times_2V^\top.

Tilsvarende komprimeres Tucker-kjernen med

G=X×1A⊤×2B⊤×3C⊤\mathcal G =\mathcal X\times_1A^\top\times_2B^\top\times_3C^\top

når faktorene har ortonormale kolonner.

Se dette i praksis

Se på modus-11-formelen

Y(1)=AG(1)(C⊗B)⊤.Y_{(1)}=AG_{(1)}(C\otimes B)^\top.

Anta

A∈R4×2,G(1)∈R2×6,C⊗B∈R15×6.A\in\mathbb R^{4\times2}, \qquad G_{(1)}\in\mathbb R^{2\times6}, \qquad C\otimes B\in\mathbb R^{15\times6}.

Da er

(C⊗B)⊤∈R6×15,(C\otimes B)^\top\in\mathbb R^{6\times15},

og dimensjonskjeden blir

(4×2)(2×6)(6×15)=4×15.(4\times2)(2\times6)(6\times15) =4\times15.

Dermed er Y(1)∈R4×15Y_{(1)}\in\mathbb R^{4\times15}, som betyr at den rekonstruerte tensoren har modus-11-størrelse 44 og de to andre størrelsene ganger seg til 1515.

Hurtigsjekk 58. La

A:5×2,B:4×3,C:6×2,G:2×3×2.A:5\times2,\qquad B:4\times3,\qquad C:6\times2,\qquad \mathcal G:2\times3\times2.

Finn dimensjonene til G(1)G_{(1)}, C⊗BC\otimes B, (C⊗B)⊤(C\otimes B)^\top og Y(1)Y_{(1)}.

Løsning

Steg 1: Modus-11-matriseringen av kjernen har

G(1):2×(3⋅2)=2×6.G_{(1)}:2\times(3\cdot2)=2\times6.

Steg 2: Kronecker-produktet har

C⊗B:(6⋅4)×(2⋅3)=24×6,C\otimes B:(6\cdot4)\times(2\cdot3)=24\times6,

så transponeringen er 6×246\times24.

Steg 3: Dimensjonskjeden er

(5×2)(2×6)(6×24)=5×24.(5\times2)(2\times6)(6\times24)=5\times24.

Altså er Y(1):5×24Y_{(1)}:5\times24, som passer en tensor av form 5×4×65\times4\times6.

Regn ut en liten Tucker-modell med tall

Vi rekonstruerer en 2×2×22\times2\times2-tensor med multirang høyst (2,2,1)(2,2,1). Velg

G::1=(1102),A=(1101),B=(1011),C=(12).G_{::1}=\begin{pmatrix}1&1\\0&2\end{pmatrix}, \quad A=\begin{pmatrix}1&1\\0&1\end{pmatrix}, \quad B=\begin{pmatrix}1&0\\1&1\end{pmatrix}, \quad C=\begin{pmatrix}1\\2\end{pmatrix}.

Fordi tredje kjernemodus har størrelse 11, lager vi først grunnmatrisen

H=AG::1B⊤.H=AG_{::1}B^\top.

Regn fra midten og utover:

AG::1=(1101)(1102)=(1302),AG_{::1} =\begin{pmatrix}1&1\\0&1\end{pmatrix} \begin{pmatrix}1&1\\0&2\end{pmatrix} =\begin{pmatrix}1&3\\0&2\end{pmatrix}, H=(1302)(1101)=(1402).H =\begin{pmatrix}1&3\\0&2\end{pmatrix} \begin{pmatrix}1&1\\0&1\end{pmatrix} =\begin{pmatrix}1&4\\0&2\end{pmatrix}.

Tallene i CC skalerer denne matrisen i de to lagene:

Y::1=H=(1402),Y::2=2H=(2804).Y_{::1}=H=\begin{pmatrix}1&4\\0&2\end{pmatrix}, \qquad Y_{::2}=2H=\begin{pmatrix}2&8\\0&4\end{pmatrix}.

De ikke-null kjerneoppføringene gir også

Y=a1⊚b1⊚c1+a1⊚b2⊚c1+2a2⊚b2⊚c1.\mathcal Y =a_1\circledcirc b_1\circledcirc c_1 +a_1\circledcirc b_2\circledcirc c_1 +2a_2\circledcirc b_2\circledcirc c_1.

Midterleddet er en Tucker-krysskobling mellom a1a_1 og b2b_2.

Higher-Order Singular Value Decomposition

Navnet HOSVD er mye verre enn selve oppskriften: matrisér i hver retning, kjør den SVD-en du allerede kjenner, og behold de viktigste kolonnene.

HOSVD finner en Tucker-type modell ved å bruke SVD på hver matrisering. Med ønskede størrelser (r1,r2,r3)(r_1,r_2,r_3) er dette en trunkert HOSVD:

  1. La AA være de r1r_1 ledende venstre singulærvektorene til X(1)X_{(1)}.
  2. La BB være de r2r_2 ledende venstre singulærvektorene til X(2)X_{(2)}.
  3. La CC være de r3r_3 ledende venstre singulærvektorene til X(3)X_{(3)}.
  4. Beregn kjernen
G=X×1A⊤×2B⊤×3C⊤.\mathcal G =\mathcal X\times_1A^\top\times_2B^\top\times_3C^\top.
  1. Returner G,A,B,C\mathcal G,A,B,C og eventuelt
X^=G×1A×2B×3C.\widehat{\mathcal X} =\mathcal G\times_1A\times_2B\times_3C.
Se dette i praksis

La

X∈R6×5×4\mathcal X\in\mathbb R^{6\times5\times4}

og velg Tucker-størrelser

(r1,r2,r3)=(2,2,1).(r_1,r_2,r_3)=(2,2,1).

HOSVD utfører tre SVD-er:

  1. Ta SVD av X(1)∈R6×20X_{(1)}\in\mathbb R^{6\times20} og behold to venstre singulærvektorer.
  2. Ta SVD av X(2)∈R5×24X_{(2)}\in\mathbb R^{5\times24} og behold to.
  3. Ta SVD av X(3)∈R4×30X_{(3)}\in\mathbb R^{4\times30} og behold én.

Dermed får vi

A∈R6×2,B∈R5×2,C∈R4×1,A\in\mathbb R^{6\times2},\qquad B\in\mathbb R^{5\times2},\qquad C\in\mathbb R^{4\times1},

og

G=X×1A⊤×2B⊤×3C⊤∈R2×2×1.\mathcal G =\mathcal X\times_1A^\top\times_2B^\top\times_3C^\top \in\mathbb R^{2\times2\times1}.

HOSVD har valgt de viktigste retningene separat i hver modus.

Hurtigsjekk 59. La Y∈R8×6×5\mathcal Y\in\mathbb R^{8\times6\times5} og velg størrelser (3,2,2)(3,2,2). Oppgi dimensjonene til de tre matriseringene, hvilke singulærvektorer som beholdes, og dimensjonene til A,B,C,GA,B,C,\mathcal G.

Løsning

Steg 1: Matriseringene er

Y(1):8×30,Y(2):6×40,Y(3):5×48.Y_{(1)}:8\times30,\qquad Y_{(2)}:6\times40,\qquad Y_{(3)}:5\times48.

Steg 2: Behold henholdsvis 33, 22 og 22 ledende venstre singulærvektorer.

Steg 3: Derfor er

A:8×3,B:6×2,C:5×2,G:3×2×2.A:8\times3,\qquad B:6\times2,\qquad C:5\times2, \qquad \mathcal G:3\times2\times2.
Følg HOSVD med tall, linje for linje

La X∈R2×2×2\mathcal X\in\mathbb R^{2\times2\times2} ha

X::1=(3000),X::2=(0001),X_{::1}=\begin{pmatrix}3&0\\0&0\end{pmatrix}, \qquad X_{::2}=\begin{pmatrix}0&0\\0&1\end{pmatrix},

og velg (r1,r2,r3)=(1,1,1)(r_1,r_2,r_3)=(1,1,1). De eneste ikke-null oppføringene er x111=3x_{111}=3 og x222=1x_{222}=1.

Med kursets kolonnerekkefølge er de tre matriseringene i dette symmetriske eksemplet identiske:

X(1)=X(2)=X(3)=(30000001).X_{(1)}=X_{(2)}=X_{(3)} =\begin{pmatrix} 3&0&0&0\\ 0&0&0&1 \end{pmatrix}.

Singulærverdiene er 33 og 11, og den ledende venstre singulærvektoren er

e1=(10).e_1=\begin{pmatrix}1\\0\end{pmatrix}.

Dermed

A=B=C=e1.A=B=C=e_1.

Kjernen er ett tall:

G=X×1e1⊤×2e1⊤×3e1⊤=[3].\mathcal G =\mathcal X\times_1e_1^\top\times_2e_1^\top\times_3e_1^\top =[3].

Rekonstruksjonen

X^=3e1⊚e1⊚e1\widehat{\mathcal X} =3e_1\circledcirc e_1\circledcirc e_1

beholder x111=3x_{111}=3 og kaster x222=1x_{222}=1. Derfor

∥X−X^∥F=1,∥X−X^∥F∥X∥F=110.\|\mathcal X-\widehat{\mathcal X}\|_F=1, \qquad \frac{\|\mathcal X-\widehat{\mathcal X}\|_F}{\|\mathcal X\|_F} =\frac1{\sqrt{10}}.

Higher-Order Orthogonal Iteration

HOOI bruker HOSVD som start og forbedrer én faktormatrise om gangen:

  1. Initialiser A,B,CA,B,C med HOSVD.
  2. Gjenta:
ZA=X×2B⊤×3C⊤,\mathcal Z_A =\mathcal X\times_2B^\top\times_3C^\top,

og la A~\widetilde A være de r1r_1 ledende venstre singulærvektorene til (ZA)(1)(Z_A)_{(1)}.

Deretter

ZB=X×1A~⊤×3C⊤,\mathcal Z_B =\mathcal X\times_1\widetilde A^\top\times_3C^\top,

og la B~\widetilde B være de r2r_2 ledende venstre singulærvektorene til (ZB)(2)(Z_B)_{(2)}.

Til slutt

ZC=X×1A~⊤×2B~⊤,\mathcal Z_C =\mathcal X\times_1\widetilde A^\top\times_2\widetilde B^\top,

og la C~\widetilde C være de r3r_3 ledende venstre singulærvektorene til (ZC)(3)(Z_C)_{(3)}.

Sett A=A~A=\widetilde A, B=B~B=\widetilde B, C=C~C=\widetilde C, og stopp når feilen eller faktorene nesten ikke endrer seg. Beregn så

G=X×1A⊤×2B⊤×3C⊤.\mathcal G =\mathcal X\times_1A^\top\times_2B^\top\times_3C^\top.
Se dette i praksis

Anta at HOSVD har gitt startmatrisene

A(0),B(0),C(0).A^{(0)},\qquad B^{(0)},\qquad C^{(0)}.

Én HOOI-sveip oppdaterer dem i denne rekkefølgen:

  1. Komprimer X\mathcal X med B(0)B^{(0)} og C(0)C^{(0)}. SVD-en av modus-11-matriseringen gir A(1)A^{(1)}.
  2. Komprimer med den nye A(1)A^{(1)} og gamle C(0)C^{(0)}. SVD-en i modus 22 gir B(1)B^{(1)}.
  3. Komprimer med nye A(1)A^{(1)} og B(1)B^{(1)}. SVD-en i modus 33 gir C(1)C^{(1)}.

Neste sveip starter med A(1),B(1),C(1)A^{(1)},B^{(1)},C^{(1)}. HOOI er altså HOSVD-idéen gjentatt, med ny informasjon fra de andre modiene hver gang.

Hurtigsjekk 60. La X∈R6×5×4\mathcal X\in\mathbb R^{6\times5\times4} og (r1,r2,r3)=(2,2,1)(r_1,r_2,r_3)=(2,2,1). Finn formene til ZA\mathcal Z_A, ZB\mathcal Z_B og ZC\mathcal Z_C i én HOOI-sveip, og oppgi hvilke faktorer som er nye eller gamle i hvert steg.

Løsning

Steg 1: Med B⊤:2×5B^\top:2\times5 og C⊤:1×4C^\top:1\times4 får vi

ZA=X×2B⊤×3C⊤∈R6×2×1.\mathcal Z_A =\mathcal X\times_2B^\top\times_3C^\top \in\mathbb R^{6\times2\times1}.

Her brukes gamle BB og CC, og resultatet gir nye AA.

Steg 2: Bruk nye A⊤:2×6A^\top:2\times6 og gamle C⊤:1×4C^\top:1\times4:

ZB∈R2×5×1.\mathcal Z_B \in\mathbb R^{2\times5\times1}.

Dette gir nye BB.

Steg 3: Bruk både nye A⊤A^\top og nye B⊤B^\top:

ZC∈R2×2×4.\mathcal Z_C \in\mathbb R^{2\times2\times4}.

Modus-33-matriseringen har form 4×44\times4, og dens ledende venstre singulærvektor gir nye CC.

Bonus/utsyn: én numerisk HOOI-sveip

Bruk HOSVD-eksemplet over med (r1,r2,r3)=(1,1,1)(r_1,r_2,r_3)=(1,1,1) og start

A=B=C=e1.A=B=C=e_1.

Første projeksjon er

ZA=X×2e1⊤×3e1⊤=(30).\mathcal Z_A =\mathcal X\times_2e_1^\top\times_3e_1^\top =\begin{pmatrix}3\\0\end{pmatrix}.

Den ledende venstre singulærvektoren er fortsatt e1e_1, så A~=e1\widetilde A=e_1. På samme måte får vi

ZB=(30)⟹B~=e1,\mathcal Z_B=\begin{pmatrix}3\\0\end{pmatrix} \Longrightarrow \widetilde B=e_1, ZC=(30)⟹C~=e1.\mathcal Z_C=\begin{pmatrix}3\\0\end{pmatrix} \Longrightarrow \widetilde C=e_1.

Kjernen er fortsatt [3][3], og feilen er fortsatt 11. Eksemplet er med vilje stasjonært: HOSVD-starten var allerede et fast punkt. På generelle data endres retningene. Eksakte blokkoppdateringer skal ikke forverre tilpasningen, men HOOI garanterer ikke et globalt minimum.

Oppsummering

  • Tensorer generaliserer skalarer, vektorer og matriser til flere modi.
  • Fibre oppstår når alle unntatt én indeks festes; snitt oppstår når én indeks festes.
  • Ytre produkter lager rang-11-tensorer, og tensor-rang er det minste antallet slike byggeklosser i en eksakt sum.
  • Vektorisering, Kronecker, Khatri–Rao og Hadamard er forskjellige operasjoner med forskjellige dimensjonskrav.
  • Matrisering flytter tall til en matrise, mens et kk-modusprodukt transformerer én retning og oppfyller Y(k)=QX(k)Y_{(k)}=QX_{(k)}.
  • CP bruker samsvarende faktortripler; ALS finner faktorene ved vekslende minste-kvadraters problemer.
  • Tucker bruker en liten kjerne og én faktormatrise per modus.
  • HOSVD gir en Tucker-start fra SVD-er av matriseringene; HOOI forbedrer faktorene iterativt.
Din vurderingHva vil du ta med videre?
Hvordan kjentes denne delen?
Sjekker lokal lagring …