換句話說,定義在單位圓上的函數|Mx|分別在v1和v2方向上取得最大和最小值。這樣我們就把尋找矩陣的奇異值分解過程縮小到了優化函數|Mx|上了。結果發現(具體的推到過程這裡就不詳細介紹了)這個函數取得最優值的向量分別是矩陣 MT M 的特徵向量。由於MTM是對稱矩陣,因此不同特徵值對應的特徵向量都是互相正交的,我們用vi 表示MTM的所有特徵向量。奇異值σi = |Mvi| , 向量 ui 為Mvi 方向上的單位向量。但為什麼ui也是正交的呢?
推倒如下:
σi 和 σj分別是不同兩個奇異值
Mvi = σiui
Mvj = σjuj.
我們先看下MviMvj,並假設它們分別對應的奇異值都不為零。一方面這個表達的值為0,推到如下
Mvi Mvj = viTMT Mvj = vi MTMvj = λjvi vj = 0
另一方面,我們有
Mvi Mvj = σiσj ui uj = 0
因此,ui 和 uj是正交的。但實際上,這並非是求解奇異值的方法,效率會非常低。這裡也主要不是討論如何求解奇異值,為了演示方便,採用的都是二階矩陣。
應用實例(Another example)
現在我們來看幾個實例。
實例一
經過這個矩陣變換後的效果如下圖所示
在這個例子中,第二個奇異值為 0,因此經過變換後只有一個方向上有表達。
M = u1σ1 v1T.
換句話說,如果某些奇異值非常小的話,其相對應的幾項就可以不同出現在矩陣 M 的分解式中。因此,我們可以看到矩陣 M 的秩的大小等於非零奇異值的個數。
實例二
我們來看一個奇異值分解在數據表達上的應用。假設我們有如下的一張 15 x 25 的圖像數據。
如圖所示,該圖像主要由下面三部分構成。
我們將圖像表示成 15 x 25 的矩陣,矩陣的元素對應著圖像的不同像素,如果像素是白色的話,就取 1,黑色的就取 0. 我們得到了一個具有375個元素的矩陣,如下圖所示
如果我們對矩陣M進行奇異值分解以後,得到奇異值分別是
σ1 = 14.72
σ2 = 5.22
σ3 = 3.31
矩陣M就可以表示成
M=u1σ1 v1T + u2σ2 v2T + u3σ3 v3T
vi具有15個元素,ui 具有25個元素,σi 對應不同的奇異值。如上圖所示,我們就可以用123個元素來表示具有375個元素的圖像數據了。
實例三
減噪(noise reduction)
前面的例子的奇異值都不為零,或者都還算比較大,下面我們來探索一下擁有零或者非常小的奇異值的情況。通常來講,大的奇異值對應的部分會包含更多的信息。比如,我們有一張掃描的,帶有噪聲的圖像,如下圖所示
我們採用跟實例二相同的處理方式處理該掃描圖像。得到圖像矩陣的奇異值:
σ1 = 14.15
σ2 = 4.67
σ3 = 3.00
σ4 = 0.21
σ5 = 0.19
...
σ15 = 0.05
很明顯,前面三個奇異值遠遠比後面的奇異值要大,這樣矩陣 M 的分解方式就可以如下:
M u1σ1 v1T + u2σ2 v2T + u3σ3 v3T
經過奇異值分解後,我們得到了一張降噪後的圖像。
實例四
數據分析(data analysis)
我們搜集的數據中總是存在噪聲:無論採用的設備多精密,方法有多好,總是會存在一些誤差的。如果你們還記得上文提到的,大的奇異值對應了矩陣中的主要信息的話,運用SVD進行數據分析,提取其中的主要部分的話,還是相當合理的。
作為例子,假如我們搜集的數據如下所示:
我們將數據用矩陣的形式表示:
σ1 = 6.04
σ2 = 0.22
由於第一個奇異值遠比第二個要大,數據中有包含一些噪聲,第二個奇異值在原始矩陣分解相對應的部分可以忽略。經過SVD分解後,保留了主要樣本點如圖所示
就保留主要樣本數據來看,該過程跟PCA( principal component analysis)技術有一些聯繫,PCA也使用了SVD去檢測數據間依賴和冗餘信息.