状态估计中的最小二乘

状态估计

状态估计,是根据系统的先验模型和测量序列,对系统内在状态进行重构的问题

背景

$x_k = T_k = \exp({\xi_k}^\wedge)$:x_k是一个六自由度的位姿,可以由一个变换矩阵来描述,也可以用李代数的指数来描述。

$sz_{k,j}=K\exp(\xi^\wedge)y_j$:内参×外参×路标点 = 像素点距离×像素


考察问题

当已知观测方程和运动方程的具体形式,如何对估计值进行优化?

即:如何通过 观测量z 和 输入量u 去优化 机器人的轨迹、位置x 和 路标点的位置y (SLAM过程)?

这是一个状态估计问题:通过已知的带有噪声的数据 去推断出无法直接获得的状态


该问题下的状态估计

状态变量:

$x={x_1,…,x_N,y_1,…y_M}$:所有时刻的位姿x 和 所有时刻的路标(地图)y

所以状态估计等同于求解条件分布: P(x | z, u) x在z,u条件下的概率分布(x, z, u都表示所有时刻的统称)

状态估计问题分类:

1 线性系统 :若f和h是线性方程(有几个线性量,加和,数乘组成)

2 高斯噪声:噪声属于高斯分布

3 非线性系统

4 非高斯噪声

此处的状态估计具有 马尔科夫性(下一个时刻的状态依赖于上一个时刻的状态)

状态估计描述

在k个时间点上,基于初始状态信息、一系列观测数据、一系列输入,以及系统的运动模型和观测模型,来计算系统的真实状态估计值。


从概率学角度求状态估计

在不知道输入控制u,只有图像时,忽略u并只考虑观测数据

P(x|z):已知图像,推断x的分布:称为后验概率

贝叶斯:

似然概率:p(z|x):在某一个状态x下观测图像(确定图像与当前图像的相似程度)

先验概率:P(x):x自己的状态

对于p(x|z):x的维度很高,难以写出其分布,但是可以求:

1)最大后验估计

​ 使得 p(x|z)最大的 x 的估计 (${x^*}_{MAP}$),即在某一种分布下 x 的最优估计,此时是一个估计出的量

​ ${x^*}_{M A P} = \arg \max P(x|z) = \arg \max P(z|x)P(x)$

​ 注释:寻求一个x使得p(x|z)达到最大,此时称为x为最大后验估计,表示:在怎样的x下拿到的相机数据和现在数据(已有的)是最像的

2)最大似然估计

​ 当最大后验估计中无法得知 x时(不知道 机器人轨迹 的先验是什么样子的时候),则直接最大化似然

​ ${x^*}_{MLE} = \arg \max P(z|x)$

​ 注释:当不知道先验概率时(x原本应该是什么样子,或者x就是一个随机的运动)即没有先验时,则此时最大化似然就可以了。表示:最大化x,使得在此状态下看到的数据最像我们看到的数据,P(z|x) 即“在哪种状态下,最容易产生当前的观测”


求解最大似然估计

某次观测:$z{k,j}=h(y_j, x _k)+v{k, j}$,噪声服从0均值高斯分布$vk\sim \mathcal{N}(0,Q{k,j})$

所以观测数据条件概率(将h加到噪声分布上)

对于N维高斯分布 $x\sim \mathcal{N}(\mu,\Sigma)$的概率密度展开式:

它的右侧指数部分为一个二次型,若$\Sigma=I$,则指数部分就是一个二范数(误差的平方)

将展开式两边取对数并添加负号,得到p(x)只与马氏距离$-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)$有关。

所以要求最大似然估计,就是求最小$-\ln(p(x))$

最小二乘

代入SLAM观测模型,

等式右侧为一个最小二乘,即最小化噪声项(误差)的一个二次型(马氏距离)

其中,$Q^{-1}$为信息矩阵(协方差矩阵的逆,协方差反映两个变量相向的程度),用于噪声的控制调整

定义运动误差和观测误差:$e{u, k},e{z, j, k}$,最小化估值和真实值之间的误差(即马氏距离)时,每一个误差对应一个最小二乘,所以得到一个最小二乘问题 $\min J(x, y)$ ,它等于所有时刻运动误差和观测误差的总和。

此最小二乘问题等价于状态的最大似然估计


非线性最小二乘

探讨通用的无约束非线性最小二乘问题的求解

一阶梯度

最速下降法,取增量为反向梯度 $\Delta x^*=-J(x_k)$

二阶梯度

牛顿法,保留了二阶梯度,$\Delta x = -H^{-1}J$

高斯牛顿法

将误差一阶展开,代入最小二乘,求梯度求解

称为高斯牛顿方程(正规方程)$H\Delta x=g$ .

其中:J(x)为f(x)关于x的导数,是一个1×n的向量

缺陷:

1)$H = JJ^T$可能不正定,无法求$H^{-1}$

2)不考虑步长的取值造成误差

求解过程:

1 最小二乘式,确定待估计的变量

2 误差式

3 计算雅克比矩阵J 和 误差e

4 求解增量方程 Hx=g

5 迭代

LM

增加指标

以该指标为 $\Delta x$ 添加一个信赖区域,以$\rho$值的大小来控制信赖区域的半径,使得在此区域内取得的$JJ^T \sim H$,从而用雅克比矩阵运算代替海塞矩阵的运算,同时,在约束项的控制下,保证了求解项左边矩阵可逆。

将约束项加入到最小二乘中:

其中,D为非负数对角阵,表示了对空间的约束。

对$\Delta x$求导后得:$(H+\lambda D^TD)\Delta x_k=g$


矩阵微分

先使用微分法则展开复合微分项,再通过迹技巧,结合下式求解


参考资料:

  • 视觉SLAM十四讲:从理论到实践(第2版). 高翔.