線性代數筆記31——奇異值分解

  原文 | https://mp.weixin.qq.com/s/HrN8vno4obF_ey0ifCEvQw微信

  奇異值分解(Singular value decomposition)簡稱SVD,是將矩陣分解爲特徵值和特徵向量的另外一種方法。奇異值分解能夠將一個比較複雜的矩陣用更小更簡單的幾個子矩陣相乘來表示,這些小矩陣描述的都是矩陣的重要的特性。奇異值分解在圖形降噪、推薦系統中都有很重要的應用。學習

  對於任意矩陣A,均可以奇異值分解成下面的形式,其中UV是正交矩陣,Σ是對角矩陣:spa

  若是A是正定矩陣,它的奇異值分解就是A=QΛQT,即用一個正交矩陣Q就能夠使正定矩陣A進行奇異值分解,不須要兩個。對於可對角化的矩陣來講,A=SΛS-1,但這種形式下的特徵向量矩陣S並非正交矩陣,而SVD要求UV都是正交矩陣。3d

奇異值分解的目標

  A是m×n的矩陣,四個基本子空間的正交性能夠用下圖表示,其中r是矩陣的秩:blog

  能夠把矩陣A看做一種線性變換操做,將其行空間中的每個向量v,變換爲列空間的向量u,即u=Av。相似地,咱們也能夠在行空間中找到一組正交基,經過矩陣A線性變換成列空間中的另外一組正交基:get

  行空間中的一組正交基能夠經過格拉姆-施密特正交化獲得——任意一組基均可以經過格拉姆-施密特正交化變成一組正交基,可是隨便一組正交基通過矩陣A的線性變換後的向量卻未必正交,所以這組知足要求的正交基很是特殊,它們須要知足:it

  更進一步,在V中尋找標準正交向量,並使U中的向量標準化,從而使UV標準正交:io

  其中viui都是單位向量,σiui的倍數,稱爲奇異值。上式就是奇異值分解的目標:尋找行空間的一組標準正交基,經過A變成列空間的一組標準正交基。二維碼

  因爲V中的向量的都是正交向量,所以VVT=I方法

  這正是奇異值分解的形式。若是A是正定矩陣,AQ=,它的奇異值分解就是A=QΛQT,此時U=V=QΣ=Λ

如何分解

  咱們已經知道奇異值分解的目標是A=UΣV­T,如今的問題是怎樣找到合適的正交矩陣UV

  考慮首先解決UV中的一個,先將U消去:

  注意到ATA是一個對稱方陣,而且符合正定矩陣正交分解的形式,V就是ATA的標準化後的特徵向量,σi2就是ATA的特徵值,σi取特徵值的正平方根。

正交向量的方向問題

  ,求A的奇異值分解。

  目標是A=UΣVT,先求解V

  計算特徵值和特徵向量:

  將特徵向量標準化:

  如今咱們有了下面的式子:

  經過上式能夠進一步求得U。可是咱們打算用和求V一樣的方式求得U

  好了,如今驗證一下奇異值分解的結果:

  這個結果並不等於A。問題出在哪呢?

  咱們注意到,若是U的一個向量反向,U中的兩個向量仍然是正交向量,且此時能夠完成奇異值分解:

  這是由於在奇異值分解的過程當中,一旦確認了V中向量的方向以後,U中向量的方向也一塊兒被限定了,而在本例中,咱們用一種和V無關的方式求得了U,而這種方法並不必定老是有效,須要嘗試改變向量的方向。經過將V代入AV=求得U,能夠避免這個問題。

奇異矩陣的奇異值分解

  奇異矩陣A也能夠進行奇異值分解。,求奇異矩陣A的奇異值分解。

  

  A是秩1矩陣。容易看出A的行空間的基是1=(4, 3),行空間是一維的,與之垂直的向量在零空間上,2=(3, -4)。相應地,A的列空間也是一維的,它的基是1=(1, 2),與之垂直的向量在左零空間上,2=(2, -1)。將上面的4個向量標準化,獲得4個新的向量:

  接下來經過AAT的特徵向量求得Σ

  

  AAT也是一個秩1矩陣,所以可肯定一個特徵值是0,經過矩陣的跡可肯定另外一個特徵值是125,由此獲得了Σ

 

長方矩陣的奇異值分解

  長方矩陣也能夠進行奇異值分解。

  雖然A是一個3×2的長方矩陣,但這並不影響奇異值分解。

  能夠看出AA­T的3個特徵值是5,0,0,3個特徵向量標準正交向量:

  注意此時奇異值矩陣是3×2的矩陣,它的尺寸和A一致(經過A­TA只能求得2個特徵值):

  一樣的方法能夠求得U。最終:


  出處:微信公衆號 "我是8位的"

  本文以學習、研究和分享爲主,如需轉載,請聯繫本人,標明做者和出處,非商業用途! 

  掃描二維碼關注做者公衆號「我是8位的」

相關文章
相關標籤/搜索