• 投影矩阵、最小二乘法和SVD分解


    投影矩阵广泛地应用在数学相关学科的各种证明中,但是由于其概念比较抽象,所以比较难理解。这篇文章主要从最小二乘法的推导导出投影矩阵,并且应用SVD分解,写出常用的几种投影矩阵的形式。

    问题的提出

    已知有一个这样的方程组:

    [Ax=b ]

    其中,(A in R^{m imes n},x,b in R^n)

    • (m=n)时,且(rank(A)=n)时,这是一个适定方程组,有唯一解(x=A^{-1}b)
    • (m<n)时,或者(rank(A)<n)时,这是一个欠定方程组,有无穷多个解。对于这种情况,我们使用(ran(A))中与(b)距离最近的向量对应的(x)作为最小二乘解。而相应的(ran(A))中的这个向量就是(b)在空间(ran(A))中的投影。

    最小二乘法

    几何解法

    如上图所示,(b)不在(ran(A))中,(Ax_0)(ran(A))空间中对(b)在欧几里得范数下的最好估计。此时$$forall x in {R^n},leftlangle {Ax,b - A{x_0}} ight angle = 0$$
    等价于

    [{x^T}{A^T}(b - A{x_0}) = 0 ]

    由于x的任意性,所以

    [{A^T}(b - A{x_0}) = 0 ]

    整理得

    [{x_0} = {({A^T}A)^{ - 1}}{A^T}b = {A^dagger }b ]

    其中({A^dagger } = {({A^T}A)^{ - 1}}{A^T})称为A的伪逆。

    数值解法

    原问题等价于

    [min ||Ax - b||_2^2 ]

    记$ f(x)=||Ax-b||_22=(Ax-b)T(Ax-b)=xTAT A x-2 b^T A x + b^Tb$,对x求导得,

    [ abla f = 2({A^T}Ax - {A^T}b) = 0 ]

    解得,

    [{x} = {({A^T}A)^{ - 1}}{A^T}b = {A^dagger }b ]

    投影矩阵

    对最小二乘解两边同时乘以A,就是对应的投影向量,即

    [{Ax} = {A({A^T}A)^{ - 1}}{A^T}b=Pb ]

    那么(P={A({A^T}A)^{ - 1}}{A^T})就是将(b)投影到(ran(A))的投影矩阵。因为

    [P^T={A({A^T}A)^{ - 1}}{A^T}=P,P^2=P ]

    满足投影矩阵的定义。
    所以(ran(A))对应的投影矩阵为

    [P={A({A^T}A)^{ - 1}}{A^T} ]

    SVD分解下的投影矩阵

    秩为r的矩阵A的SVD分解为(A = USigma {V^T} in R^{m imes n})。其中,

    [U = [{U_r}|{ ilde U_r}],V = [{V_r}|{ ilde V_r}] ]

    那么,带入公式可以得到

    (V_r V_r^T)(ran(A^T)={null(A)}^ot)空间的投影矩阵
    (U_r U_r^T)(ran(A))空间的投影矩阵

    对于(forall x in R^n),有

    [leftlangle {V_r V_r^T x, ilde V_r { ilde V_r}^T x} ight angle =x^T V_r V_r^T ilde V_r { ilde V_r}^T x=0 ]

    所以,( ilde V_r { ilde V_r}^T)(null(A))空间的投影矩阵
    同理,( ilde U_r { ilde U_r}^T)(null(A^T)={ran(A)}^ot)空间的投影矩阵

  • 相关阅读:
    gitlab+jenkens+maven私服
    记录一次gitlab+jenkins入坑到排坑的过程
    python进阶之路一,变量、运算符、判断、while循环
    cat EOF追加与覆盖
    tcpdump使用
    iptables学习
    Java生产消费模型—ArrayBlockingQueue详解
    Java泛型详解(透彻)
    Java源码初探_logging日志模块实现
    Java设计模式学习总结
  • 原文地址:https://www.cnblogs.com/connorzx/p/4707112.html
Copyright © 2020-2023  润新知