bayes滤波
考虑一般的离散时间动态系统:
xk+1yk=fk(xk,vk)=hk(xk,wk)
假设
(1) 初始状态
x0 的概率密度
p(x0) 已知;
(2) 过程噪声
vk 和观测噪声
wk 的统计性质已知;
(3) 状态
x0,过程噪声
{v1,v2,...} 和观测噪声
{w1,w2,...} 三者独立.
我们知道在观测结果为 y1:k 的条件下,状态 xk 的最小均方误差估计为:
xk|k=E(xk|y1:k)
下面给出 bayes 滤波的公式:
p(xk+1|y1:k)=∫p(xk+1,xk|y1:k)=∫p(xk+1|xk)p(xk|y1:k)dxk(1)
p(yk+1|y1:k)=∫p(yk+1,xk+1|y1:k)dxk+1=∫p(yk+1|xk+1)p(xk+1|y1:k)(3)
p(xk+1|y1:k+1)=p(xk+1,yk+1,y1:k)p(y1:k+1)=p(yk+1|xk+1)p(xk+1|y1:k)p(y1:k+1)(3)
于是
x^k+1|ky^k+1|kx^k+1=∫xk+1p(xk+1|y1:k)dxk+1(4)=∫yk+1p(yk+1|y1:k)dyk+1(5)=∫xk+1p(xk+1|y1:k+1)dxk+1(6)
标准Kalman滤波
考虑离散时间动态系统:
xk+1yk=Akxk+fkuk+wk=Ckxk+gkuk+vk
设系统满足上述三个条件,
x0 服从一个已知的正态分布,且过程噪声
vk 和观测噪声
wk 是零均值的高斯分布,协方差分别为
Qk,Rk.
k=1,2,3...
x^k+1|k=∫xk+1p(xk+1|y1:k)dxk+1=∫xk+1∫p(xk+1|xk)p(xk|y1:k)dxkdxk+1=∫∫xk+1p(xk+1|xk)p(xk|y1:k)dxk+1dxk(fubini定理)=∫(Akxk+fkuk)p(xk|y1:k)dxk=Akx^k+fkuk(7)
Σk+1|k=E(x^k+1|k−xk+1)(x^k+1|k−xk+1)T=E(Ak(x^k−xk)−wk)(Ak(x^k−xk)−wk)T=AkE(x^k−xk)(x^k−xk)TATk+Qk=AkΣk|kATk+Qk(8)
y^k+1|k=∫yk+1p(yk+1|y1:k)dyk+1=∫yk+1∫p(yk+1|xk+1)p(xk+1|y1:k)dxk+1dyk+1=∫∫yk+1p(yk+1|xk+1)p(xk+1|y1:k)dyk+1dxk+1(fubini定理)=∫(Ck+1xk+1+fk+1uk+1)p(xk+1|y1:k)dxk=Ck+1x^k+1|k+fk+1uk+1(9)
Sk+1=E(y^k+1|k−yk+1)(y^k+1|k−yk+1)T=E(Ck+1(x^k+1|k−xk+1)−vk+1)(Ck+1(x^k+1|k−xk+1)−vk+1)T=Ck+1E(x^k+1|k−xk+1)(x^k+1|k−xk+1)TCTk+1+Rk+1=Ck+1Σk+1|kCTk+1+Rk+1(10)
一个有用的引理:
若 X 和 Y|X 都服从正态分布,且Y|X∼N(Cx+D,R),则 (X,Y) 也服从正态分布.
命题1:在标准Kalman滤波中,p(xk+1|y1:k)∼N(x^k+1|k,Σk+1|k).
证明:首先证明 p(xk+1|y1:k) 服从正态分布.
使用数学归纳法.
由于 p(x1) 和 p(y1|x1) 都服从正态分布,由上述引理可知
p(x1,y1) 是正态密度函数。
假设 p(xk,y1:k) 是正态的,则
p(xk+1,xk,y1:k)=p(xk+1|xk,y1:k)p(xk,y1:k)=p(xk+1|xk)p(xk,y1:k)(Markov性)
是正态的.从而它的边际分布
p(xk+1,y1:k)=∫p(xk+1,xk,y1:k)dxk
是正态的.于是得到它的条件分布
p(xk+1|y1:k)
是正态的.
同理可以证明
p(xk+1,y1:k+1)=p(yk+1|xk+1,y1:k)p(xk+1,y1:k)=p(yk+1|xk+1)p(xk+1,y1:k)(Markov性)
是正态的.再由(7)、(8)即可证明此命题.
命题2(Swiss-Army-Knife for Gaussians):
N(y;Cx+D,R)N(x;μ,P)=N(y;Cμ+D,CPCT+R)N(x;m,P−KCP)
其中,
K=PCT(CPCT+R)−1
m=μ+K(y−Cμ−D)
命题2的证明可以由正态分布的条件密度函数直接得到.
x^k+1=∫xk+1p(yk+1|xk+1)p(xk+1|y1:k)p(y1:k)dxk+1p(y1:k+1)=∫xk+1p(yk+1|xk+1)p(xk+1|y1:k)dxk+1∫p(yk+1|xk+1)p(xk+1|y1:k)dxk+1=∫xk+1p˜(xk+1)N(yk+1;yk+1|k,Sk+1)dxk+1∫p˜(xk+1)N(yk+1;yk+1|k,Sk+1)dxk+1(命题2)=x^k+1|k+Σk+1|kCTk+1(Rk+1+Ck+1Σk+1|kCTk+1)−1(yk+1−y^k+1|k)(11)
其中,
p˜(xk+1)=N(xk+1;x^k+1|k+Σk+1|kCTk+1(Rk+1+Ck+1Σk+1|kCTk+1)−1(yk+1−y^k+1|k),Σk+1|k−Σk+1|kCTk+1(Rk+1+Ck+1Σk+1|kCTk+1)−1Ck+1Σk+1|k)
由此可直接得出
Σk+1=Σk+1|k−Σk+1|kCTk+1(Rk+1+Ck+1Σk+1|kCTk+1)−1Ck+1Σk+1|k(12)
至此,标准Kalman滤波公式就已经完全由bayes滤波导出了.