当前位置:   article > 正文

线性代数|机器学习-P7SVD奇异值分解_svd求解线性方程

svd求解线性方程

1. 奇异值分解

现在我们用的是一个m行n列的矩阵A,那么我们计算下特征值方程:
A m × n x n × 1 = λ x n × 1 ; b m × 1 = A m × n x n × 1

Am×nxn×1=λxn×1;bm×1=Am×nxn×1
Am×nxn×1=λxn×1;bm×1=Am×nxn×1

  • m ≠ n m\neq n m=n时, b m × 1 ≠ λ x n × 1 b_{m\times 1}\neq \lambda x_{n\times 1} bm×1=λxn×1,所以当A为长方形矩阵的时候,由于向量大小的原因,我们无法使用 A x = λ x Ax=\lambda x Ax=λx公式,为了解决如下问题,我们引入奇异值分解SVD。
    A m × n = U m × m Σ m × n V n × n T , U U T = I m × m , V V T = I n × n
    Am×n=Um×mΣm×nVn×nT,UUT=Im×m,VVT=In×n
    Am×n=Um×mΣm×nVn×nT,UUT=Im×m,VVT=In×n

1.1 SVD求解

假设我们有任意矩阵A,可以得到SVD分解, A = U Σ V T A=U\Sigma V^T A=UΣVT,那么我们可以构造对称矩阵进行求解; U U T = I , V V T = I UU^T=I,VV^T=I UUT=I,VVT=I
A A T = U Σ V T V Σ T U T = U ( Σ Σ T ) U T

AAT=UΣVTVΣTUT=U(ΣΣT)UT
AAT=UΣVTVΣTUT=U(ΣΣT)UT

  • 我们可以把 A A T AA^T AAT看作是矩阵A右乘一个矩阵 A T A^T AT,所以可以得到 A A T AA^T AAT为矩阵A的列向量的线性组合,所以得到的U肯定在A的列向量空间中。这样可以得到 U , Σ U,\Sigma U,Σ
    A T A = V Σ T U T U Σ V T = V ( Σ T Σ ) V T
    ATA=VΣTUTUΣVT=V(ΣTΣ)VT
    ATA=VΣTUTUΣVT=V(ΣTΣ)VT
  • 我们可以把 A T A A^TA ATA看作是矩阵A左乘一个矩阵 A T A^T AT,所以可以得到 A T A A^TA ATA为矩阵A的行向量的线性组合,所以得到的V肯定在A的行向量空间中。这样可以得到 V , Σ V,\Sigma V,Σ
  • 最后我们通过验证 A v = σ u Av=\sigma u Av=σu来验证 σ \sigma σ 的符号。
    -奇异值SVD分解后矩阵向量分布情况如图:
    在这里插入图片描述
  • 我们发现,对于矩阵A的分解来说,有部分向量 u r + 1 ⋯ u m u_{r+1}\cdots u_m ur+1um对于与 σ r + 1 = ⋯ = σ n = 0 \sigma_{r+1}=\cdots=\sigma_n=0 σr+1==σn=0,所以这部分的向量其实是 N ( A T ) N(A^T) N(AT)零空间向量,所以我们希望更一步进行压缩矩阵,我们本身希望用非零的特征值,具体公式如下:
    A v 1 = σ 1 u 1 , A v 2 = σ 2 u 2 , ⋯ A v r = σ r u r
    Av1=σ1u1,Av2=σ2u2,Avr=σrur
    Av1=σ1u1,Av2=σ2u2,Avr=σrur
  • 整理可得如下:
    A [ v 1 v 2 ⋯ v r r o w − s p a c e ] = [ u 1 u 2 ⋯ u r c o l u m n − s p a c e ] [ σ 1 σ 2 ⋱ σ r ] → A V r = U r Σ r
    A[v1v2vrrowspace]=[u1u2urcolumnspace][σ1σ2σr]AVr=UrΣr
    A v1v2rowspacevr = u1u2columnspaceur σ1σ2σr AVr=UrΣr

1.2 行基和列基转换

  • 这样 A V r = U r Σ r AV_r=U_r\Sigma_r AVr=UrΣr中的均无零向量和零值了。真神奇的想法!!那么行空间的基向量通过上面公式就可以映射到列空间的基向量上,具体如图所示 :
    在这里插入图片描述
  • 证明当 v 1 ⊥ v 2 v_1\perp v_2 v1v2,经过 A v = σ u Av=\sigma u Av=σu时, u 1 ⊥ u 2 u_1\perp u_2 u1u2
    u 1 = A v 1 σ 1 , u 2 = A v 2 σ 2 , u 1 T u 2 = ( A v 1 σ 1 ) T A v 2 σ 2 = v 1 T A T A v 2 σ 1 σ 2
    u1=Av1σ1,u2=Av2σ2,u1Tu2=(Av1σ1)TAv2σ2=v1TATAv2σ1σ2
    u1=σ1Av1,u2=σ2Av2,u1Tu2=(σ1Av1)Tσ2Av2=σ1σ2v1TATAv2
  • 我们之前得到如下结论 A T A v 2 = v 2 σ 2 2 A^TAv_2=v_2\sigma_2^2 ATAv2=v2σ22,代入可得:
    u 1 T u 2 = v 1 T A T A v 2 σ 1 σ 2 = v 1 T σ 2 2 v 2 σ 1 σ 2 = σ 2 v 1 T v 2 σ 1 = 0 → u 1 ⊥ u 2
    u1Tu2=v1TATAv2σ1σ2=v1Tσ22v2σ1σ2=σ2v1Tv2σ1=0u1u2
    u1Tu2=σ1σ2v1TATAv2=σ1σ2v1Tσ22v2=σ1σ2v1Tv2=0u1u2

2. Ax图像表示

假设我们有一个矩阵A,进行分解后得到 A = U Σ V T A=U\Sigma V^T A=UΣVT,那么可得:
A x = U Σ V T x

Ax=UΣVTx
Ax=UΣVTx

  • step1: V T x V^Tx VTx将图像旋转
  • step2: Σ V T x \Sigma V^Tx ΣVTx将图像沿轴拉伸
  • step3: U Σ V T x U\Sigma V^Tx UΣVTx将图像旋转
  • 小结,Ax的本质是将向量的基进行旋转,拉伸,旋转作用
    在这里插入图片描述

3. 极坐标表示

我们希望将任意一个矩阵A分解为一个对称矩阵S和正交矩阵Q的形式,可以进行如下变形:
A = U Σ V T = ( U Σ U T ) ( U V T ) , S = U Σ U T , Q = U V T

A=UΣVT=(UΣUT)(UVT),S=UΣUT,Q=UVT
A=UΣVT=(UΣUT)(UVT),S=UΣUT,Q=UVT

4. 小结

通过SVD奇异值分解可得,我们将任意矩阵分解后,可以挑选出r个重要的非零特征值的矩阵。
A = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ r u r v r T , σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r ;

A=σ1u1v1T+σ2u2v2T++σrurvrT,σ1σ2σr;
A=σ1u1v1T+σ2u2v2T++σrurvrT,σ1σ2σr;

  • 所以可得得到矩阵A中最重要的信息在 σ 1 u 1 v 1 T + ⋯ + σ k u k v k T \sigma_1u_1v_1^T+\cdots+\sigma_ku_kv_k^T σ1u1v1T++σkukvkT上。其他的部分因为 σ k + 1 u k + 1 v k + 1 T + ⋯ + σ r u r v r T \sigma_{k+1}u_{k+1}v_{k+1}^T+\cdots+\sigma_ru_rv_r^T σk+1uk+1vk+1T++σrurvrT中的 σ \sigma σ太小而可以忽略,这样就起到以小的矩阵组合来表示原始矩阵的方式,这个就是我们的 主成分分析PCA,真神奇!!!
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/905496
推荐阅读
相关标签
  

闽ICP备14008679号