前言
之前先写了卡尔曼滤波,事实上卡尔曼滤波只是贝叶斯滤波的一个特例。现在再来学习一下贝叶斯滤波,并引出从概率观点上的卡尔曼滤波推导。
什么是滤波
首先要解释一下什么是滤波。字面意思上,滤波就是把噪声过滤掉,但是我们需要一种更加普遍的解释方法,便于进行系统建模。
假设某一时刻系统的真实状态 为 x n 为x_n 为xn,我们可以通过传感器观测到系统的含噪状态 Z = { z 1 , z 2 , … , z n } Z=\{ z_1, z_2, \dots, z_n \} Z={z1,z2,…,zn},滤波就是通过 Z Z Z估计 x n x_n xn的过程。进一步还可以通过 Z Z Z估计 x n + 1 , x n + 2 x_{n+1}, x_{n+2} xn+1,xn+2,也就是预测。
贝叶斯公式
回顾一下概率论,假设有a,b是两个事件, B = { b i } B=\{ b_i \} B={bi}是一个完备事件组。
条件概率公式:
P
(
a
∣
b
)
=
P
(
a
,
b
)
P
(
b
)
P(a|b)=\frac {P(a, b)} {P(b)}
P(a∣b)=P(b)P(a,b)
全概率公式:
P
(
a
)
=
∑
P
(
a
∣
b
i
)
P
(
b
i
)
P(a)=\sum P(a|b_i)P(b_i)
P(a)=∑P(a∣bi)P(bi)
贝叶斯定理:
P
(
b
∣
a
)
=
P
(
a
∣
b
)
P
(
b
)
P
(
a
)
=
P
(
a
∣
b
)
P
(
b
)
∑
P
(
a
∣
b
i
)
P
(
b
i
)
P(b|a)=\frac {P(a|b)P(b)} {P(a)}=\frac {P(a|b)P(b)} {\sum P(a|b_i)P(b_i)}
P(b∣a)=P(a)P(a∣b)P(b)=∑P(a∣bi)P(bi)P(a∣b)P(b)
单独解释一下系统过程中的贝叶斯定理:
假设系统的真实状态分布为
X
X
X,观测到的状态分布为
Z
Z
Z,则有:
P
(
X
∣
Z
)
=
P
(
X
)
P
(
Z
∣
X
)
P
(
Z
)
∝
P
(
X
)
P
(
Z
∣
X
)
P(X|Z)=\frac {P(X)P(Z|X)} {P(Z)} \propto {P(X)P(Z|X)}
P(X∣Z)=P(Z)P(X)P(Z∣X)∝P(X)P(Z∣X)
X
X
X是状态;
Z
Z
Z是观测;
P
(
X
)
P(X)
P(X)是状态的先验估计;
P
(
X
∣
Z
)
P(X|Z)
P(X∣Z)是状态的后验估计;
P
(
Z
∣
X
)
P(Z|X)
P(Z∣X)是似然,即在状态分布
X
X
X下观测到
Z
Z
Z的可能;
P
(
Z
)
P(Z)
P(Z)是观测证据。
贝叶斯递推关系
由于滤波中需要考虑 Z = { z 1 : n } Z=\{ z_{1:n} \} Z={z1:n}个观测量,因此需要获得多变量之间的贝叶斯关系。
对于三个变量的贝叶斯定理:
P
(
x
∣
y
,
z
)
=
P
(
x
,
y
,
z
)
P
(
y
,
z
)
=
P
(
y
∣
x
,
z
)
P
(
x
,
z
)
P
(
y
∣
z
)
P
(
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(x|y, z) & = \frac {P(x,y,z)} {P(y, z)} \\ &= \frac {P(y|x,z)P(x,z)} {P(y|z)P(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{aligned}
P(x∣y,z)=P(y,z)P(x,y,z)=P(y∣z)P(z)P(y∣x,z)P(x,z)=P(y∣z)P(z)P(y∣x,z)P(x∣z)P(z)=P(y∣z)P(y∣x,z)P(x∣z)
扩展到多变量:
P
(
x
n
∣
z
n
,
z
1
:
n
−
1
)
=
P
(
z
n
∣
x
n
,
z
1
:
n
−
1
)
P
(
x
n
∣
z
1
:
n
−
1
)
P
(
z
n
∣
z
1
:
n
−
1
)
=
P
(
z
n
∣
x
n
,
z
1
:
n
−
1
)
P
(
z
n
∣
z
1
:
n
−
1
)
P
(
x
n
∣
z
1
:
n
−
1
)
=
P
(
z
n
∣
x
n
,
z
1
:
n
−
1
)
P
(
z
n
∣
z
1
:
n
−
1
)
P
(
z
n
−
1
∣
x
n
,
z
1
:
n
−
2
)
P
(
z
n
∣
z
1
:
n
−
2
)
P
(
x
n
∣
z
1
:
n
−
2
)
\begin{aligned} P(x_n|z_n, z_{1:n-1}) & = \frac {P(z_{n}|x_n,z_{1:n-1})P(x_n|z_{1:n-1})} {P(z_n|z_{1:n-1})} \\ & = \frac {P(z_{n}|x_n,z_{1:n-1})} {P(z_n|z_{1:n-1})} P(x_n|z_{1:n-1}) \\ & = \frac {P(z_{n}|x_n,z_{1:n-1})} {P(z_n|z_{1:n-1})} \frac {P(z_{n-1}|x_{n},z_{1:n-2})} {P(z_{n}|z_{1:n-2})} P(x_{n}|z_{1:n-2}) \\ \end{aligned}
P(xn∣zn,z1:n−1)=P(zn∣z1:n−1)P(zn∣xn,z1:n−1)P(xn∣z1:n−1)=P(zn∣z1:n−1)P(zn∣xn,z1:n−1)P(xn∣z1:n−1)=P(zn∣z1:n−1)P(zn∣xn,z1:n−1)P(zn∣z1:n−2)P(zn−1∣xn,z1:n−2)P(xn∣z1:n−2)
假设系统满足一阶马尔可夫性,则以上递推公式有一个很美观的结果:
P
(
x
n
∣
z
n
,
z
1
:
n
−
1
)
∝
∏
i
=
1
,
2
,
…
n
P
(
z
i
∣
x
n
)
P
(
x
n
)
\begin{aligned} P(x_n|z_n, z_{1:n-1}) & \propto \prod_{i=1,2,\dots n} P(z_i|x_n)P(x_n) \end{aligned}
P(xn∣zn,z1:n−1)∝i=1,2,…n∏P(zi∣xn)P(xn)
有了以上的贝叶斯理论基础,接下来就可以推导贝叶斯滤波了。