Linjära avbildningar
Kunna tolka en matris som en avbildning som roterar, skalar och skjuvar rummet.
Förkunskaper
Intuition
En matris är inte bara ett rutnät av tal — den är en funktion som flyttar rummet. Multiplicera alla punkter med matrisen och rummet roteras, skalas, speglas eller skjuvas. Räta linjer förblir räta och origo står still.
| Matris | Gör |
|---|---|
[[2,0],[0,2]] | skalar allt 2× |
[[2,0],[0,1]] | sträcker bara x-led |
[[0,-1],[1,0]] | roterar 90° |
[[1,1],[0,1]] | skjuvar |
[[1,0],[0,-1]] | speglar i x-axeln |
[[1,2],[2,4]] | plattar till allt på en linje (singulär) |
Determinanten är areaskalan: det = 2 betyder att alla areor dubbleras, det = 0 att rummet kollapsar till en linje (informationen går inte att återskapa — matrisen saknar invers), negativt det betyder att orienteringen vänds.
Formellt
Egenvektorer är de riktningar som avbildningen inte vrider — bara skalar: Där är egenvärdet, skalfaktorn i den riktningen.
För är och egenvektorer med egenvärden 2 och 3: avbildningen sträcker x-axeln dubbelt och y-axeln tre gånger.
Varför det spelar roll i deep learning:
- Varje lager i ett nät är en linjär avbildning (plus en icke-linjäritet). Djup = många avbildningar i följd.
- Om varje lagers matris har egenvärden > 1 växer signalen exponentiellt med djupet (exploderande aktiveringar/gradienter); är de < 1 krymper den (försvinnande). Initieringsstrategier handlar precis om att hålla dem nära 1.
- SVD skriver varje matris som rotation → skalning → rotation, och singulärvärdena är skalfaktorerna. Det är grunden för lågrangsapproximation och LoRA.
- Determinant noll = rangbrist = informationsförlust — precis det LoRA utnyttjar när ΔW medvetet ges låg rang.
Kod
import numpy as np
A = np.array([[2.0, 1.0], [0.0, 3.0]])
horn = np.array([[0,0], [1,0], [1,1], [0,1]], dtype=float)
print((A @ horn.T).T) # enhetskvadratens hörn efter avbildningen
print(np.linalg.det(A)) # 6.0 → areor blir 6× större
varden, vektorer = np.linalg.eig(A)
print(varden.round(3)) # [2. 3.]
print(vektorer.round(3)) # kolumnerna är riktningarna som bara skalas
B = np.array([[1.0, 2.0], [2.0, 4.0]])
print(np.linalg.det(B), np.linalg.matrix_rank(B)) # 0.0 1 ← kollapsar till en linje
Behärskning innebär
- Tolkar en matris som en geometrisk avbildning
- Kopplar determinant och egenvektorer till vad avbildningen gör
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- Wikipedia — Linjär avbildning (CC BY-SA 4.0) — CC BY-SA 4.0
- 3Blue1Brown — Essence of Linear Algebra — fri läsning