滤波算法(贝叶斯滤波)

贝叶斯滤波

p ( x ∣ y , z ) = p ( x , y , z ) p ( y , z ) = p ( y ∣ x , z ) p ( x , z ) p ( y , z ) = p ( y ∣ x , z ) p ( x ∣ z ) p ( z ) p ( y ∣ z ) p ( z ) = p ( y ∣ x , z ) p ( x ∣ z ) p ( y ∣ z ) \begin{aligned} p\left( \boldsymbol{x}| \boldsymbol{y},\boldsymbol{z}\right) &=\dfrac{p\left( \boldsymbol{x},\boldsymbol{y},\boldsymbol{z}\right) }{p\left( \boldsymbol{y},\boldsymbol{z}\right) }\\ &=\dfrac{p\left( \boldsymbol{y}| \boldsymbol{x},\boldsymbol{z}\right) p\left( \boldsymbol{x},\boldsymbol{z}\right) }{p\left( \boldsymbol{y},\boldsymbol{z}\right) }\\ &=\dfrac{p\left( \boldsymbol{y}| \boldsymbol{x},\boldsymbol{z}\right) p\left( \boldsymbol{x}| \boldsymbol{z}\right) p\left( \boldsymbol{z}\right) }{p\left( \boldsymbol{y}|\boldsymbol{z}\right) p\left( \boldsymbol{z}\right) }\\ &=\dfrac{p\left( \boldsymbol{y}| \boldsymbol{x},\boldsymbol{z}\right) p\left( \boldsymbol{x}| \boldsymbol{z}\right) }{p\left( \boldsymbol{y}| \boldsymbol{z}\right) } \end{aligned} p(xy,z)=p(y,z)p(x,y,z)=p(y,z)p(yx,z)p(x,z)=p(yz)p(z)p(yx,z)p(xz)p(z)=p(yz)p(yx,z)p(xz)

融合多次观测信息对一个状态进行推理估计:

z k \boldsymbol{z}_k zk看作 y \boldsymbol{y} y,把 z 1 : k \boldsymbol{z}_{1:k} z1:k看作 z \boldsymbol{z} z代入上式,假设所有观测是独立的
p ( x ∣ z 1 : k ) = p ( z k ∣ x , z 1 : k − 1 ) p ( x ∣ z 1 : k − 1 ) p ( z k ∣ z 1 : k − 1 ) = η k p ( z k ∣ x ) p ( x ∣ z 1 : k − 1 ) = η k p ( z k ∣ x ) η k − 1 p ( z k − 1 ∣ x ) p ( x ∣ z 1 : k − 2 ) = [ ∏ i k η i p ( z i ∣ x ) ] p ( x ) \begin{aligned} p\left( \boldsymbol{x}| \boldsymbol{z}_{1:k}\right) &=\dfrac{p\left( \boldsymbol{z}_{k}| \boldsymbol{x},\boldsymbol{z}_{1:k-1}\right) p\left( \boldsymbol{x}| \boldsymbol{z}_{1:k-1}\right) }{p\left( \boldsymbol{z}_{k}| \boldsymbol{z}_{1:k-1}\right) }\\ &=\eta_{k}p\left( \boldsymbol{z}_{k}| \boldsymbol{x}\right) p\left( \boldsymbol{x}| \boldsymbol{z}_{1:k-1}\right) \\ &=\eta _{k}p\left( \boldsymbol{z}_{k}| \boldsymbol{x}\right) \eta _{k-1}p\left( \boldsymbol{z}_{k-1}| \boldsymbol{x}\right) p\left( \boldsymbol{x}| \boldsymbol{z}_{1:k-2}\right) \\ &=\left[\prod\limits_i^{k} \eta _{i} p\left( \boldsymbol{z}_{i}| \boldsymbol{x}\right)\right] p\left( \boldsymbol{x}\right) \end{aligned} p(xz1:k)=p(zkz1:k1)p(zkx,z1:k1)p(xz1:k1)=ηkp(zkx)p(xz1:k1)=ηkp(zkx)ηk1p(zk1x)p(xz1:k2)=[ikηip(zix)]p(x)
z 1 : k \boldsymbol{z}_{1:k} z1:k是已知观测量,与变量 x \boldsymbol{x} x无关, η k = 1 p ( z k ∣ z 1 : k − 1 ) \eta_k=\frac{1}{p\left( \boldsymbol{z}_k| \boldsymbol{z}_{1:k-1}\right)} ηk=p(zkz1:k1)1为归一化常数。

离散时间的递归估计问题

定义如下运动和观测模型:
运 动 方 程 : x k = f ( x k − 1 , u k , w k ) , k = 1 , ⋯   , K 观 测 方 程 : y k = h ( x k , n k ) , k = 0 , ⋯   , K \begin{aligned} 运动方程:&\boldsymbol{x}_k=\boldsymbol{f}(\boldsymbol{x}_{k-1},\boldsymbol{u}_k,\boldsymbol{w}_k),\quad k=1,\cdots,K \\ 观测方程:&\boldsymbol{y}_k=\boldsymbol{h}(\boldsymbol{x}_k,\boldsymbol{n}_k),\quad k=0,\cdots ,K \end{aligned} xk=f(xk1,uk,wk),k=1,,Kyk=h(xk,nk),k=0,,K
其中 k k k为时间下标,最大值为 K K K。函数 f ( ⋅ ) \boldsymbol{f}(\cdot) f()为非线性的运动模型,函数 h ( ⋅ ) \boldsymbol{h}(\cdot) h()为非线性的观测模型。我们并没有假设任何随机变量是高斯的,但是假设系统具有马尔可夫性

当一个随机过程在给定现在状态及所有过去状态的情况下,其未来状态的条件概率仅依赖于当前状态;换句话说,未来状态与到达当前状态的历史路径是条件独立的。那么此随机过程成为马尔科夫过程,或者说它具有马尔可夫性。

贝叶斯滤波使用过去及当前的测量,构造一个完成的PDF来刻画当前状态。

假设所有观测是独立的,将最新的观测分解出来
p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k ) ⏟ k 时 刻 状 态 估 计 后 验 概 率 = p ( y k ∣ x k , x ˇ 0 , u 1 : k , y 0 : k − 1 ) p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) p ( y k ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) = η p ( y k ∣ x k ) ⏟ k 时 刻 观 测 模 型 p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) ⏟ k 时 刻 状 态 估 计 先 验 概 率 \begin{aligned} \underbrace{p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k}\right)}_{k时刻状态估计后验概率} &=\dfrac{p\left( \boldsymbol{y}_{k}| \boldsymbol{x}_{k},\check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right)}{p\left( \boldsymbol{y}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right)} \\ &=\eta \underbrace{p\left( \boldsymbol{y}_{k}| \boldsymbol{x}_{k}\right)}_{k时刻观测模型} \underbrace{p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right)}_{k时刻状态估计先验概率} \end{aligned} k p(xkxˇ0,u1:k,y0:k)=p(ykxˇ0,u1:k,y0:k1)p(ykxk,xˇ0,u1:k,y0:k1)p(xkxˇ0,u1:k,y0:k1)=ηk p(ykxk)k p(xkxˇ0,u1:k,y0:k1)
将注意力集中在第二个因子,引入隐藏状态 x k − 1 \boldsymbol{x}_{k-1} xk1,并对其进行积分:
p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) = ∫ p ( x k , x k − 1 ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) d x k − 1 = ∫ p ( x k ∣ x k − 1 , x ˇ 0 , u 1 : k , y 0 : k − 1 ) p ( x k − 1 ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) d x k − 1 \begin{aligned} p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) &=\int p\left( \boldsymbol{x}_{k},\boldsymbol{x}_{k-1}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) {\rm d}\boldsymbol{x}_{k-1}\\ &=\int p\left(\boldsymbol{x}_{k}\right| \boldsymbol{x}_{k-1},\check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}) p\left( \boldsymbol{x}_{k-1}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) {\rm d}\boldsymbol{x}_{k-1} \end{aligned} p(xkxˇ0,u1:k,y0:k1)=p(xk,xk1xˇ0,u1:k,y0:k1)dxk1=p(xkxk1,xˇ0,u1:k,y0:k1)p(xk1xˇ0,u1:k,y0:k1)dxk1
隐藏状态的引入可以看作是边缘化的反向操作,目前为止,没有引入任何近似。
由于我们的系统具有马尔可夫性,可以写出:
p ( x k ∣ x k − 1 , x ˇ 0 , u 1 : k , y 0 : k − 1 ) = p ( x k ∣ x k − 1 , u k ) p ( x k − 1 ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) = p ( x k − 1 ∣ x ˇ 0 , u 1 : k , y 0 : k − 1 ) \begin{aligned} p\left( \boldsymbol{x}_{k}| \boldsymbol{x}_{k-1},\check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) &=p\left( \boldsymbol{x}_{k}| \boldsymbol{x}_{k-1},\boldsymbol{u}_{k}\right) \\ p\left( \boldsymbol{x}_{k-1}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) &=p\left( \boldsymbol{x}_{k-1}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k-1}\right) \end{aligned} p(xkxk1,xˇ0,u1:k,y0:k1)p(xk1xˇ0,u1:k,y0:k1)=p(xkxk1,uk)=p(xk1xˇ0,u1:k,y0:k1)
将上式代入原始的式子得
p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k ) = η p ( y k ∣ x k ) ⏟ 用 g ( ⋅ ) 进 行 更 新 ∫ p ( x k ∣ x k − 1 , u k ) ⏟ 用 f ( ⋅ ) 进 行 预 测 p ( x k − 1 ∣ x ˇ 0 , u 1 : k − 1 , y 0 : k − 1 ) ⏟ 先 验 置 信 度 d x k − 1 \begin{aligned} p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k} \right) =\eta \underbrace{p\left( \boldsymbol{y}_{k}| \boldsymbol{x}_{k}\right)}_{用g(\cdot)进行更新} \int \underbrace{p\left( \boldsymbol{x}_{k}| \boldsymbol{x}_{k-1},\boldsymbol{u}_{k}\right)}_{用f(\cdot)进行预测} \underbrace{p\left( \boldsymbol{x}_{k-1}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k-1},\boldsymbol{y}_{0:k-1}\right)}_{先验置信度} {\rm d}\boldsymbol{x}_{k-1} \end{aligned} p(xkxˇ0,u1:k,y0:k)=ηg() p(ykxk)f() p(xkxk1,uk) p(xk1xˇ0,u1:k1,y0:k1)dxk1
可以看到该式具有预测-校正的形式。在预测阶段,先验置信度 p ( y k ∣ x k ) p\left( \boldsymbol{y}_{k}| \boldsymbol{x}_{k}\right) p(ykxk)通过输入 u k \boldsymbol{u}_k uk和运动模型 f ( ⋅ ) \boldsymbol{f}(\cdot) f()在时间上进行前向传播。在校正阶段,则通过观测模型 g ( ⋅ ) \boldsymbol{g}(\cdot) g()来更新预测估计状态,并得到后验置信度 p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k ) p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k} \right) p(xkxˇ0,u1:k,y0:k)
贝叶斯滤波器虽然精确,但也仅仅是一个精美的数学产物;除了线性高斯的情况外,在实际中它基本不可能实现。主要原因有两个,为此我们需要适当地作一些近似:

  1. 概率密度函数存在于在无限维的空间中(与所有的连续函数一样),因此需要无限的存储空间(即无限的参数)来完全表示置信度 p ( x k ∣ x ˇ 0 , u 1 : k , y 0 : k ) p\left( \boldsymbol{x}_{k}| \check{\boldsymbol{x}}_{0},\boldsymbol{u}_{1:k},\boldsymbol{y}_{0:k} \right) p(xkxˇ0,u1:k,y0:k)。为了克服存储空间的问题,需要将这个置信度大致地表现出来。一种方法是将该函数近似为高斯(即只关心一、二阶矩:均值和协方差),另一种方法是使用有限数量的随机样本来近似。我们将在后面研究这两种方法。
  2. 贝叶斯滤波器的积分在计算上十分耗时,它需要无限的计算资源去计算精确的结果。为了克服计算资源的问题,必须对积分进行近似。一种方法是对运动和观测模型进行线性化,然后对积分进行闭式求解。另一种方法是使用蒙特卡罗积分( Monte Carlo integration )。我们也会在后面研究这两种方法。

递归式状态估计的大部分研究集中在如何用更好的近似来处理这两个问题。这些方面已经有了相当大的进展,值得我们更加详细地去研究。因此,在接下来的几节中,我们将介绍一些经典和现代的方法来近似贝叶斯滤波。但是,我们必须牢记贝叶斯滤波的假设:马尔科夫性。我们必须不断审视:如果对贝叶斯滤波器做这些近似,马尔科夫性会发生什么改变?

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shilong Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值