Bayes Filter
Table of Contents
1. 非线性动态系统的状态空间模型
贝叶斯滤波可以对动态系统进行状态估计,比如估计物体的运动速度。我们用传感器可以直接得到物体状态,为什么还要滤波呢?因为 传感器不可靠,得到的测量数据不是真实数据,我们需要“去除测量数据中的噪声” ,“去噪声”在随机过程理论中称为滤波。
非线性动态系统的状态空间模型的离散差分方程如下:
其中,
参考:
https://en.wikipedia.org/wiki/State-space_representation#Nonlinear_systems
Modern Control Systems, 12th, by Richard C. Dorf, Robert H. Bishop, Chapter 3 State Variable Models
2. Bayes filter
2.1. 概率基本知识
随机变量
如果
全概率公式(Law of Total Probability)为:
贝叶斯公式为:
由于当
2.1.1. 条件独立(Conditional Independence)
如果有:
则称随机变量
说明 1:在机器人概率建模时,常常用“条件独立”作为假设来简化模型。
说明 2:条件独立和相互独立没有必然联系,也就是说:
2.2. 贝叶斯滤波
贝叶斯滤波(Beyes filter, or Recursive Bayesian estimation)为非线性动态系统的状态估计问题提供了一种基于概率分布形式的解决方案。 贝叶斯滤波的基本原理是:首先用系统模型预测出状态的概率密度,然后用最近的测量值对其进行修正得到“后验概率密度”。
2.2.1. 记法说明
后文中,将使用下面记法。
后文中,所有的概率分布都用
2.3. 贝叶斯滤波框架介绍
在贝叶斯滤波框架中,下面这些是已知的(可以认为它们是系统参数):
(1) 测量值(或称观察值)
(2) 传感器的模型(Measurements Model)
(3) 系统控制量的模型(Motion Model)
(4) 初始时系统状态,即先验概率
Figure 1: 贝叶斯滤波采用的状态空间模型(这个模型又叫Dynamic Bayesian Network)
贝叶斯滤波就是 求已知系统控制量(即
为了简化
2.3.1. 马尔可夫假设(即“状态完全”假设)
A state
参考:Probabilistic Robotics, by Sebastian Thrun, 2.3.1 State
由马尔可夫假设可得到一些结论,如:
注 1:前一个式子表明系统当前状态仅和上一个状态及系统当前控制量有关。
注 2:后一个式子表明系统的测量值仅和当前状态有关,状态
注 3:这两个式子右边都是系统参数(是已知的),其中
2.4. 贝叶斯滤波推导
本节主要参考:Probabilistic Robotics, by Sebastian Thrun, 2.4.3 Mathematical Derivation of the Bayes Filter
贝叶斯滤波推导,可以分为两步。
第一步,预测过程,即由
我们把
由马尔可夫假设,有:
观察上式中的
综上,有:
第二步,更新过程,即由
由贝叶斯公式可以推导出
其中,
由马尔可夫假设,有:
结合第一步和第二步,我们已经推导出 贝叶斯滤波的递推公式为:
具有极大后验概率密度
从上面的公式知, 贝叶斯滤波需要知道三个概率分布:
(1) 传感器模型
(2) 系统控制量模型
(3) 系统的初始状态概率分布
贝叶斯滤波算法可简单描述为:
Figure 2: The general algorithm for Bayes filtering
2.4.1. 离散贝叶斯滤波
把前面推导的贝叶斯滤波算法应用到离散状态空间,即得离散贝叶斯滤波。离散贝叶斯滤波算法如图 3 所示。
Figure 3: Discrete Bayes Filter
2.5. 贝叶斯滤波系列算法
贝叶斯滤波需要进行积分运算,除了一些特殊的系统模型(如线性高斯系统,有限状态的离散系统)之外,对于一般的非线性、非高斯系统,贝叶斯滤波很难得到后验概率的封闭解析式。因此,现有的非线性滤波器多采用近似的计算方法解决积分问题,以此来获取估计的次优解。在系统的非线性模型可由在当前状态展开的线性模型有限近似的前提下,基于一阶或二阶 Taylor 级数展开的扩展 Kalman 滤波得到广泛应用。在一般情况下,逼近概率密度函数比逼近非线性函数容易实现。据此,Julier 与 Uhlmann 提出一种 Unscented Kalman 滤波器(UKF),通过选定的 sigma 点来精确估计随机变量经非线性变换后的均值和方差,从而更好的近似状态的概率密度函数,其理论估计精度优于扩展 Kalman 滤波(EKF)。获取次优解的另外一中方案便是基于蒙特卡洛模拟的粒子滤波器。
摘自:http://wenku.baidu.com/view/88896d2b453610661ed9f4b4.html
贝叶斯滤波算法是一个大的框架,一系列算法都可以认为是贝叶斯滤波算法的具体实现。
如下面这些都是贝叶斯滤波算法:
- Kalman filters
- Extended Kalman filters
- Particle filters
2.6. 贝叶斯滤波应用场景
贝叶斯滤波是一个大的框架,它可以用来作状态估计(状态估计是一个非常广的概念,如速度估计,位置估计等等)。
机器人的 Localization 算法(已知地图,估计自己的位置)基本上都是贝叶斯滤波或其变种。
3. 贝叶斯滤波实例
本节主要参考:Probabilistic Robotics, by Sebastian Thrun, 2.4.2 Example
下面以“移动机器人估计门的状态(打开或关闭)”为例说明贝叶斯滤波的基本思想。这个例子是一个简单的有限状态的离散系统。
Figure 4: A mobile robot estimating the state of a door.
首先给出贝叶斯滤波所需要的三个概率分布。
已知系统的初始状态概率分布为:
已知传感器模型(描述传感器噪声)为:
已知系统的控制量模型为:
假设,机器人的第一个行为是“什么都不做”,即
下面开始计算贝叶斯滤波的第一步,计算
其中,
以及:
下面开始计算贝叶斯滤波的第二步,计算
对于两种可能状态
以及
其中,
从而:
所以,这个阶段我们可以估计门是处于“打开的”。
现在假设,机器人的第二个行为是“推开门”,即
过程和前面类似,具体过程省略,下面直接给出计算后的结果。
第一步结果:
第二步结果:
所以,这个阶段我们可以估计门是处于“打开的”。
4. Binary Bayes Filters With Static State
本节主要参考:Probabilistic Robotics, by Sebastian Thrun, 4.2 Binary Bayes Filters With Static State
考虑特殊的情况:待估计状态只有两种可能情况(比如门“打开”或“关闭”),且不会随时间而变化(比如假设门不会自动从“打开”变为“关闭”,这称状态为静态的)。由于状态是静态的,所以可以认为它只和测量值相关,而与控制量无关。这时有:
其中,两个可能状态分别记为
对于这种情况当然可以直接使用离散贝叶斯滤波,不过,我们常常用下面介绍的方法来实现 Binary Bayes Filters With Static State.
事件
采用“对数发生比”比采用“Bayes 后验概率”来表达状态发生的可能性更加地合理。 因为“Bayes 后验概率”的取值范围只是
4.1. Binary Bayes Filter 算法
定义
Figure 5: Binary Bayes Filter
其中,
说明:Binary Bayes Filter 算法中使用了
如果状态相对简单时,
Inverse models are often used in situations where measurements are more complex than the binary state. An example of such a situation is the problem of estimating whether or not a door is closed, from camera images. Here the state is extremely simple, but the space of all measurements is huge. It is easier to devise a function that calculates a probability of a door being closed from a camera image, than describing the distribution over all camera images that show a closed door.
4.2. Binary Bayes Filter 算法推导
在前面推导 Bayes Filter 时,我们证明过:
在这里,相应地可简化为:
又由贝叶斯公式有
类似地,有:
利用前面两式,对
证毕。