奇异值分解(SVD)原理与在降维中的应用

1.SVD定义

  SVD目的为了对行列不同时对矩阵进行分解。
  SVD公式为: A = U Σ V T A=U\Sigma V^T A=UΣVT

  • A是一个 m × n m\times n m×n的矩阵
  • U是一个 m × m m\times m m×m的矩阵
  • Σ 是 一 个 m × n \Sigma是一个m\times n Σm×n的矩阵,除了对角线上的元素外全为0,主对角线上的每个元素都称为奇异值
  • V 是 一 个 n × n 的 矩 阵 V是一个n\times n的矩阵 Vn×n

U 和 V 都 是 酋 矩 阵 , 即 满 足 U T U = I , V T V = I U和V都是酋矩阵,即满足U^TU=I,V^TV=I UVUTU=IVTV=I


2.计算 U , Σ , V U,\Sigma,V U,Σ,V三个矩阵

  • 求矩阵 V V V : A 和 A T 做 矩 阵 乘 法 , 会 得 到 一 个 n × n 的 矩 阵 :A和A^T做矩阵乘法,会得到一个n\times n的矩阵 AATn×n
    ( A T A ) v i = λ i v i (A^TA)v_i=\lambda_iv_i (ATA)vi=λivi——可求出n个特征值 λ 和 n 个 特 征 向 量 v i \lambda和n个特征向量v_i λnvi,将n个特征向量 v i v_i vi构成SVD公式中的 V V V矩阵,将 V V V矩阵中的每个特征向量称为A的右奇异向量。
  • 求矩阵 U U U : A T 和 A 做 矩 阵 乘 法 , 会 得 到 一 个 m × m 的 矩 阵 :A^T和A做矩阵乘法,会得到一个m\times m的矩阵 ATAm×m
    ( A A T ) v i = λ i u i (AA^T)v_i=\lambda_iu_i (AAT)vi=λiui——可求出n个特征值 λ 和 n 个 特 征 向 量 u i \lambda和n个特征向量u_i λnui,将n个特征向量 u i u_i ui构成SVD公式中的 U U U矩阵,将 U U U矩阵中的每个特征向量称为A的左奇异向量。
  • 求矩阵 Σ \Sigma Σ
    A = U Σ V T A=U\Sigma V^T A=UΣVT
    = > A V = U Σ V T V = U Σ =>AV=U\Sigma V^TV=U\Sigma =>AV=UΣVTV=UΣ
    = > A v i = σ i u i =>Av_i=\sigma_iu_i =>Avi=σiui
    = > σ i = A v i / u i =>\sigma_i=Av_i/u_i =>σi=Avi/ui
    通过公式求解出 σ i \sigma_i σi的值构成 Σ \Sigma Σ矩阵

证明正确性

由公式:
A = U Σ V T A=U\Sigma V^T A=UΣVT
= > A V = U Σ V T V = U Σ =>AV=U\Sigma V^TV=U\Sigma =>AV=UΣVTV=UΣ
= > A T A = V Σ T U T U Σ V T = V Σ 2 V T =>A^TA=V\Sigma ^TU^TU\Sigma V^T=V\Sigma ^2V^T =>ATA=VΣTUTUΣVT=VΣ2VT
上式公式可以看出 A 的 特 征 值 组 成 的 是 S V D 中 的 V 矩 阵 , 类 似 的 可 证 明 A^的特征值组成的是SVD中的V矩阵,类似的可证明 ASVDVAA^T$的特征向量就是SVD中的U矩阵


3.SVD的性质

  • 在奇异值矩阵中按照从大到小排列,而且奇异值减少特别快。可就是说,可以利用最大的k个奇异值来近似的描述矩阵。即:
    A m × n = U m × m Σ m × n V n × n T ≈ U m × k Σ k × k V k × n T A_{m\times n}=U_{m\times m}\Sigma_{m\times n}V_{n\times n}^T\approx U_{m\times k}\Sigma_{k\times k}V_{k\times n}^T Am×n=Um×mΣm×nVn×nTUm×kΣk×kVk×nT
    因此可应用于PCA降为,来做数据压缩和去噪,也可应用于推荐算法,将用户对应的矩阵做特征分解,进而得到隐含的用户需求。

参考:https://www.cnblogs.com/pinard/p/6251584.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值