在寻求平滑方法解决非线性或非高斯问题时,利用高斯逼近方法可能无法得到足够精确的逼近解。此时,最佳的解决办法是采用蒙特卡洛(粒子)逼近。
本文中一些内容是在粒子滤波基础而来,如有不懂,可参考。
SIR粒子平滑器
SIR粒子平滑器直接将SIR算法应用于平滑。
即:基于直接序列重要性重采样的平滑方法:
⋅
\bm{\cdot}
⋅ 从先验分布中抽取
N
\bm{N}
N 个采样点
x
0
(
i
)
\bm{x_0^{(i)}}
x0(i):式中:对所有的
i
=
1
,
2
,
⋅
⋅
⋅
,
N
\bm{i=1,2,\cdot\cdot\cdot,N}
i=1,2,⋅⋅⋅,N,有
w
0
(
i
)
=
1
/
N
\bm{w_0^{(i)}=1/N}
w0(i)=1/N。对过去状态量进行初始化包含先验分布采样的
x
0
(
i
)
\bm{x_0^{(i)}}
x0(i)。
⋅
\bm{\cdot}
⋅ 对每个时刻
k
=
1
,
2
,
⋅
⋅
⋅
,
T
\bm{k=1,2,\cdot\cdot\cdot,T}
k=1,2,⋅⋅⋅,T,执行如下步骤:
1). 从重要性分布中抽取
N
\bm{N}
N 个新的采样点
x
k
(
i
)
\bm{x_k^{(i)}}
xk(i):
2). 计算新的权值:
并将其权值归一化处理。
3). 将过去的所有状态和当前状态包含进状态集中:
4). 根据下式,若有效粒子数过少,则对过去的所有状态执行重采样。
式中,的
w
k
(
i
)
\bm{w_k^{(i)}}
wk(i),为归一化权值。
后向模拟粒子平滑器
SIR粒子平滑器只是存储过去的粒子数据,有较严重的平滑器退化问题。后向模拟粒子平滑器通过重新利用滤波结果得以有效缓解。
**后向模拟粒子平滑器:**已知粒子及其权值集合:执行以下步骤可以计算出滤波分布:
⋅
\bm{\cdot}
⋅ 记
x
~
T
=
x
T
(
i
)
\bm{\widetilde x_T=x_T^{(i)}}
x
T=xT(i),且其权值为
w
T
(
i
)
\bm{w_T^{(i)}}
wT(i)。
⋅
\bm{\cdot}
⋅ 对于
k
=
T
−
1
,
⋅
⋅
⋅
,
0
\bm{k=T-1,\cdot\cdot\cdot,0}
k=T−1,⋅⋅⋅,0:
1). 通过下式计算新权值:
2). 记
x
~
k
=
x
k
(
i
)
\bm{\widetilde x_k = x_k^{(i)}}
x
k=xk(i),且其权值为
w
k
(
i
)
\bm{w_k^{(i)}}
wk(i)。
重复
S
\bm{S}
S 次上述算法,即对于
j
=
1
,
2
,
⋅
⋅
⋅
,
S
,
\bm{j=1,2,\cdot\cdot\cdot,S,}
j=1,2,⋅⋅⋅,S, 分别得到样本轨迹
x
~
0
:
T
(
j
)
\bm{\widetilde x_{0:T}^{(j)}}
x
0:T(j),故平滑分布逼近为:
k
\bm{k}
k 时刻的边缘分布采用可以通过提取上述轨迹的第
k
\bm{k}
k 个元素精确获得。
重新加权平滑滤波
重新加权粒子滤波,也称为边缘粒子滤波,通过计算SIR粒子的新权值获得对平滑分布的逼近。
**重新加权粒子滤波器:**已知粒子及其权值的集合:
可由如下步骤获得对边缘平滑的逼近:
⋅
\bm{\cdot}
⋅ 设
w
~
T
∣
T
(
i
)
=
w
T
(
i
)
\bm{\widetilde w_{T|T}^{(i)} =w_T^{(i)}}
w
T∣T(i)=wT(i),其中,
i
=
1
,
2
,
⋅
⋅
⋅
,
N
\bm{i=1,2,\cdot\cdot\cdot,N}
i=1,2,⋅⋅⋅,N。
⋅
\bm{\cdot}
⋅ 对每一时刻
k
=
T
−
1
,
⋅
⋅
⋅
,
0
\bm{k=T-1,\cdot\cdot\cdot,0}
k=T−1,⋅⋅⋅,0,分别计算新权值:
在每一时刻
k
k
k 的边缘平滑分布可近似为:
Rao-Blackwellized 粒子平滑器
Rao-Balckwellized粒子平滑器可用来计算如下高斯模型的平滑逼近:相关参数说明见https://blog.csdn.net/calabash_man/article/details/105772283。
该算法如下:
对于加权集合
{
w
T
s
,
(
i
)
,
u
0
:
T
s
,
(
i
)
,
m
0
:
T
s
,
(
i
)
,
P
0
:
T
s
,
(
i
)
:
i
=
1
,
⋅
⋅
⋅
,
N
}
\bm{\{w_T^{s,(i)},u_{0:T}^{s,(i)},m_{0:T}^{s,(i)},P_{0:T}^{s,(i)}:i=1,\cdot\cdot\cdot,N\}}
{wTs,(i),u0:Ts,(i),m0:Ts,(i),P0:Ts,(i):i=1,⋅⋅⋅,N} ,可通过以下步骤计算其平滑分布:
1). 类似于SIR粒子平滑器,通过储存Rao-Blackwellized粒子滤波器的过去状态量,计算Rao-Blackwellized的加权集合:
{
w
T
(
i
)
,
u
0
:
T
(
i
)
,
m
0
:
T
(
i
)
,
P
0
:
T
(
i
)
:
i
=
1
,
⋅
⋅
⋅
,
N
}
\bm{\{w_T^{(i)},u_{0:T}^{(i)},m_{0:T}^{(i)},P_{0:T}^{(i)}:i=1,\cdot\cdot\cdot,N\}}
{wT(i),u0:T(i),m0:T(i),P0:T(i):i=1,⋅⋅⋅,N}2). 设
w
T
s
,
(
i
)
=
w
T
(
i
)
u
T
s
,
(
i
)
=
u
T
(
i
)
\bm{w_T^{s,(i)}=w_T^{(i)}} \\ \bm{u_T^{s,(i)}=u_T^{(i)}}
wTs,(i)=wT(i)uTs,(i)=uT(i)3). 对过去状态
m
0
:
T
(
i
)
,
P
0
:
T
(
i
)
(
i
=
1
,
⋅
⋅
⋅
,
N
)
\bm{m_{0:T}^{(i)},P_{0:T}^{(i)}(i=1,\cdot\cdot\cdot,N)}
m0:T(i),P0:T(i)(i=1,⋅⋅⋅,N) 的所有均值和方差,利用RTS平滑器进行解算,的到平滑均值
m
0
:
T
s
,
(
i
)
\bm{m_{0:T}^{s,(i)}}
m0:Ts,(i)和方差
P
0
:
T
s
,
(
i
)
\bm{P_{0:T}^{s,(i)}}
P0:Ts,(i)。
(本文为个人笔记,犹如错误,欢迎留言交流)