特徵值問題與奇異值分解

奇異值分解

奇異值分解(singular value decomposition)依廣泛共識,是整個數值線性代數中最有用的單一分解。它說:「任何」矩陣 A——方陣或長方、滿秩或缺秩、對稱或否——都可寫成 A = U Sigma V^T,其中 U 與 V 是正交矩陣,Sigma 是對角且元素非負。用樸素的幾何話說:每個線性映射,無論看起來多麼凌亂,其實就是一次旋轉,接著沿彼此垂直的軸做拉伸,再接一次旋轉。SVD 找出那些軸與拉伸倍率。

拆解各部分。V 的各欄(右奇異向量)是一組特殊的正交歸一輸入方向;U 的各欄(左奇異向量)是相配的一組正交歸一輸出方向;Sigma 的對角元素,即奇異值 sigma_1 >= sigma_2 >= ... >= 0,是 A 把每個輸入方向拉伸成其輸出方向的倍率。讀作一個作用:A v_i = sigma_i u_i——A 把第 i 個右奇異向量送成 sigma_i 倍的第 i 個左奇異向量。SVD 與對稱特徵值問題密切相連:A^T A = V Sigma^2 V^T,所以右奇異向量是 A^T A 的特徵向量,奇異值是其特徵值的平方根;同理 A A^T = U Sigma^2 U^T。這就是為何 SVD 總是存在、奇異值總是實數且非負,即使 A 根本沒有值得一提的特徵值。

它的計算「不」是靠組出 A^T A(那會把條件數平方、喪失精度),而是靠 Golub-Kahan 雙對角化,再接一次隱式的、類對稱-QR 的掃描。SVD 的觸角極廣:它揭露數值秩(數出高於雜訊水準的奇異值個數)、給出最佳低秩逼近(埃卡特-楊 Eckart-Young)、為最小平方定義摩爾-潘洛斯偽逆、計算矩陣的 2-範數(sigma_1)與條件數(sigma_1/sigma_n),並且是 PCA、潛在語意分析、影像壓縮、推薦系統、模型降階背後的引擎。若你要把一個矩陣分解學到透,就學這一個。

取 2x2 矩陣 A,列為 (1, 0) 與 (0, 0)——它投影到 x 軸。它的 SVD 有 sigma_1 = 1、sigma_2 = 0;右奇異向量是 (1,0) 與 (0,1),左奇異向量亦然。那唯一的非零奇異值告訴你矩陣的秩為 1:它把整個平面映成一條線。一個近奇異的矩陣會有一個極小但非零的 sigma_2,而比值 sigma_1/sigma_2 就是它的條件數——小奇異值標示接近秩虧。

每個矩陣都是一次旋轉、沿軸以奇異值拉伸、再一次旋轉:A = U Sigma V^T。

別靠組出 A^T A 再特徵分解來算 SVD:把矩陣平方會把條件數平方,於是極小的奇異值只算出一半位數、甚至完全丟失。好的 SVD 軟體(LAPACK)採用直接作用於 A 的雙對角化。此外,SVD 總是存在,但奇異向量只在符號意義下唯一,且(對重複的奇異值)在某子空間內可任意旋轉。

又稱
SVD奇異值分解(SVD)