SVD分解法求超定方程 Ax=0 的最小二乘解

        1.SVD分解的介绍

        任意矩阵都可以进行奇异值分解,对 m\times n 的矩阵A 进行奇异值分解可得:

A=U\Sigma V^\top

其中:

  • U :  m\times m的正交矩阵,列向量为 A A^T 的特征向量。
  • \Sigma :   m\times n 的对角矩阵(奇异值矩阵),对角线上的值为奇异值(从大到小排列),其余元素为0。
  • V  :  n\times n 的正交矩阵,列向量为 A ^TA 的特征向量。

        UV 都表示旋转,均为正交矩阵,即满足

 U^{T}=U^{-1}

V^{T}=V^{-1}

        奇异值矩阵 \Sigma 对角线上的奇异值按照从大到小的顺序排列,并且奇异值减少的特别快,在很多情况下前 10% 甚至 1% 的奇异值的和就占了全部的奇异值之和的 99% 以上。也就是说,我们可以通过保留前 k 个最大的奇异值和对应的特征向量,将矩阵近似表示为低维形式。即:

\mathrm{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} 

        SVD分解的本质就是将一个线性变换 A 分解为旋转 ^{}V^{T} 左乘拉伸 \Sigma 再左乘旋转 U

    ^{}  U\Sigma V^\top的性质如下图中所示:

        ② 部分内容放大如下: 

求矩阵 A 的SVD分解的步骤如下:

2.SVD分解法求解 Ax=0

        问题描述:给定m\times n 的矩阵 A,求解Ax=0。最小二乘解是指找到一个非零向量 x,使得 \|Ax\|_2^2 能够最小化。即:

\boldsymbol{x}^*=\arg \min _{\boldsymbol{x}}\|\boldsymbol{A} \boldsymbol{x}\|_2^2=\arg \min _{\boldsymbol{x}} \boldsymbol{x}^{\top} \boldsymbol{A}^{\top} \boldsymbol{A} \boldsymbol{x}, \quad \text { s.t., }\|\boldsymbol{x}\|=1 .

  • 我们不想得到 x=0 这样的平凡解,所以加上约束 x\neq 0 。
  • 如果 x 乘上非 0 常数 k ,那么 Ax 也会被放大 k 倍。因此我们不考虑 x 的长度,只关注其方向,即令 \|x\|=1

        结论:Ax=0 的最小二乘解是 A^{T}A 最小特征值对应的特征向量

       

        推导过程:

       \|Ax\|_2^2=\boldsymbol{x}^{\top} \boldsymbol{A}^{\top} \boldsymbol{A} \boldsymbol{x}=x^{\top}\left(U \Sigma V^{\mathrm{T}}\right)^{\mathrm{T}} U \Sigma V^{\mathrm{T}} \boldsymbol{x}=\boldsymbol{x}^{\top} \boldsymbol{V} \boldsymbol{\Sigma}^2 \boldsymbol{V}^{\top} \boldsymbol{x} .

        其中 V 为正交矩阵,其列向量为 A ^TA 每一维特征值对应的特征向量,记为 v_1, v_2,\ldots v_n,它们构成了一组单位正交基。而任意的 x 总是可以被这组单位正交基线性表示为:

\boldsymbol{x}=\alpha_1 \boldsymbol{v}_1+\alpha_2 \boldsymbol{v}_2+\ldots+\alpha_n \boldsymbol{v}_n=[v_{1},v_{2},\ldots v_{n}][\alpha_{1},\alpha_{2},\ldots \alpha_{n}]^T

        即:

   x=V[\alpha_{1},\alpha_{2},\ldots \alpha_{n}]^T

        可得:

 x^TV=[\alpha_{1},\alpha_{2},\ldots \alpha_{n}],V^Tx=[\alpha_{1},\alpha_{2},\ldots \alpha_{n}]^T

        即:

\|Ax\|_2^2=\boldsymbol{x}^{\top} \boldsymbol{V} \boldsymbol{\Sigma}^2 \boldsymbol{V}^{\top} \boldsymbol{x}=[\alpha_{1},\alpha_{2},\ldots \alpha_{n}]\begin{bmatrix}\delta_{1}^{2}&&&\\&\delta_{2}^{2}&&\\&&\ldots&\\&&&\delta_{n}^{2}\end{bmatrix}[\alpha_{1},\alpha_{2},\ldots \alpha_{n}]^T

=\alpha_{1}^{2}\delta_{1}^{2}+\alpha_{2}^{2}\delta_{2}^{2}+\cdots+\alpha_{n}^{2}\delta_{n}^{2}=\sum_{k=1}^{n}\alpha_{k}^{2}\delta_{k}^{2}, 

       前面约束的 \|x\|=1 意味着 \alpha_1^2+\alpha_2^2+\ldots+\alpha_n^2 = 1,奇异值部分的 \delta_{k}^{2} 又是降序排列的,所以当取如下值时

 \alpha_{1}=0,\alpha_{2}=0,\ldots,\alpha_{n-1}=0,\alpha_{n}=1 

        \|Ax\|_2^2 取得最小值,此时

 x^{*}=v_{n}\|Ax\|_2^2=\sum_{k=1}^{n}\alpha_{k}^{2}\delta_{k}^{2}=\delta_{n}^{2}=\lambda_{n}

        因此得到结论:Ax=0 的最小二乘解是 A^{T}A 最小特征值对应的特征向量。

参考:

      【学长小课堂】什么是奇异值分解SVD--SVD如何分解时空矩阵

        奇异值分解(Singular Values Decomposition,SVD)

        SLAM--三角测量SVD分解法、最小二乘法及R t矩阵的判断

        奇异值分解(SVD)方法求解最小二乘问题

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值