PCA 不過是中心化資料的 SVD
經由 SVD 的主成分分析就是戴著統計學家帽子的 SVD。把資料矩陣 X 中心化(減去每列均值),取其 SVD X = U Sigma V^T,則右奇異向量 v_i 恰是主方向——方差最大的那些軸。這把卷一對 PCA 的看法磨利了。
沿 v_i 捕獲的方差為 sigma_i^2 / (N-1)。保留前 k 個方向就是一次截斷 SVD,故由 Eckart-Young 可證,它是資料的最佳 k 維概括。降維與最佳低秩逼近是同一條定理。
極分解:旋轉乘以拉伸
把 SVD 重新分組,第二個經典分解便隨之而出。極分解把 A 寫成 A = Q P,其中 Q = U V^T 是正交的(純旋轉/反射),P = V Sigma V^T 是對稱半正定的(純拉伸)。這是把複數寫成(單位相位)乘以(模長)的矩陣類比。
From A = U Sigma V^T, insert V^T V = I in the middle:
A = U Sigma V^T = (U V^T)(V Sigma V^T) = Q P
Q = U V^T orthogonal (rotation / reflection)
P = V Sigma V^T sym. pos. semidef. (stretch along principal axes)
Application: the orthogonal matrix CLOSEST to A (in Frobenius norm) is
exactly Q = U V^T.
This is how you 'snap' a drifted rotation matrix back to a true rotation
in graphics, robotics, and orthogonal Procrustes alignment.擴展規模:隨機化 SVD
在一個十億乘百萬的矩陣上,你負擔不起完整的 SVD——但你也很少需要它。若只有前 k 個奇異值要緊,隨機化 SVD 能快速找到它們。用一個小的隨機矩陣乘 A 以勾勒其主導值域,正交化,然後在這個草圖內做一次小型稠密 SVD。
- 抽取一個隨機的 n×(k+p) 矩陣 Omega(p 是小的過採樣餘量,比如 5-10)。
- 構造草圖 Y = A Omega;用 QR 把其列正交化得到 Q,滿足 Q^T Q = I。
- 投影:B = Q^T A 很小;廉價地取其 SVD B = U_B Sigma V^T。
- 提升回去:U = Q U_B。則 A 約等於 U Sigma V^T,其精度接近 Eckart-Young 最優。
從一個對每個矩陣僅僅*存在*的分解出發,我們抵達了推薦系統、圖像壓縮、潛在語義檢索、降噪以及無數機器學習流程內部降維背後的主力工具。一個分解——A = U Sigma V^T——而旋轉-拉伸-旋轉的圖景就支撐著這一切。這就是 SVD 的回報。