贝叶斯滤波(Bayes filters)

细说贝叶斯滤波:Bayes filters

(一)概率论公式

  1. 全概率公式:

离散情况下:
p ( x ) = ∑ y p ( x , y ) = ∑ y p ( x ∣ y ) p ( y ) p(x)=\sum_{y}p(x,y)=\sum_{y} p(x|y)p(y) p(x)=yp(x,y)=yp(xy)p(y)

连续情况下:
p ( x ) = ∫ p ( x , y ) d y = ∫ p ( x ∣ y ) p ( y ) d y p(x)=\int p(x,y)dy=\int p(x|y)p(y)dy p(x)=p(x,y)dy=p(xy)p(y)dy

  1. 贝叶斯公式:
    P ( x ∣ y ) = P ( y ∣ x ) p ( x ) P ( y ) P(x|y)=\frac{P(y|x)p(x)}{P(y)} P(xy)=P(y)P(yx)p(x)

这里 x x x一般是某种状态, y y y一般代表某种观测。 P ( x ∣ y ) P(x|y) P(xy)表示基于观测对状态进行诊断或推断。
贝叶斯公式的分母项 P ( y ) P(y) P(y),与 P ( x ∣ y ) P(x|y) P(xy)无关,可以把它作为归一化系数:
P ( x ∣ y ) = P ( y ∣ x ) p ( x ) P ( y ) = η P ( y ∣ x ) P ( x ) P(x|y)=\frac{P(y|x)p(x)}{P(y)}=\eta P(y|x)P(x) P(xy)=P(y)P(yx)p(x)=ηP(yx)P(x)
η = P ( y ) − 1 = 1 ∑ x P ( y ∣ x ) P ( x ) \eta=P(y)^{-1}=\frac{1}{\sum_{x}P(y|x)P(x)} η=P(y)1=xP(yx)P(x)1

  1. 贝叶斯公式中融合多种预测

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{array}{l}P(x | y, z)=\frac{P(x, y, z)}{P(y, z)} \\ =\frac{P(y | x, z) p(x, z)}{P(y, z)} \\ =\frac{P(y | x, z) p(x | z) p(z)}{P(y | z) p(z)} \\ =\frac{P(y | x, z) p(x | z)}{P(y | z)}\end{array} 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)

所以有 P ( x ∣ y , z ) = P ( y ∣ x , z ) P ( x ∣ z ) P ( y ∣ z ) P(x|y,z)=\frac{P(y|x,z)P(x|z)}{P(y|z)} P(xy,z)=P(yz)P(yx,z)P(xz)
P ( x , y , z ) = P ( x ∣ y , z ) P ( y ∣ z ) P ( z ) P(x,y,z)=P(x|y,z)P(y|z)P(z) P(x,y,z)=P(xy,z)P(yz)P(z)
P ( x , y , z ) = P ( y ∣ x , z ) P ( x ∣ z ) P ( z ) P(x,y,z)=P(y|x,z)P(x|z)P(z) P(x,y,z)=P(yx,z)P(xz)P(z)

此外有其他形式:

P ( x , y ∣ z ) = P ( x , y , z ) P ( z ) = P ( x , y , z ) P ( y , z ) ⋅ P ( y , z ) P ( z ) = P ( x ∣ y , z ) P ( y ∣ z ) \begin{aligned} P(x,y|z)&=\frac{P(x,y,z)}{P(z)} \\ &=\frac{P(x,y,z)}{P(y,z)}\cdot \frac{P(y,z)}{P(z)} \\ &=P(x|y,z)P(y|z) \end{aligned} P(x,yz)=P(z)P(x,y,z)=P(y,z)P(x,y,z)P(z)P(y,z)=P(xy,z)P(yz)

因此有 P ( x , y ∣ z ) = P ( x ∣ y , z ) p ( y ∣ z ) P(x,y|z)=P(x|y,z)p(y|z) P(x,yz)=P(xy,z)p(yz)

  1. 贝叶斯递推公式

由此,我们来推导贝叶斯滤波的递推公式:

我们的目标是: P ( x ∣ z 1 , … , z n ) P(x|z_1,\dots,z_n) P(xz1,,zn)

这里我们把 z n z_n zn看作 y y y,把 z 1 , … , z n − 1 z_1,\dots,z_{n-1} z1,,zn1看作 z z z,代入上面的公式中 P ( x ∣ y , z ) = P ( y ∣ x , z ) P ( x ∣ z ) P ( y ∣ z ) P(x|y,z)=\frac{P(y|x,z)P(x|z)}{P(y|z)} P(xy,z)=P(yz)P(yx,z)P(xz)
得到:

P ( x ∣ z 1 , … , z n ) = P ( z n ∣ x , z 1 , … , z n – 1 )    P ( x ∣ z 1 , … , z n – 1 ) P ( z n ∣ z 1 , … , z n – 1 ) P(x|z_1, \ldots ,z_n) = \frac{{P(z_n|x,z_1, \ldots ,z_{n – 1})\;P(x|z_1, \ldots ,z_{n – 1})}}{{P(z_n|z_1, \ldots ,z_{n – 1})}} P(xz1,,zn)=P(znz1,,zn1)P(znx,z1,,zn1)P(xz1,,zn1)

再由Markov性质,在 x x x已知的情况下, z n z_n zn { z 1 , … , z n − 1 } \{z_1,\dots ,z_{n-1}\} {z1,,zn1}无关,所以:
P ( x ∣ z 1 , … , z n ) = P ( z n ∣ x , z 1 , … , z n – 1 )    P ( x ∣ z 1 , … , z n – 1 ) P ( z n ∣ z 1 , … , z n – 1 ) = P ( z n ∣ x )    P ( x ∣ z 1 , … , z n – 1 ) P ( z n ∣ z 1 , … , z n – 1 ) \begin{aligned} P(x|z_1, \ldots ,z_n) &= \frac{{P(z_n|x,z_1, \dots ,z_{n – 1})\;P(x|z_1, \ldots ,z_{n – 1})}}{{P(z_n|z_1, \dots ,z_{n – 1})}}\\ &=\frac{{P(z_n|x)\;P(x|z_1, \dots ,z_{n – 1})}}{{P(z_n|z_1, \dots ,z_{n – 1})}} \end{aligned} P(xz1,,zn)=P(znz1,,zn1)P(znx,z1,,zn1)P(xz1,,zn1)=P(znz1,,zn1)P(znx)P(xz1,,zn1)
从而我们得到贝叶斯的递推公式:
P ( x ∣ z 1 , … , z n ) = P ( z n ∣ x )    P ( x ∣ z 1 , … , z n − 1 ) P ( z n ∣ z 1 , … , z n − 1 ) = η n    P ( z n ∣ x )    P ( x ∣ z 1 , … , z n − 1 ) = η n    P ( z n ∣ x )    η n − 1 P ( z n − 1 ∣ x ) P ( x ∣ z 1 , … , z n − 2 ) = η 1 ⋯ η n    ∏ i = 1 … n P ( z i ∣ x )    P ( x ) \begin{aligned} P(x|z_1, \dots ,z_n) &= \frac{P(z_n|x)\;P(x|z_1, \dots ,z_{n-1})}{P(z_n|z_1, \dots ,z_{n-1})}\\ & = {\eta _n}\;P({z_n}|x)\;P(x|{z_1}, \dots ,z_{n - 1})\\ & = {\eta _n}\;P({z_n}|x)\;{\eta _{n - 1}}P(z_{n - 1}|x)P(x|{z_1}, \ldots ,z_{n - 2})\\ & = {\eta _1} \cdots {\eta _n}\;\prod \limits_{i = 1\dots n} {P({z_i}|x)} \;P(x) \end{aligned} P(xz1,,zn)=P(znz1,,zn1)P(znx)P(xz1,,zn1)=ηnP(znx)P(xz1,,zn1)=ηnP(znx)ηn1P(zn1x)P(xz1,,zn2)=η1ηni=1nP(zix)P(x)

(二)如何融入动作

在实际问题中,对象总是处在一个动态变化的环境中,例如:

  1. 机器人自身的动作影响了环境状态

  2. 其它对象,比如人的动作影响了环境状态

  3. 或者就是简单的环境状态随着时间发生了变化.

如何在Bayes模型中来描述动作的影响呢?

  1. 首先,动作所带来的影响也总是具有不确定性的

  2. 其次,相比于观测,动作一般会使得对象的状态更为模糊(或更不确定).

我们用 u u u来描述动作,在 x ′ x' x状态下,执行了动作 u u u之后,对象状态改变为 x x x的概率表述为: P ( x ∣ u , x ′ ) P(x|u,x') P(xu,x)
动作对状态的影响一般由状态转移模型来描述.

执行某一动作后,计算动作后的状态概率,需要考虑动作之前的各种状态情况,把所有情况用全概率公式计算:

⋅ \cdot 连续情况下:
P ( x ∣ u ) = ∫ P ( x ∣ u , x ′ ) P ( x ′ ) d x ′ P(x|u) = \int {P(x|u,x')P(x')dx'} P(xu)=P(xu,x)P(x)dx

⋅ \cdot 离散情况下:
P ( x ∣ u ) = ∑ P ( x ∣ u , x ′ ) P ( x ′ ) P(x|u) = \sum {P(x|u,x')P(x')} P(xu)=P(xu,x)P(x)

(三) 贝叶斯滤波算法

算法设定

由上述推导和示例,我们可以给出贝叶斯滤波的算法,算法的输入输出设定如下:

1 ∘ 1^{\circ} 1 系统输入

  1. 1 1 1 t t t时刻的状态观测和动作: d t = { u 1 , z 1 , … , u t , z t } d_t=\{u_1,z_1,\dots ,u_t,z_t\} dt={u1,z1,,ut,zt}

  2. 观测模型: P ( z ∣ x ) P(z|x) P(zx)

  3. 动作的状态转移模型 P ( x ∣ u , x ′ ) P(x|u,x') P(xu,x)

  4. 系统状态的先验概率分布 P ( x ) P(x) P(x).

2 ∘ 2^{\circ} 2 期望输出

计算状态的后延概率,称为状态的置信概率 B e l ( x t ) = P ( x t ∣ u 1 , z 1 , … , u t , z t ) Bel(x_t)=P(x_t|u_1,z_1,\dots,u_t,z_t) Bel(xt)=P(xtu1,z1,,ut,zt)

[z = observation, u = action,x = state ]

3 ∘ 3^{\circ} 3算法的基本假设

贝叶斯滤波的基本假设:

  1. Markov性假设:t时刻的状态由 t − 1 t−1 t1时刻的状态和t时刻的动作决定。 t t t时刻的观测仅同 t t t时刻的状态相关,如下图所示:
贝叶斯滤波(Bayes filters)_第1张图片

p ( z t ∣ x 0 : t , z 1 : t , u 1 : t )    =    p ( z t ∣ x t ) p({z_t}|{x_{0:t}},{z_{1:t}},{u_{1:t}})\; = \;p({z_t}|{x_t}) p(ztx0:t,z1:t,u1:t)=p(ztxt) p ( x t ∣ x 1 : t − 1 , z 1 : t , u 1 : t )    =    p ( x t ∣ x t − 1 , u t ) p({x_t}|{x_{1:t - 1}},{z_{1:t}},{u_{1:t}})\; = \; p({x_t}|{x_{t - 1}},{u_t}) p(xtx1:t1,z1:t,u1:t)=p(xtxt1,ut)

  1. 静态环境,即对象周边的环境假设是不变的.
  2. 观测噪声、模型噪声等是相互独立的.

4 ∘ 4^{\circ} 4 Bayes滤波算法
基于上述设定和假设,我们给出贝叶斯滤波算法的推导过程:
Bel ⁡ ( x t ) = P ( x t ∣ u 1 , z 1 … , u t , z t ) = η P ( z t ∣ x t , u 1 , z 1 , … , u t ) P ( x t ∣ u 1 , z 1 , … , u t ) < −  Bayes  = η P ( z t ∣ x t ) P ( x t ∣ u 1 , z 1 , … , u t ) < −  Markov  = η P ( z t ∣ x t ) ∫ P ( x t ∣ u 1 , z 1 , … , u t , x t − 1 ) P ( x t − 1 ∣ u 1 , z 1 , … , u t ) d x t − 1 < −  TotalProb.  = η P ( z t ∣ x t ) ∫ P ( x t ∣ u t , x t − 1 ) P ( x t − 1 ∣ u 1 , z 1 , … , u t ) d x t − 1 < −  Markov  = η P ( z t ∣ x t ) ∫ P ( x t ∣ u t , x t − 1 ) P ( x t − 1 ∣ u 1 , z 1 , … , z t − 1 ) d x t − 1 < −  Markov  = η P ( z t ∣ x t ) ∫ P ( x t ∣ u t , x t − 1 ) Bel ⁡ ( x t − 1 ) d x t − 1 \begin{array}{l}\operatorname{Bel}\left(x_{t}\right)=P\left(x_{t} | u_{1}, z_{1} \ldots, u_{t}, z_{t}\right) \\ =\eta P\left(z_{t} | x_{t}, u_{1}, z_{1}, \ldots, u_{t}\right) P\left(x_{t} | u_{1}, z_{1}, \ldots, u_{t}\right) \quad<-\text { Bayes } \\ =\eta P\left(z_{t} | x_{t}\right) P\left(x_{t} | u_{1}, z_{1}, \ldots, u_{t}\right) \quad<-\text { Markov } \\ =\eta P\left(z_{t} | x_{t}\right) \int P\left(x_{t} | u_{1}, z_{1}, \ldots, u_{t}, x_{t-1}\right) P\left(x_{t-1} | u_{1}, z_{1}, \ldots, u_{t}\right) d x_{t-1}<-\text { TotalProb. } \\ =\eta P\left(z_{t} | x_{t}\right) \int P\left(x_{t} | u_{t}, x_{t-1}\right) P\left(x_{t-1} | u_{1}, z_{1}, \ldots, u_{t}\right) d x_{t-1}<-\text { Markov } \\ =\eta P\left(z_{t} | x_{t}\right) \int P\left(x_{t} | u_{t}, x_{t-1}\right) P\left(x_{t-1} | u_{1}, z_{1}, \ldots, z_{t-1}\right) d x_{t-1}<-\text { Markov } \\ =\eta P\left(z_{t} | x_{t}\right) \int P\left(x_{t} | u_{t}, x_{t-1}\right) \operatorname{Bel}\left(x_{t-1}\right) d x_{t-1}\end{array} Bel(xt)=P(xtu1,z1,ut,zt)=ηP(ztxt,u1,z1,,ut)P(xtu1,z1,,ut)< Bayes =ηP(ztxt)P(xtu1,z1,,ut)< Markov =ηP(ztxt)P(xtu1,z1,,ut,xt1)P(xt1u1,z1,,ut)dxt1< TotalProb. =ηP(ztxt)P(xtut,xt1)P(xt1u1,z1,,ut)dxt1< Markov =ηP(ztxt)P(xtut,xt1)P(xt1u1,z1,,zt1)dxt1< Markov =ηP(ztxt)P(xtut,xt1)Bel(xt1)dxt1

其中第一步采用贝叶斯公式展开,第二步使用Markov性质( z t z_t zt仅由 x t x_t xt决定); 第三步使用全概率公式对 x t − 1 x_{t-1} xt1进行展开; 第四步继续使用Markov性质( x t x_t xt仅由 x t − 1 x_{t-1} xt1 u t u_t ut决定);第五步继续使用Markov性质,因为 x t − 1 x_{t-1} xt1 u t u_t ut无关,最终得到 B e l ( x t ) Bel(x_t) Bel(xt)的递推公式。

可见递推公式分为两个步骤, ∫ P ( x t ∣ u t , x t − 1 ) B e l ( x t − 1 ) d x t − 1 \int P(x_t|u_t,x_{t-1})Bel(x_{t-1})dx_{t-1} P(xtut,xt1)Bel(xt1)dxt1部分是基于 x t − 1 x_{t-1} xt1, u t u_t ut预测 x t x_t xt的状态; η P ( z t ∣ x t ) \eta P(z_t|x_t) ηP(ztxt)部分是基于观测 z t z_t zt更新状态 x t x_t xt.

你可能感兴趣的:(贝叶斯统计,统计机器学习)