這兩天的學習過程對線性代數的認知逐漸清晰,我以此貼,把一些關鍵新內容彙總於此。
當面對矩陣、奇異值時,應該建立如下認知:
✅ 矩陣是空間操作器
✅ 奇異值分解幫你分解矩陣的精髓:旋轉 → 拉伸 → 旋轉
✅ 奇異值的大小排序,告訴你:矩陣在哪些方向上真正有力量,哪些方向是廢
1、正交矩陣#
正交矩陣(Orthogonal Matrix)的核心定義
一個 n×n 實矩陣 Q 如果滿足
QTQ=QQT=In
則稱 Q 為正交矩陣。
這裡 QT 是轉置,In 是 n 階單位矩陣。
逆即轉置
Q−1=QT
計算上省事,數值穩定。
正交矩陣就是 “保持內積” 的實矩陣—— 它把坐標系旋轉或翻轉,但絕不拉伸或扭曲。
2、尖括號#
在這裡
⟨qi,qj⟩
就是 “內積 (inner product)” 的符號。最常見的情形 —— 實數向量空間 Rn—— 它等同於我們熟悉的點積(dot product):
⟨qi,qj⟩=qiTqj=k=1∑n(qi)k(qj)k.
3、矩陣交換位置#
1. 消掉左邊的 Q
-
貼在 S左邊的是 Q
-
用它的逆 Q−1左乘雙方:
Q−1A=Q−1QSQT⟹Q−1A=SQT
注意:
2. 消掉右邊的 $Q^{\mathsf T}$
Q−1A(QT)−1=SQT(QT)−1⟹S=Q−1A(QT)−1
若 Q 是正交矩陣,Q−1=QT,於是
S=QTAQ.
為什麼順序不能顛倒?
-
一旦乘錯側,符號會 “插” 到別的位置:
AQ−1=Q−1A。
-
在等號兩邊必須 對稱地 進行相同操作,等式才仍然成立。
-
這本質上與函數複合順序或坐標變換順序相同:先做哪個變換、後做哪個變換都寫在乘積的對應位置,絕不能隨意交換。
4、相似對角化矩陣#
相似對角化矩陣(常說 “可對角化矩陣”)指的是:
存在一個可逆矩陣 P,使得
P−1AP=D,
其中 D 是對角矩陣。
此時說 A 能通過相似變換被對角化,或簡稱 A 可對角化。
對角化的 “機械流程”
-
求特徵值:解 det(A−λI)=0。
-
求特徵向量:對每個 λ,解 (A−λI)x=0。
-
組裝 P:把 n 個互不相關的特徵向量按列排成矩陣 P。
-
得到 D:把對應特徵值填進對角線:D=diag(λ1,…,λn)。
就有 A=PDP−1。
5、奇異值分解#
A=QSQT⟺S=QTAQ
符號 | 含義 |
---|
A | 給定的 實對稱矩陣(AT=A) |
Q | 正交矩陣:QTQ=I,列向量兩兩正交且單位長度 |
S | 對角矩陣:S=diag(λ1,…,λn) |
寫法 A=QSQT 稱為 正交相似對角化;幾何上就是 “旋轉(或鏡像)坐標系 → A 只剩獨立的伸縮”。
1. 為什麼 “實對稱矩陣一定能正交對角化”?
光譜定理:
對任何實對稱矩陣 A,存在正交矩陣 Q 使得 QTAQ 是對角的,且對角元就是 A 的特徵值。
- 實特徵值:對稱保證特徵值全是實數。
- 正交特徵向量:若 λi=λj,對應特徵向量必正交。
- 重根也能取正交基:同一特徵值可能對應多個向量,這時在它們張成的子空間裡再做 Gram–Schmidt 即可。
- 文字步驟逐條解析
步驟 | 說明 |
---|
1. 求出 A 的全部特徵值和特徵向量 | 計算 det(A−λI)=0 得到所有 λi;對每個 λi 解 (A−λiI)v=0 求特徵向量。 |
2. 將特徵值按一定順序在對角線上排列即可得到對角陣 S | 例如按從小到大排成 S=diag(λ1,…,λn)。順序無關緊要,只要和稍後列向量順序一致即可。 |
3. 不同特徵值對應的特徵向量彼此正交;對重根特徵向量用 Gram-Schmidt 正交化並單位化 | - 若 λi=λj,對應向量天然正交,不用動。 |
- 如果 λ 有重複(幾何重數 >1),先隨便取一組線性無關向量,再在該子空間裡做 Gram-Schmidt,使之兩兩正交並各自歸一(長度調成 1)。 | |
4. 按照特徵值在對角線上的順序將改造後的特徵向量橫向排列,即可得到正交矩陣 Q | 按對角線特徵值順序把改造後的特徵向量作為列排成 Q=[q1 ⋯ qn]。此時 QTQ=I,並有 A=QSQT。 |
- 一個 2×2 具體小例子
設
A=[4114]
① 求特徵值
det(A−λI)=(4−λ)2−1=0⟹λ1=5,λ2=3
② 求特徵向量
- λ1=5:(A−5I)v=0 ⇒ v1=[11]
- λ2=3:(A−3I)v=0 ⇒ v2=[1−1]
③ 归一化
q1=21[11],q2=21[1−1]
④ 組裝並驗證
Q=21[111−1],S=[5003],QTAQ=S.




6、取行列式(det・)#
行列式(determinant)是把一個方陣 A 映射成一個標量 detA 的運算。
這個標量綜合了矩陣最核心的幾何與代數信息:體積伸縮因子、可逆性、特徵值乘積等。
公式
階數 | 公式 |
---|
1×1 | det[a]=a |
2×2 | det[acbd]=ad−bc |
3×3 | “Sarrus 法” 或按第一行展開: |
detadgbehcfi=a(ei−fh)−b(di−fg)+c(dh−eg) | |
核心性質(任何定義都必須滿足) | |
性質 | 說明 |
---|
乘法性 | det(AB)=detA⋅detB |
可逆判據 | detA=0⟺A 可逆 |
按行列線性 | 每一行(列)關於元素線性 |
交替性 | 兩行(列)交換 ⇒ 行列式變號 |
對角線積 | 上 / 下三角矩陣:detA=∏iaii |
特徵值積 | detA=λ1λ2⋯λn(含重數) |
3×3 手算示例
設
A=2051423−10
按第一行展開:
detA=2det[42−10]−1det[05−10]+3det[0542]=2(4⋅0−(−1)⋅2)−1(0⋅0−(−1)⋅5)+3(0⋅2−4⋅5)=2(2)−1(5)+3(−20)=4−5−60=−61.
一句話總結
“取行列式” 就是:讓一個 n×n 方陣通過一套交替、線性的規則坍縮成單一數字,這個數字同時編碼了矩陣的體積伸縮、方向、可逆性和特徵值乘積等關鍵信息。
7、矩陣的秩#
矩陣的 “秩” 到底是什麼?
等價視角 | 直觀解釋 |
---|
線性獨立 | 行(或列)裡能挑出多少個彼此線性無關的向量,就是秩。 |
空間維數 | 列向量張成的子空間(列空間)維度 = 行向量張成的子空間(行空間)維度 = 秩。 |
滿秩子式 | 矩陣裡最大的非零行列式的階數 = 秩。 |
奇異值 | 在 SVD A=UΣV∗ 裡,非零奇異值的個數 = 秩。 |
線性獨立
下面用 3 × 3 的小矩陣舉三個對比案例,讓「秩 = 能挑出幾根線性無關的列(或行)向量」這句話一目了然。
| 矩陣 $A$ | 列向量寫成 (v1∣v2∣v3) | 線性關係 | 秩 |
|------------|-----------------------------------------------|-----------|--------|
| 123246369 | v1=123
v2=246=2v1
v3=369=3v1 | 三列全在同一直線上 ——只有 1 根獨立向量 | 1 |
| 101011112 | v1=101
v2=011
v3=v1+v2 | v1,v2 不共線 ⇒ 2 維平面;v3 落在這平面裡 | 2 |
| 101011110 | v1=101
v2=011
v3=110 | 任意兩列都無法線性表達第三列 ⇒ 三列張成整個 R3 | 3 |
如何判斷「無關」?
-
手算 把列拼成矩陣,對它做消元 → 非零行數就是秩。
-
概念 如果存在常數 $c_1,c_2,c_3$ 使 $c_1v_1+c_2v_2+c_3v_3=0$ 且不全為 0,向量就相關;否則無關。
一句話:秩 = 這張矩陣真正 “存得下” 多少獨立信息(維度)。
8、低秩近似#
為什麼截斷 SVD (低秩近似) 只要存 k (m+n)+k
個數?
把原矩陣
A∈Rm×n
截斷到秩 $k$ 後寫成
Ak=UkΣkVkT,
塊 | 形狀 | 需要保存的標量個數 | 說明 |
---|
Uk | m×k | m×k | 左奇異向量:只取前 k 列 |
Vk | n×k | n×k | 右奇異向量:同理 |
Σk | k×k對角 | k | 只保留對角線上 k 個奇異值 |
把三塊加起來就是
Ukmk+Vknk+Σkk=k(m+n)+k.
因此,用秩 -k 的 SVD 近似替代原來的 m×n 儲存量,參數量從 mn 縮到 k(m+n)+k。
如果 k≪min(m,n),省下的空間就非常可觀。
秩降低 = 信息維度降低,低秩存儲 = 參數量 / 內存同步降低
9、範數#
“两豎線” $|,\cdot,|$ 在線性代數裡表示 範數(norm)。
-
對向量 v∈Rm,最常用的是 二範數(Euclidean norm):∥v∥=vTv=∑i=1mvi2,∥v∥2=vTv.
在圖中 ∥Xw−y∥2 就是把向量 Xw−y 的每個分量平方後求和。
-
對矩陣 A 若也寫 ∥A∥,常默認為 Frobenius 範數:∥A∥F=∑i,jAij2。不過在這張圖裡涉及的都是向量。
與之對比,單豎線 ∣⋅∣ 通常表示絕對值(標量)或行列式 ∣A∣。所以雙豎線是向量/矩陣 “長度” 的符號,單豎線是標量大小或行列式的符號 —— 對象和含義都不同。
向量常用歐幾里得距離 -- 2 範數(L2 範數)#
import torch
b = torch.tensor([3.0, 4.0])
print(b.norm()) # 輸出 5.0
.norm()
是 PyTorch 張量(torch.Tensor) 的方法。
矩陣常用 Frobenius 範數#
矩陣也有 “長度”—— 常用的是 Frobenius 範數
名稱 | 記號 | 公式(對 $A\in\mathbb R^{m\times n}$) | 與向量的類比 |
---|
Frobenius 範數 | $\displaystyle|A|_F$ | $\displaystyle\sqrt{\sum_{i=1}^{m}\sum_{j=1}^{n}A_{ij}^{2}}$ | 就像向量 2 - 範數 $|v|=\sqrt {\sum v_i^2}$ |
1. 為什麼也能寫成 “矩陣點積”
在矩陣空間裡常用的 內積 是
⟨A,B⟩:=tr(ATB),
其中 tr(⋅) 是跡運算(對角線元素之和)。
給 A 自己做這個內積,就得到
∥A∥F2=⟨A,A⟩=tr(ATA).
所以:
∥A∥F2=tr(ATA)
這正是矩陣版本的 ∥v∥2=vTv—— 只是把向量點積換成了 “跡點積”。
Frobenius 範數確實等於所有奇異值平方和的平方根,也就是:
∥A∥F=i∑σi2
這裡:
Frobenius 範數確實等於所有奇異值平方和的平方根
展開解釋:
Frobenius 範數定義為:
∥A∥F=i,j∑∣aij∣2
但奇異值分解(SVD)告訴我們:
A=UΣVT
其中 Σ 是對角矩陣,主對角線上就是奇異值 σ1,σ2,…。
因為 Frobenius 範數不變換(單位正交變換不改變範數),我們可以直接算:
∥A∥F2=i,j∑∣aij∣2=i∑σi2
所以最終:
∥A∥F=i∑σi2
小心誤區
注意:
✅ 不是 單個奇異值平方根,也不是最大奇異值
✅ 是 所有奇異值平方後再相加取根號
譜範數看 “最能放大的一个方向”,Frobenius 則把所有能量都累加
矩陣的譜範數#
✅ 譜範數定義
矩陣 A 的譜範數(spectral norm)定義為:
∥A∥2=∥x∥2=1max∥Ax∥2
直白講,就是 矩陣 A 把單位向量拉伸到多長的最大值。
奇異值本來就是表示矩陣的拉伸變換的。
它等於 A 的最大奇異值:
∥A∥2=σmax(A)
另一角度:譜範數 ≈ 把單位向量丟進矩陣後被拉伸的最大長度
✅ 它跟 Frobenius 範數的關係
換句話說:
-
Frobenius 像是矩陣 “體積” 總量感
-
譜範數像是 “最極端” 的單一方向放大率
✅ 例子:為什麼它重要?
想像一個神經網絡的線性層 $W$:
所以現代方法(比如 spectral normalization)
會直接在訓練中把 W 的譜範數壓制到一個範圍內。
⚠ 直說缺點
譜範數很強,但:
概要對比
| 歐幾里得範數 (2-norm, ‖v‖) | Frobenius 範數 (‖A‖F) |
---|
對象 | 向量 v∈Rn | 矩陣 A∈Rm×n |
定義 | ∥v∥=i=1∑nvi2 | ∥A∥F=i=1∑mj=1∑nAij2 |
等價表達 | ∥v∥2=vTv | ∥A∥F2=tr(ATA)=∑kσk2 |
幾何意義 | 向量在 n 維歐氏空間的長度 | 把矩陣元素按 “長向量” 看時的長度 |
單位 / 尺度 | 與坐標軸有同樣度量 | 同上;對矩陣不依賴行列數的排列方式 |
常見用途 | 誤差度量、正則化 L2、距離 | 權重衰減、矩陣近似誤差、核方法 |
與譜範數關係 | ∥v∥=σmax(v) (僅一條奇異值) | ∥A∥F≥∥A∥2=σmax(A);若 rank = 1 則相等 |
1. 同一思路、不同維度
2. 何時用哪個?
場景 | 推薦範數 | 原因 |
---|
預測誤差、梯度下降 | 歐幾里得 (向量殘差) | 殘差天然是列向量 |
網絡權重正則 (Dense / Conv) | Frobenius | 不關心參數形狀、僅關心整體幅度 |
比較矩陣逼近質量 (SVD, PCA) | Frobenius | 容易與奇異值平方和對應 |
穩定性 / Lipschitz 邊界 | 譜範數 (∥A∥2) | 關心放大率而非總能量 |
3. 直觀區別
一句話記憶:
歐幾里得 範數:向量 “標尺”。
Frobenius 範數:把矩陣 “鋪平” 後用同一把標尺量它的整體大小。
10、矩陣相乘的轉置#
在矩陣代數裡,兩個(或多個)矩陣相乘後的轉置有一個固定的 “翻轉順序” 規則:
(AB)T=BTAT.
也就是 先轉置每個矩陣,再把乘法順序倒過來。
這一條性質對任何維度匹配的實(或複)矩陣都成立,而且可以遞歸推廣:
(ABC)T=CTBTAT,(A1A2⋯Ak)T=AkT⋯A2TA1T.
xLog 編輯 Markdown 文檔注意內容
參考視頻:
點這裡看 B 站視頻