Introduction

要有效使用 Ceres 求解器,需要熟悉非线性最小二乘法求解器的基本组件,因此在介绍如何配置和使用求解器之前,我们先简要了解一下 Ceres 求解器中的一些核心优化算法是如何工作的。

  • Trust Region 信任区域法是在搜索空间的一个子集(称为信任区域)上使用一个函数(通常是二次函数)来逼近目标函数。如果函数成功地使真正的目标函数最小化,信任区域就会扩大;反之,信任区域就会缩小,并重新解决模型优化问题。

  • Line Search 直线搜索法首先找到一个下降方向,目标函数将沿着该方向缩小,然后计算步长,决定沿着该方向移动的距离。计算下降方向的方法有多种,如梯度下降法、牛顿法和准牛顿法。步长可以精确确定,也可以不精确确定。

信任区域法在某种意义上与直线搜索法具有双重性(或者翻译成两种方法是对偶的?):信任区域法首先选择步长(信任区域的大小),然后选择步长方向,而直线搜索法首先选择步长方向,然后选择步长。Ceres Solver 实现了这两类中的多种算法。

Line Search Method

对于

假设

Trust Region Method

此时问题就变成了如何确定信赖区域。一个比较直观也比较好的方法就是依据近似模型和实际函数之间的差异来确定,考虑使用:

来判断泰勒展开是否较好地近似了原模型。上式的分子是函数实际值,而分母是用来近似的泰勒展开得到的近似值。至于定性和定量分析应当如何更新我们放在后续小节。

Last updated