-
Bayesian Filter
x x x表示state, y y y表示observation
P ( x ∣ y ) P(x|y) P(x∣y)表示后验概率, P ( y ∣ x ) P(y | x) P(y∣x)表示先验概率。-
Bayesian公式
P ( x , y ) = P ( x ∣ y ) P ( y ) = P ( y ∣ x ) P ( x ) P(x, y) = P(x | y)P(y) = P(y | x)P(x) P(x,y)=P(x∣y)P(y)=P(y∣x)P(x) P ( x ∣ y ) = P ( y ∣ x ) P ( x ) P ( y ) = c a u s a l k n o w l e d g e ⋅ p r i o r k n o w l e d g e p r i o r k n o w l e d g e P(x|y) = \frac{P(y|x)P(x)}{P(y)} = \frac{causal knowledge \cdot prior knowledge}{prior knowledge} P(x∣y)=P(y)P(y∣x)P(x)=priorknowledgecausalknowledge⋅priorknowledge
note: P ( x ∣ y ) P(x|y) P(x∣y)是基于观测对状态的诊断或推测。贝叶斯公式的本质就是利用causal knowledge和prior knowledge来进行状态推理或推断。
我们再看贝叶斯公式的分母 P ( y ) P(y) P(y),同 P ( x ∣ y ) P(x|y) P(x∣y)无关,所以可以把它作为归一化系数看待:
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(x∣y)=P(y)P(y∣x)P(x)=ηP(y∣x)P(x) η = P ( y ) − 1 = ( ∑ x P ( y ∣ x ) P ( x ) ) − 1 \eta = P(y)^{-1} = (\sum_{x}P(y|x)P(x))^{-1} η=P(y)−1=(x∑P(y∣x)P(x))−1 -
Bayesian递推公式
-
Bayesian Filter
算法的输入输出设定如下:
- 系统输入
1.1到 t t t时刻的状态观测和动作: d t = { u 1 , z 1 , . . . , u t , z t } d_{t} = \left \{ u_{1}, z_{1}, ..., u_{t}, z_{t} \right \} dt={u1,z1,...,ut,zt} - 期望输出
- 系统输入
-
KF建立在线性代数和隐马尔可夫模型上。
KF利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置好的估计:这个估计可以是对当前目标位置的估计(滤波),也可以是对将来位置的估计(预测),也可以是对过去位置的估计(插值或平滑)。
卡尔曼滤波是一种递归的估计,即只要获知上一时刻的状态的估计值以及当前状态的观测值,就可以计算出当前状态的估计值。因此不需要记录观测或者估计的历史信息。卡尔曼滤波器与大多数滤波器不同之处,在于它是一种纯粹的时域滤波器,它不需要像低通滤波器等频域滤波器那样,需要在频域设计再转换到时域实现。
为了从一系列有噪声的观察数据中用卡尔曼滤波器估计出被观察过程的内部状态,必须把这个过程在KF的框架下建立模型,系统的状态方程为:
x
k
=
F
k
x
k
−
1
+
B
k
u
k
+
w
k
x_{k} = F_{k}x_{k-1} + B_{k}u_{k} + w_{k}
xk=Fkxk−1+Bkuk+wk
其中
F
k
F_{k}
Fk——作用在
x
k
−
1
x_{k-1}
xk−1上的状态变换模型
B
k
B_{k}
Bk——作用在控制器向量
u
k
u_{k}
uk上的输入-控制模型
w
k
w_{k}
wk——过程噪声,假定其符合均值为0,协方差矩阵为
Q
k
Q_{k}
Qk的多元高斯分布
w
k
∼
N
(
0
,
Q
k
)
w_{k} \sim N(0, Q_{k})
wk∼N(0,Qk)
在时刻
k
k
k,对真实状态
x
k
x_{k}
xk的一个测量
z
k
z_{k}
zk满足:
z
k
=
H
k
x
k
+
v
k
z_{k} = H_{k}x_{k} + v_{k}
zk=Hkxk+vk
其中
H
k
H_{k}
Hk——观测模型,他把真是状态空间映射成观测空间
v
k
v_{k}
vk——观测噪声,服从高斯分布,其均值为0,协方差矩阵为
R
k
R_{k}
Rk,
v
k
∼
N
(
0
,
R
k
)
v_{k} \sim N(0, R_{k})
vk∼N(0,Rk)
注意:
初始状态以及每一时刻的噪声
[
x
0
,
w
1
,
.
.
.
,
w
k
,
v
1
,
.
.
.
,
v
k
]
[x_{0}, w_{1}, ..., w_{k}, v_{1}, ..., v_{k}]
[x0,w1,...,wk,v1,...,vk]都认为是相互独立的。
KF的状态由以下两个变量表示:
- x ^ k ∣ k \hat{x}_{k|k} x^k∣k,在时刻 k k k的状态的估计
- P k ∣ k P_{k|k} Pk∣k,后验估计误差协方差矩阵,度量估计值的精确程度
KF的操作包括两个阶段:预测和更新。
- 预测:在预测阶段,滤波器使用上一状态的估计,做出对当前状态的估计。
- 更新:在更新阶段,滤波器利用对当前状态的观测值优化在预测阶段获得的预测值,以获得一个更精确的新估计值。
下面对预测和更新进行详细的介绍: