Least Squares Method

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

基础知识

目标函数:

其中:

  • :第 个观测值
  • :预测值,取决于待求参数 和自变量
  • :第 个残差(观测误差)
类型误差特性解法
线性最小二乘误差关于参数是线性的解析解(直接计算)
非线性最小二乘误差关于参数是非线性的迭代法(数值优化)

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

微积分的角度

线性代数的角度

向量投影 对 ,如果方程无解 则求解 得到方程的最优近似解 使得 取得最小值

概率论的角度

e & =E[Y-(a+bX)]^{2} \\ \end{align}$$ $b_{0}=\dfrac{Cov(X,Y)}{D(X)}$ $a_{0}=E(Y)-b_{0}E(X)$ $$\begin{align} min E[Y-(a+bX)]^{2}&=E\left[Y-(a_{0}+b_{0}X)\right]^{2} =DY- \dfrac{Cov^{2}(X,Y)}{D(X)} \end{align}$$ ### 二、非线性最小二乘法(迭代-数值优化) 非线性最小二乘法 **无法直接求解析解,必须使用数值迭代法**。 1. 初始化参数 $x_0$ 2. 计算当前残差 $r(x)$ 和雅可比矩阵 $J(x)$ 3. 构造线性方程,计算步长 $\Delta x$ 4. 判断是否收敛(如步长足够小,残差变化足够小) 5. 更新参数 $x \leftarrow x + \Delta x$ 6. 重复步骤 2 ~ 5 直到收敛 #### 一阶泰勒展开(线性化)

r(x + \Delta x) \approx r(x) + J(x) \Delta x

其中:$J(x)$ :[[雅可比矩阵\|雅可比矩阵]]

J(x) = \frac{\partial r(x)}{\partial x}

#### 高斯-牛顿法(Gauss-Newton) 通过线性化,将优化转化为如下问题:

\min_{\Delta x} | r(x) + J(x) \Delta x |

(J^T J) \Delta x = -J^T r(x)

这是一个 **线性方程组** ,解出 $\Delta x$ ,然后更新:

x_{k+1} = x_k + \Delta x

不断迭代,直到收敛。 #### Levenberg-Marquardt (LM) 法(更稳定) 高斯-牛顿法可能遇到: - 步长过大导致发散 - $J^T J$ 奇异无法求逆 LM 法引入阻尼因子 $\lambda$ ,将更新方程改为:

(J^T J + \lambda I) \Delta x = -J^T r(x)

特点: - 类似于梯度下降法,步长更安全 - 动态调整 $\lambda$ 保证收敛速度与稳定性 #### Dogleg 法(结合 GN 与梯度下降) 适用于稀疏大规模问题,结合两种步长,提升收敛效率。 ### 三、实际应用 非线性最小二乘法库: [[g2o\|g2o]] [[Ceres Solver\|Ceres Solver]]

\min_{{x_i}} \sum_{(i,j) \in C} | z_{ij} - h(x_i, x_j) |

其中: - $x_i$ :机器人位姿节点 - $z_{ij}$ :观测数据 - $h(x_i, x_j)$ :通过运动模型计算的预测观测 - $\Omega_{ij}$ :信息矩阵 核心任务:利用非线性最小二乘法优化整张图,找到最一致的位姿和地图。 --- ## AI 结构化补充(2026-05-02) **Least Squares Method** > **最小化误差平方和** 来求解参数 > 最小二乘法是一切误差最小化问题的基础,是 SLAM、机器学习、数据拟合、参数估计的核心数学工具。 ### 定义与问题形态 最小二乘法把“不能完全满足的方程”改写为平方残差最小化问题。给定 $A\in\mathbb R^{m\times n}$ 与 $b\in\mathbb R^m$,当 $Ax=b$ 无解时,不应把最小二乘说成精确求解 $Ax=b$;正确目标是

\min_x |Ax-b|2^2 =\min_x \sum{i=1}^m (a_i^Tx-b_i)

其中 $a_i^T$ 是 $A$ 的第 $i$ 行,$a_i^Tx-b_i$ 是第 $i$ 个方程的残差。若最小值由 $\hat x$ 取得,则 $\hat x$ 称为[[最小二乘问题\|最小二乘问题]]的一个最小二乘解,$A\hat x$ 是由模型真正给出的最佳可达右端。 |类型|误差特性|解法| |---|---|---| |线性最小二乘|$Ax-b$ 关于参数 $x$ 线性|投影、[[正规方程\|正规方程]]、QR 分解等线性代数方法| |非线性最小二乘|$r(x)$ 关于参数非线性|线性化后迭代求解局部二次近似| ### 线性代数视角:从无解到投影 矩阵 $A$ 的所有可达右端组成[[列空间\|列空间]] $C(A)$。若 $b\notin C(A)$,则不存在 $x$ 使 $Ax=b$,几何上要找的是 $C(A)$ 中离 $b$ 最近的点

p=A\hat x.

这个 $p$ 是 $b$ 在 $C(A)$ 上的[[向量投影\|向量投影]],不可消除的[[残差\|残差]]为

e=b-A\hat x=b-p.

e\perp C(A),\qquad A

把 $e=b-A\hat x$ 代入正交条件,就得到

A^T(b-A\hat x)=0 \quad\Longleftrightarrow\quad A^TA\hat x=A

因此最小二乘的核心不是“把无解方程强行解出来”,而是把 $b$ 分解为可由列空间解释的投影 $p$ 和垂直于列空间的剩余 $e$。 ### 大图像:投影和左零空间 在线性最小二乘中,真正被分解的是右端向量 $b$:

b=p+e,\qquad p=A\hat x\in C(A),\qquad e=b-p\in N(A

$p$ 是模型能够解释的部分,$e$ 是无法由 $A$ 的列组合消除的部分。由于 $Ax-p\in C(A)$ 且 $e\perp C(A)$,任意参数 $x$ 都满足

|Ax-b|^2=|Ax-p|^2+|e|

选择 $x=\hat x$ 使 $A\hat x=p$,第一项降为 $0$,剩下的 $\|e\|^2$ 就是不可再降低的最小平方误差。若把它除以观测数 $m$,就是拟合语境中的均方误差。 ### 微积分视角:平方误差的一阶条件 令

E(x)=|Ax-b|_2^2=(Ax-b)

E(x)=x^TA^TAx-2x^TA^Tb+b

\nabla E(x)=2A

在最小点 $\hat x$ 处,梯度为零,于是再次得到正规方程 $A^TA\hat x=A^Tb$。平方误差让一阶条件保持线性,这是最小二乘在数据拟合中易于计算的关键原因。 ### 唯一性与边界条件 若 $A$ 列独立,则 $N(A)=\{0\}$,$A^TA$ 可逆,最小二乘解唯一:

\hat x=(A^TA)^{-1}A

若 $A$ 列相关,则 $A^TA$ 奇异,最小二乘解可能不唯一,但所有解给出的 $A\hat x$ 相同,也就是同一个投影 $p$。如果 $b\in C(A)$,则最小二乘退化为精确求解,最小残差为 $0$;否则最小残差非零,表示模型或测量无法完全一致。 一个具体的秩亏例子是

A=\begin{bmatrix}1&1\1&1\end{bmatrix},\qquad b=\begin{bmatrix}3\1\end{bmatrix}.

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

A\hat x=p\quad\Longleftrightarrow\quad \hat x_1+\hat x_2=2.

所以 $(2,0)^T$、$(0,2)^T$、$(1,1)^T$ 都给出同一个最佳投影和同一个残差 $e=(1,-1)^T$。投影唯一,系数不唯一;若需要唯一代表,通常再加上“范数最小”之类的选择准则。 ### 直线拟合和平均数例子 拟合直线 $b_i\approx C+Dt_i$ 时,参数为 $x=(C,D)^T$,设计矩阵为

A= \begin{bmatrix} 1&t_1\ 1&t_2\ \vdots&\vdots\ 1&t_m \end{bmatrix},\qquad b=\begin{bmatrix}b_1\b_2\\vdots\b_m\end{bmatrix}.

\begin{bmatrix} m&\sum t_i\ \sum t_i&\sum t_i^2 \end{bmatrix} \begin{bmatrix}C\D\end{bmatrix}

\begin{bmatrix} \sum b_i\ \sum t_i b_i \end{bmatrix}.

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

A=\begin{bmatrix}1&0\1&1\1&2\end{bmatrix},\qquad b=\begin{bmatrix}6\0\0\end{bmatrix}.

\begin{bmatrix}3&3\3&5\end{bmatrix} \begin{bmatrix}C\D\end{bmatrix}

\begin{bmatrix}6\0\end{bmatrix},

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

p=(5,2,-1)

e=b-p=(1,-2,1)

这个残差既满足 $1-2+1=0$,也满足 $(0,1,2)\cdot e=0$,因此它同时垂直于设计矩阵的全 $1$ 列和时间列。 若只有一列全为 $1$,即用水平线 $b_i\approx C$ 拟合数据,则

A^TA=m,\qquad A^Tb=\sum_{i=1}^m b_i,\qquad \hat C=\frac{1}{m}\sum_{i=1}^m b_i.

所以“用常数拟合一组数”的最小二乘解就是平均数,投影为 $(\hat C,\ldots,\hat C)^T$。 ### 中心化与离群点 直线拟合中若把时间中心化为

T_i=t_i-\bar t,\qquad \bar t=\frac{1}{m}\sum_{i=1}^m t_i,

则 $\sum T_i=0$,设计矩阵两列 $(1,\ldots,1)^T$ 与 $(T_1,\ldots,T_m)^T$ 正交,于是

A_{\text{new}}^TA_{\text{new}}

\begin{bmatrix} m&0\ 0&\sum T_i^2 \end{bmatrix}.

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

A_{\text{new}}^TA_{\text{new}}= \begin{bmatrix}3&0\0&8\end{bmatrix}, \qquad A_{\text{new}}^Tb= \begin{bmatrix}7\6\end{bmatrix},

所以 $C=7/3,\ D=6/8$ 可分开求出。这正是[[格拉姆-施密特正交化\|格拉姆-施密特正交化]]的思想:先让列向量正交,之后 $A^TA$ 接近或变成对角矩阵。 平方误差会把大残差按平方放大,所以普通最小二乘对离群点敏感。例如九个观测值为 $0$、一个观测值为 $40$,用水平线拟合时最小二乘给出平均数 $4$,而最小绝对误差会倾向于中位数 $0$。这说明 $L_2$ 目标计算方便、可微且有投影几何,但在异常值明显时可能不够稳健。 在同一组十个点 $(1,0),\ldots,(9,0),(10,40)$ 上,若仍用水平线,平方残差准则给 $C=4$;若最小化最大绝对误差,最佳常数在 $0$ 和 $40$ 中间,给 $C=20$;若最小化绝对残差和,最佳常数回到中位数 $0$。若改用直线 $C+Dt$,则

A^TA=\begin{bmatrix}10&55\55&385\end{bmatrix},\qquad A

解得 $C=-8,\ D=24/11$。这说明离群点不仅会拉动平均高度,也会明显改变拟合斜率。 ### 二、非线性最小二乘法(迭代-数值优化) 非线性最小二乘法 **无法直接求解析解,必须使用数值迭代法**。 1. 初始化参数 $x_0$ 2. 计算当前残差 $r(x)$ 和雅可比矩阵 $J(x)$ 3. 构造线性方程,计算步长 $\Delta x$ 4. 判断是否收敛(如步长足够小,残差变化足够小) 5. 更新参数 $x \leftarrow x + \Delta x$ 6. 重复步骤 2 ~ 5 直到收敛 #### 一阶泰勒展开(线性化)

r(x + \Delta x) \approx r(x) + J(x) \Delta x

其中:$J(x)$ :[[雅可比矩阵\|雅可比矩阵]]

J(x) = \frac{\partial r(x)}{\partial x}

#### 高斯-牛顿法(Gauss-Newton) 通过线性化,将优化转化为如下问题:

\min_{\Delta x} | r(x) + J(x) \Delta x |

(J^T J) \Delta x = -J^T r(x)

这是一个 **线性方程组** ,解出 $\Delta x$ ,然后更新:

x_{k+1} = x_k + \Delta x

不断迭代,直到收敛。 #### Levenberg-Marquardt (LM) 法(更稳定) 高斯-牛顿法可能遇到: - 步长过大导致发散 - $J^T J$ 奇异无法求逆 LM 法引入阻尼因子 $\lambda$ ,将更新方程改为:

(J^T J + \lambda I) \Delta x = -J^T r(x)

特点: - 类似于梯度下降法,步长更安全 - 动态调整 $\lambda$ 保证收敛速度与稳定性 #### Dogleg 法(结合 GN 与梯度下降) 适用于稀疏大规模问题,结合两种步长,提升收敛效率。 ### 三、实际应用 非线性最小二乘法库: [[g2o\|g2o]] [[Ceres Solver\|Ceres Solver]]

\min_{{x_i}} \sum_{(i,j) \in C} | z_{ij} - h(x_i, x_j) |

其中: - $x_i$ :机器人位姿节点 - $z_{ij}$ :观测数据 - $h(x_i, x_j)$ :通过运动模型计算的预测观测 - $\Omega_{ij}$ :信息矩阵 核心任务:利用非线性最小二乘法优化整张图,找到最一致的位姿和地图。