【视觉SLAM入门】4.2 非线性最小二乘理论部分------线搜索,信赖域,最速/牛顿下降法,高斯牛顿,LM等原理推导


注意: 上一节得到的最小二乘问题,本节来讨论---- 求解非线性最小二乘问题 \color {red}求解非线性最小二乘问题 求解非线性最小二乘问题

0. 引入

求解这个简单的最小二乘问题:
min ⁡ x 1 2 ∣ ∣ f ( x ) ∣ ∣ 2 2 ( 1 ) \min\limits_{x} \frac{1}{2}||f(x)||_2^2\qquad\qquad\qquad\qquad\qquad (1) xmin21∣∣f(x)22(1)

  • 最优条件法:当函数存在解析形式,能够通过最优性条件求解出显式最优解,类似求导之类的;
  • 迭代法:从初始值出发,不断更新当前的优化变量,使目标函数下降。

一个简单的迭代法步骤:
在这里插入图片描述
很少有函数能满足存在解析形式,迭代法的研究是首选,后边要做的就是如何确定增量 Δ x k \Delta x_k Δxk,也引出了一些方法。

1. 最速下降法

也叫一阶梯度法,首先将目标函数泰勒展开至一阶:
∣ ∣ f ( x + Δ x ) ∣ ∣ 2 2 ≈ ∣ ∣ f ( x ) ∣ ∣ 2 2 + J ( x ) Δ x    ⇓ 其中 J 是 ∣ ∣ f ( x ) ∣ ∣ 2 2 关于 x 的导数 ( 雅克比矩阵 )    ⇓ 增量方向为    Δ x ∗ = − J T ( x ) ||f(x+\Delta x)||_2^2 \approx ||f(x)||_2^2 + J(x)\Delta x\\\; \\ \Downarrow 其中J是||f(x)||_2^2关于x的导数(雅克比矩阵)\\\;\\ \\ \Downarrow增量方向为\\\; \\ \color {red}\Delta x^* = -J^T(x) ∣∣f(x+Δx)22∣∣f(x)22+J(x)Δx其中J∣∣f(x)22关于x的导数(雅克比矩阵)增量方向为Δx=JT(x)

  • 优点:直观,避免了求导的困难。
  • 缺点:贪心,下降路线锯齿状,迭代次数多。

2. 牛顿法

也叫二阶梯度法,首先将目标函数泰勒展开至二阶:
∣ ∣ f ( x + Δ x ) ∣ ∣ 2 2 ≈ ∣ ∣ f ( x ) ∣ ∣ 2 2 + J ( x ) Δ x + 1 2 Δ x T H Δ x    ⇓ 其中 H 是 ∣ ∣ f ( x ) ∣ ∣ 2 2 关于 x 的二阶导数 ( 海森矩阵 )    ⇓ 求右侧关于 Δ x 的导数令其等于 0 ,则增量的解为    H Δ x = − J T ||f(x+\Delta x)||_2^2 \approx ||f(x)||_2^2 + J(x)\Delta x + \frac{1}{2}\Delta x^TH\Delta x\\\; \\ \Downarrow 其中H是||f(x)||_2^2关于x的二阶导数(海森矩阵)\\\;\\ \\ \Downarrow求右侧关于\Delta x 的导数令其等于0,则增量的解为\\\; \\ \color {red}H\Delta x = -J^T ∣∣f(x+Δx)22∣∣f(x)22+J(x)Δx+21ΔxTHΔx其中H∣∣f(x)22关于x的二阶导数(海森矩阵)求右侧关于Δx的导数令其等于0,则增量的解为HΔx=JT

  • 优点:直观,避免了求导的困难。
  • 缺点:海森矩阵的计算运算量大。

3. (实用)G-N法

Gauss Newton 简单,它是将 f ( x ) f(x) f(x) 展开:
f ( x + Δ x ) ≈ f ( x ) + J ( x ) Δ x f(x+\Delta x) \approx f(x) + J(x)\Delta x f(x+Δx)f(x)+J(x)Δx
这里的 J J J f ( x ) f(x) f(x)关于 x x x的导数,将上式带入(1)式中,按照平方展开可得:
1 2 ∣ ∣ f ( x ) + J ( x ) Δ x ∣ ∣ 2 = 1 2 ( ∣ ∣ f ( x ) ∣ ∣ 2 2 + 2 f ( x ) T J ( x ) Δ x + Δ x T J ( x ) T J ( x ) Δ x )    ⇓ 求关于 Δ x 的导数,并令其 = 0 ,可得增量方程    J ( x ) T J ( x ) Δ x = − J ( x ) T f ( x )    ⇓ 令 H = J J T ,其实就是牛顿法中海森矩阵的近似 ⇓ 令 g = − J ( x ) T f ( x )    H Δ x = g \frac{1}{2}||f(x)+J(x)\Delta x||^2 =\frac{1}{2} (||f(x)||^2_2+2f(x)^TJ(x)\Delta x+\Delta x^TJ(x)^TJ(x)\Delta x) \\\;\\\Downarrow 求关于\Delta x的导数,并令其=0,可得增量方程 \\\; \\ \color {red}J(x)^TJ(x)\Delta x = - J(x)^Tf(x) \color{b} \\\;\\\Downarrow 令H = JJ^T,其实就是牛顿法中海森矩阵的近似 \\\Downarrow 令g=-J(x)^Tf(x) \\\; \\H\Delta x = g 21∣∣f(x)+J(x)Δx2=21(∣∣f(x)22+2f(x)TJ(x)Δx+ΔxTJ(x)TJ(x)Δx)求关于Δx的导数,并令其=0,可得增量方程J(x)TJ(x)Δx=J(x)Tf(x)H=JJT,其实就是牛顿法中海森矩阵的近似g=J(x)Tf(x)HΔx=g
通过以上推导,我们可以将G-N(Gauss-Newton)迭代法步骤列出:
图源视觉SLAM14讲

  • 缺点: J T J J^TJ JTJ近似 H H H,但是 H H H可逆且正定,而 J T J J^TJ JTJ实际上半正定,还有可能奇异或者病态,稳定性差。
  • 优点: 很多算法和一些线搜索算法是它的变种,都借助了G-N的思想。

4. (实用)L-M方法

Levenberg-Marquadt(列文博格-马夸尔特)也叫阻尼牛顿法。是一种信赖域方法(为 Δ x \Delta x Δx添加一个信赖域,不因太大而不准确),在区域内近似是有效的。
确定信赖域范围:
ρ = f ( x + Δ x ) − f ( x ) J ( x ) Δ x \rho = \frac{f(x+\Delta x) - f(x)}{J(x)\Delta x} ρ=J(x)Δxf(x+Δx)f(x)

  • 分子是实际函数的下降值
  • 分母是近似模型的下降值
  • 两个的比值 ρ \rho ρ接近1,是好的。

由是,我们可以写出L-M的迭代过程:
图源视觉SLAM14讲

  • 在上式中,将 D D D I I I,相当于把 Δ x \Delta x Δx 约束在一个半径为 μ \mu μ球中。也可以自定义为椭球,对梯度小的维度约束更大

上述步骤2中的两个式子,含有不等式,用拉格朗日乘子 λ \lambda λ将其转化为无约束问题:

min ⁡ Δ x k 1 2 ∣ ∣ f ( x k ) + J ( x k ) Δ x k ∣ ∣ 2 + λ 2 ∣ ∣ D Δ x ∣ ∣ 2    ⇓ 展开,核心还是计算增量的线性方程,取简化 D = I    ( H + λ I ) Δ x = g \min\limits_{\Delta {x_k}} \frac{1}{2}||f(x_k)+J(x_k)\Delta x_k||^2 + \frac{\lambda}{2}||D \Delta x||^2 \\\;\\\Downarrow 展开,核心还是计算增量的线性方程,取简化D=I \\\; \\ (H + \lambda I)\Delta x = g Δxkmin21∣∣f(xk)+J(xk)Δxk2+2λ∣∣DΔx2展开,核心还是计算增量的线性方程,取简化D=I(H+λI)Δx=g
不难看出, λ \lambda λ 小的时候H占据主导地位算法接近G-N,较大的时候算法接近最速下降法。

5. 总结

非线性优化的框架:

  • 线搜索: 固定搜索方向,然后寻找步长。含G-N, 最速下降法
  • 信赖域:固定搜索区域,寻找区域内的最优点,L-M法。

所有理论来自《数值优化》,只介绍了两种简单的。

  • 初始值的选取:不可随意,在视觉SLAM中用 ICP, PnP
  • Δ x \Delta x Δx 是多维的,几百上千几十万等,求解时要用矩阵论知识,QR,Cholesky分解等,它的系数形式确保了实时性
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值