最小二乘法

Least Squares Method

最小化误差平方和 来求解参数
最小二乘法是一切误差最小化问题的基础,是 SLAM、机器学习、数据拟合、参数估计的核心数学工具。

基础知识

目标函数:

minxi=1n(yif(x,ti))2=minxi=1nri(x)2

其中:

类型 误差特性 解法
线性最小二乘 误差关于参数是线性的 解析解(直接计算)
非线性最小二乘 误差关于参数是非线性的 迭代法(数值优化)

一、线性最小二乘法(解析解)

微积分的角度

线性代数的角度

向量投影
b=C+Dt
Ax=b,如果方程无解
则求解 ATAx^=ATb 得到方程的最优近似解 x^
使得 E||Axb||2 取得最小值

概率论的角度

e=E[Y(a+bX)]2

b0=Cov(X,Y)D(X) a0=E(Y)b0E(X)

minE[Y(a+bX)]2=E[Y(a0+b0X)]2=DYCov2(X,Y)D(X)

二、非线性最小二乘法(迭代-数值优化)

非线性最小二乘法 无法直接求解析解,必须使用数值迭代法

  1. 初始化参数 x0
  2. 计算当前残差 r(x) 和雅可比矩阵 J(x)
  3. 构造线性方程,计算步长 Δx
  4. 判断是否收敛(如步长足够小,残差变化足够小)
  5. 更新参数 xx+Δx
  6. 重复步骤 2 ~ 5 直到收敛

一阶泰勒展开(线性化)

r(x+Δx)r(x)+J(x)Δx

其中:J(x)雅可比矩阵

J(x)=r(x)x

高斯-牛顿法(Gauss-Newton)

通过线性化,将优化转化为如下问题:

minΔxr(x)+J(x)Δx2

解得:

(JTJ)Δx=JTr(x)

这是一个 线性方程组 ,解出 Δx ,然后更新:

xk+1=xk+Δx

不断迭代,直到收敛。

Levenberg-Marquardt (LM) 法(更稳定)

高斯-牛顿法可能遇到:

(JTJ+λI)Δx=JTr(x)

特点:

Dogleg 法(结合 GN 与梯度下降)

适用于稀疏大规模问题,结合两种步长,提升收敛效率。

三、实际应用

非线性最小二乘法库: g2o Ceres Solver

min{xi}(i,j)Czijh(xi,xj)Ωij2

其中:

核心任务:利用非线性最小二乘法优化整张图,找到最一致的位姿和地图。


AI 结构化补充(2026-05-02)

Least Squares Method

最小化误差平方和 来求解参数
最小二乘法是一切误差最小化问题的基础,是 SLAM、机器学习、数据拟合、参数估计的核心数学工具。

定义与问题形态

最小二乘法把“不能完全满足的方程”改写为平方残差最小化问题。给定 ARm×nbRm,当 Ax=b 无解时,不应把最小二乘说成精确求解 Ax=b;正确目标是

minxAxb22=minxi=1m(aiTxbi)2.

其中 aiTA 的第 i 行,aiTxbi 是第 i 个方程的残差。若最小值由 x^ 取得,则 x^ 称为最小二乘问题的一个最小二乘解,Ax^ 是由模型真正给出的最佳可达右端。

类型 误差特性 解法
线性最小二乘 Axb 关于参数 x 线性 投影、正规方程、QR 分解等线性代数方法
非线性最小二乘 r(x) 关于参数非线性 线性化后迭代求解局部二次近似

线性代数视角:从无解到投影

矩阵 A 的所有可达右端组成列空间 C(A)。若 bC(A),则不存在 x 使 Ax=b,几何上要找的是 C(A) 中离 b 最近的点

p=Ax^.

这个 pbC(A) 上的向量投影,不可消除的残差

e=bAx^=bp.

最佳性条件是残差垂直于整个列空间:

eC(A),ATe=0.

e=bAx^ 代入正交条件,就得到

AT(bAx^)=0ATAx^=ATb.

因此最小二乘的核心不是“把无解方程强行解出来”,而是把 b 分解为可由列空间解释的投影 p 和垂直于列空间的剩余 e

大图像:投影和左零空间

在线性最小二乘中,真正被分解的是右端向量 b

b=p+e,p=Ax^C(A),e=bpN(AT).

p 是模型能够解释的部分,e 是无法由 A 的列组合消除的部分。由于 AxpC(A)eC(A),任意参数 x 都满足

Axb2=Axp2+e2.

选择 x=x^ 使 Ax^=p,第一项降为 0,剩下的 e2 就是不可再降低的最小平方误差。若把它除以观测数 m,就是拟合语境中的均方误差。

微积分视角:平方误差的一阶条件

E(x)=Axb22=(Axb)T(Axb).

展开得

E(x)=xTATAx2xTATb+bTb,

梯度为

E(x)=2AT(Axb).

在最小点 x^ 处,梯度为零,于是再次得到正规方程 ATAx^=ATb。平方误差让一阶条件保持线性,这是最小二乘在数据拟合中易于计算的关键原因。

唯一性与边界条件

A 列独立,则 N(A)={0}ATA 可逆,最小二乘解唯一:

x^=(ATA)1ATb.

A 列相关,则 ATA 奇异,最小二乘解可能不唯一,但所有解给出的 Ax^ 相同,也就是同一个投影 p。如果 bC(A),则最小二乘退化为精确求解,最小残差为 0;否则最小残差非零,表示模型或测量无法完全一致。

一个具体的秩亏例子是

A=[1111],b=[31].

两列完全相同,ATA 奇异。b 到列空间 span{(1,1)T} 的投影是 p=(2,2)T,因此只要求

Ax^=px^1+x^2=2.

所以 (2,0)T(0,2)T(1,1)T 都给出同一个最佳投影和同一个残差 e=(1,1)T。投影唯一,系数不唯一;若需要唯一代表,通常再加上“范数最小”之类的选择准则。

直线拟合和平均数例子

拟合直线 biC+Dti 时,参数为 x=(C,D)T,设计矩阵为

A=[1t11t21tm],b=[b1b2bm].

正规方程为

[mtititi2][CD]=[bitibi].

例如三点 (0,6),(1,0),(2,0) 不能被一条直线完全穿过。此时

A=[101112],b=[600].

正规方程为

[3335][CD]=[60],

解得 C=5, D=3。最佳直线是 b=53t,它给出的投影高度为

p=(5,2,1)T,

残差为

e=bp=(1,2,1)T.

这个残差既满足 12+1=0,也满足 (0,1,2)e=0,因此它同时垂直于设计矩阵的全 1 列和时间列。

若只有一列全为 1,即用水平线 biC 拟合数据,则

ATA=m,ATb=i=1mbi,C^=1mi=1mbi.

所以“用常数拟合一组数”的最小二乘解就是平均数,投影为 (C^,,C^)T

中心化与离群点

直线拟合中若把时间中心化为

Ti=tit¯,t¯=1mi=1mti,

Ti=0,设计矩阵两列 (1,,1)T(T1,,Tm)T 正交,于是

AnewTAnew=[m00Ti2].

这会把截距和斜率的正规方程解耦,体现了先正交化列向量的思想。比如时间 t=1,3,5 的平均数是 3,改用 T=t3 后得到 T=2,0,2,全 1 列与 T 列正交。若观测值为 b=(1,2,4)T,则

AnewTAnew=[3008],AnewTb=[76],

所以 C=7/3, D=6/8 可分开求出。这正是格拉姆-施密特正交化的思想:先让列向量正交,之后 ATA 接近或变成对角矩阵。

平方误差会把大残差按平方放大,所以普通最小二乘对离群点敏感。例如九个观测值为 0、一个观测值为 40,用水平线拟合时最小二乘给出平均数 4,而最小绝对误差会倾向于中位数 0。这说明 L2 目标计算方便、可微且有投影几何,但在异常值明显时可能不够稳健。

在同一组十个点 (1,0),,(9,0),(10,40) 上,若仍用水平线,平方残差准则给 C=4;若最小化最大绝对误差,最佳常数在 040 中间,给 C=20;若最小化绝对残差和,最佳常数回到中位数 0。若改用直线 C+Dt,则

ATA=[105555385],ATb=[40400],

解得 C=8, D=24/11。这说明离群点不仅会拉动平均高度,也会明显改变拟合斜率。

二、非线性最小二乘法(迭代-数值优化)

非线性最小二乘法 无法直接求解析解,必须使用数值迭代法

  1. 初始化参数 x0
  2. 计算当前残差 r(x) 和雅可比矩阵 J(x)
  3. 构造线性方程,计算步长 Δx
  4. 判断是否收敛(如步长足够小,残差变化足够小)
  5. 更新参数 xx+Δx
  6. 重复步骤 2 ~ 5 直到收敛

一阶泰勒展开(线性化)

r(x+Δx)r(x)+J(x)Δx

其中:J(x)雅可比矩阵

J(x)=r(x)x

高斯-牛顿法(Gauss-Newton)

通过线性化,将优化转化为如下问题:

minΔxr(x)+J(x)Δx2

解得:

(JTJ)Δx=JTr(x)

这是一个 线性方程组 ,解出 Δx ,然后更新:

xk+1=xk+Δx

不断迭代,直到收敛。

Levenberg-Marquardt (LM) 法(更稳定)

高斯-牛顿法可能遇到:

(JTJ+λI)Δx=JTr(x)

特点:

Dogleg 法(结合 GN 与梯度下降)

适用于稀疏大规模问题,结合两种步长,提升收敛效率。

三、实际应用

非线性最小二乘法库: g2o Ceres Solver

min{xi}(i,j)Czijh(xi,xj)Ωij2

其中:

核心任务:利用非线性最小二乘法优化整张图,找到最一致的位姿和地图。