高斯牛顿法与列文伯格-马夸尔特

4. 1

4.1 高斯牛顿法

4.1.1 算法原理

高斯牛顿法是一种最优化算法,是用于解决非线性最小二乘问题最简单的算法之一。
m i n x F ( x ) = 1 2 ∥ f ( x ) ∥ 2 2 (1) \underset{x} {\rm min} F(x)=\frac{1}{2} \parallel f(x)\parallel _{2}^{2}\tag{1} xminF(x)=21f(x)22(1)
高斯牛顿法的核心思想就是对式(1) f ( x ) f(x) f(x)进行一阶泰勒展开:
f ( x + Δ x ) ≈ f ( x ) + J ( x ) T Δ x (2) f(x+\Delta x)\approx f(x)+J(x)^{T}\Delta x \tag{2} f(x+Δx)f(x)+J(x)TΔx(2)

接下来就是要寻找增量 Δ x \Delta x Δx使得 ∥ f ( x + Δ x ) ∥ 2 2 \parallel f(x+\Delta x)\parallel _{2}^{2} f(x+Δx)22 最小,即式(3):
Δ x ∗ = a r g m i n Δ x 1 2 ∥ f ( x ) + J ( x ) T Δ x ∥ 2 2 (3) \Delta x^{*} = \underset{\Delta x}{\rm argmin}\frac{1}{2} \parallel f(x)+J(x)^{T} \Delta x \parallel_{2}^{2} \tag{3} Δx=Δxargmin21f(x)+J(x)TΔx22(3)
将上式展开得:
1 2 ∥ f ( x ) + J ( x ) T Δ x ∥ 2 = 1 2 ( f ( x ) + J ( x ) T Δ x ) T ( f ( x ) + J ( x ) T Δ x ) = 1 2 ( ∥ f ( x ) 2 2 ∥ + 2 f ( x ) J ( x ) T Δ x + Δ x T J ( x ) J ( x ) T Δ x ) \begin{align} \frac{1}{2} \parallel f(x)+J(x)^{T} \Delta x \parallel^{2} &=\frac{1}{2} \left ( f(x)+J(x)^{T}\Delta x \right )^{T} \left ( f(x)+J(x)^{T}\Delta x \right )\\ &=\frac{1}{2}\left ( \parallel f(x)^{2}_{2}\parallel+2f(x)J(x)^{T}\Delta x+ \Delta x^{T}J(x)J(x)^{T}\Delta x \right ) \end{align} 21f(x)+J(x)TΔx2=21(f(x)+J(x)TΔx)T(f(x)+J(x)TΔx)=21(f(x)22+2f(x)J(x)TΔx+ΔxTJ(x)J(x)TΔx)
上式对 Δ x \Delta x Δx 求导并使之为零得:
J ( x ) f ( x ) + J ( x ) J ( x ) T Δ x = 0 J(x)f(x)+J(x)J(x)^{T} \Delta x = 0 J(x)f(x)+J(x)J(x)TΔx=0
可得到如下方程组
J ( x ) J ( x ) T ⏟ H ( x ) Δ x = − J ( x ) f ( x ) ⏟ g ( x ) (4) {\underbrace{J (x)J(x)^{T}}_ {H(x)} } \Delta x = \underbrace{-J(x)f(x) }_{g(x)} \tag{4} H(x) J(x)J(x)TΔx=g(x) J(x)f(x)(4)
式(4)是关于 Δ x \Delta x Δx的线性方程组,称之为增量方程。将左边定义为 H H H,右边定义为 g g g,则:
H Δ x = g (5) H \Delta x = g \tag{5} HΔx=g(5)
则高斯牛顿算法描述如下:

  1. 给定初始值 Δ x \Delta x Δx;
  2. 对于第 k k k次迭代。求解 J ( x k ) J(x_k) J(xk)和误差项 f ( x k ) f(x_k) f(xk);
  3. 接着解方程 H Δ x k = g H \Delta x_k=g HΔxk=g;
  4. Δ x k \Delta x_k Δxk足够小,既然停止迭代,否则使 x k + 1 = x k + Δ x x_{k+1}=x_k+\Delta x xk+1=xk+Δx,反悔第二步。
4.1.2 算法缺点
  • H ( x ) = J ( x ) J ( x ) T H(x)=J(x)J(x)^{T} H(x)=J(x)J(x)T有可能不可逆,导致算法不收敛。
  • Δ x \Delta x Δx步长不好控制,也容易造成算法不收敛。

4.2列文伯格-马夸尔特算法1

4.2.1算法原理

高斯牛顿法只有在泰勒展开点附近近似效果比较好,所以我们给 Δ x \Delta x Δx添加一个范围,称为信赖区域。这个范围定义了在什么情况下近似是有效的。在这个范围内认为近似有效,出了这个范围近似可能有问题。我们定义一个指标 ρ \rho ρ来刻画近似的好还程度:
ρ = f ( x + Δ x ) − f ( x ) J ( x ) T Δ x (1) \rho =\frac{f(x+\Delta x)-f(x)}{J(x)^{T}\Delta x}\tag{1} ρ=J(x)TΔxf(x+Δx)f(x)(1)

对于上面的式子,若 ρ \rho ρ近似为1,则近似是好的。如果 ρ \rho ρ太小,说明减小的值远小于近似减小的值,则认为近似比较差,需要缩小近似范围。相反,若 ρ \rho ρ太大,说明减小的值远大于近似减小的值,则应该放大近似范围。

改良版的非线性优化框架如下:

  1. 给定初始值 Δ x \Delta x Δx,以及初始优化半径 μ \mu μ;

  2. 对于第 k k k次迭代,在高丝牛墩基础上添加信赖区域,求解:
    m i n Δ x k 1 2 ∥ f ( x k ) + J ( x k ) T Δ x k ∥ 2 , s . t . ∥ D Δ x k ∥ 2 ≤ μ , (2) \underset{\Delta x_{k}}{\rm min}\frac{1}{2} \parallel f(x_k)+J(x_k)^{T}\Delta x_k \parallel^{2}, \quad s.t. \quad \parallel D\Delta x_k \parallel^{2}\le \mu,\tag{2} Δxkmin21f(xk)+J(xk)TΔxk2,s.t.DΔxk2μ,(2)

其中, μ \mu μ为信赖区域半径, D D D为系数矩阵,将在后文说明。

  1. 按式(1)计算 ρ \rho ρ;
  2. ρ > 3 4 \rho> \frac{3}{4} ρ>43,则设置 μ = 2 μ \mu = 2\mu μ=2μ;
  3. ρ < 1 4 \rho< \frac{1}{4} ρ<41,则设置 μ = 0.5 μ \mu = 0.5\mu μ=0.5μ;
  4. 如果 ρ \rho ρ大于某个阈值,则认为近似可行。令 x k = 1 = x k + Δ x k x_{k=1}=x_{k}+\Delta x_{k} xk=1=xk+Δxk;
  5. 判断算法是否收敛,若不收敛则返回第2步,否则结束。

在列文伯格优化方法中,把 D D D取成单位阵 I I I,相当于直接把 Δ x \Delta x Δx约束在一个球中。随后,马夸尔特提出将 D D D取成非负数对角阵,使得在梯度小的维度上约束范围更大一些。

式(2)是带不等式约束的优化问题,我们用拉格朗日乘子把约束项放到目标函数中,构成拉格朗日函数:
L ( Δ x k , λ ) = 1 2 ∥ f ( x k ) + J ( x k ) T Δ x k ∥ 2 + λ 2 ( ∥ D Δ x k ∥ 2 − μ ) (3) \mathcal{L}(\Delta x_k,\lambda )=\frac{1}{2}\parallel f(x_k)+J(x_k)^{T}\Delta x_k \parallel^{2}+\frac{\lambda}{2}\left ( \parallel D\Delta x_k \parallel^{2} -\mu \right ) \tag{3} L(Δxk,λ)=21f(xk)+J(xk)TΔxk2+2λ(DΔxk2μ)(3)
这里 λ \lambda λ为拉格朗乘子,令式(3)对 Δ x \Delta x Δx求导并使之为零:
( H + λ D T D ) Δ x k = g (4) (H+\lambda D^{T}D)\Delta x_k=g \tag{4} (H+λDTD)Δxk=g(4)
可以看到相比高斯牛顿法,增量方程多了 λ D T D \lambda D^{T}D λDTD。因为 D = I D=I D=I,所以式(4)可以化简为:
( H + λ I ) Δ x k = g (H+\lambda I)\Delta x_{k}=g (H+λI)Δxk=g
从上式可以看到,当 λ \lambda λ较小时, H H H占主要地位,则说明二次近似在此范围内比较好,此时更接近高斯牛顿法。另一方面,当 λ \lambda λ较大时, λ I \lambda I λI占主要地位,则更接近梯度下降法。说明近似不好。列文伯格-马夸尔特算法,可在一定程度上避免线性方程组系数矩阵的不可逆问题,提供更稳定、更准确的增量 Δ x \Delta x Δx



  1. <<视觉slam14讲>> 高翔 ↩︎ ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值