基于序贯重要性重采样的粒子滤波
尽管高斯逼近可以有效的解决许多问题,但当滤波分布为多模型或者某些状态为离散时,高斯逼近将不再适用。
在贝叶斯推理中,主要的推理问题可简化为求解下列后验分布的期望值:
上式通常需要利用数值计算求解,其中在理想的蒙特卡洛逼近中,抽取
N
\bm{N}
N个独立的随机样本
x
(
i
)
\bm{x^{(i)}}
x(i),且有
x
(
i
)
∼
p
(
x
∣
y
1
:
T
)
,
i
=
1
,
⋅
⋅
⋅
,
N
\bm{x^{(i)}\sim p(x|y_{1:T})}, i=1,\cdot \cdot \cdot, N
x(i)∼p(x∣y1:T),i=1,⋅⋅⋅,N。故期望的表达式为:
重要性采样
在实际的贝叶斯模型中,由于函数比较复杂,难以直接从
p
(
x
∣
y
1
:
T
)
\bm{ p(x|y_{1:T})}
p(x∣y1:T)获取样本。故采用重要性采样,重重要性分布
π
(
x
∣
y
1
:
T
)
\bm{ \pi(x|y_{1:T})}
π(x∣y1:T)中获取样本。将原先的积分式构造成函数关于重要性分布的积分式:其中,
则期望值可近似为:
其权值为:
重要性采样算法
已知量测模型
p
(
y
1
:
T
∣
x
)
\bm{p(y_{1:T}|x)}
p(y1:T∣x)和先验分布
p
(
x
)
\bm{p(x)}
p(x),后验部分的重要性采样逼近为:
1). 重要性分布中抽取
N
\bm{N}
N个样本:
2). 计算非归一化权值:
归一化权值为:
3). 由此可得
g
(
x
)
\bm{g(x)}
g(x)的后验分布的期望逼近为:
后验概率密度逼近为:
式中,
δ
(
⋅
)
\bm{\delta(\cdot)}
δ(⋅)为狄拉克函数。
序贯重要性重采样SIR(粒子滤波)
其中,序贯重要性采样(SIS)是对重要性采样的一种序列形式,该算法可对一般状态空间模型的滤波分布进行重要性采样。
在序贯序贯重要性采样中,存在大多是粒子的权值为零或者近似为零。这一现象称为粒子退化问题。利用重采样法可以解决粒子退化的问题。
从先验分布中抽取
N
\bm{N}
N个样本
x
0
(
i
)
\bm{x^{(i)}_0}
x0(i):
对所有的
i
=
1
,
⋅
⋅
⋅
,
N
\bm{i = 1, \cdot \cdot \cdot, N}
i=1,⋅⋅⋅,N,令
w
0
(
i
)
=
1
N
\bm{w_0^{(i)}=\frac{1}{N}}
w0(i)=N1。
对每个
k
=
1
,
⋅
⋅
⋅
,
T
\bm{k=1, \cdot \cdot \cdot, T}
k=1,⋅⋅⋅,T 有:
1). 从重要性分布中抽取
x
k
(
i
)
x_k^{(i)}
xk(i):
2). 计算权值:
将权值归一化,使其和为1.
3). 估计有效粒子数,
n
e
f
f
\bm{n_{eff}}
neff。若有效粒子数过少,则执行重采样。
该算法的性能2依赖于重要性分布
π
(
⋅
)
\bm{\pi(\cdot)}
π(⋅)的选择。重要性分布应满足易于从重要性分布中抽取样本,且能够计算样本点的概率密度为原则。方差最优重要性分布为;
如果最优重要性分布不能直接实现,则可通过进行局部线性化得到。利用扩展卡尔曼滤波EKF,无迹卡尔曼滤波UKF等非线性卡尔曼滤波器,可得到重要性分布。
重采样过程
从离散分布中抽取N个样本来带替旧的样本集。具体参考下链接:
https://www.cnblogs.com/gary-guo/p/6244011.html。
Rao-Blackwellized粒子滤波RBPF(混合卡尔曼滤波器MKF)
其思想是对滤波方程计算解析解,而其他方程用蒙特卡罗采样代替纯采样进行估计。
常见的
R
a
o
−
B
l
a
c
k
w
e
l
l
i
z
e
d
\bm{Rao-Blackwellized}
Rao−Blackwellized粒子滤波方程是指线性高斯模型条件分布的边缘化滤波:
式中,
x
k
\bm{x_k}
xk为状态量,
y
k
\bm{y_k}
yk为量测量,
u
k
\bm{u_k}
uk为任意未知变量。
滤波步骤:
已知重要性分布序列
π
(
u
k
∣
u
0
,
k
−
1
(
i
)
,
y
1
:
k
)
\pi(u_k|u^{(i)}_{0,k-1}, y_{1:k})
π(uk∣u0,k−1(i),y1:k)和带权值的样本集
{ w k − 1 ( i ) , u k − 1 ( i ) , m k − 1 ( i ) , P k − 1 ( i ) : i = 1 , 2 , ⋅ ⋅ ⋅ . N } \bm{\{w^{(i)}_{k-1},u^{(i)}_{k-1},m^{(i)}_{k-1},P^{(i)}_{k-1}:i=1,2,\cdot \cdot \cdot.N\}} {wk−1(i),uk−1(i),mk−1(i),Pk−1(i):i=1,2,⋅⋅⋅.N},
则利用RBPF对量测量
y
k
y_k
yk进行解算步骤如下:
1). 首先提取潜在变量
u
k
−
1
(
i
)
\bm{u^{(i)}_{k-1}}
uk−1(i),对每个粒子
i
=
1
,
2
,
⋅
⋅
⋅
,
N
i=1,2,\cdot \cdot \cdot, N
i=1,2,⋅⋅⋅,N计算出卡尔曼滤波的预测均值和预测协方差:
2). 对每个粒子
i
=
1
,
2
,
⋅
⋅
⋅
,
N
i=1,2,\cdot \cdot \cdot, N
i=1,2,⋅⋅⋅,N,从相应的重要性分布中提取新的钱潜变量
u
k
(
i
)
\bm{u^{(i)}_k}
uk(i):
3). 计算新的权值:
由上始可知,卡尔曼滤波的模型参数是所提取潜在变量
u
k
(
i
)
\bm{u^{(i)}_k}
uk(i)的条件分布,且其权值归一化为1;式中,似然项为卡尔曼滤波边缘量测量的似然分布:
4). 根据潜变量
u
k
(
i
)
\bm{u^{(i)}_k}
uk(i),对每个粒子执行卡尔曼滤波更新:
5). 若有效粒子数过少,则执行重采样操作。
RBPF粒子滤波器在每 k \bm{k} k个时刻产生一个权值样本集
{
w
k
(
i
)
,
u
k
(
i
)
,
m
k
(
i
)
,
P
k
(
i
)
:
i
=
1
,
2
,
⋅
⋅
⋅
.
N
}
\bm{\{w^{(i)}_{k},u^{(i)}_{k},m^{(i)}_{k},P^{(i)}_{k}:i=1,2,\cdot \cdot \cdot.N\}}
{wk(i),uk(i),mk(i),Pk(i):i=1,2,⋅⋅⋅.N},因此函数
g
(
⋅
)
\bm{g(\cdot)}
g(⋅)的期望可近似为:
同理,RBPF也可表述为一下滤波分布的逼近:
在RBPF中使重要性权值方差最小化的重要性分布,即最优重要性分布为
卒。