机器人学中的概率论基础

| |

概率的基本概念

令 $X$ 表示一个随机变量 $x$ 表示$X$ 的某一特定值。随机变量的典型例子就是掷硬币( $coin flip$ ) , 这里 $X$ 可以取正面或反面( $head 或tail$ ) 。如果 $X$ 所取的所有值的空间是离散的,即如果 $X$ 是掷硬币的结果,写为

$$ \begin{equation} p(X=x) \end{equation} $$

以此来表示随机变量 $X$ 具有 $x$ 值的概率。例如,一个一般硬币 $p(X =head)=p(X = tail) = \frac{1}{2}$ 离散概率和为1, 即

$$ \begin{equation} \sum_{x} p(X=x)=1 \end{equation} $$

其中,$p(X=x) \ge 0$ 恒成立。
为了简化符号,在可能时通常省略随机变量的明确表示,而是使用常见的缩写 $p(x)$ 代替 $p(X =x)$ 。

对连续变量,则概率密度函数的积分为1:

$$ \begin{equation} \int p(x)d(x) = 1 \end{equation} $$

但是,与离散概率不同,概率密度函数(probability density function)上限不局限于1 。

正态分布(高斯分布)

正态分布(也称为高斯分布)是统计学中最常见的分布之一,其概率密度函数(Probability Density Function,PDF)如下所示:

正态分布的概率密度函数:

$$ \begin{equation} f(x|\mu, \sigma^2) = \frac{1}{\sqrt{2 \pi \sigma^2}} \cdot e^{-\frac{(x - \mu)^2}{2 \sigma^2}} \end{equation} $$

其中:

其中,$e$ 是自然对数的底,$\pi$ 是圆周率。

这个概率密度函数描述了正态分布的形状。正态分布是钟形曲线,其形状由均值 $\mu$ 控制,而方差 $\sigma^2$ 决定了分布的展开程度或集中度。均值决定了分布的中心位置,而方差则决定了分布的宽窄程度。

对于正态分布,大部分的数据集中在均值附近,并且按照一定的规律向两侧逐渐变少。这种分布在自然界和许多现实世界的现象中都十分常见,因此在统计学和概率论中被广泛应用。

多元正态分布是指多维随机向量的概率分布,其密度函数如下所示:

对于一个 $p$ 维的随机向量 $\mathbf{X} = (X_1, X_2, \dots, X_p)^T$,其多元正态分布的概率密度函数为:

$$ \begin{equation} f(\mathbf{x}|\boldsymbol{\mu}, \boldsymbol{\Sigma}) = \frac{1}{(2\pi)^{p/2} |\boldsymbol{\Sigma}|^{1/2}} \cdot e^{-\frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^T \boldsymbol{\Sigma}^{-1} (\mathbf{x} - \boldsymbol{\mu})} \end{equation} $$

在这里:

其中 $|\boldsymbol{\Sigma}|$ 表示协方差矩阵 $\boldsymbol{\Sigma}$ 的行列式。

多元正态分布是多维空间中的一种连续分布,其形状由均值向量 $\boldsymbol{\mu}$ 和协方差矩阵 $\boldsymbol{\Sigma}$ 决定。它是单峰、对称的,并且具有类似于一维正态分布的钟形曲线。在统计学和机器学习中,多元正态分布经常用于建模多维数据的分布特征。

上面的公式中,式(5)是(4)的严格泛化,如果 $x$ 为标量且 $\boldsymbol{\Sigma} = \sigma^2$ 则两者等效。

联合分布

两个随机变量 $X$ 和 $Y$ 的联合分布 $(joint distribution)$ 由下式给出:

$$ \begin{equation} p(x,y) = p(X =x ,Y=y) \end{equation} $$

这个表达式描述了随机变量 $X$ 取值为 $x$ 并且 $Y$ 取值为 $y$ 这一事件的概率。如果 $X$ 和 $Y$ 相互独立$(independent)$ , 有:

$$ \begin{equation} p(x,y) = p(x)p(y) \end{equation} $$

链式法则

概率链式法则是一个用来分解联合概率的法则,它可以帮助我们将复杂的联合概率表示为一系列条件概率的乘积。 概率链式法则(也称为乘法规则)是概率论中的一个基本定律,用于计算联合概率。它描述了在一系列事件或条件下的联合概率如何被拆分为逐步发生的各个条件概率的乘积。

概率链式法则可以描述为:假设有事件 $A_1, A_2, \ldots, A_n$,则它们的联合概率可以用条件概率表示为:

$$\begin{align} \begin{split} P(A_1 \cap A_2 \cap \ldots \cap A_n) &= \\ &P(A_1) \cdot P(A_2 | A_1) \cdot P(A_3 | A_1 \cap A_2) \cdot \ldots \cdot \\ & P(A_n | A_1 \cap A_2 \cap \ldots \cap A_{n-1}) \end{split} \end{align}$$

简单来说,概率链式法则说明了多个事件同时发生的概率可以通过依次考虑每个事件在给定其之前事件发生的条件下的概率来计算。这种逐步的条件概率乘积形成了最终联合概率的计算方式。

在条件独立性假设下,链式法则可以被简化。如果一组事件相互独立,那么条件概率可以简单地用独立事件的概率表示,从而简化乘法规则的应用。

条件概率

随机变量经常携带其他随机变量的信息。假定已经知道 $Y$ 的值是 $y$ , 想知道基于以上事实条件 $X$ 为 $x$ 的概率。这样的概率表示为条件概率 conditional probability

$$\begin{equation} p(x|y) = p(X =x |Y=y) \end{equation} $$

如果 $p(y)>0$,则条件概率定义为:

$$\begin{equation}p(x|y) = \frac{p(x,y)}{p(y)} \end{equation} $$

如果 $X$ 和 $Y$ 相互独立,则代入前面的 $(7)$ 式有:

$$\begin{equation} p(x|y) = \frac{p(x) p(y)}{p(y)} = p(x) \end{equation} $$

含义:如果 $X$ 和 $Y$ 是相互独立的,则 $Y$ 不会有任何关于 $X$ 值的信息。如果对 $X$ 感兴趣则知道 $Y$ 值没有任何帮助。

全概率定理

全概率定理(theorem of total probability)是概率论中的重要定理,它描述了对于一个事件的概率如何通过其他相关事件的概率来计算。
离散情况下
设事件集合 ${B_1, B_2, \dots, B_n}$ 是样本空间的一个划分,即这些事件互不相交且并集为整个样本空间。对于任意事件 $A$,全概率定理表述为:

$$\begin{equation} P(A) = \sum_{i=1}^{n} P(A|B_i) \cdot P(B_i) \end{equation} $$

其中:

这个公式表示事件 $A$ 的概率可以通过将事件 $A$ 在每个 $B_i$ 条件下发生的概率相加,乘以每个 $B_i$ 的概率来计算。

连续情况下

在连续情况下,全概率定理可以表示为积分形式。假设事件集合 ${B_1, B_2, \dots, B_n}$ 是样本空间的一个划分,对于任意事件 $A$,全概率定理表示为:

$$\begin{equation} P(A) = \int_{-\infty}^{\infty} P(A|B) \cdot f_B(B) \, dB \end{equation} $$

其中:

这个公式表示事件 $A$ 的概率可以通过对所有可能的事件 $B$ 的取值求和,每个 $B$ 的概率密度 $f_B(B)$ 乘以 $P(A|B)$ 的积分来计算。

当涉及到贝叶斯定理时,其基本形式适用于离散和连续情况。贝叶斯定理是基于条件概率的关系,用于更新我们对一个事件发生概率的信念。

贝叶斯定理

参阅前面的博客:贝叶斯定理简介
贝叶斯公式的本质是使用观察到的证据来更新我们对假设的信念。通过结合先验概率和似然度,我们可以得到后验概率,即在考虑观察到的证据后,我们对假设的新信念(belief)。

贝叶斯定理表达为:

$$\begin{equation} P(A|B) = \frac{P(B|A) \times P(A)}{P(B)} \end{equation} $$

其中:

$$ 后验概率 = \frac{关于证据的似然 × 先验概率}{p(证据)} $$

离散情况下
假设有一组离散事件集合 ${B_1, B_2, \dots, B_n}$ 是样本空间的一个划分。对于一个事件 $A$,贝叶斯定理表示为:

$$\begin{equation} P(B_i|A) = \frac{P(A|B_i) \cdot P(B_i)}{\sum_{j=1}^{n} P(A|B_j) \cdot P(B_j)} \end{equation} $$

连续情况下
在连续情况下,贝叶斯定理可以表示为积分形式。假设事件集合 ${B_1, B_2, \dots, B_n}$ 是样本空间的一个划分。对于一个事件 $A$,贝叶斯定理表示为:

$$\begin{equation} P(B|A) = \frac{P(A|B) \cdot f_B(B)}{\int P(A|B) \cdot f_B(B) \, dB} \end{equation} $$

贝叶斯定理的常用形式
注意到贝叶斯准则的分母$P(A)$不依赖于特定的事件 $B$,因此改写为:

$$ posterior ∝ likelihood × prior \\ \Darr $$
$$\begin{equation} p(x | y) = \eta p(y | x)p(x) \end{equation} $$

条件独立的情况下,可以将联合概率 $P(x, y | z)$ 分解为各自的边缘概率的乘积。条件独立表示给定某个条件下,两个随机变量的联合分布可以拆分为它们各自的边缘分布的乘积。

$$\begin{equation} p(x|y, z) = \frac{p(y|x, z) \cdot p(x|z) }{p(y|z)} \end{equation} $$

其中:

条件独立

假设 $x$ 和 $y$ 在给定 $z$ 的条件下是独立的,即 $x$ 和 $y$ 在已知 $z$ 的取值之后是互相独立的,可以将联合概率 $p(x, y | z)$ 分解为各自的边缘概率的乘积(在给定 $z$ 的情况下,$x$ 和 $y$ 的联合概率可以表示为 $x$ 在已知 $z$ 的条件下的概率乘以 $y$ 在已知$z$ 的条件下的概率。)。有:

$$\begin{equation} p(x, y | z) = p(x | z) \cdot p(y | z) \end{equation} $$

可以证明,上式等价于:

$$ \begin{align} p(x | z) =p(x | z,y) \\ p(y | z)=p(y | z,x) \end{align} $$

证明过程如下(我自己试了半天也没证明出来,最后求助chatGPT才搞懂):
由贝叶斯定理

$$ P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)} \\ \Darr \\ p(x, y | z) = \frac{p(z | x, y) \cdot p(x, y)}{p(z)} \\ $$

其中 $p(z | x, y)$表示在 $x$ 和$y$同时发生的条件下$z$发生的概率,$p(x, y)$ 表示 $x$和 $y$ 同时发生的概率,$p(z)$表示 $z$ 的独立概率。
接下来,我们使用条件概率的定义前面的公式(9): $p(x|y) = \frac{p(x,y)}{p(y)}$ ,将 $p(z | x, y)$ 展开:

$$ \Darr \\ p(z | x, y) = \frac{p(x, y, z)}{p(x, y)} $$

代入:

$$ \Darr \\ \begin{split} p(x, y | z) &= \frac{\frac{p(x, y, z)}{p(x, y)} \cdot p(x, y)}{p(z)} \\ &= \frac{p(x, y, z) }{p(z)} \\ &= \frac{p(z) \cdot p(y|z) \cdot p(x|y,z)}{p(z)} \\ &= p(y|z) \cdot p(x|y,z) \end{split} $$

此时再根据条件独立的定义式(19)就可以推出式(20)、(21)了。这几个公式在概率机器人学中起着非常重要的作用,下面我们会首先从贝叶斯滤波中感受到这一点。


条件独立并不意味着绝对独立,绝对独立也并不意味着条件独立。

期望、方差和熵

随机变量 $X$ 的数学期望(也称为期望值或均值)是描述其取值可能性的加权平均值。对于离散型随机变量 $X$,其数学期望可以表示为:

$$ \begin{align} E[X] = \sum_{x} x \cdot P(X = x) \end{align} $$

其中,$x$ 是随机变量 $X$ 可能取到的值,$P(X = x)$ 是随机变量 $X$ 取值为 $x$ 的概率。

对于连续型随机变量 $X$,其数学期望可以表示为积分形式:

$$ \begin{align} E[X] = \int_{-\infty}^{\infty} x \cdot f(x) \, dx \end{align} $$

其中,$f(x)$ 是随机变量 $X$ 的概率密度函数。

数学期望是随机变量取值的加权平均,其中每个可能的取值根据其发生的概率进行加权。它是随机变量理论中一个重要的概念,可以用来衡量随机变量的集中趋势。
期望是随机变量的线性函数。具体来说,对任意数值$a$ 和$b$, 有

$$ \begin{align} E[aX + b] = aE[X] +b \end{align} $$

$X$的协方差公式:

$$ \begin{align} Cov[X]=E[X-E[X]]^2 = E[X^2] - E[X]^2 \end{align} $$

协方差衡最的是偏离均值的二次方期望。

协方差
协方差用于衡量两个随机变量之间的相关性和变量的偏差程度。协方差表示了两个随机变量的联合变化程度。

假设有两个随机变量 $X$ 和 $Y$,它们的协方差可以用以下公式表示:

$$ \begin{align} \text{Cov}(X, Y) = E[(X - \mu_X)(Y - \mu_Y)] \end{align} $$

其中 $E$ 表示数学期望(期望值),$\mu_X$ 和 $\mu_Y$ 分别是随机变量 $X$ 和 $Y$ 的期望值。

另一种更常用的表示方法是利用随机变量的期望和方差:

$$ \begin{align} \text{Cov}(X, Y) = E[XY] - E[X] \cdot E[Y] \end{align} $$

协方差可以帮助理解两个随机变量之间的关系。当协方差为正时,表示 $X$ 和 $Y$ 呈正相关关系,即它们的变化趋势是同向的;当协方差为负时,表示 $X$ 和 $Y$ 呈负相关关系,即它们的变化趋势是反向的;当协方差为零时,表示 $X$ 和 $Y$ 之间不存在线性关系,但并不表示它们之间没有其他类型的关联。


关于熵,可以参阅前面的博客

概率分布的熵是衡量该分布的不确定性或信息量的度量。熵是 $x$ 所携带的期望信息,定义式为:

$$ \begin{align} H(X) = E[-log_2p(x)] \end{align} $$

离散情况下,假定 $p(x)$是观测 $x$ 的概率,则$- log_2p(x)$ 就是使用最佳编码对 $x$ 进行编码所需的比特数。
对于一个离散型随机变量 $X$,其概率分布为 $P(X)$,其熵的计算公式为:

$$ \begin{align} H(X) = - \sum_{x} P(x) \cdot \log_2(P(x)) \end{align} $$

其中,$x$ 表示随机变量 $X$ 可能取到的值,$P(x)$ 是随机变量 $X$ 取值为 $x$ 的概率。这里采用对数的底数为2,因此熵的单位通常是比特 $(bit)$。

如果是连续型随机变量 $X$,其概率密度函数为 $f(x)$,则其熵的计算公式为:

$$ \begin{align} H(X) = - \int_{-\infty}^{\infty} f(x) \cdot \log_2(f(x)) \, dx \end{align} $$

熵可以被理解为随机变量的平均信息量。当概率分布更加均匀(不确定性更大)时,熵的值会更高;当分布更集中、更确定时,熵的值会减小。对于具有更多不确定性的分布,其熵会更大。

概念约定

状态与环境

环境(environment)、世界(world)
环境特征以 状态(state) 表征,有静态状态(static state)、动态状态(dynamic state)之分。
现在约定如下:
状态用 $\boldsymbol{x}$ 表示,$t$ 时刻的状态为 $\boldsymbol{x}_t$ 。多数情况下 $\boldsymbol{x}_t$ 是连续的,它被定义在连续空间上。也有时候是离散的,例如传感器是否故障的二进制变量等。既包含离散又包含连续变最的状态空间称为混合(hybrid) 状态空间。
假设有一个状态 $\boldsymbol{x}_t$ 可以最好得预测未来,那么称其为“完整的(complete)”,完整性包括过去状态测最及控制的信息,但不包含其他可以更加精确地预测未来的其他附加信息。未来仍然是随机的,过去发生的事情不对将来产生影响,未来仅取决于当前状态,即:符合马尔可夫假设。

机器人与环境的交互过程
机器人利用传感器感知环境,被称为测量(measurement)或者(observation)或者(percept)。在时刻 $t$ 测量的数据记作 $\boldsymbol{z}_t$ ,这里的测量可能包含多次测量的数据。
机器人动作:机器人动作会改变世界的状态。机器人主动动作用 $\boldsymbol{u}_t$ 表示。

概率计算公式

状态 $\boldsymbol{x}_t$ 是由 $\boldsymbol{x}_{t-}$ 随机产生的!因此我们有必要指定它的概率分布。状态 $\boldsymbol{x}_t$ 由所有过去的状态、测量到的信息、动作信息决定的,有: $p(\boldsymbol{x}_t|\boldsymbol{x}_{0:t-1},\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t})$ ,这里下标 $t$ 、$t-1$ 应是很容易理解的,不多赘述。
如果状态 $\boldsymbol{x}_t$ 是完整的,那么显然 $\boldsymbol{x}_{t-1}$ 是0到t-1时刻完整的,有:

$$ \begin{align} p(\boldsymbol{x}_t|\boldsymbol{x}_{0:t-1},\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) = p(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{u}_{t}) \end{align} $$

这是条件独立。
同样的,对于观测过程,根据条件独立,有:

$$ \begin{align} p(\boldsymbol{z}_t|\boldsymbol{x}_{0:t},\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) = p(\boldsymbol{z}_{t}|\boldsymbol{x}_{t}) \end{align} $$

即:状态 $\boldsymbol{x}_{t}$ 足以预测(有潜在噪声的)测量 $\boldsymbol{z}_{t}$ 。
概率 $p(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{u}_{t})$ 是状态转移概率(state transition probability),它指出了环境状态作为机器人控制 $\boldsymbol{u}_{t}$ 的函数如何随着时间变化。
概率 $p(\boldsymbol{z}_{t}|\boldsymbol{x}_{t})$ 叫做测量概率(measurement probability,观测方程/测量方程) 。它意味着,测量 $\boldsymbol{u}$ 由环境状态 $\boldsymbol{x}$ 产生,对状态进行有噪声的预测就得到了测量。
状态转移概率和测量概率一起描述机器人及其环境组成的动态随机系统。这是一个隐马尔科夫模型(Hidden Markov Model , HMM),或者称为动态贝叶斯网络(Dynamic Bayes Network, DBN)。

动作u,状态x,测量z的动态贝叶斯网络动作u,状态x,测量z的动态贝叶斯网络

时刻 $t$ 的状态随机地依赖于 $t-1$ 时刻的状态和控制 $u_t$ ,测量 $z_t$ 随机地依赖于时刻 $t$ 的状态。

置信分布

置信度(belief),对于真实的状态,置信度分布为每一个可能的假设分配一个概率(或者概率密度值)。置信度分布是以可获得数据为条件的关于状态变量的后验概率。用$bel(\boldsymbol{x}_t)$ 表示状态变量 $\boldsymbol{x}_t$ 的置信度:

$$ \begin{align} bel(\boldsymbol{x}_t) = p(\boldsymbol{x}_t|\boldsymbol{z}_{1:t},\boldsymbol{u}_{1:t}) \end{align} $$

这是一个后验分布,是时刻 t 下状态 $\boldsymbol{x}_t$ 的概率分布,上式是考虑了测量 $\boldsymbol{z}_{t}$ 之后得到的,现在增加一个定义式,计算在刚刚执行完动作之后,考虑测量 $\boldsymbol{z}_{t}$ 之前的后验分布:

$$ \begin{align} \overline{bel}(\boldsymbol{x}_t) = p(\boldsymbol{x}_t|\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) \end{align} $$

在概率滤波的框架下,该概率经常被称为预测(prediction), $\overline{bel}(\boldsymbol{x}_t)$ 是基于以前状态的后验,在考虑时刻 t 的测量之前,预测了时刻 $t$ 的状态。由 $\overline{bel}(\boldsymbol{x}_t)$ 计算 $bel(\boldsymbol{x}_t)$ 的过程称为修正(correction) 或测量更新(measurement update) 。

马尔可夫假设

马尔可夫假设(Markov assumption) ,很简单:如果知道当前状态 $\boldsymbol{x}_t$ 那么马尔科夫假设设定未来(t+1)的状态与过去的状态( $\boldsymbol{x}_{t-1}$ )无关,系统未来的状态仅与当前状态有关。满足马尔可夫条件的过程被称为马尔可夫过程、马尔科夫链(Markov Chain),马尔科夫假设可以用于模拟许多实际问题,例如天气模拟、金融市场变化、生物学中的基因演化等。马尔科夫过程的性质使得它在建模一些具有随机性和不确定性的系统时非常有用。

贝叶斯滤波器

贝叶斯滤波(Bayes filter) 算法

算法流程图

贝叶斯滤波算法贝叶斯滤波算法
这是一种递归算法,需要先指出 t=0 时刻的初始置信度作为边界条件。

输入量是时刻 $t-1$ 的置信度、最近的动作(教材称为“控制”, control) $\boldsymbol{u}_{t}$ 和最近的测量 $\boldsymbol{z}_{t}$ ,输出是 $bel(\boldsymbol{x}_t)$ 。

第一步:动作更新(控制更新)。通过基于状态 $\boldsymbol{x}_{t-1}$ 的置信度和动作 $u_t$ 来计算状态 $x_t$ 的置信度。即:通过 $x_{t-1}$ 的置信度和由动作 $u_t$ 引起的从 $x_{t-1}$ 到 $x_t$ 的转移概率这两个分布的积分求得状态 $x_t$ 的置信度 $\overline{bel}(x_t)$ 。

第二步:测量更新。用已经观测到的测量 $\boldsymbol{z}_t$ 的概率乘以置信度 $\overline{bel}(\boldsymbol{x}_t)$ 乘积结果通常不再是一个概率。它的总和可能不为1 。因此,结果需要通过归一化常数 $\eta$ 进行归一化。这样最终求得置信度 $bel(\boldsymbol{x}_t)$

贝叶斯滤波的数学推导

贝叶斯滤波算法是一个递归算法,很容易让人想到用归纳法来证明——事实确实如此。
假设时刻 $t=0$ 时置信度 $bel(\boldsymbol{x}_0)$ 被正确初始化,在 t 时刻, $\boldsymbol{x}_t$ 是完整的,世界是满足马尔可夫条件的,由前文中的叙述,可知:

$$ \begin{align} \begin{split} p(\boldsymbol{x}_t|\boldsymbol{z}_{1:t},\boldsymbol{u}_{1:t}) &= \frac{p(\boldsymbol{z}_t|\boldsymbol{x}_{t},\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) \cdot p(\boldsymbol{x}_t|\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t})}{ p(\boldsymbol{z}_t|\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t})} \\ &= \eta p(\boldsymbol{z}_t|\boldsymbol{x}_{t},\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) \cdot p(\boldsymbol{x}_t|\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) \\ &= \eta p(\boldsymbol{z}_t|\boldsymbol{x}_{t}) \cdot p(\boldsymbol{x}_t|\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) \end{split} \end{align} $$

即:

$$ \begin{align} bel(\boldsymbol{x}_t) = \eta p(\boldsymbol{z}_t|\boldsymbol{x}_{t}) \cdot \overline{bel}(\boldsymbol{x}_t) \end{align}$$

再由全概率定理得:

$$ \begin{align} \begin{split} \overline{bel}(\boldsymbol{x}_t) &= p(\boldsymbol{x}_t|\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) \\ &= \int p(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) \cdot p(\boldsymbol{x}_{t-1} | \boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) \cdot d\boldsymbol{x}_{t-1} \\ &= \int p(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{u}_{t}) \cdot p(\boldsymbol{x}_{t-1} | \boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t-1}) \cdot d\boldsymbol{x}_{t-1} \end{split} \end{align} $$

解释一下式(37)里面的两个过程,由于假设状态是完整的,因此过去的测量和控制不会包含未来状态的信息:

$$ \begin{align} p(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t}) = p(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{u}_{t}) \end{align} $$

此外,对于任意选定的动作,可以将 $p(\boldsymbol{x}_{t-1} | \boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t})$ 中的动作 $\boldsymbol{u}_{t}$ 省略。

总结:递归更新方程

$$ \begin{align} \overline{bel}(\boldsymbol{x}_t) = \int p(\boldsymbol{x}_t|\boldsymbol{x}_{t-1},\boldsymbol{u}_{t}) \cdot p(\boldsymbol{x}_{t-1} | \boldsymbol{z}_{1:t-1},\boldsymbol{u}_{1:t-1}) \cdot d\boldsymbol{x}_{t-1} \end{align} $$

推导完毕。

演示实例

假设有一个利用摄像头来估计门的开关状态的机器人,假设门有两种状态open 或者closed ,且只有机器人能改变门的状态。进一步假设机器人不知道门的初始状态,它将相同的先验概率分配给门的这两种可能的状态:

$$ bel(X_0= open) =0.5 \\ bel(X_0 = closed) =0.5 \\ ~\\ \text{假定机器人传感器的噪声符合下面的条件概率分布:} \\ p(Z_t = sense\_open|X_t=is\_open) = 0.6 \\ \text{(实际状态为open条件下传感器感知为open的概率=0.6)} \\ p(Z_t = sense\_closed|X_t=is\_open) = 0.4 \\ \text{(实际状态为open条件下传感器感知为closed的概率=0.4)} \\ ~\\ p(Z_t = sense\_open|X_t=is\_closed) = 0.2 \\ \text{(实际状态为 closed 条件下,传感器感知为open的概率=0.2)} \\ p(Z_t = sense\_closed|X_t=is\_closed) = 0.8 \\ \text{(实际状态为 closed 条件下,传感器感知为 closed 的概率=0.2)} \\ ~\\ $$

这些概率表明机器人传感器在检测门是关着时相对来说是可靠的,此时错误的概率是$0.2$ 。但是,当门是开着时,它具有 $0.4$ 的错误概率。
最后,假设机器入使用操作器把门拉开。如果门已经开了,它就保持开着。如果是关着的,机器人有 $0.8$ 的概率将它打开:

$$ p(X_t = is\_open \medspace |\medspace U_t=push, X_{t-1} = is\_open) = 1 $$

原先门是开着的,机器人动作了,门一定是开着的(前面有假设没有其他因素能导致门的变化)

$$p(X_t = is\_closed \medspace |\medspace U_t=push, X_{t-1} = is\_open) = 0 $$
$$p(X_t = is\_open \medspace |\medspace U_t=push, X_{t-1} = is\_closed) = 0.8 $$

原先门是关着的,机器人动作了,门按给定的概率被打开

$$p(X_t = is\_closed \medspace |\medspace U_t=push, X_{t-1} = is\_closed) = 0.2 $$

机器人也可以选择不动作,那么此时世界状态不会改变:

$$p(X_t = is\_open \medspace |\medspace U_t=do\_nothing, X_{t-1} = is\_open) = 1 \\ p(X_t = is\_closed \medspace |\medspace U_t=do\_nothing, X_{t-1} = is\_open) = 0$$

这很好理解

$$p(X_t = is\_open \medspace |\medspace U_t=do\_nothing, X_{t-1} = is\_closed) = 0 \\ p(X_t = is\_closed \medspace |\medspace U_t=do\_nothing, X_{t-1} = is\_closed) = 1$$

假定在$t=1$时刻,机器人没有采取任何动作,但它检测到门是开着的,可以计算置信度:

$$ \begin{split} \overline{bel}(x_1) &=\int p(x_1 | u_1,x_0)bel(x_0)dx_0 \\ &=\sum_{x_0}p(x_1|u_1,x_0)bel(x_0) \\ &=p(x_1 | U_1=do\_nothing,X_0 = is\_open)bel(X_0 = is\_open) \\ &+ p(x_1 | U_1=do\_nothing,X_0 = is\_closed)bel(X_0 = is\_closed) \end{split} $$

现在将状态变量$X_1$用两个可能的值代替,即分别代入$X_1 = is\_open$和$X_1 = is\_closed$有:

$$ \begin{split} &\overline{bel}(X_1 = is\_open) \\ &=p(X_1 = is\_open| U_1=do\_nothing,X_0 = is\_open)bel(X_0 = is\_open) \\ &+ p(X_1 = is\_open| U_1=do\_nothing,X_0 = is\_closed)bel(X_0 = is\_closed) \\ &= 1 × 0.5 + 0 × 0.5 \\ &=0.5 \end{split} $$

且:

$$ \begin{split} & \overline{bel}(X_1 = is\_closed) \\ &=p(X_1 = is\_closed| U_1=do\_nothing,X_0 = is\_open)bel(X_0 = is\_open) \\ &+ p(X_1 = is\_closed| U_1 =do\_nothing,X_0 = is\_closed)bel(X_0 = is\_closed) \\ &= 0 × 0.5 + 1 × 0.5 \\ &=0.5 \end{split} $$

由于“do nothing”所以对世界没有影响,因此此时的 $\overline{bel}(x_1)$ 等于先前的置信度 ${bel}(x_0)$ ,不过,接下来继续进行贝叶斯滤波算法:

$$bel(x_1) = \eta p (Z_1 = sense\_open | x_1) \overline{bel}(x_1)$$

分别代入 $X_1 = is\_open$ 和 $X_1 = is\_closed$ 有:

$$ \begin{split} bel(X_1 = is\_open) &= \eta p (Z_1 = sense\_open | X_1 = is\_open)\overline{bel}(X_1 = is\_open) \\ &= \eta 0.6 × 0.5=0.3 \eta \end{split} $$

和:

$$ \begin{split} bel(X_1 = is\_closed) &= \eta p (Z_1 = sense\_open | X_1 = is\_closed)\overline{bel}(X_1 = is\_closed) \\ &= \eta 0.2 × 0.5=0.1 \eta \end{split} $$

得到归一化因子 $\eta$ :
$\eta = (0.3 + 0.1)^{-1} = 2.5$ 因此得到:
$bel(X_1 = is\_open) = 0.75$
$bel(X_1 = is\_closed) =0.25$
下一步迭代,对于 $u_2= push , Z_2 = sense\_open$ 得到:
$\overline{bel}(X_2 = is\_open) = 1 × 0.75 +0.8×0.25 = 0.95$
$\overline{bel}(X_2 = is\_closed) =0 × 0.75 + 0.2 ×0.25 = 0.05$

$bel(X_2 = is\_open) = \eta 0.6 × 0.95 \approx 0.983$
$bel(X_2 = is\_closed) =\eta 0.2 × 0.05 \approx 0.017$
完毕。

参阅