這篇論文是矩陣分析課上老師布置的一項作業,主要內容來自於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界的奠基石,相信以後我會看到的更多,見識到更多的數學之美。