【轉載】奇異值分解(SVD)計算過程示例

原文連接:奇異值分解(SVD)的計算方法spa

奇異值分解是線性代數中一種重要的矩陣分解方法,這篇文章經過一個具體的例子來講明如何對一個矩陣A進行奇異值分解。get

首先,對於一個m*n的矩陣,若是存在正交矩陣U(m*m階)和V(n*n階),使得(1)式成立:
\[A=U \Sigma V^T \tag{1}\]it

則將式(1)的過程稱爲奇異值分解,其中\(\Sigma_{mn}=\begin{bmatrix}\Sigma_1 & 0 \\ 0 & 0\end{bmatrix}\),且
\(\Sigma_1=diag(\sigma_1,\sigma_1,\dots,\sigma_r)\),U和V分別稱爲A的左奇異向量矩陣和右奇異向量矩陣。 下面用一個具體的例子來講明如何獲得上述的分解。class

假設咱們有一個矩陣\(A=\begin{bmatrix} 1&1\\1&1\\0&0\end{bmatrix}\)方法

第一步計算U

計算矩陣\(AA^T=\begin{bmatrix} 2&2&0\\2&2&0\\0&0&0\end{bmatrix}\)di

對其進行特徵分解,分別獲得特徵值4,0,0和對應的特徵向量\([\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}},0]^T,[-\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}},0]^T,[0,0,1]^T\),能夠獲得
\[U=\begin{bmatrix} \frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}}&0 \\ \frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}&0 \\ 0&0&1 \end{bmatrix}\]co

第二步計算V

計算矩陣\(A^TA=\begin{bmatrix} 2&2 \\ 2&2 \end{bmatrix}\)display

對其進行特徵分解,分別獲得特徵值4,0和對應的特徵向量\([\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}}]^T,[-\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}}]^T\),能夠獲得
\[V=\begin{bmatrix} \frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\end{bmatrix}\]block

第三步計算\(\Sigma^{m×n}\)

\(\Sigma_{mn}=\begin{bmatrix}\Sigma_1 & 0 \\ 0 & 0\end{bmatrix}\),其中\(\Sigma_1=diag(\sigma_1,\sigma_1,\dots,\sigma_r)\)是將第一或第二步求出的非零特徵值從大到小排列後開根號的值,這裏\(\Sigma=\begin{bmatrix} 2&0 \\ 0&0 \\ 0&0 \end{bmatrix}\)background

最終,咱們能夠獲得A的奇異值分解
\[A=U \Sigma V^T= \begin{bmatrix} \frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}}&0 \\ \frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}&0 \\ 0&0&1 \end{bmatrix} \begin{bmatrix} 2&0 \\ 0&0 \\ 0&0 \end{bmatrix} {\begin{bmatrix} \frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\end{bmatrix}}^T=\begin{bmatrix} 1&1\\1&1\\0&0\end{bmatrix}\]

矩陣的特徵值分解和奇異值分解有什麼區別?

首先,特徵值只能做用在一個mm的正方矩陣上,而奇異值分解則能夠做用在一個mn的長方矩陣上。其次,奇異值分解同時包含了旋轉、縮放和投影三種做用,(1)式中,U和V都起到了對A旋轉的做用,而Σ起到了對A縮放的做用。特徵值分解只有縮放的效果。



MARSGGBO原創




2018-12-21

相關文章
相關標籤/搜索