從定義出發理解奇異值分解(SVD)

最近看奇異值分解,感覺網上的文章不是特別嚴謹,參考了這篇文章,A Singularly Valuable Decomposition: The SVD of a Matrix,得到了比較嚴謹的奇異值分解的原理推導。

特徵分解

首先說一下矩陣A特徵分解(eigenvalue decomposition, EVD)。

對於n×n矩陣A(行列必須相同),如果A有n個線性無關的特徵向量,矩陣A才可以對角化,才能進行特徵分解,有些矩陣沒有達到n個線性無關的特徵向量是無法對角化的(這邊是網上一些文章的漏洞)。若A是實對稱矩陣,則有更好的性質,屬於A的不同特徵值的特徵向量一定正交(正交一定線性無關,線性無關不一定正交)。

對於實對稱矩陣A,可以特徵分解

其中,V的列向量是A的特徵向量,D是對角矩陣,對角元素是對應特徵向量的A的特徵值。並且V是正交矩陣,即 [V{V^T} = I] 。這是線代書上實對稱矩陣對角化的定理得來。

奇異值分解

對於一般的m×n的實矩陣A,即各個元素都是實數,如何進行矩陣的分解呢?注意到 [{A^T}A]一定是對稱矩陣,我們可以利用這個性質進一步操作。根據實對稱矩陣特徵分解性質,令

D是對角矩陣,對角元素 [{lambda _i}][{A^T}A] 的特徵值。由V是正交矩陣,令V的列向量為 [{ {v_1},{v_2}, ldots {v_n}} ] ,由實對稱矩陣的性質可知這些向量都是 [{A^T}A] 的特徵向量,並且是一組正交基底。通過這組正交基,我們可以得到更有趣的性質,即 [{ A{v_1},A{v_2}, ldots ,A{v_n}} ] 也是一組正交基。證明如下:

因為 [{ {v_1},{v_2}, ldots {v_n}} ] 這些特徵向量相互正交,所以 [{ A{v_1},A{v_2}, ldots ,A{v_n}} ] 也是一組正交基。

令i=j,那麼有 [|A{v_i}{|^2} = {lambda _i}|{v_i}{|^2} = {lambda _i}]

我們定義

就可以得到

[{v_i}] 為矩陣V的列向量, [{u_i}] 為矩陣U的列向量,拼接一下此可以得到下式(這邊想不通的同學,可以寫一個小的矩陣乘起來等號左右兩邊對應元素試一下,是相等的)

其中, [sum {} ] 是對角矩陣,對角元素為 [{sigma _i}]V是正交矩陣,U是通過定義得來,也是正交矩陣

[V{V^T} = I] ,我們可以得到奇異值分解結果

SVD和EVD的關係

上面的構造通過對 [{A^T}A] 求特徵分解(EVD),得到了矩陣A的奇異值分解(SVD)。同樣,我們可以從矩陣A的奇異值分解(SVD)得到 [{A^T}A] 特徵分解(EVD)。

假設 [A = Usum {{V^T}} ] 已經給定,注意到UV都是正交矩陣,可以得到下面兩式

注意等式右邊中間兩個對角矩陣的乘積還是對角矩陣,對角元素變為 [{sigma _i}^2 = {lambda _i}] ,因此,我們可以到 [A{A^T}][{A^T}A] 的特徵分解(EVD)。

通過以上推導,我們可以看出,對於任意的矩陣A的奇異值分解,其右奇異向量(V的列向量)一定為 [{A^T}A] 的特徵向量,左奇異向量(U的列向量)一定為 [A{A^T}] 的特徵向量。所以我們進行SVD時,只需要對 [A{A^T}][{A^T}A] 進行特徵分解(EVD),求出相應的UV即可。

具體算例可以參考網上其他文章,本文只是整理一下SVD為什麼要這樣計算。


推薦閱讀:

dx dy的意思 微分的定義 導數符號的意思
古典概型
二項式定理(非整數冪)
2.3 四種重要的線性PDE (3)
泰勒公式在做等價替換時如何確定階數

TAG:線性代數 | 高等數學 | 機器學習 |