详解SVD(奇异值分解)

1、特征值分解(EVD)

实对称矩阵

在理角奇异值分解之前,需要先回顾一下特征值分解,如果矩阵A是一个m*m的实对称矩阵(即A=A^T),那么它可以被分解成如下的形式

A = Q\Sigma Q^T = Q\begin{bmatrix} \lambda1 & \\ & \lambda2 & \\ & & \lambda3 \\ \end{bmatrix}Q^T \quad \quad \quad \quad #(1-1)

其中Q为标准正交阵,即有QQ^T = I\Sigma为对角矩阵,且上面的矩阵的维度均为m*m\lambda_i称为特征值q_iQ的(特征矩阵)中的列向量,称为特征向量。

(注:I在这里表示单位阵,有时候也用E表示单位阵。式(1-1)的具体求解过程就不多叙述了,可以追忆一下美好的大学时光的线性代数,简单地有如下关系:Aq_i = \lambda_i q_i,\quad q_i^Tq_j = 0(i\neq j)

 

一般矩阵

上面的特征值分解,对矩阵有着较高的要求,它需要被分解的矩阵,它需要被分解的矩阵A为实对称矩阵,但是现实中,我们所遇到的问题一般不是是对称矩阵。那么当我们碰到一般性的矩阵,即有一个m*n的矩阵A,它是否能被分解成上面的式(1-1)的形式呢?当然是可以的,这就是我们下面要讨论的内容。

 

2、奇异值分解(SVD)

2.1 奇异值分解定义

有一个m*n的实数矩阵A,我们想要把它分解成如下的形式

A=U\Sigma V^T \quad \quad \quad \quad (2-1)

其中UV均为单位正交阵,即有UU^T=IVV^=IU称为左奇异矩阵,V称为右奇异矩阵,\Sigma仅在主对角线上有值,我们称它为奇异值,其他元素均为0。上面矩阵的维度分别为U\in R^{m*m}, \Sigma \in R^{m*n}, V\in R^{n*n}

一般地\Sigma有如下形式(这里是4*5)

\Sigma=\begin{bmatrix} \sigma_1 & 0&0 &0 &0 \\ 0& \sigma_2 &0 &0 &0 \\ 0& 0& \sigma_3 & 0& 0\\ 0& 0& 0& \sigma_4 &0 \end{bmatrix}_{m*n}

 

                                                                                                                                                                                      图1-1 奇异值分解

 

对于奇异值分解,我们可以利用上面的图形象表示,图中方块的颜色表示值的大小,颜色越浅,值越大。对于奇异值矩阵ΣΣ,只有其主对角线有奇异值,其余均为0。

2.2 奇异值求解

正常求上面的U,V,\Sigma不便于求,我们可以利用如下性质

AA^T=U\Sigma V^TV\Sigma U^T = U\Sigma \Sigma^T U^T \quad \quad \quad \quad (2-2)

 AA^T=V\Sigma ^T U^T U \Sigma V^T = V\Sigma ^T \Sigma V^T \quad \quad \quad \quad (2-3)

 (注:需要指出的是,这里\Sigma \Sigma ^T\Sigma^T\Sigma在矩阵的角度上来说,它们是不相等的,因为它们的维数不同\Sigma \Sigma^T \in R^{m*m},而\Sigma^T \Sigma \in R^{n*n},但是他们在主对角线的奇异值是相等的,即有

\Sigma\Sigma^T=\begin{bmatrix} \sigma^2_1& 0& 0& 0& \\ 0& \sigma^2_2& 0& 0& \\ 0& 0& \sigma^2_3& 0& \\ 0 & 0& 0& \sigma^2_4& \end{bmatrix}_{m*m}                 \Sigma^T\Sigma=\begin{bmatrix} \sigma^2_1& 0& 0& 0& \\ 0& \sigma^2_2& 0& 0& \\ 0& 0& \sigma^2_3& 0& \\ 0 & 0& 0& \sigma^2_4& \end{bmatrix}_{n*n}

可以看到式(2-2)与式(1-1)的形式非常相同,进一步分析,我们可以发现AA^TA^TA也是对称矩阵,那么可以利用式(1-1),做特征值分解。利用式(2-2)特征值分解,得到的特征矩阵即为U;利用式(2-3)特征值分解,得到的特征值矩阵即为V;对\Sigma \Sigma ^T\Sigma^T \Sigma的特征值开方,可以得到所有的奇异值。

3、奇异值分解应用

3.1 纯数学例子

假设我们现在有矩阵A,需要对其做奇异值分解,已知

A=\begin{bmatrix} 1 & 5& 7& 6&1 \\ 2& 1& 10& 4 &1 \\ 3& 6 & 7& 5 & 2 \end{bmatrix}

那么可以求出AA^TA^TA,如下

AA^T = \begin{bmatrix} 112 & 105& 114\\ 105& 137& 110\\ 114& 110& 123 \end{bmatrix}         AA^T = \begin{bmatrix} 14 & 25& 48& 29& 15\\ 25& 62& 87& 64&21 \\ 48& 87& 198& 117&61 \\ 29& 64& 117& 77&32 \\ 15& 21& 61 & 32& 21 \end{bmatrix}

分别对上面做特征值分解,得到如下结果

U = 
[[-0.55572489, -0.72577856,  0.40548161],
 [-0.59283199,  0.00401031, -0.80531618],
 [-0.58285511,  0.68791671,  0.43249337]]
 
V = 
[[-0.18828164, -0.01844501,  0.73354812,  0.65257661,  0.06782815],
 [-0.37055755, -0.76254787,  0.27392013, -0.43299171, -0.17061957],
 [-0.74981208,  0.4369731 , -0.12258381, -0.05435401, -0.48119142],
 [-0.46504304, -0.27450785, -0.48996859,  0.39500307,  0.58837805],
 [-0.22080294,  0.38971845,  0.36301365, -0.47715843,  0.62334131]]

 

奇异值\Sigma=Diag(18.54,1.83,5.01)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

越来越胖的GuanRunwei

祝老板们身体健康,财源广进!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值