贝叶斯理论在SLAM状态估计中的应用
1、状态估计(State Estimation)
其中, 称之为A的后验概率,
称之为B的后验概率。
称之为A的先验概率,
称之为B的先验概率 。
换句话说为:
其中,后验为: ,似然为:
,先验为:
,标准化常量(证据)为:
。
其中,基础的求解公式为:
在贝叶斯定理中先验和标准化常量都是已知信息,为了使后验概率最大化,会转换为求最大似然估计。因此,我们整个问题就转换为了最大似然估计的问题了。
最大似然估计的意义在于“在什么状态下,最可能产生现在观测到的数据”。
2、机器人状态估计方程
在机器人状态估计中,机器人的状态方程可以表示如下:
运动方程:
观测方程:
其中:
代表的是当前的状态,也就是位姿变量;
代表的是路标信息;
代表的是
状态下对
的观测结果;
代表的是输入数据(可能为控制指令之类的)。
代表了运动方程的噪音,符合高斯分布模型
;
代表了观测方程的噪音,符合高斯分布模型
。
若是线性系统的话,上述式子也可以表示为:
通过上面的方程,我们可以得到,上面的公式是在求“已知输入信息和观测信息,求当前的位姿状态和路标信息”。也就是SLAM过程的核心思想。问题可以转化为“求在什么路标信息和姿态下,最可能产生现在的观测数据“。
其中,控制输入 可能无法获取,那就变成了:
此类问题也被称之为SfM(Structure from Motion),常用语三维重建中。
然而,有的时候,我们也无法获取路标信息 ,此时问题就变成了最基本的SLAM问题,就是已知观测信息(sensor data),求姿态信息(Pose)。
那么可以化简为:
不过,在实际的使用中,我们会加入之前已经计算出来的信息,所以,可能会有控制指令 ,上一时刻的姿态
和当前的观测信息
。这个时候,问题就变为了:
3、最大似然估计
我们拿初始的机器人运动状态方程来举例,也就是公式(1)和(2),其贝叶斯公式为公式(5)。
由于,此时的机器人位姿和路标信息未知,所以,先验信息 的先验信息基本无用,因此,上面式子的大小取决于似然信息
。因此,问题就转化为了求似然估计的最大值,也被称之为最大似然估计(Maximiza Likelihood Estimation,MLE):
同样的,上面的另外两种情况,即公式(6)和(7)转化为最大似然估计为:
这种就印证了之前的说法,最大似然估计就是求“在什么状态下,最可能产生现在观测到的数据”。
4、最小二乘
我们知道,最大似然估计的求解方法一般都是最小二乘。因为,求最大可能会无法收敛条件很难设定,但是求最小的话,是可以很好的进行收敛计算的。
首先,我们仍然依托初始的运动方程(1)和观测方程(2):
我们先考虑无控制指令信息 的情况,由于
:
我们设定常规的高维高斯分布模型为: ,
为均值,
为协方差。则高斯概率密度函数的展开为:
由于存在指数,所以,求对数是最基本的处理思路:
由于等式右边的前半部分是常数,后半部分决定了整个式子的大小。
而 是单调递增的,所以,
越大,
越大,
越小。
因此,问题就转化为了:
由于公式(9)满足高斯分布,所以,也满足上面的公式,代入公式为:
这样,就将最大似然估计,转化为了最小二乘的问题。
在实际使用过程中,控制指令可能存在,由于观测方程也满足高斯模型:
这里使用了朴素贝叶斯的性质,由于控制指令只和之前的姿态信息有关,所以,所以,得到上面的式子 。
所以,结合公式(9)和公式(10)完整的公式应该为:
为了方便观测,进行误差函数的设定:
结合实际,可以对现有的误差函数进行实际应用的修改。
因此,最大似然估计转化为最小二乘问题为:
其中, 为运动方程的高斯噪音中的协方差矩阵,
为的观测方程的高斯噪音中的协方差矩阵。
实际使用中,可能会有别的量来替换,不过需要记得与运动方程和观测方程的高斯噪音中的协方差矩阵一一对应即可。
如果对最小二乘问题的求解方法感兴趣的话,可以阅读这篇文章:
yc zhang:最小二乘问题的四种解法——牛顿法,梯度下降法,高斯牛顿法和列文伯格-马夸特法的区别和联系zhuanlan.zhihu.com
5、朴素贝叶斯定理:
朴素贝叶斯定理和普通的贝叶斯法则略有不同,加入了条件独立性的属性。
举个简单的例子来说明:
这里之所以能改写成这样,是因为 都是独立事件,其概率和其他无关,所以,可以直接就以自身的概率来进行当前概率的展示
朴素贝叶斯定理在进行卡尔曼滤波公式的推导中有着重要的使用。我们拿前面说过的公式举例说明:
这个时候,就用到了朴素贝叶斯的特性:
由于当前的观测信息 和控制指令
以及之前时刻的姿态
无关,只与当前时刻的状态量
有关,因此,可以简化为:
而当前的状态量 和观测信息
,控制指令
以及之前的状态量
都有关系。所以,最终的结果就为:
由于为 常量,所以,用
来表示。
故,最终的结果为:
最终结果是经过对大量无用信息的省略得到的!!!