適用於一切矩陣的分解
譜定理很美,但它只對對稱矩陣成立。可大多數矩陣並不對稱——許多甚至不是方陣。奇異值分解(SVD)能處理它們全部。對任意 m-by-n 的矩陣 A:A = U*S*V^T,其中 U 和 V 是正交矩陣(旋轉/反射),S 是對角矩陣、元素非負。
A = U * S * V^T V^T : rotate the input (orthogonal) S : stretch each axis by sigma_1 >= sigma_2 >= ... >= 0 U : rotate into the output (orthogonal)
幾何:旋轉、拉伸、旋轉
想像單位圓。作用 A 之後它變成一個橢圓。SVD 精確地命名了這個變換的各個部件。
- V^T 旋轉輸入空間,讓那些特殊的輸入方向對齊到座標軸上。
- S 按各自的奇異值 sigma_i 拉伸每個軸——它們就是橢圓各半軸的長度。
- U 把拉伸後的結果旋轉到它在輸出空間裡的最終朝向。
奇異值 sigma_1 >= sigma_2 >= ... >= 0 是 SVD 的核心。大的奇異值對應矩陣大幅拉伸的方向;近乎為零的奇異值對應它幾乎壓扁的方向。這一串有序的數幾乎告訴你矩陣行為的一切。
奇異值、秩與特徵值
非零奇異值的個數恰好就是 A 的秩。所以 SVD 透過數個數就讀出了秩——而且關鍵在於,它讓你能衡量*近似*秩:若某個奇異值很小但不完全為零,那麼這個矩陣*近乎*是更低的秩,這正是下一篇壓縮的全部根據。