• 奇异值分解(SVD)


    奇异值分解

      特征值分解是一个提取矩阵特征很不错的方法,但是它只是对方阵而言的,在现实的世界中,我们看到的大部分矩阵都不是方阵。
      奇异值分解基本定理:若 $ A$ 为 $ m imes n$ 实矩阵, 则 $ A$ 的奇异值分解存在

      $A=U Sigma V^{T}$

      $A=U Sigma V^{T}=left[egin{array}{lll}oldsymbol{u}_{1} & cdots & oldsymbol{u}_{m} \& &end{array} ight]left[egin{array}{ccc}sigma_{1} & & & \& ddots & & 0 \& & sigma_{r} \& 0 & &0end{array} ight]_{m imes n}left[egin{array}{c}oldsymbol{v}_{1}^{T} \vdots \oldsymbol{v}_{n}^{T}end{array} ight]$

      $Sigma$  是  $m imes n$  矩形对角矩阵,其对角线元素非负(半正定),且按降序排列。可以发现, $ A$  和 $Sigma$  是同型矩阵。

      下面看看怎么得到矩阵  $U, Sigma, V$ 。

        $egin{array}{l}A A^{T}=U Sigma V^{T} V Sigma^{T} U^{T}=U Sigma Sigma^{T} U^{T} \A^{T} A=V Sigma^{T} U^{T} U Sigma V^{T}=V Sigma^{T} Sigma V^{T}end{array}$

      其中,  $A A^{T}$  是  $m$  阶实对称矩阵,  $A^{T} A$  是  $n$  阶实对称矩阵,  $Sigma Sigma^{T}$  是  $m$  阶方阵,  $Sigma^{T} Sigma$  是  $n$  阶方阵。

      1)  $A^{T} A$  的特征值均为非负。令  $lambda$  是  $A^{T} A$  的一个特征值,  $alpha$  是对应的特征向量, 则

        $egin{array}{c}A^{T} A alpha=lambda alpha \Rightarrow|A alpha|^{2}=(A alpha)^{T}(A alpha)=alpha^{T} A^{T} A alpha=alpha^{T} lambda alpha=lambda|alpha|^{2} \Rightarrow lambda geq 0end{array}$

      2)$A^{T} A$  和  $ A A^{T} $ 拥有相同的非零特征值,并且保持相同重数,并且属于非零特征值的特征向量间存在制约关系。

      a. 首先证明方程 $A x=0$ 和 $A^{T} A x=0$ 同解。
      如果 $ A x=0$ , 则 $ A^{T}(A x)=0$ , 所以 $ A x=0$ 的解为 $ A^{T} A x=0$ 的解。
      对于 $ A^{T} A x=0$ , 两边同时乘以 $ x^{T}$ , 得到 $ x^{T} A^{T} A x=0$ 。则有 $ (A x)^{T}(A x)=0 $, 即$ |A x|=0$ 。所以得到 $ A x=0$ 。 所以, $ A^{T} A x=0 $ 的解都为 $ A x=0$ 的解。
      所以 $ A x=0$ 和 $ A^{T} A x=0 $ 有相同的解空间。所以 $ r(A)=rleft(A^{T} A ight) $, 同理有, $ rleft(A^{T} ight)=rleft(A A^{T} ight)$ , 于是有:

        $rleft(A A^{T} ight)=rleft(A^{T} ight)=r(A)=rleft(A^{T} A ight)$

      b. 证明: $ A^{T} A$ 和 $ A A^{T}$ 拥有相同的非零特征值, 且特征向量间存在制约关系。

        $A^{T} A x=lambda x$

      将上式两边左乘一个矩阵 $ A$ 有

        $A A^{T}(A x)=lambda(A x)$

      那当 $ x eq 0$ 时, $ A x$ 是否也是非 $0$ 向量?
      因为 $ A x=0$ 和 $ A^{T} A x=0$ 同解, 所以要证明 $ A x eq 0$ , 只需䨐证明 $ A^{T} A x eq 0$ , 因为

        $A^{T} A x=lambda x eq 0 Rightarrow A x eq 0$


    SVD计算举例

      这里我们用一个简单的矩阵来说明奇异值分解的步骤。我们的矩阵A定义为:

        $A=left(egin{array}{ll}0 & 1 \1 & 1 \1 & 0end{array} ight)$

      首先,我们先求出  $A^{T} A$  和  $A A^{T} $ :

        $egin{array}{l}A^{T} A=left(egin{array}{lll}0 & 1 & 1 \1 & 1 & 0end{array} ight)left(egin{array}{ll}0 & 1 \1 & 1 \1 & 0end{array} ight)=left(egin{array}{ll}2 & 1 \1 & 2end{array} ight) \A A^{T}=left(egin{array}{ll}0 & 1 \1 & 1 \1 & 0end{array} ight)left(egin{array}{lll}0 & 1 & 1 \1 & 1 & 0end{array} ight)=left(egin{array}{lll}1 & 1 & 0 \1 & 2 & 1 \0 & 1 & 1end{array} ight)end{array}$

      然后,求出 $A^{T} A$  和 $A A^{T}$ 的特征值和特征向量:
      $A^{T} A$ 的特征值和特征向量 :

        $lambda_{1}=3 ; quad v_{1}=left(egin{array}{c}frac{1}{sqrt{2}} \frac{1}{sqrt{2}}end{array} ight) ; lambda_{2}=1 ; quad v_{2}=left(egin{array}{c}frac{-1}{sqrt{2}} \frac{1}{sqrt{2}}end{array} ight)$

      $A A^{T}$ 的特征值和特征向量:

        $lambda_{1}=3 ; quad u_{1}=left(egin{array}{c}frac{1}{sqrt{6}} \frac{2}{sqrt{6}} \frac{1}{sqrt{6}}end{array} ight) ; lambda_{2}=1 ; quad u_{2}=left(egin{array}{c}frac{1}{sqrt{2}} \0 \frac{-1}{sqrt{2}}end{array} ight) ; lambda_{3}=0 ; quad u_{3}=left(egin{array}{c}frac{1}{sqrt{3}} \frac{-1}{sqrt{3}} \frac{1}{sqrt{3}}end{array} ight)$

      其次,我们利用 $A v_{i}=sigma_{i} u_{i}$, $quad i=1,2$ , 求奇异值;

        $egin{array}{l}left(egin{array}{cc}0 & 1 \1 & 1 \1 & 0end{array} ight)left(egin{array}{c}frac{1}{sqrt{2}} \frac{1}{sqrt{2}}end{array} ight)=sigma_{1}left(egin{array}{c}frac{1}{sqrt{6}} \frac{2}{sqrt{6}} \frac{1}{sqrt{6}}end{array} ight) Rightarrow sigma_{1}=sqrt{3} \left(egin{array}{cc}0 & 1 \1 & 1 \1 & 0end{array} ight)left(egin{array}{c}frac{-1}{sqrt{2}} \frac{1}{sqrt{2}}end{array} ight)=sigma_{2}left(egin{array}{c}frac{1}{sqrt{2}} \0 \frac{-1}{sqrt{2}}end{array} ight) Rightarrow sigma_{2}=1end{array}$

      当然,这一步也可以用 $sigma_{i}=sqrt{lambda_{i}}$ 直接求出奇异值为 $sqrt{3}$ 和 $1$。
      最后,我们得到A的奇异值分解为 :

        $A=U Sigma V^{T}=left(egin{array}{ccc}frac{1}{sqrt{6}} & frac{1}{sqrt{2}} & frac{1}{sqrt{3}} \frac{2}{sqrt{6}} & 0 & frac{-1}{sqrt{3}} \frac{1}{sqrt{6}} & frac{-1}{sqrt{2}} & frac{1}{sqrt{3}}end{array} ight)left(egin{array}{cc}sqrt{3} & 0 \0 & 1 \0 & 0end{array} ight)left(egin{array}{cc}frac{1}{sqrt{2}} & frac{1}{sqrt{2}} \frac{-1}{sqrt{2}} & frac{1}{sqrt{2}}end{array} ight)$

    因上求缘,果上努力~~~~ 作者:每天卷学习,转载请注明原文链接:https://www.cnblogs.com/BlairGrowing/p/15343137.html

  • 相关阅读:
    Python 的编码格式
    Python import其他层级的模块
    自己写ORM框架 DBUtils_DG Java(C#的写在链接里)
    C#对象深度克隆
    SpringMVC文件上传下载
    HttpRuntime.Cache .Net自带的缓存类
    Winform跨窗体操作控件(使用委托)
    Winform调用WebKitBrowser,基于chrome内核WebKit的浏览器控件
    ORM框架 EF code first 的封装 优化一
    Go Language 开发环境搭建
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/15343137.html
Copyright © 2020-2023  润新知