马尔科夫过程:
无后效性:
如果一个过程的“将来”仅依赖“现在”而不依赖“过去”,则此过程具有马尔可夫性,或称此过程为马尔可夫过程。
一个马尔可夫过程假定下一时刻的状态仅取决与当前状态而与之前的状态无关。
马尔可夫模型忽略远距离历史效应
忽略时间的影响,只需要关心当前状态即做出下一步决策
自己的理解:
当前的状态往往和离它最近的状态相关,距离越远则相关性越小,因此可以利用马尔科夫过程对状态估计做一点简化。
隐马尔可夫过程:
但是现实中遇到的一些实例往往没那么简单,比如有时候有些对状态有影响的变量是无法或较难观测的,这时候就需要隐马尔科夫过程。
比如在语音识别中,我们听到的声音是声带、喉咙和一起其他的发音器官共同作用的结果。这些因素相互作用,共同决定了每一个单词的声音,而一个语音识别系统检测的声音(可以观察的状态)是人体内部各种物理变化(隐藏的状态、引申一个人真正想表达的意思)产生的。
某些语音识别设备把内部的发音机制作为一个隐藏的状态序列,把最后的声音看成是一个和隐藏的状态序列十分相似的可以观察到的状态的序列。在这两个例子中,一个非常重要的地方是隐藏状态的数目和可以观察到的状态的数目可能是不一样的。在一个有3种状态的天气系统(sunny、cloudy、rainy)中,也许可以观察到4种潮湿程度的海藻(dry、dryish、damp、soggy)。在语音识别中,一个简单的发言也许只需要80个语素来描述,但是一个内部的发音机制可以产生不到80或者超过80种不同的声音。
在上面的这些情况下,可以观察到的状态序列和隐藏的状态序列是概率相关的。于是我们可以将这种类型的过程建模为有一个隐藏的马尔科夫过程和一个与这个隐藏马尔科夫过程概率相关的并且可以观察到的状态集合。这就是隐马尔可夫模型。
隐马尔可夫模型 (Hidden Markov Model) 是一种统计模型,用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析。
拓展卡尔曼滤波:
在SLAM中,利用马尔科夫性进行转态估计,k时刻状态只与k-1时刻状态有关,而与之前的无关,于是就可以利用拓展卡尔曼滤波。
在SLAM中应用拓展卡尔曼滤波:
将卡尔曼滤波的结果拓展到非线性系统,在某个点附近考虑运动方程及观测方程的一阶泰勒展开,只保留一阶项,及线性的部分。
拓展卡尔曼滤波的局限:
1、如果当前状态确实与很久之前的数据相关,就比较难处理;
2、假如运动模型和观测模型有强烈的非线性,那么线性近似就只在很小的范围成立,不能认为在很远的地方仍能用线性来近似;
3、从程序实现的角度,拓展卡尔曼滤波需要存储状态量的均值和方差,并对他们进行维护和更新。如果把路标也放进状态,由于视觉SLAM中路标数量很大,这个存储量相当可观,且与状态量呈平方增长。
参考链接:
http://blog.sciencenet.cn/blog-350729-665509.html
https://blog.csdn.net/likelet/article/details/7056068
参考书籍:
《视觉SLAM十四讲》