1. 程式人生 > >SVD奇異值分解

SVD奇異值分解

等於 假設 dns owa 單位 http ket ext 現在

SVD奇異值分解

1 正交矩陣

正交矩陣對應的行(列)向量都是相互正交的單位向量,且滿足逆矩陣等於轉置矩陣。

正交矩陣對應的變換為正交變換,正交變換映射表現為旋轉和反射:

技術分享圖片

正交變換不改變向量的尺寸和夾角,如圖,對應在正交坐標系基向量為[e1,e2]下的A為[a,b],對應進行正交變換後,只是對A用另一組正交坐標基[e1‘,e2‘]表示,對應變換後的A為[a‘,b‘],對向量A沒有拉伸。這種變換為旋轉變換。

正交變換對應有一組正交坐標基映射為另一組正交坐標基。

對應求得正交變換矩陣U:

技術分享圖片

技術分享圖片

由圖可知:

技術分享圖片

所以U為:

技術分享圖片

2 特征值分解

設m*m矩陣A為對稱矩陣,則A必能相似對角化,且不同特征值對應的特征向量相互正交:

技術分享圖片

技術分享圖片

可以得到A的特征值分解:

技術分享圖片

現在假設有一個x向量,用A對x進行變換:

技術分享圖片

也就是先對用UT對x進行正交變換,假設x在新的坐標系(坐標基為A的特征項向量)下為:

技術分享圖片

轉變為:

技術分享圖片

接著對在新坐標系下的x進行拉伸和壓縮,如果對應位置的特征向量為0,則發生維度退化,之後再用U進行正交變換,U是UT的逆變換,使又回到原來的坐標系下:

技術分享圖片

如果A是2*2矩陣,其特征向量對應矩形,其邊,經過UT變換後,坐標基為矩形邊所在的方向,在經過拉伸後,進行U變換,回到原來坐標系,這樣經過變換後還是矩形。

3 奇異值分解

奇異值分解就是對任意m*n矩陣,找到這樣的一個正交坐標基,使其變換後還是正交坐標基。

假設m*n矩陣A,在n維空間中找到一組正交坐標基,使其經過A變換後還是正交坐標基。

假設正交坐標基為,vi是n*1向量:

技術分享圖片

經過A變換後:

技術分享圖片

同時保證變換後還是正交坐標基:

技術分享圖片

使vj使ATA的第j個特征向量的話:

技術分享圖片

又因為:

技術分享圖片

所以vj是ATA的第j個特征向量保證了變換後還是正交坐標基。

再將映射後的正交基單位化:

技術分享圖片

技術分享圖片

取單位向量:

技術分享圖片

由此可得:

技術分享圖片

再將{u1,u2,...,uk}擴展為{u1,u2,...,um},使得其為m維空間的一組單位正交基。

再將{v1,v2,...,vk}擴展為{v1,v2,...,vn},其中{vk+1,...vn}為AX=0的基礎解系,對應的奇異值σ為0。

可得:

技術分享圖片

最後得A的奇異值分解:

技術分享圖片

4 滿秩分解

定義:對於m×n的矩陣A,假設其秩rr,若存在秩同樣為r兩個矩陣:Fm×r(列滿秩)和Gr×n(行滿秩),使得A=FG,則稱其為矩陣A的滿秩分解。

任何一個非零矩陣都有滿秩分解。

利用SVD進行滿秩分解:

技術分享圖片

利用分塊矩陣乘法得:

技術分享圖片

第二項為0:

技術分享圖片

令:

技術分享圖片

則A=XY即是A的滿秩分解。

SVD奇異值分解