矩陣的SVD分解(理論到計算結果)

爲什麼要用到SVD分解?

從特徵值和特徵向量說起:

首先回顧下特徵值和特徵向量的定義:A_{m\times m}x=\lambda x其中A是一個m*m的實對稱矩陣,x是一個m維向量,則我們說λ是矩陣A的一個特徵值,而x是矩陣A的特徵值λ所對應的特徵向量。

求出特徵值和特徵向量有什麼好處呢? 就是我們可以將矩陣A特徵分解。假設我們已經求出了矩陣A的m個特徵值:\lambda _{1}\geq \lambda _{2}\geq ...... \lambda _{m},以及這m個特徵值所對應的特徵向量(\rho _{1},\rho _{2}, ... \rho _{m})。若這m個特徵向量線性無關,那麼矩陣A就可以用下式的特徵分解表示:A _{m \times m }=\rho _{m \times m }\Sigma \rho _{m\times m}^{-1},其中是\rho _{m\times m}這m個特徵向量所組成的m*m維矩陣,而\Sigma _{m\times m}爲這m個特徵值爲主對角線的m*m維矩陣。

一般我們會把\rho _{m\times m}的這m個特徵向量標準化,即滿足 \left \|\rho _{i} \right \|^{2}=1或者說\rho _{i^{T}}\rho _{i}=1,此時\rho _{m\times m}的m個特徵向量爲標準正交基,滿足\rho _{m\times m}^{T}\rho _{m\times m}=1,即\rho _{m\times m}^{-1}=\rho _{m\times m}, 也就是說\rho _{m\times m}爲酉矩陣。這樣我們的特徵分解表達式可以寫A _{m\times m}=\rho _{m\times m}\Sigma \rho _{m\times m}^{T}的形式。

注意要進行特徵分解,矩陣A必須爲方陣。那麼如果A不是方陣,即行和列不相同時,我們還可以對矩陣進行分解嗎?答案是SVD

SVD(Singular Value Decomposition),矩陣的奇異值分解。分解方法如下:

若A是m*n的矩陣,則可以分解爲A=U\Sigma V ^{T},(此式子就是奇異值分解)其中U=m*m,\Sigma=m*n,V=n*n。

  1. U是標準正交矩陣。(AA^{T}的特徵向量進行標準化後的結果???)。U中第i列的向量被稱爲關於\sigma _{i}的左奇異向量。U可以看作是對A的正交“輸入”或分析的基向量,這些向量是矩陣AA^{T}(mxm)的特徵向量。
  2. V是A^{T}A的特徵向量進行標準化後的結果,故V是標準正交矩陣。V中第i列的向量被稱爲關於\sigma _{i}的右奇異向量。U可以看作是對A的正交“輸出”的基向量,這些向量是矩陣A^{T}A(nxn)的特徵向量
  3. \Sigma是奇異值矩陣。(\Sigma是m*n的非負實數對角矩陣,並且\Sigma對角線上的元素\sigma _{i}是矩陣A的奇異值,非對角線上的元素爲0。一般我們的習慣是將這些奇異值按照從大到小的順序排列,即\Sigma是由A唯一確定了)

什麼樣的矩陣可以進行SVD分解?

任何矩陣均有SVD分解。

將上述列表用矩陣來A表示:\begin{pmatrix} 5 & 5& 0& 5\\ 5& 0 & 3 & 4\\ 3& 4& 0 & 3\\ 0& 0& 5& 3\\ 5& 4& 4& 5\\ 5& 4& 5& 5 \end{pmatrix} 矩陣A爲6行5列矩陣,對其進行奇異值分解。

對A進行SVD分解,取k=2,A_{m*m}\Sigma _{m*n}V_{n*n}^{T} \Rightarrow A_{m*k}\Sigma _{k*k}V_{k*n}^{T}

矩陣的奇異值分解意義

對於奇異值,跟我們特徵分解中的特徵值類似,在奇異值矩陣中也是按照從大到小排列,而且奇異值減少的特別快。在很多情況下前10%甚至1%的奇異值的和就佔了全部奇異值之和的99%以上。也就是說,我們可以用最大的k個的奇異值和對應的左右奇異向量來近似描述矩。如下:

A_{m\times n}=U_{m\times m}\Sigma _{m\times n}A_{n\times n}\approx A_{m\times n}=U_{m\times k}\Sigma _{k\times k}A_{k\times n}

什麼是奇異值?

假設A是一個m*n的矩陣,則A^{T}A是一個n*n的方陣,且是個對陳矩陣。

假設:A^{T}A的特徵值爲\lambda _{1},......,\lambda _{n},特徵向量爲V_{1},......,V_{n}

  1. A^{T}A的特徵值全部非負。即\lambda _{i}>0
  2. \sigma _{i}=\sqrt{\lambda _{i}}\sigma _{i}稱爲A的奇異值。即A的奇異值爲A^{T}A的特徵值開根號後的結果。
  3. \sigma _{i}是向量AV_{i}的長度。

\sigma _{i}的兩種計算方式:

矩陣的SVD分解計算過程:

如下有一個A矩陣:

  

(以一個簡單的矩陣來計算推導)

特徵值分解和奇異值分解不同之處?

      首先,特徵值只能作用在一個mm的正方矩陣上,而奇異值分解則可以作用在一個mn的長方矩陣上。其次,奇異值分解同時包含了旋轉、縮放和投影三種作用,A=U\Sigma V ^{T}式中,U和V都起到了對A旋轉的作用,而Σ起到了對A縮放的作用。特徵值分解只有縮放的效果。

參考:https://www.cnblogs.com/endlesscoding/p/10033527.html

https://blog.csdn.net/qq_40438165/article/details/102879986

https://blog.csdn.net/u014157109/article/details/93141506

 

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