分类于: Robotics
关键词: 概率机器人

概率机器人直方图滤波

非参数滤波

与各种高斯滤波不同,非参数滤波不依赖确定的后验函数。不过,非参数滤波通过有限数量的值来近似后验,每一个值大致与状态空间的一个区域有关。在概率机器人中,主要介绍了2种滤波方法——直方图滤波和粒子滤波。

直方图滤波利用直方图分配给每一个区域一个单一的累积概率;它们是对连续密度的最好的分段定常近似。

粒子滤波使用有限多个样本表示后验概率。

直方图滤波

直方图滤波(Histogram filter)将状态空间分解成有限的区域,并用一个单一的概率值表示每一个区域的累积后验。

离散贝叶斯滤波算法

$$ \begin{align} \bar{p}{k,t} &= \sum_i p(X_t = x_k | u_t, X=x_i)p_{i,t-1}\\ p_{k,t} &= \eta p(z_t|X_t = x_t) \bar{p}_{k,t} \end{align} $$

连续状态

直方图滤波就是研究如何将离散贝叶斯滤波作为一种近似推理工具应用在连续状态空间。直方图滤波将连续状态空间分解成有限位,或者区域:$dom(X_i) = x_{1,t} \cup x_{2,t} \cup \cdots x_{k,t}$

其中 $X_t$ 表示机器人状态在时刻t的常见随机变量。函数 $dom(X_t)$ 表示状态空间,它是所有可能取值的域。

连续状态空间一个简单的分解就是多维栅格,这里每一个 $x_{k,t}$ 就是一个栅格单元。通过分解的粒度,可能权衡精度和计算效率。细粒度分解比粗粒度分韶引起的近似误差要小,但要以增加计算复杂度为代价。

离散贝叶斯滤波为每一个区域 $x_{k,t}$ 分配一个概率 $p_{k,t}$ 。在每个区域里,离散贝叶斯滤波不会再携带更多的关于置信度分布的信息。因此,后验就成了一个分段常数概率密度函数,它为区域 $x_{k,t}$ , 中的每一个状态 $x_t$ 分配了相同的概率。

$$ p(x_i) = \frac{p_{k,t}}{|x_{k,t}|} $$

其中, $|x_{k,t}|$ 为区域 $x_{k,t}$ 的绝对值。

如果状态空间的确是离散的,则条件概率 $p(x_{k,t} | u_t, x_{i,t-1})$$p(z_t|x_{k,t})$ 就是已知的,算法可以如陈述的一样实现.在连续状态空间中,通常给定密度 $p(x-t|u_t, x_{t-1})$$p(z_t|x_t)$ , 它们是针对每个状态定义的。。对于每一个区域 $x_{k,t}$ 是很小的而且具有相同尺寸的情况,通常可以用这个区域的代表取代 $x_{k,t}$ 来近似表示密度。

例如,可以利用 $x_{k,t}$ 的平均状态进行“探究(probe)”。

$$ \hat{x}{k,t} = |x|^{-1} \int_{x_{k,t}} x_t dx_t $$

然后简单的取代:

$$ \begin{align} p(z_t|x_{k,t}) \approx {} & p(z_t|\hat{x}{k,t})\\ p(z_t|u_t, x) \approx {} & \eta |x_{k,t}| p(\hat{x}{k,t}|u_t, \hat{x}) \end{align} $$

直方图近似的数学推导

先暂时略过,后面再来详细说明。

分解技术

在机器人技术中,连续状态空间的分解技术具有两个基本的特点:静态(static) 和动态(dynamic)。静态技术取决于固定分解的,该分解是事先选定的,并不考虑要近似的后验的形状。动态技术要使该分解适应特定形状的后验分布。静态技术通常易于实现,但是浪费计算资源。

动态分解技术最主要的一个例子就是密度树(density trees)家族。密度树将状态空间进行递归分解,以这种方式调节分辨率以适应后验概率。这种分解的直观感觉就是分解的程度是一个关于后验概率的函数:区域越有可能不相关,那么分解越粗糙。

与动态分解类似的效果可通过选择更新(selective updating)实现。当对一个用栅格表示的后验进行更新时,选择技术只更新所有栅格单元的一小部分。这种方法的常见实际应用是仅对这些后验概率超出用户指定阔值的栅格单元进行更新。