美文网首页
矩阵的SVD分解

矩阵的SVD分解

作者: 小幸运Penny | 来源:发表于2019-06-14 20:27 被阅读0次

矩阵的奇异值分解在最优化问题、统计学方面等等起到了很大的作用。写这篇文章的原因主要是最近在复习《矩阵论》,感觉书中写的奇异值分解还是很详细的,所以就有想将它写下来的欲望。在介绍奇异值分解之前,首先得知道矩阵的正交对角分解。

矩阵的正交对角分解

有推论可得存在一个n阶实对称矩阵A,则存在正交矩阵Q,使得

Q^TAQ=diag(\lambda_1,\lambda_2,\dots,\lambda_n)  \quad  (1)

以上成立的条件是A是实对称矩阵,但对于实的非对称矩阵A,不再有上式的分解,所以就有了下面的正交对角分解。

定理:   设A\in R^{n\times n}可逆,则存在正交矩阵PQ,使得

P^TAQ=diag(\sigma_1,\sigma_2,\dots,\sigma_n)  \quad  (2)

其中\sigma_i>0(i=1,2,\dots,n)

上式是一个比较简单的证明,试想A不是一个实对称矩阵,那么就得把它变成一个实对称矩阵,能想到的就是A^TA,可以得到它是一个实对称矩阵,那么得到

Q^TA^TAQ=diag(\lambda_1,\lambda_2,\dots,\lambda_n)

其中A^TA的特征值\lambda_i都是大于0的,因为\lambda_ix_i^Tx_i=x_i^TA^TAx_i=(Ax_i)^2>0A^TA是一个对称正定矩阵,令:

\sigma_i=\sqrt \lambda_i\Lambda =diag(\sigma_1,\sigma_2,\dots,\sigma_n)

得到Q^TA^TAQ=\Lambda^2,两边同时左乘\Lambda^{-1}得到(AQ\Lambda ^{-1})^TAQ=\Lambda,两边再右乘\Lambda^{-1},得到(AQ\Lambda ^{-1})^TAQ\Lambda^{-1}=I

P=AQ\Lambda^{-1},可知它是一个正交矩阵,所以就可以得到P^TAQ=\Lambda

矩阵的奇异值分解

由于在实际过程中,矩阵的行和列往往是不相等的,而且矩阵的逆也不一定都存在,所以,这就需要奇异值分解了。

定义:  

A\in C_r^{m\times n}(r>0)A^HA的特征值为(r为A的秩)

\lambda_1\geq \lambda_2\geq \dots\geq \lambda_r>\lambda_{r+1}=\dots=\lambda_n=0

则称\sigma_i=\sqrt \lambda_i(i=1,2,\dots,n)A的奇异值。

(奇异值分解)定理:

  设A\in C_r^{m\times n}(r>0),则存在m阶酉矩阵(相当于复数域上的正交矩阵)U和n阶酉矩阵V,使得

U^HAV=\begin{bmatrix}\Sigma &\quad O\\O  &\quad O \end{bmatrix}

其中\Sigma=diag(\sigma_1,\sigma_2,\dots,\sigma_r)

证:   根据矩阵的正交对角分解,可以得到V^HA^HAV=\begin{bmatrix}\Sigma^2 &\quad O\\O  &\quad O \end{bmatrix},两边同时左乘以V,并将V分解为V =\begin{bmatrix}V_1 \quad V_2\end{bmatrix}V_1\in C_r^{n\times r},V_2\in C_{n-r}^{n\times (n-r)}所以可以写成

A^HAV_1=V_1\Sigma^2,A^HAV_2=O

将前面的式子两边左乘V_1^H,再左乘\Sigma^{-1}得到\Sigma^{-1}V_1^HA^HAV_1=\Sigma\Rightarrow (AV_1\Sigma^{-1})^HAV_1=\Sigma,可以设U_1=AV_1\Sigma^{-1},则U_1^TU_1=I_r,即U_1的r个列向量是两两正交的单位向量,U_1=(u_1,u_2,\dots,u_r),将其扩充到C^m的标准正交基,就是增加向量(u_{r+1},\dots,u_m),则

U=\begin{bmatrix}U_1 \quad U_2\end{bmatrix} =(u_1, u_2,\dots,u_{r+1},\dots,u_m)  ,\quadU_1^HU_1=I_r, U_2^HU_1=O

于是可得

U^HAV=U^HA\begin{bmatrix}V_1 \quad V_2\end{bmatrix}=\begin{bmatrix}U_1^T \\ U_2^T\end{bmatrix} \begin{bmatrix}U_1 \Sigma \quad O  \end{bmatrix}=\begin{bmatrix}U_1^HU_1 \Sigma \quad   O  \\U_2^H U_1\Sigma \quad   O\end{bmatrix}=\begin{bmatrix} \Sigma \quad O  \\O \quad O\end{bmatrix}

所以

U^HAV=U\begin{bmatrix}\Sigma &\quad O\\O  &\quad O \end{bmatrix}V_H

由上面的证明可以看出SVD分解并不是唯一的。

其它

根据对矩阵A进行SVD分解,记U和V的列向量分别为u_1,u_2,\dots,u_mv_1,v_2,\dots,v_n,可以得到

N(A)=L(v_{r+1},v_{r+2},\dots,v_n)\\R(A)=L(u_1,u_2,\dots,u_r)\\A=\sigma_1u_1v_1^H+\dots+\sigma_r u_rv_r^H

第一个式子表示矩阵A的零空间是由V_2的列向量张成的空间,可以证明:

N(A)=\{ x|Ax=0  \}=\{ x| U_1 \Sigma V_1^H x=0  \}\\=\{ x|V_1^H x=0  \}=\{ x|x=k_{r+1}v_{r+1}+\dots+k_nv_n  \}=L(v_{r+1},\dots,v_n)

上式经常用于求解齐次线性方程组Ax=0,根据它的零空间,可以得到x的值就是V_2列向量的线性组合

第二个式子表示矩阵A的值域是U_1,可证:

R(A)=\{ y|y=Ax \}=\{ y|y=U_1(\Sigma V_1^Tx) \}\subset R(U_1)

R(U_1)=\{ y|y=U_1z \}=\{ y|y=A(V_1 \Sigma^{-1}z) \}\subset R(A)

所以两者的值域是一样的。

参考书籍

《矩阵论》张凯院、徐仲

相关文章

网友评论

      本文标题:矩阵的SVD分解

      本文链接:https://www.haomeiwen.com/subject/qrxmfctx.html