概率机器人学习笔记第二章

基本概念

  1. 随机变量、概率、概率分布和概率密度函数等的概念

  2. 条件概率、联合分布、全概率公式、贝叶斯法则

    条件概率

    两个随机变量XYX,Y联合分布由下式给出:

    p(x,y)=p(X=x,Y=y) p(x, y) = p(X=x, Y=y)

这个表达式描述了随机变量 XX 取值为 xx 并且 YY 取值 yy 这一事件的概率,若 XXYY 相互独立,则有以下结论

p(x,y)=p(x)p(y) p(x, y) = p(x)p(y)

事实上,随机变量通常携带其他随机变量的信息,在已知 Y=yY = y 的条件下,X=xX = x 的概率称为条件概率,表示为
p(xy)=p(x,y)/p(y) p(x|y) = {p(x, y)}/{p(y)}

全概率公式:通过条件概率和概率测量公理,可以推出全概率公式如下

p(x)=yp(xy)p(y)()p(x)=p(xy)p(y)dy() p(x) = \sum_{y}p(x|y)p(y) (离散情况)\\ p(x) = \int p(x|y)p(y){dy} (连续情况)
同样重要的还有贝叶斯法则
p(xy)=p(yx)p(x)p(y)=p(yx)p(x)xp(yx)p(x)dx() \begin{aligned} p(x|y)&= \frac{p(y|x)p(x)}{p(y)}\\&=\frac{p(y|x)p(x)}{\sum_{x'}{p(y|x')p(x')dx'}}(离散概况) \end{aligned}

p(xy)=p(yx)p(x)p(y)=p(yx)p(x)p(yx)p(x)() \begin{aligned} p(x|y) &= \frac{p(y|x)p(x)}{p(y)}\\&=\frac{p(y|x)p(x)}{\int{p(y|x')p(x')}}(连续情况) \end{aligned}

​ 通常,由于p(y)1p(y)^-1的值在同一个问题里面是不变的,所以可以使用 η\eta 表示,称为贝叶斯法则中的归一化变量。在贝叶斯法则中,如果xx一个希望由yy推测出来的数值,则概率p(x)p(x)称为先验概率分布。其中yy称为数据datadata,也就是传感器测量值。p(xy)p(x|y) 称为XX上的后验概率分布。通过贝叶斯法则,可以通过“逆”条件概率p(yx)p(y|x)和先验概率p(x)p(x)一起起计算p(xy)p(x|y)。所谓的逆条件概率,其实就是假设已知事件xx发生的情况下,能够得到数据yy的概率,它称为生成模型。
​ 3.条件独立
​ 以任意随机变量ZZ为条件的相互独立的两个变量XYX和Y ,他们的概率满足
p(x,yz)=p(xz)p(yz) p(x, y| z) = p(x|z)p(y|z)
需要注意的是,条件独立并不意味为绝对独立,反之也不一定成立。

4.数学期望、协方差、熵

数学期望均值,可以由以下式求得
E[X]=xxp(x)() E[X]=\sum_xxp(x)(离散)

E[X]=xp(x)dx() E[X]=\int{xp(x)dx}(连续)

数学期望具有线性性质

协方差可以由以下式子求得
Cov[X]=E[XX[x]2]=E[X2]E[X]2 Cov[X]=E[X-X[x]^2]=E[X^2] - E[X]^2
,一个概率分布的熵可以按如下求得
Hp(x)=E[log2p(x)] H_p(x)=E[-log_2{p(x)}]
容易推导出
Hp(x)=xp(x)log2p(x) H_p(x)=-\sum_x{p(x)log_2p(x)}

Hp(x)=p(x)log2xdx H_p(x)=-\int{p(x)log_2{x}dx}

机器人环境交互

环境交互

  • 环境传感器测量

  • 控制动作改变世界状态

  • 环境测量数据提供了环境的暂态信息,在tt时间里的测量数据表示为ztz_t

  • 控制数据携带环境中关于状态改变的信息,控制数据用utu_t表示

状态和概率生成

​ 状态用来表示环境特征,需要注意的是,假设一个状态可以最好的预测未来,则称其为完整的。换句话说,完整性包裹过去的状态测量以及控制的信息,但是不包括其他可以更加精确的预测未来的附加信息

如果一个状态xx是完整的,那么它是所有以前时刻发生的所有的状态的充分总结。用公式表示如下
p(xtx0:t1,z1:t1,u1:t)=p(xt1,ut)=p(xtxt1,ut) p(x_t|x_{0:t-1},z_{1:t-1},u_{1:t}) = p(x_{t-1},u_t)=p(x_t|x_{t-1}, u_t)
同时,这个式子充分表达了条件独立的特性,这在以后会经常用到。

当状态xx是完整的时,就有如下式子成立
p(ztx0:t,z1:t1,u1:t)=p(ztxt) p(z_t|x_{0:t},z_{1:t-1},u_{1:t})=p(z_t|x_t)
p(ztxt)p(z_t|x_t)称为测量概率p(xtxt1,ut)p(x_t|x_{t-1},u_t)称为状态转移概率

状态转移概率和测量概率一起描述机器人以及其环境组成的动态随即系统。图2.2所示的动态贝叶斯网络显示了由这些概率定义的状态和测量的演变。时刻tt的状态依赖t1t-1时刻的状态和控制utu_t,测量ztz_t随机的依赖时刻tt的状态。这样的时间生成模型也称为隐形马尔可夫模型或动态贝叶斯网络。

在这里插入图片描述

置信度

概率机器人中另外一个重要的概念是置信度分布。置信度反映了机器人有关的环境状态的内部信息。概率机器人通过条件概率分布表示置信度,对于真实状态,置信度分布为每一种可能的假设分配一个概率(或者概率密度值)。置信度分布是以可获得的数据为条件的关于状态变量的后验概率。这里用bel(xt)bel(x_t)表示状态变量xtx_t的置信度,它是下式的缩写
bel(xt)=p(xtz1:t,u1:t) bel(x_t)=p(x_t|z_{1:t}, u_{1:t})
这个后验是时刻tt下状态xx的概率分布,以过去所有的测量z1:tz_{1:t}和过去所有的控制u1:tu_{1:t}为条件。

这个默认置信度是在综合了测量ztz_t之后得到的,有时,可以证明在刚刚执行完控制utu_t之后,综合ztz_t之前计算后验是有效的。这个后验可以表示为
bel(xt)=p(xtz1:t1,u1:t) \overline{bel}(x_t)=p(x_t|z_{1:t-1}, u_{1:t})
在概率滤波中,这个概率称为预测。它反映了一个事实:bel(xt)\overline{bel}(x_t)是基于以前状态的后验,在综合测量ztz_t之前,预测了时刻tt的状态,由bel(xt)\overline{bel}(x_t)计算bel(xt)bel(x_t)称为修正或者测量更新

贝叶斯滤波

算法描述

现在开始进入正题,大多数计算置信度的通用算法都是基于贝叶斯滤波算法的。算法描述如下

A_Bayes_filter(bel(xt),ut,zt):for all xt do bel(xt)=p(xtut,xt1)p(xt1)dxt1 bel(xt)=ηp(ztxt)bel(xt)end forreturn bel(xt) \begin{aligned} A\_B&ayes\_filter(bel(x_t), u_t, z_t):\\ &for\ all\ x_t\ do\\ &\quad\ \overline{bel}(x_t) = \int{p(x_t|u_t, x_{t-1})p(x_{t-1})}dx_{t-1}\\ &\quad\ bel(x_t)= \eta p(z_t|x_t)\overline{bel}(x_t)\\ &end \ for\\ &return\ bel(x_t) \end{aligned}

  • 贝叶斯滤波算法的第一步叫做控制更新,即上述描述的第3行,通过基于状态xt1x_{t-1}的置信度和控制utu_t来计算xtx_t的置信度,这种跟新称为控制更新或者预测

  • 贝叶斯滤波算法的第二个步骤叫做测量更新,位于上述描述的第4行。书上说的有点迷糊,其实就是一个贝叶斯公式。根据上一次状态和这一次控制,得到新的预测为先验概率,配合生成模型计算后验概率bel(xt)bel(x_t).

  • 通过上述的分析,不难发现,要使用这样一个算法,我们需要知道一个初始状态bel(x0)bel(x_0)作为边界条件。如果知道x0x_0的确切的值,应当使用一个点式群体分布进行初始化。若不知道,或者可以完全忽略x0x_0的初始值,则应使用一个x0x_0的邻域上的均匀分布(或者狄氏分布的相关分布)来进行初始化。

贝叶斯滤波的数学推导

机器人判断门的开闭的示例就不赘述了,接下来看贝叶斯滤波的数学推导。
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ p(x_t|z_{1:t},…
由第 1 行到第 2 行的变化是由于xtx_t是一个完整的状态变量,且跟其他两个条件条件独立,所以可以忽略其他条件。

第 2 行到第 3 行是一个简单的全概率公式。

最后,要注意,对于任意所选的控制,可以从条件变量集p(xt1z1:t1,ut)p(x_{t-1}|z_{1 : t-1},u_t)中安全地将控制utu_t省略,因此,上述方程可以写作
p(xtz1:t,u1:t)=ηp(ztxt)p(xtxt1)p(xt1z1:t1,u1:t1)dxt1 p(x_t|z_{1:t},u{1:t})=\eta p(z_t|x_t)\int p(x_t|x_{t-1})p(x_{t-1}|z_{1:t-1},u_{1:t-1})dx_{t-1}
这个递归更新方程在贝叶斯滤波算法的第三行得到了实现。

总之,贝叶斯滤波算法以到时间tt的测量和控制数据为条件来计算状态xtx_t的后验。推导假设世界是马尔可夫的,也就是状态是完整的。

可以看到,该算法的任意具体实现都需要三个条件概率分布,分别是:初始置信度分布p(x0)p(x_0)、测量概率分布p(ztxt)p(z_t|x_t)和状态转移概率p(xtut,xt1)p(x_t|u_t,x_{t-1})

​ PS:这一章内容其实不算少,但是除了前面的基础知识,核心的算法也就几页,看明白了之后,其实也就那么回事,但是在这之前,会觉得很难很烦。这里建议,首先要克服这种负面情绪,其实原理很简单,静下心来慢慢看。另外很重要的一点就是,书后面的习题真的很好,认真做一做,非常非常非常有帮助。但是刚开始做其实会比较迷惑,一个是不知道自己做的对不对,另一个是这对于低年级本科生来说,还是一个比较陌生的模式,难免会有一点不适应。对于习题答案这个问题,网上很少有完整的一套答案,即便有也只是零零散散几道题,而且很可能你哪道题不会了,恰好就找不到那一道题,这里推荐一个大佬分享的这本书完整的答案

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章