【Math】线性方程组的最小二乘解

在SLAM问题中,经常需要解一些方程数远大于未知量的超定线性方程组 A x = 0 Ax=0 Ax=0 A x = b Ax=b Ax=b,那么这种情况下,从解析解的角度上看,是无解的,但是我们又需要给出一个答案,此时求解的就是最小二乘解。


线性方程组的解析解

线性方程组分为齐次线性方程组 A x = 0 Ax=0 Ax=0非齐次线性方程组 A x = b Ax=b Ax=b,其区别在于常数项是否为 0 0 0向量。其中, x x x n n n维向量。

对于齐次线性方程组 A x = 0 Ax=0 Ax=0,是否有解析解直接取决于 A A A的秩。分为以下几种情况:

  • r ( A ) = n r(A)=n r(A)=n,解析解有且仅有零解
  • r ( A ) < n r(A)<n r(A)<n,解析解有无穷解

假设此时: r ( A ) = n r(A)=n r(A)=n,其中 A A A m m m n n n列的矩阵, m > > n m>>n m>>n(即线性无关方程个数大于未知数个数),要严格论解析解的话只有零解。而在这种情况下,我们想要求解其非零解,此时可以通过最小二乘求解近似解

对于非齐次线性方程组 A x = b Ax=b Ax=b,是否有解析解取决于 A A A的增广矩阵 ( A ∣ b ) (A|b) (Ab)的秩。分为以下几种情况:

  • 如果 r ( A ) = r ( A ∣ b ) = n r(A)=r(A|b)=n r(A)=r(Ab)=n,解析解有且仅有唯一解
  • 如果 r ( A ) = r ( A ∣ b ) < n r(A)=r(A|b)<n r(A)=r(Ab)<n,解析解有无穷多解
  • 如果 r ( A ) < r ( A ∣ b ) r(A)<r(A|b) r(A)<r(Ab),解析解无解

假设此时: r ( A ) < r ( A ∣ b ) r(A)<r(A|b) r(A)<r(Ab),其中 A A A m m m n n n列的矩阵, m > > n m>>n m>>n(即线性无关方程个数大于未知数个数),要严格论解析解的话无解。此时没有向量 x x x能够同时满足 A x = b Ax=b Ax=b,因此通常只能求解最小二乘近似解,且前提是 r ( A ) = n r(A)=n r(A)=n

事实上,我们在解决许多实际问题时,尽管解析解只有零解或者无解,但我们又不得不求近似解时(尽管它不是完全准确),此时可以通过最小二乘求解近似解。


最小二乘解

最小二乘解主要有分为两种:特征值解奇异值解

A A A n n n阶方阵,如果存在数 λ \lambda λ和非零 n n n维列向量 x x x,使得 A x = λ x Ax=\lambda x Ax=λx成立,则称 λ \lambda λ是矩阵 A A A的一个特征值,称 x x x为矩阵 A A A的特征向量。

对于任一给定的矩阵 A m ∗ n A_{m*n} Amn,都存在这样的分解:

A = U D V T A=UDV^T A=UDVT

其中:

  • U U U是一个 m × m m\times m m×m正交矩阵,其中的列向量叫做 A A A的左奇异向量
  • D D D是一个 m × n m\times n m×n对角矩阵,其中的对角元叫做 A A A奇异值(通常对角元素降序排列)
  • V V V是一个 n × n n\times n n×n正交矩阵,其中的列向量叫做 A A A的右奇异向量

齐次方程组的最小二乘解

特征值解

在SLAM中,我们常遇到的情况是,通过大量具有一定噪声的观测值,构造方程数远大于未知量的超定线性方程组 A x = 0 Ax=0 Ax=0,其中 A ∈ R m ∗ n A\in R^{m*n} ARmn m > > n m>>n m>>n,这时候往往没有严格意义上的解析解。

比如:在求解两张图像的本质矩阵 E E E时,我们会匹配大量的特征点对,然后基于对极约束构造线性方程组 A e = 0 Ae=0 Ae=0求解本质矩阵的元素向量 e e e。此时,特征点对的个数往往远超过本质矩阵的元素数(即 m > > n m>>n m>>n),且因为点位噪声的存在,对极约束不是严格成立的(即 A x ≈ 0 Ax\approx 0 Ax0)。面对这种情况,我们通常的做法是求最小二乘解。即:

x ^ = a r g min ⁡ x ∣ ∣ A x ∣ ∣ 2 2 \hat x=arg\min_{\boldsymbol{x}} ||Ax||_2^2 x^=argxmin∣∣Ax22

但我们立马发现一个问题,如前所述的尺度不变性,如果 x s x_s xs是一个解,则 k s x s k_sx_s ksxs也是解,则当我们求出一个解后,无限减小解向量的模长, ∣ ∣ A x ∣ ∣ 2 2 ||Ax||_2^2 ∣∣Ax22不就会无限小吗,到底该取哪个呢?这显然这陷入一个僵局。

所以,我们要给 x x x增加一个约束,即限定它的模长为一个常量,比如最常用的单位模长 1 1 1,即 x x x必须满足, ∣ ∣ x ∣ ∣ 2 2 = 1 ||x||_2^2=1 ∣∣x22=1。这就重新构建了一个带约束的最小二乘问题

x ^ = a r g min ⁡ x ∣ ∣ A x ∣ ∣ 2 2  , subject to  ∣ ∣ x ∣ ∣ 2 2 = 1 \hat x=arg\min_{\boldsymbol{x}} ||Ax||_2^2\text{ , subject to }||x||_2^2=1 x^=argxmin∣∣Ax22 , subject to ∣∣x22=1

根据拉格朗日乘数法,另

L ( x , λ ) = ∣ ∣ A x ∣ ∣ 2 2 + λ ( 1 − ∣ ∣ x ∣ ∣ 2 2 ) L(x,\lambda)=||Ax||_2^2+\lambda(1- ||x||_2^2) L(x,λ)=∣∣Ax22+λ(1∣∣x22)

要求 L ( x , λ ) L(x,\lambda) L(x,λ)最小值,则首先求极值,即一阶偏导为 0 0 0的点,我们分别对 x x x λ \lambda λ求偏导并另其等于0:

L ′ ( x ) = 2 A T A x − 2 λ x = 0 L^{'}(x)=2A^TAx-2\lambda x=0 L(x)=2ATAx2λx=0
L ′ ( λ ) = 1 − x T x = 0 L^{'}(\lambda)=1-x^Tx=0 L(λ)=1xTx=0

则有 A T A x = λ x A^TAx=\lambda x ATAx=λx,这熟悉的公式告诉我们, x x x是矩阵 A T A A^TA ATA特征值 λ \lambda λ对应的的特征向量。

但是矩阵 A T A A^TA ATA最多有 n n n个特征值,对应着 n n n个特征向量,哪一个是最小值点呢?

我们再作一下推导:当 x x x是矩阵 A T A A^TA ATA特征值为 λ \lambda λ的特征向量时,有

∣ ∣ A x ∣ ∣ 2 2 = x T A T A x = x T λ x = λ x T x = λ ||Ax||_2^2=x^TA^TAx=x^T\lambda x=\lambda x^Tx=\lambda ∣∣Ax22=xTATAx=xTλx=λxTx=λ

因此,当 λ \lambda λ取最小时, ∣ ∣ A x ∣ ∣ 2 2 ||Ax||_2^2 ∣∣Ax22取最小值,即最小二乘解 x ^ \hat x x^是矩阵 A T A A^TA ATA最小特征值对应的特征向量。这就是超定线性方程组 A x = 0 Ax=0 Ax=0的最小二乘解法。

奇异值解

求解 A x = 0 Ax=0 Ax=0的最小二乘解,可以转化为 U D V T x = 0 UDV^Tx=0 UDVTx=0的最小二乘解,由于 U U U是正交矩阵,即求 D V T x = 0 DV^Tx=0 DVTx=0的最小二乘解。

此时带约束的最小二乘问题就可以定义为:

x ^ = a r g min ⁡ x ∣ ∣ D V T x ∣ ∣ 2 2  , subject to  ∣ ∣ x ∣ ∣ 2 2 = 1 \hat x=arg\min_{\boldsymbol{x}} ||DV^Tx||_2^2\text{ , subject to }||x||_2^2=1 x^=argxmin∣∣DVTx22 , subject to ∣∣x22=1

因为 V V V是正交矩阵,有 ∣ ∣ x ∣ ∣ 2 2 = ∣ ∣ V T x ∣ ∣ 2 2 ||x||_2^2=||V^Tx||_2^2 ∣∣x22=∣∣VTx22。同时令 y = V T x y=V^Tx y=VTx,问题可简化为:

min ⁡ x ∣ ∣ D y ∣ ∣ 2 2  , subject to  ∣ ∣ y ∣ ∣ 2 2 = 1 \min_{\boldsymbol{x}} ||Dy||_2^2\text{ , subject to }||y||_2^2=1 xmin∣∣Dy22 , subject to ∣∣y22=1

由于 D D D是对角矩阵,通常对角元素降序排列,且 ∣ ∣ y ∣ ∣ 2 2 = 1 ||y||_2^2=1 ∣∣y22=1,那么最优解 y ^ = ( 0 , 0 , 0 , . . . , 1 ) T \hat y=(0,0,0,...,1)^T y^=(0,0,0,...,1)T。此时, x ^ = V y ^ \hat x=V\hat y x^=Vy^,为 V V V最小奇异值对应的列向量


非齐次方程组的最小二乘解

特征值解

在SLAM中,我们常遇到的情况是,通过大量具有一定噪声的观测值,构造方程数远大于未知量的超定线性方程组 A x = b Ax=b Ax=b,其中 A ∈ R m ∗ n A\in R^{m*n} ARmn m > > n m>>n m>>n,这时候往往没有严格意义上的解析解。

比如:在求解两张图像的单应性矩阵 H H H时,我们会匹配大量的特征点对,然后基于单应性原理构造线性方程组 A h = b Ah=b Ah=b求解单应性矩阵的元素向量 h h h。此时,特征点对的个数往往远超过本质矩阵的元素数(即 m > > n m>>n m>>n),且因为点位噪声的存在,单应性原理不是严格成立的(即 A x ≈ b Ax\approx b Axb)。面对这种情况,我们通常的做法是求最小二乘解。即:

x ^ = a r g min ⁡ x ∣ ∣ b − A x ∣ ∣ 2 2 \hat x=arg\min_{\boldsymbol{x}} ||b-Ax||_2^2 x^=argxmin∣∣bAx22

即:

L ( x ) = ∣ ∣ b − A x ∣ ∣ 2 2 L(x)=||b-Ax||_2^2 L(x)=∣∣bAx22

要求 L ( x , λ ) L(x,\lambda) L(x,λ)最小值,则首先求极值,即一阶偏导为 0 0 0的点,我们对 x x x求导并另其等于0:

L ′ ( x ) = − 2 A T ( b − A x ) = − 2 A T b + 2 A T A x = 0 L^{'}(x)=-2A^T(b-Ax)=-2A^Tb+2A^TAx=0 L(x)=2AT(bAx)=2ATb+2ATAx=0

则有 A T A x = A T b A^TAx=A^Tb ATAx=ATb。则当 A T A A^TA ATA可逆时,超定线性方程组 A x = b Ax=b Ax=b的最小二乘解为:

x ^ = ( A T A ) − 1 A T b \hat x=(A^TA)^{-1}A^Tb x^=(ATA)1ATb

值得注意的是, A T A A^TA ATA可逆的前提是, A A A为非奇异矩阵,否则其行列式则为 0 0 0,不可逆。换句话说,即要求系数矩阵 A A A行不相关,是满秩矩阵, A T A A^TA ATA则可逆。如果 A A A不是满秩矩阵,说明约束不够,仍无法得到可靠的最小二乘近似

奇异值解

求解 A x = b Ax=b Ax=b的最小二乘解,可以转化为 U D V T x = b UDV^Tx=b UDVTx=b的最小二乘解,由于 U U U是正交矩阵,即求 D V T x = U T b DV^Tx=U^Tb DVTx=UTb的最小二乘解。

此时最小二乘问题就可以定义为:

x ^ = a r g min ⁡ x ∣ ∣ U T b − D V T x ∣ ∣ 2 2 \hat x=arg\min_{\boldsymbol{x}} ||U^Tb-DV^Tx||_2^2 x^=argxmin∣∣UTbDVTx22

c = U T b c=U^Tb c=UTb y = V T x y=V^Tx y=VTx,则:

min ⁡ x ∣ ∣ c − D y ∣ ∣ 2 2 \min_{\boldsymbol{x}} ||c-Dy||_2^2 xmin∣∣cDy22

由于 m > > n m>>n m>>n,可以将矩阵结构写出来:

[ d 1 d 2 ⋱ d n 0 0 0 0 ⋮ ⋮ ⋮ ⋮ 0 0 0 0 ] [ y 1 y 2 ⋮ y n ] = [ c 1 c 2 ⋮ c n c n + 1 ⋮ c m ] \begin{bmatrix}d_1 \\ & d_2 \\ && \ddots \\ &&& d_n \\ 0 & 0 & 0 & 0\\ \vdots & \vdots & \vdots & \vdots\\0&0&0&0\end{bmatrix}\begin{bmatrix}y_1 \\y_2 \\\vdots\\y_n\end{bmatrix}=\begin{bmatrix}c_1\\c_2\\\vdots \\ c_n\\c_{n+1}\\\vdots \\c_m\end{bmatrix} d100d20000dn00 y1y2yn = c1c2cncn+1cm

那么, y i = c i / d i y_i=c_i/d_i yi=ci/di

最终再求解 y = V T x y=V^Tx y=VTx,由于 V V V是正交矩阵, x = V y x=Vy x=Vy


总结

方程数远大于未知量的超定线性方程组的最小二乘解,为:

线性方程组特征值解奇异值解
齐次 A T A A^TA ATA最小特征值对应的特征向量 A A A最小奇异值对应的右奇异向量
非齐次 ( A T A ) − 1 A T b (A^TA)^{-1}A^Tb (ATA)1ATb A A A的右奇异矩阵 ∗ ( c / d ) *(c/d) (c/d)

其实,从这里就可以看出了,特征值和奇异值是一定存在某种内部关联的。


相关阅读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值