最小二乘解(Least-squares Minimization )

对于线性方程组,解的判别条件如下:
1. Ax=0 总有解,至少有零解
2. Am×nx=0
 当 r(A)=n ,只有零解
 当 r(A)<n ,有无穷多解
3. Am×nx=b
 当 r(A)r(A|b) ,无解
 当 r(A)=r(A|b)=n ,有唯一解
 当 r(A)=r(A|b)=r<n ,有无穷多解

  我一般我们会面临形如 Am×nx=b 的方程。我们考虑测量数据和我们需要的解的参数之间的关系,该方程的解可以分为以下几种情况:

  1. 如果 m<n ,未知数大于方程数。那么解不唯一,存在一个解矢量空间。
  2. 如果 m=n ,那么只要 A 可逆(非奇异,也就是满秩)就有唯一解,解为 x=A1b
  3. 如果 m>n ,方程数大于未知数。方程一般没有解,除非 b 属于 A 的列向量组成的子空间。

  我们考虑 mn 并且 r(A)=n 的情况。如果解不存在,我们找一个最接近 Am×nx=b 的解矢量仍然有意义,这个方程成为超定方程(方程大于未知数)。也就是说,我们寻找一个向量 x 使得 Axb 最小,这里的 表示矢量范数。这样的 x 称为该超定方程组的最小二乘解。接下来讨论三种解最小二乘的方法,分别用奇异值分解正规方程QR分解


奇异值分解

  奇异值分解(SVD)是最有用的矩阵分解方法中的一种。给定一个矩阵 Am×n(mn) ,存在一个正交矩阵 Um×m Vn×n ,有

A=UDVT=U[Σ0]VT

  其中 Σ=diag(σ1,σ2,,σn)Rn×n ,且 σ1σ2σn0 。上述分解就称为 奇异值分解 σ1,σ2,,σn 称为 A 奇异值,矩阵 U V 满足 UTU=I VTV=I 。由上式可知
ATA=VDUTUDVT=VΣ2VTAAT=U[ΣΣT000]UT

  所以 σ21,σ22,,σ2n ATA AAT 特征值

  用奇异值分解在求线性最小二乘解的时候,我们找一个向量 x 使得 Axb 最小,我们可以化为(矩阵 U 具有保范性)

Axb=UDVTxb=DVTxUTb

  令 y=VTx b=UTb 。则问题变成最小化 Dyb D=[Σ0] 是除对角线线元素以外全是 0 m×n 矩阵。可以把该方程写成如下形式:
d1d20dny1y2yn=b1b2bnbn+1bm

  显然,最接近 b Dy 是矢量 (b1,b2,,bn,0,,0)T ,通过令 yi=bi/di(i=1,,n) 得到。假定 A 的秩为 n 保证 di0 。最后通过 x=Vy 求得 x

概括一下可以这样实现:

  1. A 进行奇异值分解: A=UDVT
  2. b=UTb
  3. yi=bi/di di 是D的第 i 个对角元素
  4. 所求的解为 x=Vy

  我们通常会遇到齐次方程的情况,形如 Ax=0 ,有零解 x=0 ,然而我们不需要这样的解,需要的是非零解。对于超定方程,我们可以找到近似满足方程的非零解。对于解 x ,与上面非齐次的处理方式相同,我们令 y=VTx ,把问题转换为最小化 Dy ,做进一步处理,可以转换为最小化 yTDTDy 。有

yTDTDy=yTΣ2y=[y1y2yn]σ1σ2σny1y2yn=σ1y21+σ2y22++σny2n

  我们知道, y 若是解,乘以任意倍数的 ky 也是方程的解,所以,我们不妨增加约束,取 y=1 。观察上述等式,由于 σ1σ2σn0 ,当 y=[001]T 时,所得的 yTDTDy 最小。所以原始的齐次方程的解为
x=Vy=[V1V2Vn]y1y2yn=[V1V2Vn]001=Vn

  
  也就是说超定方程 Ax=0 的最小二乘解为 A 奇异值分解后, V 最后一列向量


正规方程

  线性最小二乘问题也可以使用正规方程(normal equations )的方法来解。考虑 Am×nx=b ,其中 m>n 。这个方程一般不存在解,所以去找最小化范数 Axb 的矢量 x 。把 A 写成列空间的形式 A=(a1,a2,...,an) ,其中 ai m 维列向量,那么当 x 变量所有的值的时候,可以认为向量 Ax 遍历了 A 的整个列空间,即由 A 的列生成的 Rm 的子空间。而我们需要找到在这个子空间中最接近向量 b 的那个情况。

  几何上我们可以这么理解,要是 Ax 最接近 b ,我们需要使得 Axb 最小,也就是让向量 Axb 垂直 A 的列空间。如下图

最小二乘解(Least-squares Minimization )_第1张图片

  也就是说让 Axb 垂直 A 的每一列,即 aTi(Axb)=0 ,则有

aT1aT2aTn(Axb)=AT(Axb)=0

  把上式括号拆开做整理可以得到
ATAx=ATb

  这是一个 n×n 的线性方程组,称为 正规方程组。如果 A 的秩为 n ,那么 ATA 的秩也为 n ,上式有解为
x=(ATA)1ATb


QR分解

  QR分解是把一个矩阵分解为一个正交矩阵和一个上三角矩阵的积。对于矩阵 Am×n(mn) ,存在一个单位列正交矩阵 Qm×n (即 QTQ=In×n )和一个上三角矩阵 Rn×n ,使得

A=QR

  若 A 满秩,则QR分解唯一,且矩阵 R 的对角元素都为正数。

在解线性最小二乘,同上述方法一样,我们找一个向量 x 使得 Axb 最小,首先把矩阵 Q 扩充为一个正交矩阵 [Q,Q˜]Rm×m ,于是有

Axb=[Q,Q˜]T(Axb)=[QTQ˜T](QRxb)=[RxQTbQ˜Tb]

  所以 Axb 最小也就是取 RxQTb 最小。所以最小二乘解为

x=R1QTb


参考

  • 线性最小二乘问题

  • Multiple View Geometry in Computer Vision,Second Edition

  • 【泡泡机器人原创】SVD之最小二乘(推导与证明)

你可能感兴趣的:(算法)