写在前面:本文为原创,如需转载请注明出处。欢迎大家留言共同探讨,有误的地方也希望指出。另如果有好的SLAM、ROS等相关交流群也希望可以留言给我,在此先谢过了。
本文参考:《概率机器人》
0引言
概率是进行机器人控制、定位与建图的核心基础知识,相信这一点大家都深有体会。各种滤波算法都是根据贝叶斯概率公式的基础所衍生出来的算法。其实这点也很好理解,毕竟任何对外界的测量都是包含一定的不确定性的,而且运行的执行元件也不是完全精确,所以通过“估计”来处理机器人的测量和运动是更可以提高系统精度和鲁棒性的做法。所以,理清一些关键的概率概念就十分必要了。本文将从以下几个方面来进行整理,增加自己对这些概念的理解,如有需求也会随时扩充。
- 随机变量
- 概率密度函数
- 条件概率
- 全概率定理
- 先验/后验概率分布
- 条件独立
- 期望与协方差
- 表征演变的动态贝叶斯网络
- 置信分布
1 随机变量
随机变量(random variable)表示随机试验各种结果的实值单值函数。随机事件不论与数量是否直接有关,都可以数量化,即都能用数量化的方式表达。
以上是百度百科的表达,说的直白一些就是随机变量可以成为一些值,而且这些值是按照某种概率的行为来取值的。
这里用X来表示随机变量,用x来表示其取的值。那么举个例子就可以是, X可以表示“明天的天气”这个随机变量,其可以取的值有“晴天”、“下雨”等等。加入有30%的概率下雨,则p(X="Rain")=0.3。
在机器人中,各种机器的测量值和状态值以及环境的信息都是概率化的事实,所以可以用随机变量来表示。
2 概率密度函数
概率密度函数是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数。而随机变量的取值落在某个区域之内的概率则为概率密度函数在这个区域上的积分。
这个概念比较好理解,即是把针对于不同值的随机变量的取值用函数来表达。用图片可以更方便一些:
3 条件概率
随机变量经常与其他不同的随机变量可以产生联系,比如今天能不能踢球跟作业留的多不多就很有关系。所以条件概率用以描述已知一个随机变量的值后另一个随机变量取某值的概率:
p(x|y)=p(X=x|Y=y)
条件概率可以定义为:
p(x|y)=\frac{p(x,y)}{p(y)}
更进一步,如果X和Y相互独立,则有:
p(x|y)=\frac{p(x)p(y)}{p(y)}=p(x)
很好理解,没有什么关系的事情变成什么样也影响不了你关心的事情。
4 全概率定理
从条件概率中可以得出一个全概率定理(theorem of total probability),即针对另一个随机变量的全加和可以消去这个随机变量,更确切可以表述为:
p(x)=\sum_{y}p(x|y)p(y) (离散情况)
p(x) = \int p(x|y)p(y)dy (连续情况)
5 先验/后验概率分布
在机器人控制中,如果x是一个希望由y 推测出来的数值,则概率p(x)称为先验概率分布 ,其中y称为数据,也就是传感器的测量值。分布p(x)总结了在综合数据y之前已经有的关于x的信息。则概率p(x|y)称为在随机变量X上的后验概率分布。
6 条件独立
当有以其他变量Z为条件的相互独立的随机变量条件联合概率为
p(x,y|z)=p(x|z)p(y|z)
则这种关系可以被称为条件独立。上式也可等价为
p(x|z)=p(x|z,y); p(y|z)=p(y|z,x)
7 期望与协方差
随机变量X的期望可以由下式给定:
E[X]=\sum_{x}xp(x) (离散)
E[X]=\int xp(x)dx (连续)
期望是随机变量的线性函数,对于任意数值a,b有:
E[aX+b]=aE[X]+b
X的协方差可以由下式求得
Cov[X]={E[X-E[X]]}^2 = E[X^2] - E{[X]}^2
协方差衡量的是偏离均值的二次方期望。
8 表征演变的动态贝叶斯网络
针对于离散的控制动作u_i与测量z_i,状态x_t的改变过程可以由以下形式的概率分布给出:
p(x_t|x_{0:t-1},z_{1:t-1},u_{1:t})
根据马尔可夫链,如果状态x是完整的,那么他是所有以前时刻发生的所有状态的充分总结,再根据条件独立,即上式可以简化为:
p(x_t|x_{t-1},u_t)
其也被称为状态转移概率,它指出了状态作为机器人控制量u_t的函数是如何随着时间变化的。
概率p(z_t|x_t)叫作测量概率,根据该表达,测量z只和环境状态x相关。
因此,这一系列状态转换形式可以由下图形象表述:
这样的时间生成模型也称为隐式马尔可夫模型或者动态贝叶斯网络。
9 置信分布
因为状态不能直接测量,所以需要用置信度来反映机器人的环境状态信息。在概率机器人中,置信度通过条件概率分布表示。对于真实的状态,置信度分布为每一个可能的假设分配一个概率。置信度分布是以可以获得的数据为条件的关于状态变量的后验概率,用bel(x_t)来表示。
其代表如下后验概率:bel(x_t)=p(x_t|z_{1:t},u_{1:t})
该置信度是在综合了测量z_t之后得到的,但如果在刚刚进行过控制u_t之后,测量z_t之前,计算置信分布是有意义的,即:
\overline{bel}(x_t)=p(x_t|z_{1:t-1},u_{1:t}),在滤波的框架下,上式就是熟悉的预测,即在t时刻的测量前预测t时刻的状态。由\overline{bel}(x_t)来计算bel(x_t)则称为修正或者测量更新。