在很多線性代數問題中,如果我們首先思考若做SVD,情況將會怎樣,那么問題可能會得到更好的理解[1]。
--Lloyd N. Trefethen & David Bau, lll
為了討論問題的方便以及實際中遇到的大多數問題,在這里我們僅限於討論實數矩陣,注意,其中涉及到的結論也很容易將其擴展到復矩陣中(實際上,很多教材采用的是復矩陣的描述方式),另外,使用符號 x,y 等表示向量,A,B,Q等表示矩陣。
首先給出正交矩陣的概念。所謂正交矩陣,即該矩陣不同的兩個列向量之間作內積等於0(平面幾何中垂直的定義在多維情形下推廣),相同的列向量和自身做內積等於1(單位向量)。特別地,如果Q是一個n階正交方陣,則Q'Q=QQ'=I, 即正交矩陣的轉置即是該矩陣的逆矩陣。正交矩陣在數值分析中起着很重要的作用,一個主要的原因是它能夠保持向量的2范數不變(因此SVD也常用於最小二乘問題的求解中),以及矩陣的2范數以及F范數不變,即||Qx||_2=||x||_2, ||AQ||_2=||A||_2,||QA||_F=||A||_F。
奇異值分解定理:對於任意一個 m*n 的實數矩陣 A,都存在 m*m 的正交矩陣 U 和 n*n 的正交矩陣V,以及 m*n 的對角矩陣 D=diag(d_1,d_2,...,d_r),使得
A = UDV'
其中,d_1>=d_2>=...>=d_r>=0 稱為奇異值,U和V的各列分別稱為左奇異向量和右奇異向量。
奇異值分解定理是一個漂亮優美的結果。它不僅能夠很好地描述矩陣的結構,一個秩為r的矩陣可以表示成r個秩為1的矩陣之和,而且也給出了相應的幾何意義,n 維單位向量 x 在任意的 m*n 矩陣 A=UDV' 下的像下是 m 維空間中的一個超橢球。具體地,正交變換V'保持了x的向量長度不變,對角矩陣D將球面拉伸到一個超橢球上,最后正交變換U將旋轉這個超橢球,但不改變它的形狀,參見下圖。
圖1 SVD幾何解釋示意圖[2]
奇異值分解的矩陣性質:
1. 矩陣 A 的秩等於非零奇異值的個數。
2. 矩陣 A 的值域空間等於由 U 的前 r 個列向量張成的空間,而 A 的零空間是由 V 的后面 n-r 個列向量張成的空間。
3. ||A||_2=d_1, ||A||_F=sqrt(d_1+...+d_r)。
4. A 的非零奇異值的平方等於 AA' 和 A’A 的非零特征值。
注意,一旦能夠得到A的奇異值分解,按照上述給出的性質,那么關於A的秩,A的值域或者零空間的基,以及A的2-范數,F-范數等就自然地能夠得到。從這方面來看,SVD可以看作是求解這些問題的一個工具。除此之外,它還被廣泛地用來求解最小二乘問題,正則化問題,低秩逼近問題,數據壓縮問題,文本處理中的分類問題[4]等。
細心的童鞋發現,上面的所有結論都是建立在SVD定理正確以及能夠有效計算出給定矩陣A的SVD分解的基礎上。關於第一個問題,可以使用數學歸納法進行證明[3];第二個問題,由於證明中采用了數學歸納法,顯然它不能有效地求解出具體矩陣的SVD分解,而數值求解SVD需要借助於對稱矩陣的特征值分解(一個簡單的想法是對 AA' 進行特征值分解,然后得到 A 的奇異值分解,可惜該類方法數值穩定性較差,細節內容不展開敘述)。
最后,對矩陣的奇異值和矩陣的特征值之間的聯系進行幾點說明。第一,對於任意矩陣,都存在奇異值分解,而並非所有矩陣都存在特征值分解的;第二,奇異值分解中使用的是正交的矩陣,而特征值分解中使用的基一般不是正交的;第三,矩陣最小奇異值小於矩陣最小特征值的模長,矩陣最大奇異值大於矩陣最大奇異值的模長[5]。
參考文獻:
[1] 數值線性代數 Chap4-5,L N. Trefethen,David Bau, lll 著,陸金甫,關治譯,人民郵電出版社,2006年
[2] 應用數值線性代數,J W. Demmel 著,王國榮譯,人民郵電出版社,2007年
[3] 矩陣計算(第三版),Gene H.Golub,
[5] 矩陣A的特征值與奇異值大小關系? https://www.zhihu.com/question/40181430/answer/85446211