轉載來源:
作者:Xinyu Chen
鏈接:https://zhuanlan.zhihu.com/p/26306568
來源:知乎
矩陣的奇異值分解(singular value decomposition,簡稱SVD)是線性代數中很重要的內容,並且奇異值分解過程也是線性代數中相似對角化分解(也被稱爲特徵值分解,eigenvalue decomposition,簡稱EVD)的延伸。因此,以下將從線性代數中最基礎的矩陣分解開始講起,引出奇異值分解的定義,並最終給出奇異值分解的低秩逼近問題相關的證明過程。
1 線性代數中的矩陣分解
我們在學習線性代數時,就已經接觸了線性代數中的兩個重要定理,即對角化定理和相似對角化定理,在這裏,我們先簡單地回顧一下這兩個定理。另外,在接下來的篇幅裏,我們所提到的矩陣都是指由實數構成的矩陣,即實矩陣。
給定一個大小爲的矩陣(是方陣),其對角化分解可以寫成
其中,的每一列都是特徵向量,對角線上的元素是從大到小排列的特徵值,若將記作,則
更爲特殊的是,當矩陣是一個對稱矩陣時,則存在一個對稱對角化分解,即
其中,的每一列都是相互正交的特徵向量,且是單位向量,對角線上的元素是從大到小排列的特徵值。
當然,將矩陣記作,則矩陣也可以寫成如下形式:
舉一個簡單的例子,如給定一個大小爲的矩陣,根據求得特徵值爲,,相應地,,,則
.
這樣,我們就很容易地得到了矩陣的對稱對角化分解。
2 奇異值分解的定義
在上面,對於對稱的方陣而言,我們能夠進行對稱對角化分解,試想:對稱對角化分解與奇異值分解有什麼本質關係呢?
當給定一個大小爲的矩陣,雖然矩陣不一定是方陣,但大小爲的和的卻是對稱矩陣,若,,則矩陣的奇異值分解爲
其中,矩陣的大小爲,列向量是的特徵向量,也被稱爲矩陣的左奇異向量(left singular vector);矩陣的大小爲,列向量是的特徵向量,也被稱爲矩陣的右奇異向量(right singular vector);矩陣大小爲,矩陣大小爲,兩個矩陣對角線上的非零元素相同(即矩陣和矩陣的非零特徵值相同,推導過程見附錄1);矩陣的大小爲,位於對角線上的元素被稱爲奇異值(singular value)。
接下來,我們來看看矩陣與矩陣和矩陣的關係。令常數是矩陣的秩,則,當時,很明顯,矩陣和矩陣的大小不同,但矩陣和矩陣對角線上的非零元素卻是相同的,若將矩陣(或矩陣)對角線上的非零元素分別爲,其中,這些特徵值也都是非負的,再令矩陣對角線上的非零元素分別爲,則
即非零奇異值的平方對應着矩陣(或矩陣)的非零特徵值,到這裏,我們就不難看出奇異值分解與對稱對角化分解的關係了,即我們可以由對稱對角化分解得到我們想要的奇異值分解。
爲了便於理解,在這裏,給定一個大小爲的矩陣,雖然這個矩陣是方陣,但卻不是對稱矩陣,我們來看看它的奇異值分解是怎樣的。
由進行對稱對角化分解,得到特徵值爲,,相應地,特徵向量爲,;由進行對稱對角化分解,得到特徵值爲,,相應地,特徵向量爲,。取,則矩陣的奇異值分解爲
.
若矩陣不再是一個方陣,而是一個大小爲的,由得到特徵值爲,,特徵向量爲,,;由得到特徵值爲,,特徵向量爲,,令(注意:矩陣大小爲),此時,矩陣的奇異值分解爲
.
比較有趣的是,假設給定一個對稱矩陣,它是對稱矩陣,則其奇異值分解是怎麼樣的呢?
分別計算和,我們會發現,,左奇異向量和右奇異向量構成的矩陣也是相等的,即,更爲神奇的是,該矩陣的奇異值分解和對稱對角化分解相同,都是。這是由於對於正定對稱矩陣而言,奇異值分解和對稱對角化分解結果相同。
3 奇異值分解的低秩逼近
在對稱對角化分解中,若給定一個大小爲的矩陣,很顯然,矩陣的秩爲,特徵值爲,,,對應的特徵向量分別爲,,,考慮任意一個向量,則
在這裏,我們會發現,即使是一個任意向量,用矩陣去乘以的效果取決於較大的特徵值及其特徵向量,類似地,在奇異值分解中,較大的奇異值會決定原矩陣的“主要特徵”,下面我們來看看奇異值分解的低秩逼近(有時也被稱爲截斷奇異值分解)。需要說明的是,接下來的部分是從文獻《A Singularly Valuable Decomposition: The SVD of a Matrix》整理而來的。
給定一個大小爲的矩陣,由於可以寫成
其中,向量之間相互正交,向量之間也相互正交,由內積(有興趣的讀者可以自行推算)得到矩陣的F-範數的平方爲
知道了矩陣的F-範數的平方等於其所有奇異值的平方和之後,假設是矩陣的一個秩一逼近(rank one approximation),那麼,它所帶來的誤差則是(是矩陣的秩),不過如何證明是最好的秩一逼近呢?
由於(證明過程見附錄2),令,其中,是一個正常數,向量和分別是大小爲和的單位向量,則
單獨看大小爲的矩陣和的內積,我們會發現,
其中,需要注意的是,分別是向量和的第個元素;向量的大小爲,向量的大小也爲,另外,以爲例,是向量的模,則(殘差矩陣的平方和)爲
當且僅當時,取得最小值,此時,矩陣的秩一逼近恰好是.
當然,我們也可以證明是矩陣的最佳秩一逼近,以此類推,是矩陣的最佳秩一逼近。由於矩陣的秩爲,這樣,我們可以得到矩陣的最佳秩逼近(rank- approximation),即
.
這裏得到的矩陣的大小爲,矩陣的大小爲,矩陣的大小爲,矩陣可以用來做近似。
用低秩逼近去近似矩陣有什麼價值呢?給定一個很大的矩陣,大小爲,我們需要存儲的元素數量是個,當矩陣的秩遠小於和,我們只需要存儲個元素就能得到原矩陣,即個奇異值、個左奇異向量的元素和個右奇異向量的元素;若採用一個秩矩陣去逼近,我們則只需要存儲更少的個元素。因此,奇異值分解是一種重要的數據壓縮方法。
另外,關於奇異值分解的應用將在該系列後續文章中進行詳述。
---------------------------------------------------------------
附錄1:相關鏈接:Largest eigenvalues of AA' equals to A'A,截圖如下:
附錄2:求證:,其中,,.
證明: