奇異值分解

瘦(約簡)SVD

完整 SVD 背負了大量無用之重。若 A 是 1000×3 的瘦高矩陣,完整的 U 就是 1000×1000——一百萬個元素——儘管只有前 3 列會與奇異值發生作用;其餘 997 列乘的都是 Sigma 中的零。瘦 SVD 拋掉這些浪費的結構,只保留真正幹活的部分。

具體地說,對 m >= n 的瘦高 m×n 矩陣,瘦 SVD 寫作 A = U_hat Sigma_hat V^T,其中 U_hat 為 m×n(僅前 n 個左奇異向量),Sigma_hat 為 n×n 方對角陣,V 為 n×n。若進一步只保留 r 個非零奇異值(r = rank A),便得到緊湊 SVD A = U_r Sigma_r V_r^T,其中 U_r 為 m×r,Sigma_r 為 r×r 且可逆,V_r 為 n×r。

乘積與完整 SVD 完全相同——你沒有丟失關於 A 的任何資訊,丟掉的只是那些與零奇異值配對、毫無貢獻的 U 的列。對寬矩陣(m < n),同樣的思路改為裁剪 V。這正是數值庫預設返回的形式,因為它以能精確重建 A 的最小代價進行存儲與計算。

可以把它想成一張完整世界地圖與一張只裁出你唯一會駕車前往的國家的地圖之間的區別。緊湊形式也是偽逆與低秩工作的天然居所,因為 Sigma_r 是方陣且可逆,且不再有需要繞開的填充零。

1000x3 matrix: full U is 1000x1000; thin U_hat is 1000x3 (same product A)

對瘦高矩陣,瘦 SVD 成本低得多,卻能完美重建 A。

瘦 SVD 保留 n 個奇異向量(部分 sigma 仍可能為零);緊湊 SVD 只保留 r 個非零的。人們常把「瘦」籠統地用來指代兩者;要看保留的方塊是 n×n 還是 r×r。

又稱
economy SVDcompact SVD