• 线性代数学习笔记10-3:奇异值分解SVD(从四个子空间角度理解)


    从四个子空间角度理解SVD

    A = U m × m Σ m × n V n × n H \mathbf {A =U_{m \times m}\Sigma_{m \times n}V_{n \times n}^H} A=Um×mΣm×nVn×nH
    在这里插入图片描述
    A \mathbf {A} A视为线性变换,并将整个 R n \mathbf R^n Rn空间拆分为两部分,即 A \mathbf {A} A行空间(维数 r r r)和零空间(维数 n − r n-r nr,行空间的正交补):

    1. A \mathbf {A} A行空间中,存在第一部分标准正交基 v i ( i = 1 , 2 , . . . , r ) \mathbf{v}_{i}(i=1,2,...,r) vi(i=1,2,...,r)
      A \mathbf A A对应的线性变换将行空间中的 v i \mathbf{v}_{i} vi映射为 A \mathbf A A列空间中的一个非零向量 σ i u i = A v i \sigma_i\mathbf u_i=\mathbf A\mathbf{v}_{i} σiui=Avi(视为对 A \mathbf A A的列向量的线性组合);
      A [ v 1 v 2 ⋯ v r ] = [ σ 1 u 1 σ 2 u 2 ⋯ σ r u r ] = [ u 1 u 2 ⋯ u r ] [ σ 1 σ 2 ⋱ σ r ]
      A[v1v2vr]=[σ1u1σ2u2σrur]=[u1u2ur][σ1σ2σr]" role="presentation" style="position: relative;">A[v1v2vr]=[σ1u1σ2u2σrur]=[u1u2ur][σ1σ2σr]
      A[v1v2vr]=[σ1u1σ2u2σrur]=[u1u2ur] σ1σ2σr

      此即 U m × n V ^ n × r = U ^ m × r Σ ^ r × r \mathbf U_{m\times n}\hat{\mathbf V}_{n\times r}=\hat{\mathbf U}_{m\times r}\hat{\mathbf \Sigma}_{r\times r} Um×nV^n×r=U^m×rΣ^r×r,对应下图中的红色边框部分

    注意, A \mathbf A A行空间中的向量 x \mathbf x x列空间中的向量 A x \mathbf A\mathbf x Ax映射,为一一映射
    也就是说对于行空间中的向量 x ≠ y \mathbf x\neq\mathbf y x=y,则必有列空间中的向量 A x ≠ A y \mathbf A\mathbf x\neq\mathbf A\mathbf y Ax=Ay
    证明:
    反证法:对于行空间的向量 x ≠ y \mathbf x\neq\mathbf y x=y,假设有 A x = A y \mathbf A\mathbf x=\mathbf A\mathbf y Ax=Ay
    A ( x − y ) = 0 \mathbf A(\mathbf x-\mathbf y)=\mathbf 0 A(xy)=0,这就是说,向量 ( x − y ) (\mathbf x-\mathbf y) (xy)在零空间中;
    另一方面,向量 ( x − y ) (\mathbf x-\mathbf y) (xy)一定在行空间中(两个行空间中的向量的线性组合)
    向量 ( x − y ) (\mathbf x-\mathbf y) (xy)不可能既在行空间中,又在零空间中,因此假设不成立

    在这里插入图片描述

    1. A \mathbf A A零空间中,有第二部分标准正交基 v i ( i = r + 1 , r + 2 , . . . , n ) \mathbf v_i(i=r+1,r+2,...,n) vi(i=r+1,r+2,...,n)
      A \mathbf A A对应的线性变换将 v i \mathbf v_i vi映射为零向量,满足 A v i = 0 \mathbf {A}\mathbf v_i=0 Avi=0
      体现在 Σ m × n \boldsymbol{\Sigma}_{m\times n} Σm×n中,就是其右下角的0元素,对应上图蓝色边框部分

    上面是从 A = U Σ V H ⇒ A V = U Σ \mathbf {A =U\Sigma V^H}\Rightarrow \mathbf {A V =U\Sigma} A=VHAV=的角度出发;
    A H = V Σ H U H ⇒ A H U = V Σ H \mathbf {A^H =V\Sigma^HU^H}\Rightarrow \mathbf {A^HU =V\Sigma^H} AH=VΣHUHAHU=VΣH的角度同理可知: U \mathbf U U给出了 A H \mathbf A^H AH的行空间和零空间的标准正交基

    结论

    我们在 A \boldsymbol{A} A四个子空间中,寻找了两组合适的基:

    • 第一组是 C n × n \mathbb C^{n\times n} Cn×n空间中的标准正交基,由两部分构成:
      v i ( i = 1 , 2 , . . . , r ) \mathbf{v}_{i}(i=1,2,...,r) vi(i=1,2,...,r)行空间中的 r r r个标准正交基
      v i ( i = r + 1 , r + 2 , . . . , n ) \mathbf{v}_{i}(i=r+1,r+2,...,n) vi(i=r+1,r+2,...,n)为零空间中的标准正交基
    • 第二组是 C m × m \mathbb C^{m\times m} Cm×m空间中的标准正交基,由两部分构成:
      u i ( i = 1 , 2 , . . . , r ) \mathbf{u}_{i}(i=1,2,...,r) ui(i=1,2,...,r)列空间中的 r r r个标标准正交基
      u i ( i = r + 1 , r + 2 , . . . , m ) \mathbf{u}_{i}(i=r+1,r+2,...,m) ui(i=r+1,r+2,...,m)为左零空间中的标准正交基

    瘦奇异值分解(thin SVD)

    V m \mathbb V^m Vm空间的一组正交基是 U = [ U r U m − r ] = [ u 1 ⋯ u r   ∣   u r + 1 ⋯ u m ] U=

    [UrUmr]" role="presentation" style="position: relative;">[UrUmr]
    =
    [u1ur | ur+1um]" role="presentation" style="position: relative;">[u1ur | ur+1um]
    U=[UrUmr]=[u1ur  ur+1um]
    V n \mathbb V^n Vn空间的一组正交基是 V = [ V r V n − r ] = [ v 1 ⋯ v r   ∣   v r + 1 ⋯ v n ] V=
    [VrVnr]" role="presentation" style="position: relative;">[VrVnr]
    =
    [v1vr | vr+1vn]" role="presentation" style="position: relative;">[v1vr | vr+1vn]
    V=[VrVnr]=[v1vr  vr+1vn]

    对应了四个子空间:
    A v i = σ i u i ,     i = 1 , … , r A v i = 0 i ,     i = r + 1 , … , n A H u i = σ i v i ,     i = 1 , … , r A H u i = 0 ,     i = r + 1 , … , m ,
    Avi=σiui,   i=1,,rAvi=0i,   i=r+1,,nAHui=σivi,   i=1,,rAHui=0,   i=r+1,,m," role="presentation" style="position: relative;">Avi=σiui,   i=1,,rAvi=0i,   i=r+1,,nAHui=σivi,   i=1,,rAHui=0,   i=r+1,,m,
    AviAviAHuiAHui=σiui,   i=1,,r=0i,   i=r+1,,n=σivi,   i=1,,r=0,   i=r+1,,m,

    实际上其中的 n − r n-r nr v i \mathbf{v}_i vi m − r m-r mr u i \mathbf{u}_i ui是“多余”的
    因为只要求它们被映射为零向量(而不要求有 A v i = σ i u i \mathbf A\mathbf{v}_i=\sigma_i\mathbf{u}_i Avi=σiui的一一映射关系),或者说线性变换 A \mathbf A A并未对这些向量进行实质性的操作( A \mathbf A A将多余的 v i \mathbf{v}_i vi降维压缩为零向量,而 u i \mathbf{u}_i ui则是那些线性变换后的新空间中与变换本身无关的多余维度)

    从关注线性变换 A \mathbf A A的本质的角度,我们完全可以忽略零空间和左零空间,只关注行空间和列空间之间的一一映射
    那么,有 A A A瘦奇异值分解(thin SVD)如下 A = [ U r U m − r ] [ D 0 0 0 ] [ V r H V n − r H ] = U r D V r H = [ u 1 ⋯ u r ] [ σ 1 ⋱ σ r ] [ v 1 H ⋮ v r H ] = σ 1 u 1 v 1 H + ⋯ + σ r u r v r H ,

    A=[UrUmr][D000][VrHVnrH]=UrDVrH=[u1ur][σ1σr][v1HvrH]=σ1u1v1H++σrurvrH," role="presentation" style="position: relative;">A=[UrUmr][D000][VrHVnrH]=UrDVrH=[u1ur][σ1σr][v1HvrH]=σ1u1v1H++σrurvrH,
    A=[UrUmr][D000][VrHVnrH]=UrDVrH=[u1ur] σ1σr v1HvrH =σ1u1v1H++σrurvrH,

    理论的统一

    前面笔记10-1说过,SVD( A = U Σ V T \boldsymbol{A} =\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^{T} A=UΣVT)中, Σ \boldsymbol{\Sigma} Σ奇异值 σ ≥ 0 \sigma\geq 0 σ0

    • A \boldsymbol{A} A为可逆矩阵 r = n r=n r=n,没有0特征值,
      A T A \boldsymbol{A}^{T} \boldsymbol{A} ATA A A T \boldsymbol{A}\boldsymbol{A}^{T} AAT特征值全为正,为正定矩阵,对应 A \boldsymbol{A} A奇异值全为正;
    • A \boldsymbol{A} A为不可逆矩阵 r < n rr<n,有0特征值,
      A T A \boldsymbol{A}^{T} \boldsymbol{A} ATA A A T \boldsymbol{A}\boldsymbol{A}^{T} AAT特征值正数和0,为半正定矩阵,对应 A \boldsymbol{A} A奇异值为正数和0

    因此有:
    A \boldsymbol{A} A不可逆( r < n rr<n    ⟺    \iff
    Σ \boldsymbol{\Sigma} Σ对角元为正数和0(存在奇异值为0    ⟺    \iff
    A \boldsymbol{A} A存在零空间(维度 n − r > 0 n-r>0 nr>0),零空间中的一部分向量 v i \mathbf v_i vi被线性变换 A \boldsymbol{A} A映射为零向量( A v i = 0 \boldsymbol{A}\mathbf v_i=0 Avi=0    ⟺    \iff
    A x = 0 \bold{Ax=0} Ax=0有非零解    ⟺    \iff
    A \boldsymbol{A} A的列向量组线性相关

  • 相关阅读:
    解决若依框架中只适配MySQL的问题,若依框架完美适配达梦数据库的代码生成,适配其他框架原理相似。
    【fairseq】RuntimeError: Unrecognized tensor type ID: AutogradCUDA
    mysql主从和mycat读写分离的安装及验证
    c++ 经典服务器开源项目 Tinywebserver的使用与配置(百度智能云服务器安装ubuntu18.04可用公网ip访问)
    《java 桌面软件开发》swing 以鼠标为中心放大缩小移动图片
    vue3使用ref和reactive
    一键部署(dhcp、dns、pxe、raid、nfs+apache+expect、lvm、磁盘分区、监控资源)
    论文初稿写到什么程度才算合格?
    MySQL事务MVCC详解
    Mysql批量插入数据时如何解决重复问题
  • 原文地址:https://blog.csdn.net/Insomnia_X/article/details/128113516