幹掉SVD:2.從特徵分解到奇異值分解

前面我們已經說過了矩陣的含義,就其中之一的矩陣與線性變換繼續說。(主要是我也沒理解矩陣表示座標系變換與特徵向量的關係)。

1.特徵向量

https://blog.csdn.net/qq_33228039/article/details/98968137

既然線性變換可以用矩陣表示,那麼有沒有一個向量在這個變換下是隻改變大小不改變方向的向量呢。這個向量就是這個矩陣的特徵向量,這個向量在矩陣變換下的大小就是特徵值。我們知道了求特徵值和特徵向量,是爲了轉化矩陣,使得矩陣變換成對角矩陣,方便計算。

但是我們需要考慮,如果一個二維矩陣,只有一個特徵向量的話,怎麼做。因爲有些線性變化是隻有一個特徵向量的,比如:

M=\begin{bmatrix} 1 &1 \\ 0& 1 \end{bmatrix}  這個矩陣,只有一個特徵向量,是不能用一個特徵向量來表示矩陣的,因爲一個特徵向量就是降維操作了,把二維變成一維了。所以特徵分解不是適用於所有的矩陣。只有在一定條件下(如其矩陣形式爲實對稱矩陣的線性變換),一個變換可以由其特徵值和特徵向量完全表述,也就是說:所有的特徵向量組成了這向量空間的一組基底

2.奇異值分解SVD

參考:http://www.ams.org/publicoutreach/feature-column/fcarc-svd

上文提到特徵分解並不適用於所有的矩陣,那麼有沒有適用於所有矩陣的方法呢,奇異值分解。

大白話說就是,好吧我找不到在線性變換下只變換大小不改變方向的特徵向量,那麼我退而求其次。我找一組單位正交向量,這組向量經過變換後還是正交的就行。一組正交的向量經過線性變換後還是正交的,這組向量也可以表示這個線性變換。

假設選擇一組單位正交向量是v1,v2..u1,u2是變換後的兩個向量的單位長度,\sigma1,\sigma2是他們的長度。

那麼Mv_{1}=\sigma _{1}u_{1} ,Mv_{2}=\sigma _{2}u_{2}, 因爲v1,v2單位正交矩陣V的列向量,那麼一定存在逆矩陣V^{T}

M\begin{bmatrix} v_{1} & v_{2} \end{bmatrix}=\begin{bmatrix} u_{1}& u_{2} \end{bmatrix}\begin{bmatrix} \sigma _{1} &0 \\ 0&\sigma _{2} \end{bmatrix}\Rightarrow MV=U\Sigma \Rightarrow M=U\Sigma V^{T}

所以,V是輸入的單位正交向量,U是輸出的單位正交向量,\Sigma是輸入到輸出的縮放倍數。

3.對SVD的兩種理解

 

1.從矩陣線性變換的角度

這三個變換都是有意義的。第一個變換 V^{T} 將單位正交向量 v1,v2轉到水平和垂直方向、 \Sigma 相當於對v1,v2 進行放縮、U將放縮後的向量旋轉到最後的位置。(應該知道正交矩陣的作用都是旋轉矩陣)如下圖所示

2.從基變換的角度理解

特徵值分解:M=V\Sigma V^{T}

奇異值分解:M=U\Sigma V^{T}

其實奇異值分解也可以視作是一種特徵值分解。V是特徵向量,在這組基下,M轉爲Q。Q包含兩個變換,一個是對V的伸縮\Sigma,一個是旋轉E,(若空間維度發生變化,還涉及投影操作)。

M=VQV^{-1}=VE\Sigma V^{T}=U\Sigma V^{T},V^{-1}=V^{T}

4.總結

SVD就是分解,將一個複雜的變換分解爲三個簡單的基本變換。(旋轉、放縮、投影),而奇異值的大小代表了相應奇異向量的放縮程度。奇異值越大,則此奇異向量對最後的空間影響越大。因此可以用SVD進行壓縮圖像或者去噪

特徵值分解:AV=V\Sigma

奇異值分解:MV=U\Sigma

矩陣代表變換,那麼就會有原空間C(輸入空間),和變換後的空間 D(輸出空間)。

當變換比較特殊時,可以用特徵值分解,就是在C,D中中找到同一組基向量 V,用這組基向量來表示輸入輸出空間時,變換相當於只發生了縮放。

當變換比較複雜時,可以用奇異值分解。要在C中找到一組單位正交基V,在D中找到對應的正交基U,此時變換也簡化爲縮放,而多餘的向量被映射爲零向量。

參考:https://www.zhihu.com/question/22237507/answer/801023732

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章