Ceres Solver 官方教程学习笔记(十三)——非线性最小二乘问题的解算Solving Non-linear Least Squares (上)

本文详细介绍了Ceres Solver中解决非线性最小二乘问题的算法,包括置信域法(Trust Region)如Levenberg-Marquardt和Dogleg算法,线搜索法,以及线性解算器如DENSE_QR、DENSE_NORMAL_CHOLESKY等。解释了这些方法的基本思想、优缺点和在Ceres中的实现,对于理解和应用Ceres Solver优化算法有重要参考价值。
摘要由CSDN通过智能技术生成

介绍

如果想要高效地使用Ceres Solver,需要掌握一定的非线性最小二乘解算基础知识。所以在这一部分将将要介绍Ceres中核心优化算法的工作原理。

xRn x ∈ R n 是一个 n n 维向量,并且 F ( x ) = [ f 1 ( x ) , . . . , f m ( x ) ] 是关于 x x n 维方程。那么我们关注下列优化问题

argminx12F(x)2 .LxU(1) (1) arg ⁡ min x 1 2 ‖ F ( x ) ‖ 2   . L ≤ x ≤ U

其中 L L U 分别是参数向量 x x 的下限和上限。

arg min 就是使后面这个式子达到最小值时的变量的取值

因为对一个一般的函数(1),求解全局最小值常常非常棘手。我们不得不关注局部最小值。 F ( x ) 的雅可比矩阵 J(x) J ( x ) 是一个 m×n m × n 的矩阵,其中 Jij(x)=jfi(x) J i j ( x ) = ∂ j f i ( x ) (详见雅可比矩阵定义),函数的梯度向量 g(x)=12F(x)2=J(x)F(x) g ( x ) = ∇ 1 2 ‖ F ( x ) ‖ 2 = J ( x ) ⊤ F ( x )

在计算非线性优化问题时的一个通用的策略是,求解原问题的近似简化问题(见NocedalWright的论文J. Nocedal & S. Wright, Numerical Optimization, Springer, 2004.)。(因为原问题太复杂,不可微分或者不连续等。用可微分的,简单的,连续的或者线性的函数来近似求解。)在每一次循环中,根据近似问题的解可以确定向量 x x 的修正值 Δ x 。对于非线性最小二问题,我们可以通过线性化来建立近似问题,即 F(x+Δx)F(x)+J(x)Δx F ( x + Δ x ) ≈ F ( x ) + J ( x ) Δ x 。那么上述问题就变成下列问题。

minΔx12F(x)+J(x)Δx2(2) (2) min Δ x 1 2 ‖ F ( x ) + J ( x ) Δ x ‖ 2

这里官方教程跳了几步。要求全局最小值非常棘手,所以转而求局部最小值。而求局部最小值就是,从一个任意的起始点,观测四周的“更小值”。如果观测四周都比当前点大,那么当前点就是局部最小值点,算法达到收敛。否则,设这个新找到的最小值点为“当前点”,重复这一步骤。这也就是下文中“ xx+Δx x ← x + Δ x 来更新”的含义。
所以现在问题变成了,如何求解四周的点的值。即,给 x x 赋予一个步长 Δ x ,观察周围的 F(x+Δx) F ( x + Δ x ) ,并且寻找其中的最小值。
至于为什么不直接求 F(x+Δx) F ( x + Δ x ) 而是求 F(x)+J(x)Δx F ( x ) + J ( x ) Δ x ,也就是为什么要线性化。是因为非线性函数不可微或者不连续等原因。。

不幸的是,简单地求解这个简化方程,并且用 xx+Δx x ← x + Δ x 来更新会导致算法难以达到收敛。为了获得一个收敛算法,我们需要控制步长 Δx Δ x 。根据步长的控制方法,非线性优化算法可以分成两大类。

  • 置信域法Trust Region (也有文献成为信任域法)置信域方法在搜索空间的子集内应用模型函数(通常是二次方程)来近似目标函数,这个空间被称为置信域。如果模型函数成功地使真正的目标函数最小化,则扩大置信域。否则收缩置信域并且再次尝试求解模型函数的优化问题。
  • 线搜索法Line Search 线搜索方法首先找到一个下降的方向,目标函数将沿其下降。然后再确定步长,从而决定沿该方向到底移动多远。 下降方向可以通过各种方法计算,如梯度下降法、牛顿法和拟牛顿法。步长可以精确或不精确地确定。

在某些意义下,两种方法是相通的。置信域法首先选择一个步长(置信域大小),然后选择一个步进方向。而线搜索法首先选择一个步进方向,然后选择一个步长。

置信域法Trust Region

这个算法的基本思路如下:

  1. 给定一个初始点 x x 和置信域半径 μ
  2. 求解:
    argminΔxsuch that12J(x)Δx+F(x)2D(x)Δx2μLx+ΔxU. arg ⁡ min Δ x 1 2 ‖ J ( x ) Δ x + F ( x ) ‖ 2 such that ‖ D ( x ) Δ x ‖ 2 ≤ μ L ≤ x + Δ x ≤ U .
  3. ρ=F(x+Δx)2F(x)2J(x)Δx+F(x)2F(x)2 ρ = ‖ F ( x + Δ x ) ‖ 2 − ‖ F ( x ) ‖ 2 ‖ J ( x ) Δ x + F ( x ) ‖ 2 − ‖ F ( x ) ‖ 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值