矩阵分解、奇异值分解(SVD)

1.特征值

  1. 特征向量 A x = λ x Ax=\lambda x Ax=λx的几何意义:向量x通过矩阵A变换,只进行缩放,而不改变向量方向,缩放倍数即特征值。
  2. 对于n阶方阵,一定有n个特征值(包括复数),但非零特征值个数等于矩阵的秩。

2.方阵的分解

根据 A x = λ x Ax=\lambda x Ax=λx, 对于n阶方阵: A = U Σ U − 1 A = U\Sigma U^{-1} A=UΣU1 其中U为n个特征向量构成的矩阵, Σ \Sigma Σ为特征值构成的对角阵。把U的n个特征向量标准化,满足 U − 1 = U T U^{-1}=U^T U1=UT,得到 A = U Σ ′ U T A = U\Sigma ' U^{T} A=UΣUT

3. 奇异值分解

当A不是方阵时,需要奇异值分解了(Singular Value Decompasition, SVD), 分解得到 A = U Σ V T A=U\Sigma V^T A=UΣVT, 其中U,V分别为m,n阶方阵, Σ \Sigma Σ为m x n维矩阵,主对角线上非零元素为奇异值。分解过程如下:

对于矩阵 A = ( 0 1 1 1 1 0 ) A = \left(\begin{matrix}0&1\\ 1&1\\1&0\end{matrix} \right) A=011110

  1. 求出 A A T AA^T AAT A T A A^TA ATA
    A A T = ( 2 1 1 2 ) AA^T = \left(\begin{matrix}2&1\\ 1&2\end{matrix} \right) AAT=(2112) A A T = ( 1 1 0 1 2 1 0 1 1 ) AA^T = \left(\begin{matrix}1&1&0\\ 1&2&1\\0&1&1\end{matrix} \right) AAT=110121011
  2. 对两者分别求特征值与特征向量,使得 A T A v i = λ i v i A^TAv_i=\lambda_i v_i ATAvi=λivi A A T u i = λ i u i AA^Tu_i=\lambda_i u_i AATui=λiui得到: λ i = 3 , λ 2 = 1 , v 1 = ( 1 / 2 1 / 2 ) T , v 2 = ( − 1 / 2 1 / 2 ) T \lambda_i=3,\lambda_2=1,v_1=(1/\sqrt2 1/\sqrt2)^T, v_2=(-1/\sqrt2 1/\sqrt2)^T λi=3,λ2=1,v1=(1/2 1/2 )T,v2=(1/2 1/2 )T u 1 = ( 1 / 6 , 2 / 6 , 1 / 6 ) T , u 2 = ( 1 / 2 , 0 , − 1 / 2 ) T u_1=(1/\sqrt6,2/\sqrt6,1/\sqrt6)^T, u_2=(1/\sqrt2,0,-1/\sqrt2)^T u1=(1/6 ,2/6 ,1/6 )T,u2=(1/2 ,0,1/2 )T λ 3 = 0 , u 3 = ( 1 / 3 , − 1 / 3 , 1 / 3 ) T \lambda_3=0, u_3=(1/\sqrt3,-1/\sqrt3,1/\sqrt3)^T λ3=0,u3=(1/3 ,1/3 ,1/3 )T
  3. 利用 A v i = σ i u i Av_i=\sigma_iu_i Avi=σiui求奇异值, σ 1 = 3 , σ 2 = 1 \sigma_1=\sqrt3, \sigma_2=1 σ1=3 ,σ2=1.
  4. 得到分解结果:
    A = U Σ V T = ( 1 / 6 1 / 2 1 / 3 2 / 6 0 − 1 / 3 1 / 6 − 1 / 2 1 / 3 ) ( 3 0 0 1 0 0 ) ( 1 / 2 1 / 2 − 1 / 2 1 / 2 ) A=U\Sigma V^T= \left(\begin{matrix} 1/\sqrt6 & 1/\sqrt2 & 1/\sqrt3 \\ 2/\sqrt6 & 0 & -1/\sqrt3 \\ 1/\sqrt6 & -1/\sqrt2 & 1/\sqrt3 \end{matrix} \right)\left(\begin{matrix} \sqrt3 & 0\\ 0& 1 \\ 0 & 0 \end{matrix} \right)\left(\begin{matrix} 1/\sqrt2 & 1/\sqrt2\\ -1/\sqrt2 & 1/\sqrt2 \end{matrix} \right) A=UΣVT=1/6 2/6 1/6 1/2 01/2 1/3 1/3 1/3 3 00010(1/2 1/2 1/2 1/2 )

4.奇异值分解的作用:降维

Python中奇异值分解:

U,sigma,VT=linalg.svd(data)

分解后,得到sigma为奇异值从大到小排列的向量,通过 s u ( s i g m a [ : k ] ) 2 s u m ( s i g m a ) 2 \frac{su(sigma[:k])^2}{sum(sigma)^2} sum(sigma)2su(sigma[:k])2计算奇异值的能量占比,一般超过80%则表明保留了较多信息,可以用前k个分量还原出原矩阵的大部分信息,从而将原矩阵降维到m x k维。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值