批量(batch)状态估计问题

2019-06-04  本文已影响0人  徐凯_xp

我们已经探讨了观测模型
\begin{cases} x_k = f(x_{k-1},u_k,w_k) \\ z_{k,j} = h(y_j,x_k,v_{k,j}) \end{cases}
X为旋转+平移,h为相机观测模型

eg.从最大似然到最小二乘



非线性最小二乘

先考虑简单的问题:minJ(x)=min \frac{1}{2} \begin{Vmatrix}f(x)\end{Vmatrix}_2^2这里x \in R^n,f为任意函数

如何使用迭代的方式:

  1. 给定某个初始值x_0
  2. 对于第k次迭代,寻找一个增量\Delta x_k,使得\begin{Vmatrix} f(x_k+\Delta x_k)\end{Vmatrix}_2^2达到最小值
  3. \Delta x_k足够小,则停止
  4. 否则,令x_{k+1} = x_k + \Delta x_k,返回2

如何确定增量?
确定增量的方法(即梯度下降策略):一阶或者二阶的泰勒展开



1.png
1.png

最速下降法和牛顿法虽然直观,但实用当中存在一些缺点

能否回避Hessian的计算?

G-N用J的表达式近似了H

步骤:

  1. 给定初始值x_0
  2. 对于第k次迭代,求出当前的雅克比矩阵J(x_k)和误差f(x_k)
  3. 求解增量方程:H\Delta x_k = g
  4. \Delta x_k足够小,则停止。否则,令x_{k+1}=x_k + \Delta x_k返回2

改进版的G-N



LM相比于GN,能够保证增量方程的正定性

小结

上一篇 下一篇

猜你喜欢

热点阅读