SVD分解及应用的直观理解
轉載自:?http://blog.csdn.net/zhaoxinfan/article/details/8248637
這篇論文是矩陣分析課上老師布置的一項作業,主要內容來自于http://www.ams.org/samplings/feature-column/fcarc-svd?這篇文章,經過自己的翻譯整理后得到了這篇文章。這里并不是完全按照全文進行一字一句的翻譯,添加了一些內容,刪除了一些內容。
一、基礎知識
1、特征值:
如果說一個向量v是方陣A的特征向量,將一定可以表示成下面的形式:
這時候λ就被稱為特征向量v對應的特征值,一個矩陣的一組特征向量是一組正交向量。特征值分解是將一個矩陣分解成下面的形式;
其中Q是這個矩陣A的特征向量組成的矩陣,∑是一個對角陣,每一個對角線上的元素就是一個特征值。
2、奇異值:
假設M是一個 mxn的矩陣,其中的元素全部屬于域K,也就是實數域或復數域。如此則存在一個分解使得:?,其中U是mxm 階酉矩陣,∑是半正定mxn 階對角矩陣,而V* 即V的共軛轉置,是nxn 階酉矩陣。這樣的分解就稱為M的奇異值分解,∑對角線上的元素 ∑ij即為M的奇異值。
二、線性變換和奇異值分解的幾何表示
首先讓我們來看一個簡單的矩陣,例如下面這個兩行兩列的矩陣:
要知道一個矩陣其實就是一個線性變換,所以上面矩陣M其實對應于下面的線性變換:
因為這個矩陣M乘以一個點(x,y)的結果是:
?
也就等于把x坐標進行了橫向拉伸。
易知上面的矩陣是對稱的,所以這個變換是一個對x軸水平方向一個拉伸變換,當矩陣不是對稱的時候,例如下面這個矩陣:
它描述的變換如下:
可以看到這一次的變換并不是水平方向的拉伸,而是向右上方45°角的拉伸。
上面這兩個例子涉及的都是單一矩陣,接下來,我們來看看奇異值分解的幾何表示,可以說,在幾何上,奇異值分解的本質就是從一個正交網格到另一個正交網格的變換過程(注:這里只考慮歐式空間,未考慮酉空間的情況)。
考慮一組正交單位向量v1,v2和另一組正交向量Mv1,Mv2,如下圖:
?
我們采用u1和u2作為Mv1,Mv2方向上的單位向量,并用σ1,σ2表示Mv1,Mv2的長度,這些值就稱為M的奇異值。我們可以得到
Mv1=σ1u1
Mv2=σ2u2
針對一個向量x,在第一個坐標系中我們可以寫成
這也就意味著
又因為
Mx可以變為
通常記為
其中U是u1和u2兩個列向量構成的矩陣,∑是由σ1,σ2構成的對角矩陣,V是由v1,v2兩個列向量構成的矩陣。
三、應用之一-數據壓縮
奇異值分解可以被用來更有效的表示數據,假設我們想把下面這幅包含15X25個黑白像素點的圖進行轉換:
考慮到圖中只有下面所示的三種類型的列,完全能夠用一種緊湊的方式進行存儲。
我們可以把這幅圖用一個15 X 25的矩陣進行表述,一個位置上的元素如果是0則代表一個黑點,是1則代表一個白點。就這樣,我們構造了一個包含375個元素的矩陣。
如果我們對M進行奇異值分解,我們將會發現只有三個非零的奇異值
σ1=14.72
σ2=5.22
σ3=3.31
因此,矩陣可以表示為
這也意味著我們有三個各包含15個元素的向量?,同時還有三個各包含25個元素的向量 ,最后還有三個奇異值 。所以我們可以用123個元素而不是375個元素來表示這個矩陣。通過這種方式,奇異值分解發現了矩陣中的冗余信息并且提供了剔除冗余信息的方式。
四、應用之二-噪聲消減
前一個例子告訴我們如何處理一個大多數奇異值都為0的矩陣。通常來說,較大的奇異值針對的都是我們感興趣的信息。例如,假設我們用一個掃描儀把下面這幅圖掃描到電腦中,但是在掃描過程中圖像上出現了一些瑕疵(通常稱為“噪聲”)
我們用同樣的方式進行處理:使用15 x 25的矩陣表示數據并且進行奇異值分解,得到的奇異值如下
σ1=14.15
σ2=4.67
σ3=3.00
…
σ15=0.05
很顯然,前三個奇異值是最重要的,于是我們假設其他的奇異值都是因為圖中存在噪聲而產生的,可以做一個近似
這將會提示圖像的質量
五、應用之三-數據分析
在我們收集數據時經常會發現噪聲,無論我們的設備多么好,在測量值中總會包含錯誤。如果我們記得較大的奇異值對應著矩陣中重要的特征的話,那么使用奇異值分解來對剛剛收集到的數據進行學習處理就是理所當然了。
這里給一個例子,假設我們收集到的數據如下
我們可以取這些數據點并把它們放入到矩陣中
| -1.03 | 0.74 | -0.02 | 0.51 | -1.31 | 0.99 | 0.69 | -0.12 | -0.72 | 1.11 |
| -2.23 | 1.61 | -0.02 | 0.88 | -2.39 | 2.02 | 1.62 | -0.35 | -1.67 | 2.46 |
在進行奇異值分解后,我們能得到下面兩個奇異值
σ1=6.04
σ2=0.22
可以看到第一個奇異值遠遠大于第二個,我們可以放心的假設較小的σ2是因為數據中存在噪聲而產生的,而這個奇異值原本應該是0.在這種情況下,矩陣的秩為1,也就意味著所有的數據都位于ui定義的線上。
六、總結
由于奇異值良好的數學特性,奇異值分解不僅僅應用在主成分分析、圖像壓縮、數字水印和文章分類中,而且在信號分解、信號重構、信號降噪、數據融合、目標識別、目標跟蹤、故障檢測和神經網絡等方面有很好的應用。用一句話來說,奇異值分解提供了一種極其有效的手段使得能夠把線性代數的觀點應用到實際運用中。
?
PS:今日上午考完了矩陣分析,這也給我學習生涯中最后一門純數學課畫上了句號。盡管魏豐老師告訴我們出去以后別告訴別人學過矩陣分析(因為課時太短內容講的太淺),但這門課還是教會了我很多知識,從這篇文章中就能看到SVD的廣泛應用,而SVD只不過是矩陣分析中一個比較典型的閃光點罷了。我記得大二的時候有北航的大牛告訴我線性代數在數據挖掘中應用極其廣泛,看了吳軍寫的那本《數學之美》后發現確實如此。顯然,數學絕對可以算是計算機IT界的奠基石,相信以后我會看到的更多,見識到更多的數學之美。
總結
以上是生活随笔為你收集整理的SVD分解及应用的直观理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVD分解算法及其应用
- 下一篇: 奇异值分解(SVD)原理详解及推导 (转