1. 程式人生 > >SVD原理及其應用導論

SVD原理及其應用導論

轉:https://blog.csdn.net/ACdreamers/article/details/44656963

發現這個博主的文章質量很高

今天,來學習一種很重要的矩陣分解,叫做奇異值分解(Sigular Value Decomposition),簡稱SVD。

 

Contents

 

    1. 認識SVD

    2. SVD與廣義逆矩陣

    3. SVD與最小二乘法

    4. SVD與資料壓縮

    5. SVD與潛在語義分析

    6. SVD與低階近似

 

 

1. 認識SVD

 

   在認識SVD之前,先來學習兩個相關的概念:正交矩陣酉矩陣

 

   如果,則階實矩陣稱為正交矩陣。而酉矩陣是正交矩陣往復數域上的推廣。

   判斷正交矩陣和酉矩陣的充分必要條件是:。或者說正交矩陣和酉矩陣的共軛轉置和它的

   逆矩陣相等。

 

   對任意矩陣,都能被奇異值分解為

 

   

 

   其中的正交矩陣,的正交矩陣,是由個沿對角線從大到小排列的奇異值

   組成的方陣,就是矩陣的秩。奇異值分解是一種正交矩陣分解法。

 

 

2. SVD與廣義逆矩陣

 

   在認識矩陣的廣義逆之前,先來回顧一下方陣的逆。

   對於一個的方陣,如果存在一個矩陣,使得,那麼方陣的逆為

 

   那麼對於非方陣來說情況又是怎樣的? 比如對於

的矩陣,它的逆是怎樣計算的?這就是我將要

   討論的廣義逆矩陣

 

   矩陣的廣義逆由Moore1920年提出,後來在1955年經過Penrose發展得到如下定義

 

   對任意複數矩陣,如果存在的矩陣,滿足

 

   

 

   則稱的一個Moore-Penrose逆,簡稱廣義逆,記為。並把上面四個方程叫做Moore-Penrose

   方程,簡稱M-P方程

 

   由於M-P的四個方程都各有一定的解釋,並且應用起來各有方便之處,所以出於不同的目的,常常考慮滿足

   部分方程的,叫做弱逆,弱逆不唯一。為了引用方便,下面給出廣義逆矩陣的定義

 

   對於的矩陣,若存在的矩陣,滿足M-P方程中的全部或者其中的一部分,則稱

   的廣義逆矩陣

 

   實際上有結論:如果滿足M-P方程中的全部四個條件,那麼得到的矩陣是唯一的,如果只滿足部分條件,

   那麼得到的矩陣不唯一。也就是說一個矩陣Moore-Penrose逆是唯一的

 

   而廣義逆的計算可以利用SVD分解得到,假設矩陣SVD分解為

 

   

 

   那麼,不難驗證

 

   

 

   有了廣義逆矩陣,那麼就可以用來求解線性方程組,假設現在已經知道了矩陣的廣義逆

   如果矩陣的秩是,則其唯一解是,如果秩小於,則有無窮多組解,其中最小范數解仍然是

   ,通常我們關心的也就是這個解。

 

 

3. SVD與最小二乘法

 

   最常見的最小二乘問題是線性最小二乘問題。比如在三維空間有如下四個點

 

   

 

   現在用一個方程來擬合這四個點,這就是典型的線性最小二乘問題。

   接下來可以列出超定方程組,如下

 

   

 

   那麼,進一步得到

 

   

 

   接下來用一個定理求最小二乘解,定理內容如下

 

   如上述超定係數方程組,一般情況下它是沒有解的,但是我們可以讓儘可能地小。解下面的方程

   可以求得方程的最小二乘解。

 

   

 

   這樣最小二乘解又變成了解線性方程組問題,可以先用SVD來求出廣義逆矩陣,然後解出。最終求得解為

 

   

 

 

4. SVD與資料壓縮

 

    SVD在資料壓縮方面有廣泛的應用,比如圖片壓縮。我們知道電腦上的影象都是由一個一個畫素點構成的,

   所以儲存一張1000*622的圖片,實際上是儲存一個1000*622的矩陣,即一共622000個元素,這是一個

   很大的矩陣,實際上可以用奇異值分解並通過低階近似的思想對圖片進行壓縮,但這是一種有失真壓縮,不

   過不影響圖片的大致效果,連結:http://cos.name/2014/02/svd-and-image-compression/

 

   又比如在自然語言處理中,最常見的兩個問題是將文字按主題歸類和將詞彙表中的字詞按近義詞歸類,這

   兩個問題都可以用SVD完美一次性地解決。首先,用一個大矩陣來描述成千上萬篇文章和上百萬詞的關

   聯性,在這個矩陣中,每一行代表一篇文章,每一列對應一個詞。如果有個詞,篇文章,那麼就是如

   下的矩陣

    

       

 

   其中第行第列的元素,是字典中第個詞在第篇文章中出現的加權詞頻,比如用詞的TF-IDF值

   這個矩陣可能會很大,如果進行奇異值分解後,上述的兩種分類也就完成了,而且儲存空間也會減少很多。

 

 

5. SVD與潛在語義分析

 

   潛在語義分析(Latent Semantic Analysis),簡稱LSA,是一種用於自動地實現知識提取和表示的

   理論和方法,它通過對大量文字集進行統計分析,從中提取出詞語的上下文使用含義。在技術上,它同向

   量空間模型類似,都是採用空間向量表示文字,但通過SVD分解等處理消除了同義詞,多義詞的影響,提

   高了後續處理的精度。

 

   關於潛在語義分析的論文,可以百度:潛在語義分析理論及其應用

  

 

6. SVD與低階近似

 

   關於SVD的低階近似參考:http://m.blog.csdn.net/blog/wangran51/7408414

 

 

更多關於SVD的文章參考

 

http://www.cnblogs.com/zhangchaoyang/articles/2575948.html

http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html

http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html

http://www.cnblogs.com/FengYan/archive/2012/05/06/2480664.html

奇異值分解(SVD)原理詳解

一、奇異值與特徵值基礎知識:     特徵值分解和奇異值分解在機器學習領域都是屬於滿地可見的方法。兩者有著很緊密的關係,我在接下來會談到,特徵值分解和奇異值分解的目的都是一樣,就是提取出一個矩陣最重...