奇異值分解(SVD)


奇異值分解(SVD)

特征值與特征向量

對於一個實對稱矩陣\(A\in R^{n\times n}\),如果存在\(x\in R^n\)\(\lambda \in R\)滿足:

\[\begin{align} Ax=\lambda x \end{align} \]

則我們說\(\lambda\)是矩陣\(A\)的一個特征值,而\(x\)是矩陣\(A\)的特征值\(\lambda\)所對應的特征向量。可以看出\(A\)的特征向量\(x\)乘以矩陣\(A\),即\(Ax\),不改變特征向量的方向。

特別的\(A^kx=\lambda^kx\),對於任意\(k=1,2,3,\dots\),同時\(A^{-1}x=\lambda^{-1}x\),假設\(\lambda\ne0\)

特征值和特征向量的四個屬性

  • 矩陣\(A\)的跡等於其所有特征值的和,即\(A_{11}+A_{22}+\dots+A_{nn}=\lambda_1+\lambda_2+\dots+\lambda_n\)
  • 矩陣\(A\)的行列式等於所有特征值的乘積,即\(|A|=\lambda_1\lambda_2\dots\lambda_n\)
  • 對稱矩陣的所有特征值都是實數
  • 若矩陣\(A\)的特征值都不相同,則其特征向量之間相互正交。

求解特征值與特征向量

由(1)式得:

\[\begin{align} \lambda x-Ax&=0\\ (\lambda E-A)x&=0 \end{align} \]

令其行列式為\(0\)。所以可得;

\[\begin{align} |\lambda E-A|=0 \end{align} \]

求解上式可得到矩陣\(A\)所有得特征值。將求得的特征值\(\lambda_i\)一個一個的帶入到(3)式,求解得到其對應的一個解\(x_i\),即\(\lambda_i\)對應的特征向量\(x_i\)

相似矩陣

對於任意的可逆矩陣\(B\),\(BAB^{-1}\)的特征值總是與\(A\)矩陣相同。且\(BAB^{-1}\)的特征向量為\(Bx\)

\[\begin{align} (BAB^{-1})(Bx)=BAx=B\lambda x=\lambda(Bx) \end{align} \]

所以我們說矩陣\(BAB^{-1}\)與矩陣\(A\)相似,即有相同的特征值。

特征分解

假設矩陣\(A\)\(n\)的獨立的特征向量\(\boldsymbol{x_i}\)。則有:

\[\begin{align} A\left[\begin{matrix} \\ \boldsymbol{x_1}\dots \boldsymbol{x_n}\\ \\ \end{matrix}\right]=\left[\begin{matrix} \\ A\boldsymbol{x_1}\dots A\boldsymbol{x_n}\\ \\ \end{matrix}\right]=\left[\begin{matrix} \\ \lambda_1\boldsymbol{x_1}\dots \lambda_n\boldsymbol{x_n}\\ \\ \end{matrix}\right]=\left[\begin{matrix} \\ \boldsymbol{x_1}\dots \boldsymbol{x_n}\\ \\ \end{matrix}\right]\left[\begin{matrix} \lambda_1\\ &\ddots\\ &&\lambda_n \end{matrix}\right] \end{align} \]

\(AX=X\Lambda\),也就是說:

\[\begin{align} A=X\Lambda X^{-1} \end{align} \]

當我們知道特征值和特征向量后,就可以簡單的計算矩陣\(A\)\(k\)次冪。\(A^2=X\Lambda X^{-1}\cdot X\Lambda X^{-1}=X\Lambda^2X^{-1}\)

若矩陣\(A\)是實對稱矩陣,一般我們會把\(A\)\(n\)個特征向量標准化,使其滿足\(||x_i||_2=1\),此時\(A\)\(n\)個特征向量為標准正交基,滿足\(X^TX=E\),即\(X^T=X^{-1}\),也就是說\(X\)為酉矩陣。此時:

\[\begin{align} A=X\Lambda X^T \end{align} \]

奇異值分解

上述特征值分解只有當\(A\)必須是方陣。如果\(A\)不是方陣則需要用奇異值分解的方法。

對於奇異值分解,我們需要兩個奇異值向量的集合\(\boldsymbol{u}, \boldsymbol{v}\)。對於一個矩陣\(A\in R^{m\times n}\),有\(n\)個正交的右奇異值向量\(\boldsymbol{v_1},\dots,\boldsymbol{v_n}\in R^n\)。有\(m\)個正交的左奇異值向量\(\boldsymbol{u_1,\dots,u_m}\in R^m\)。對於奇異值向量其滿足:

\[\begin{align} A\boldsymbol{v}=\sigma\boldsymbol{u} \end{align} \]

且:

\[\begin{align} A\boldsymbol{v_1}=\sigma_1\boldsymbol{u_1}&&\dots &&A\boldsymbol{v_r}=\sigma\boldsymbol{u_r}\\ A\boldsymbol{v_{r+1}}=0&&\dots &&A\boldsymbol{v_n}=0 \end{align} \]

其中\(r\)為矩陣\(A\)的質。也就是說矩陣\(A\)只有\(r\)個正奇異值。其矩陣表示形式如下:

\[\begin{align} AV=U\Sigma&&A\left[\begin{matrix} \\ \boldsymbol{v_1}\dots \boldsymbol{v_r}\dots \boldsymbol{v_n}\\ \\ \end{matrix}\right]=\left[\begin{matrix} \\ \boldsymbol{u_1}\dots \boldsymbol{u_r}\dots \boldsymbol{u_n}\\ \\ \end{matrix}\right]\left[\begin{matrix} \sigma_1&&&0\\ &\ddots&&\vdots\\ &&\sigma_r\\ 0&\dots&&0 \end{matrix}\right] \end{align} \]

因為\(V\)為酉矩陣,因此又可表示為:

\[\begin{align} A=U\Sigma V^T=\sigma_1\boldsymbol{u_1}\boldsymbol{v_1^T}+\dots+\sigma_r\boldsymbol{u_r}\boldsymbol{v_r^T} \end{align} \]

上述式子將矩陣\(A\)分解為\(r\)個質為\(1\)的矩陣的和。

奇異值分解的重要性

對於其他矩陣分解法:\(A=LU,A=QR,S=Q\Lambda Q^T\),它們都將矩陣\(A\)分解為質為\(1\)的矩陣的和,但為什么奇異值分解重要?

對於所有分解方法,奇異值分解所得到的前\(k\)個質為\(1\)的矩陣的和最能夠表達原矩陣\(A\)。即:

\[\begin{align} \text{If B has rank k than}\; ||A-A_k||\le||A-B||. \end{align} \]

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

奇異值分解直接求解

我們的目標是\(A=U\Sigma V^T\)。我們需要找到兩個奇異值向量集合\(\boldsymbol{u},\boldsymbol{v}\)。一種方式是去形成兩個對稱矩陣\(AA^T,A^TA\)

\[\begin{align} AA^T=(U\Sigma V^T)(U\Sigma V^T)^T=U\Sigma V^T V\Sigma U^T=U\Sigma^2U^T\\ A^TA=(U\Sigma V^T)^T(U\Sigma V^T)= V\Sigma U^TU\Sigma V^T=V\Sigma^2V^T\\ \end{align} \]

可以發現:

  • \(V\)\(A^TA\)的正交特征向量
  • \(U\)\(AA^T\)的正交特征向量
  • \(\sigma_1^2,\dots,\sigma^2_r\)\(AA^T\)\(A^TA\)的特征值

因為\(A\boldsymbol{v_i}=\sigma_i\boldsymbol{u_i}\)還需要確定特征值\(\sigma_i\)的符號,若假設\(\sigma_i=+\sqrt{\lambda_i}\),也就說需要確定\(\boldsymbol{u_i}\)的符號:

在求得\(A^TA\)的正交特征向量和特征值后,可知:

\[\begin{align} A^TA\boldsymbol{v_k}&=\sigma_k^2\boldsymbol{v_k}\\ \end{align} \]

而由\(A\boldsymbol{v_i}=\sigma_i\boldsymbol{u_i}\)可得:

\[\begin{align} \boldsymbol{u_k}=\frac{A\boldsymbol{v_k}}{\sigma_k}\; \text{for}\;k=1,\dots,r \end{align} \]

證明\(\boldsymbol{u_k}\)\(AA^T\)的特征向量:

\[\begin{align} AA^T\boldsymbol{u_k}=AA^T\frac{A\boldsymbol{v_k}}{\sigma_k}=A\frac{A^TAv_k}{\sigma_k}=A\frac{\sigma_k^2\boldsymbol{v_k}}{\sigma_k}= \sigma_kA\boldsymbol{v_k}=\sigma_k\sigma_k\boldsymbol{u_k}=\sigma^2_k\boldsymbol{u_k} \end{align} \]

證明\(\boldsymbol{u}\)也是正交矩陣:

\[\begin{align} \boldsymbol{u_j^T}\boldsymbol{u_k}=(\frac{A\boldsymbol{v_j}}{\sigma_j})^T\frac{A\boldsymbol{v_k}}{\sigma_k}= \frac{\boldsymbol{v_j^T}A^TA\boldsymbol{v_k}}{\sigma_j\sigma_k}=\frac{\boldsymbol{v_j^T}\sigma_k^2\boldsymbol{v_k}}{\sigma_j\sigma_k}= \frac{\sigma_k}{\sigma_j}\boldsymbol{v_j^T}\boldsymbol{v_k}= \left\{\begin{matrix} 1&\text{if}\; j=k\\ 0&\text{if}\; j\ne k \end{matrix} \right. \end{align} \]

因此可以求解\(AA^T\)\(A^TA\)的特征值特征向量的方式求解奇異值與奇異值向量。

注:矩陣\(BA\)和矩陣\(AB\)總是由相同的非零特征值。

注:如果矩陣\(A\)是對稱矩陣,則\(A=Q\Lambda Q^T=U\Sigma V^T\)。且若\(A\)的某個特征值\(\lambda_i<0\),則\(\sigma_i=-\lambda_i\),對應的特征向量\(-x_i\)

注:如果矩陣\(A\)為對稱的正交矩陣,則\(\Sigma=E\)

注:如果矩陣\(A=xy^T\),則其奇異值向量為\(\boldsymbol{u_1}=\frac{x}{||x||},\boldsymbol{v_1}=\frac{y}{||y||}\)。惟一非零奇異值為\(\sigma_1=||x||\;||y||\)。且特征值\(|\lambda_1|\le \sigma_1\)。因為\(|y^Tx|\le ||y||\;||x||\)

\[\begin{align} xy^T=\frac{x}{||x||}(||x||\;||y||)\frac{y^T}{||y||}=\boldsymbol{u_1}\sigma_1\boldsymbol{v_1^T} \end{align} \]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM