奇異值分解

SVD 的幾何

關於線性映射,最具啟發性的一個事實是:無論一個矩陣看起來多麼糾纏,它們每一個都依次做同樣的三件事。旋轉、沿坐標軸拉伸、再旋轉。SVD A = U Sigma V^T 字面上就是把這句話寫成矩陣——V^T 旋轉,Sigma 拉伸,U 旋轉。

跟著一個向量 x 走一遍。先是 V^T 把 x 旋轉,使右奇異向量對齊到坐標軸(正交映射,純旋轉/反射,無任何扭曲)。然後 Sigma 把第 i 軸拉伸 sigma_i 倍(若 A 非方陣,還會丟棄或補充維數)。最後 U 把拉伸後的結果旋轉到輸出空間。旋轉、拉伸、旋轉——這就是任何線性映射所做的全部。

最乾淨的圖景是 A 對單位球的作用。球面不被那兩次旋轉改變,所以全部塑形都發生在拉伸那一步:球面變成一個橢球。這個橢球各軸的方向是左奇異向量 u_i,各半軸的長度是奇異值 sigma_i。A 的全部行為都被那一個橢球捕獲——朝向與拉伸盡在一圖。

這種幾何悄然解釋了這個領域裡的其餘一切。最長的半軸 sigma_1 是譜範數(最大拉伸);一條為零的半軸是被壓扁的方向,即零空間;最長與最短之比是條件數;壓扁最小的那些軸就是低秩逼近。一旦你看見這個旋轉-拉伸-旋轉的橢球,SVD 理論的其餘部分不過是從那幅圖中讀出細節而已。

unit sphere --V^T(rotate)--> sphere --Sigma(stretch)--> ellipsoid --U(rotate)--> oriented ellipsoid

A 把單位球映為橢球:各軸是諸 u_i,半軸長度是諸 sigma_i。

特徵分解只給出沿可能斜交的軸的拉伸,沒有乾淨的旋轉解讀,且只對特殊矩陣成立。SVD 那兩次分開的正交旋轉,正是它對每個矩陣都奏效的原因。

又稱
rotate-stretch-rotateellipsoid picture