引言
贝叶斯滤波的应用无处不在,著名的卡尔曼滤波就是在这么一个背景下应用的。下面开始公式的推导。
1.贝叶斯公式推导
对于
p
(
x
∣
y
)
=
p
(
y
∣
x
)
p
(
x
)
p
(
y
)
p(x|y)=\frac{p(y|x)p(x)}{p(y)}
p(x∣y)=p(y)p(y∣x)p(x),每个人都可以简单地推导,但是如果应用多一个场景,比如在
Z
=
z
Z=z
Z=z时的
p
(
x
∣
y
,
z
)
p(x|y,z)
p(x∣y,z),那么这个推导就会麻烦一点。
下面给出
p
(
x
∣
y
,
z
)
的
推
导
p(x|y,z)的推导
p(x∣y,z)的推导
p
(
x
∣
y
,
z
)
=
p
(
y
,
z
∣
x
)
p
(
x
)
p
(
y
,
z
)
=
p
(
x
,
y
,
z
)
p
(
y
,
z
)
=
p
(
x
,
y
,
z
)
p
(
y
∣
z
)
p
(
z
)
=
p
(
x
,
y
,
z
)
p
(
x
,
z
)
p
(
y
∣
z
)
p
(
z
)
p
(
x
,
z
)
∵
p
(
x
,
y
,
z
)
p
(
x
,
z
)
=
p
(
y
∣
x
,
z
)
,
p
(
x
,
z
)
p
(
z
)
=
p
(
x
∣
z
)
∴
p
(
x
∣
y
,
z
)
=
p
(
y
∣
x
,
z
)
p
(
x
∣
z
)
p
(
y
∣
z
)
p(x|y,z)=\frac{p(y,z|x)p(x)}{p(y,z)}\\=\frac{p(x,y,z)}{p(y,z)}\\=\frac{p(x,y,z)}{p(y|z)p(z)}\\=\frac{p(x,y,z)p(x,z)}{p(y|z)p(z)p(x,z)}\\\because \frac{p(x,y,z)}{p(x,z)}=p(y|x,z),\frac{p(x,z)}{p(z)}=p(x|z)\\\therefore p(x|y,z)=\frac{p(y|x,z)p(x|z)}{p(y|z)}
p(x∣y,z)=p(y,z)p(y,z∣x)p(x)=p(y,z)p(x,y,z)=p(y∣z)p(z)p(x,y,z)=p(y∣z)p(z)p(x,z)p(x,y,z)p(x,z)∵p(x,z)p(x,y,z)=p(y∣x,z),p(z)p(x,z)=p(x∣z)∴p(x∣y,z)=p(y∣z)p(y∣x,z)p(x∣z)
这是一个多加了一个条件的推导,如果扩展到很多个条件也是一样的。好了有了这个贝叶斯的数学基础我们就可以知道对于一个条件后验概率来说,它是有相对独立性的,即对于上面式子中的 p ( y , z ∣ x ) p(y,z|x) p(y,z∣x)表示的是在 x x x的条件下, ( y , z ) (y,z) (y,z)的概率,但是一般地对于我们现实生活或者其他应用来说,这是相对独立的,即条件独立,有 p ( y , z ∣ x ) = p ( y ∣ x ) p ( z ∣ x ) p(y,z|x)=p(y|x)p(z|x) p(y,z∣x)=p(y∣x)p(z∣x),这和 x , y x,y x,y相互独立不是一个概念。
2.贝叶斯滤波
对于一个事件
x
x
x,我们把它的发生概率
p
(
x
)
p(x)
p(x)称为先验概率,但是当
x
x
x在
y
y
y条件下发生时,就会有
p
(
x
∣
y
)
p(x|y)
p(x∣y),这个就成为在
y
y
y条件下的后验概率。而贝叶斯滤波就是这么一个先验和后验的计算,听起来是不是很简单呢。只不过这个先验我们把它称为预测,后验称为更新罢了。
下面举个例子来说明一下这个滤波的推导:
假设有一辆小车,我们不知道它的初始状态,但是我们可以有它在0时刻到t时刻,给予它的加速度
u
1
:
t
−
1
u_{1:t-1}
u1:t−1即控制量,还有在 每个时刻的速度和位置
z
1
:
t
−
1
z_{1:t-1}
z1:t−1即观测量。对于我们当前小车所处的位置x,我们就可以通过一个基于1:t时刻控制量和观测量来预测它当前的位置。
这就是贝叶斯滤波的第一个阶段-----预测。它可以表示为在第t-1时刻的状态下施加一个加速度给它,即
u
i
u_i
ui,那小车的状态(速度和位置)表示为:
p
(
x
t
∣
u
1
:
t
,
z
1
:
t
−
1
)
p(x_t|u_{1:t},z_{1:t-1})
p(xt∣u1:t,z1:t−1)
在此,我们引入一个我们已经知道的变量
x
t
−
1
x_{t-1}
xt−1,这样我们的式子就可以表示为(根据1.贝叶斯公式推导)
p
(
x
t
∣
u
1
:
t
,
z
1
:
t
−
1
)
=
∫
p
(
x
t
∣
x
t
−
1
,
z
1
:
t
−
1
,
u
1
:
t
)
p
(
x
t
−
1
∣
z
1
:
t
−
1
,
u
1
:
t
)
d
(
x
t
−
1
)
∵
u
t
对
于
x
t
−
1
是
没
有
用
的
。
=
∫
p
(
x
t
∣
x
t
−
1
,
z
1
:
t
−
1
,
u
1
:
t
)
p
(
x
t
−
1
∣
z
1
:
t
−
1
,
u
1
:
t
−
1
)
d
(
x
t
−
1
)
∵
z
(
1
:
t
−
1
)
在
存
在
x
t
−
1
的
情
况
下
对
于
x
t
是
没
有
用
的
。
=
∫
p
(
x
t
∣
x
t
−
1
,
u
1
:
t
)
p
(
x
t
−
1
∣
z
1
:
t
−
1
,
u
1
:
t
−
1
)
d
(
x
t
−
1
)
p(x_t|u_{1:t},z_{1:t-1})\\= \int p(x_t|x_{t-1},z_{1:t-1},u_{1:t})p(x_{t-1}|z_{1:t-1},u_{1:t})d(x_{t-1})\\\because u_t对于x_{t-1}是没有用的。\\=\int p(x_t|x_{t-1},z_{1:t-1},u_{1:t})p(x_{t-1}|z_{1:t-1},u_{1:t-1})d(x_{t-1})\\\because z_(1:t-1)在存在x_{t-1}的情况下对于x_{t}是没有用的。\\=\int p(x_t|x_{t-1},u_{1:t})p(x_{t-1}|z_{1:t-1},u_{1:t-1})d(x_{t-1})
p(xt∣u1:t,z1:t−1)=∫p(xt∣xt−1,z1:t−1,u1:t)p(xt−1∣z1:t−1,u1:t)d(xt−1)∵ut对于xt−1是没有用的。=∫p(xt∣xt−1,z1:t−1,u1:t)p(xt−1∣z1:t−1,u1:t−1)d(xt−1)∵z(1:t−1)在存在xt−1的情况下对于xt是没有用的。=∫p(xt∣xt−1,u1:t)p(xt−1∣z1:t−1,u1:t−1)d(xt−1)
我们把这个式子得到的标记为在t时刻的预测值
b
e
l
(
x
t
)
bel(x_t)
bel(xt)。
然后就是通过观测它的值来指导更新我们前面的预测,如下所示。
p
(
x
t
∣
u
1
:
t
,
z
1
:
t
−
1
,
z
t
)
=
p
(
z
t
∣
x
t
,
z
1
:
t
−
1
,
u
1
:
t
)
p
(
x
t
,
z
1
:
t
−
1
,
u
1
:
t
)
p
(
u
1
:
t
,
z
1
:
t
−
1
,
z
t
)
=
p
(
z
t
∣
x
t
,
z
1
:
t
−
1
,
u
1
:
t
)
p
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
p
(
z
1
:
t
−
1
,
u
1
:
t
)
p
(
z
t
∣
u
1
:
t
,
z
1
:
t
−
1
)
p
(
u
1
:
t
,
z
1
:
t
−
1
)
=
p
(
z
t
∣
x
t
,
z
1
:
t
−
1
,
u
1
:
t
)
p
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
p
(
z
t
∣
u
1
:
t
,
z
1
:
t
−
1
)
∵
在
马
尔
科
夫
假
设
下
(
世
界
是
完
整
的
)
,
p
(
z
t
∣
x
t
,
z
1
:
t
−
1
,
u
1
:
t
)
中
,
z
t
只
与
x
t
是
相
关
的
,
简
化
为
p
(
z
t
∣
x
t
)
。
同
样
的
分
母
的
p
(
z
t
∣
u
1
:
t
,
z
1
:
t
−
1
)
也
可
以
简
化
为
p
(
z
t
)
,
即
为
一
个
常
数
,
我
们
用
一
个
归
一
化
因
子
η
表
示
p(x_t|u_{1:t},z_{1:t-1},z_t)\\=\frac{p(z_t|x_t,z_{1:t-1},u_{1:t})p(x_t,z_{1:t-1},u_{1:t})}{p(u_{1:t},z_{1:t-1},z_t)}\\=\frac{p(z_t|x_t,z_{1:t-1},u_{1:t})p(x_t|z_{1:t-1},u_{1:t})p(z_{1:t-1},u_{1:t})}{p(z_t|u_{1:t},z_{1:t-1})p(u_{1:t},z_{1:t-1})}\\=\frac{p(z_t|x_t,z_{1:t-1},u_{1:t})p(x_t|z_{1:t-1},u_{1:t})}{p(z_t|u_{1:t},z_{1:t-1})}\\\because 在马尔科夫假设下(世界是完整的),p(z_t|x_t,z_{1:t-1},u_{1:t})中,\\ z_t只与x_t是相关的,简化为p(z_t|x_t)。\\ 同样的分母的p(z_t|u_{1:t},z_{1:t-1})也可以简化为p(z_t),\\即为一个常数,我们用一个归一化因子\eta 表示
p(xt∣u1:t,z1:t−1,zt)=p(u1:t,z1:t−1,zt)p(zt∣xt,z1:t−1,u1:t)p(xt,z1:t−1,u1:t)=p(zt∣u1:t,z1:t−1)p(u1:t,z1:t−1)p(zt∣xt,z1:t−1,u1:t)p(xt∣z1:t−1,u1:t)p(z1:t−1,u1:t)=p(zt∣u1:t,z1:t−1)p(zt∣xt,z1:t−1,u1:t)p(xt∣z1:t−1,u1:t)∵在马尔科夫假设下(世界是完整的),p(zt∣xt,z1:t−1,u1:t)中,zt只与xt是相关的,简化为p(zt∣xt)。同样的分母的p(zt∣u1:t,z1:t−1)也可以简化为p(zt),即为一个常数,我们用一个归一化因子η表示
p
(
x
t
∣
u
1
:
t
,
z
1
:
t
−
1
,
z
t
)
=
p
(
z
t
∣
x
t
)
p
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
p
(
z
t
)
=
η
p
(
z
t
∣
x
t
)
b
e
l
(
x
t
)
p(x_t|u_{1:t},z_{1:t-1},z_t)\\=\frac{p(z_t|x_t)p(x_t|z_{1:t-1},u_{1:t})}{p(z_t)}\\=\eta{p(z_t|x_t)bel(x_t)}
p(xt∣u1:t,z1:t−1,zt)=p(zt)p(zt∣xt)p(xt∣z1:t−1,u1:t)=ηp(zt∣xt)bel(xt)
最终我们的预测和更新就关联起来了。