粒子滤波
根据B站教程总结
贝叶斯滤波
一些公式
贝叶斯公式,
η
\eta
η可以看做归一化系数
X
:
状态
,
Y
:
观测
离散:
P
(
X
=
x
∣
Y
=
y
)
=
P
(
Y
=
y
∣
X
=
x
)
P
(
X
=
x
)
P
(
Y
=
y
)
=
η
P
(
Y
=
y
∣
X
=
x
)
P
(
X
=
x
)
连续
:
f
X
∣
Y
(
x
∣
y
)
=
f
Y
∣
X
(
y
∣
x
)
f
X
(
x
)
f
Y
(
y
)
=
η
f
Y
∣
X
(
y
∣
x
)
f
X
(
x
)
X:状态,Y:观测\\ 离散:P(X=x|Y=y)=\frac{P(Y=y|X=x)P(X=x)}{P(Y=y)}=\eta P(Y=y|X=x)P(X=x)\\ 连续: f_{X|Y}(x|y)=\frac{f_{Y|X}(y|x)f_X(x)}{f_Y(y)}=\eta f_{Y|X}(y|x)f_X(x)
X:状态,Y:观测离散:P(X=x∣Y=y)=P(Y=y)P(Y=y∣X=x)P(X=x)=ηP(Y=y∣X=x)P(X=x)连续:fX∣Y(x∣y)=fY(y)fY∣X(y∣x)fX(x)=ηfY∣X(y∣x)fX(x)
概率公式
P
(
X
=
x
)
=
lim
ε
→
0
f
(
x
<
X
<
x
+
ε
)
ε
P(X=x)=\lim_{\varepsilon\rightarrow 0}f(x<X<x+\varepsilon)\varepsilon
P(X=x)=ε→0limf(x<X<x+ε)ε
贝叶斯滤波
预测:
X
k
=
f
(
X
k
−
1
)
+
Q
k
观测:
Y
k
=
h
(
X
k
)
+
R
k
Q
k
,
R
k
是预测噪声和观测噪声
Q
k
,
R
k
,
X
0
独立
预测:X_k = f(X_{k-1})+Q_k\\ 观测:Y_k = h(X_k)+R_k\\ Q_k,R_k是预测噪声和观测噪声\\ Q_k,R_k,X_{0}独立
预测:Xk=f(Xk−1)+Qk观测:Yk=h(Xk)+RkQk,Rk是预测噪声和观测噪声Qk,Rk,X0独立
对于连续变量,
X
0
X_0
X0假定其概率密度函数为
f
0
f_0
f0
预测(得到先验概率)
P
(
X
1
=
u
)
=
∑
v
=
−
∞
v
=
∞
P
(
X
1
=
u
∣
X
0
=
v
)
P
(
X
0
=
v
)
=
∑
v
=
−
∞
v
=
∞
P
[
X
1
−
f
(
X
0
)
=
u
−
f
(
v
)
∣
X
0
=
v
]
P
(
X
0
=
v
)
X
k
−
1
与
Q
k
独立
=
∑
v
=
−
∞
v
=
∞
P
[
Q
1
=
u
−
f
(
v
)
]
P
(
X
0
=
v
)
=
lim
ε
→
0
∑
v
=
−
∞
v
=
∞
f
Q
1
(
u
−
f
(
v
)
)
ε
f
0
(
v
)
ε
=
lim
ε
→
0
∫
−
∞
∞
f
Q
1
(
u
−
f
(
v
)
)
f
0
(
v
)
d
v
ε
\begin{aligned} P(X_1=u)&=\sum_{v=-\infty}^{v=\infty}P(X_1=u|X_0=v)P(X_0=v)\\ &=\sum_{v=-\infty}^{v=\infty}P[X_1-f(X_{0})=u-f(v)|X_0=v]P(X_0=v)~~~X_{k-1}与Q_k独立\\ &=\sum_{v=-\infty}^{v=\infty}P[Q_1=u-f(v)]P(X_0=v)\\ &=\lim_{\varepsilon\rightarrow 0}\sum_{v=-\infty}^{v=\infty}f_{Q_1}(u-f(v))\varepsilon f_0(v)\varepsilon\\ &=\lim_{\varepsilon\rightarrow 0}\int_{-\infty}^{\infty}f_{Q_1}(u-f(v)) f_0(v)~dv~\varepsilon \end{aligned}
P(X1=u)=v=−∞∑v=∞P(X1=u∣X0=v)P(X0=v)=v=−∞∑v=∞P[X1−f(X0)=u−f(v)∣X0=v]P(X0=v) Xk−1与Qk独立=v=−∞∑v=∞P[Q1=u−f(v)]P(X0=v)=ε→0limv=−∞∑v=∞fQ1(u−f(v))εf0(v)ε=ε→0lim∫−∞∞fQ1(u−f(v))f0(v) dv ε
P
(
X
1
<
x
)
=
∑
u
=
−
∞
x
P
(
X
1
=
u
)
=
lim
ε
→
0
∑
u
=
−
∞
x
∫
−
∞
∞
f
Q
1
(
u
−
f
(
v
)
)
f
0
(
v
)
d
v
ε
=
∫
−
∞
x
∫
−
∞
∞
f
Q
1
(
u
−
f
(
v
)
)
f
0
(
v
)
d
v
d
u
\begin{aligned} P(X_1<x)&=\sum_{u=-\infty}^xP(X_1=u)\\ &=\lim_{\varepsilon\rightarrow 0}\sum_{u=-\infty}^x\int_{-\infty}^{\infty}f_{Q_1}(u-f(v)) f_0(v)~dv~\varepsilon\\ &=\int_{-\infty}^x\int_{-\infty}^{\infty}f_{Q_1}(u-f(v)) f_0(v)~dv~du \end{aligned}
P(X1<x)=u=−∞∑xP(X1=u)=ε→0limu=−∞∑x∫−∞∞fQ1(u−f(v))f0(v) dv ε=∫−∞x∫−∞∞fQ1(u−f(v))f0(v) dv du
预测得到X_1的概率密度函数:
f
1
−
(
x
)
=
d
P
(
X
1
<
x
)
d
x
=
∫
−
∞
∞
f
Q
1
[
x
−
f
(
v
)
)
]
f
0
(
v
)
d
v
f_1^{-}(x)=\frac{d P(X_1<x)}{dx}=\int_{-\infty}^{\infty}f_{Q_1}[x-f(v))]f_0(v)~dv
f1−(x)=dxdP(X1<x)=∫−∞∞fQ1[x−f(v))]f0(v) dv
更新
观测到
Y
1
=
y
1
Y_1=y_1
Y1=y1,似然函数为
f
Y
1
∣
X
1
(
y
∣
x
)
=
lim
ε
→
0
P
Y
1
∣
X
1
(
y
1
<
Y
1
<
y
1
+
ε
∣
X
1
=
x
)
ε
=
lim
ε
→
0
P
Y
1
∣
X
1
(
y
1
−
h
(
x
)
<
Y
1
−
h
(
X
1
)
<
y
+
ε
−
h
(
x
)
∣
X
1
=
x
)
ε
=
lim
ε
→
0
P
Y
1
∣
X
1
(
y
1
−
h
(
x
)
<
R
1
<
y
1
+
ε
−
h
(
x
)
∣
X
1
=
x
)
ε
(
R
k
与
X
k
独立
)
=
f
R
1
[
y
−
h
(
x
)
]
\begin{aligned} f_{Y_1|X_1}(y|x)&=\lim_{\varepsilon\rightarrow 0}\frac{P_{Y_1|X_1}(y_1<Y_1<y_1+\varepsilon|X_1=x)}{\varepsilon}\\ &=\lim_{\varepsilon\rightarrow 0}\frac{P_{Y_1|X_1}(y_1-h(x)<Y_1-h(X_1)<y+\varepsilon-h(x)|X_1=x)}{\varepsilon}\\ &=\lim_{\varepsilon\rightarrow 0}\frac{P_{Y_1|X_1}(y_1-h(x)<R_1<y_1+\varepsilon-h(x)|X_1=x)}{\varepsilon} ~~~~(R_k与X_k独立)\\ &=f_{R_1}[y-h(x)] \end{aligned}
fY1∣X1(y∣x)=ε→0limεPY1∣X1(y1<Y1<y1+ε∣X1=x)=ε→0limεPY1∣X1(y1−h(x)<Y1−h(X1)<y+ε−h(x)∣X1=x)=ε→0limεPY1∣X1(y1−h(x)<R1<y1+ε−h(x)∣X1=x) (Rk与Xk独立)=fR1[y−h(x)]
得到后验概率
f
1
+
(
x
)
=
f
X
1
∣
Y
1
(
x
∣
y
1
)
=
η
f
Y
1
∣
X
1
(
y
1
∣
x
)
f
1
−
(
x
)
=
η
f
R
1
[
y
1
−
h
(
x
)
]
)
f
1
−
(
x
)
f_1^+(x)=f_{X_1|Y_1}(x|y_1)=\eta f_{Y_1|X_1}(y_1|x)f_1^-(x)=\eta f_{R_1}[y_1-h(x)])f_1^-(x)
f1+(x)=fX1∣Y1(x∣y1)=ηfY1∣X1(y1∣x)f1−(x)=ηfR1[y1−h(x)])f1−(x)
那么估计值为
x
^
1
=
∫
−
∞
∞
x
f
1
+
(
x
)
d
x
\hat{x}_1 = \int_{-\infty}^{\infty}xf_1^+(x)~dx
x^1=∫−∞∞xf1+(x) dx
总结
主要步骤如下:
- 假设 X 0 X_0 X0及其概率分布函数 f 0 f_0 f0
- 预测步:由上一步的后验概率得到这一步的先验概率 f k − ( x ) = ∫ − ∞ ∞ f Q k [ x − f ( v ) ) ] f k − 1 ( v ) d v f_k^{-}(x)=\int_{-\infty}^{\infty}f_{Q_k}[x-f(v))]f_{k-1}(v)~dv fk−(x)=∫−∞∞fQk[x−f(v))]fk−1(v) dv
- 更新步:得到本次的后验概率 f k + ( x ) = η f R k [ y k − h ( x ) ] ) f k − ( x ) f_k^+(x)=\eta f_{R_k}[y_k-h(x)])f_k^-(x) fk+(x)=ηfRk[yk−h(x)])fk−(x)
- 估值: x ^ k = ∫ − ∞ ∞ x f k + ( x ) d x \hat{x}_k= \int_{-\infty}^{\infty}xf_k^+(x)~dx x^k=∫−∞∞xfk+(x) dx
问题在于用到无穷积分,多数情况无解析解。
粒子滤波
一些等式和定理
特征函数:逆傅里叶变换
N
(
μ
,
σ
2
)
→
特征函数
/
I
F
T
e
x
p
{
j
u
t
+
σ
2
2
t
2
}
若
X
,
Y
的
p
d
f
为
f
,
g
,
且
X
,
Y
独立,则
Z
=
X
+
Y
的
p
d
f
为
f
∗
g
N(\mu,\sigma^2) \overset{特征函数/IFT}{\rightarrow}exp\{jut+\frac{\sigma^2}{2}t^2\}\\ 若X,Y的pdf为f,g,且X,Y独立,则Z=X+Y的pdf为f*g
N(μ,σ2)→特征函数/IFTexp{jut+2σ2t2}若X,Y的pdf为f,g,且X,Y独立,则Z=X+Y的pdf为f∗g
一些概念
根据大数定理知道,对于随机变量X的大量采样{
x
1
x_1
x1,…,
x
n
x_n
xn}的均值依概率收敛于它的期望E[X],即
lim
n
→
∞
P
(
∣
1
n
∑
i
n
x
i
−
E
[
X
]
∣
<
ε
)
=
1
,
∀
ε
>
0
\lim_{n\rightarrow \infty}P(|\frac{1}{n}\sum_i^n x_i-E[X]|<\varepsilon)=1,\forall \varepsilon> 0
n→∞limP(∣n1i∑nxi−E[X]∣<ε)=1,∀ε>0
那么,足够的采样值可以满足
1
n
∑
x
i
=
∫
−
∞
∞
1
n
∑
i
n
x
i
δ
(
x
−
x
i
)
d
x
=
E
[
X
]
=
∫
−
∞
∞
x
f
(
x
)
d
x
\frac{1}{n}\sum x_i=\int_{-\infty}^{\infty}\frac{1}{n}\sum_i^n x_i\delta(x-x_i)dx=E[X]=\int_{-\infty}^{\infty}xf(x)dx
n1∑xi=∫−∞∞n1i∑nxiδ(x−xi)dx=E[X]=∫−∞∞xf(x)dx
即
f
(
x
)
≈
1
n
∑
i
n
δ
(
x
−
x
i
)
f(x)\approx \frac{1}{n}\sum_i^n \delta(x-x_i)
f(x)≈n1i∑nδ(x−xi)
可以看做一个粒子的和,也就是粒子滤波的来源。
当然,由于粒子是从f(x)中采样出来的,可以给予f(x)大的粒子更大的权重以期使用较少的粒子得到较好的效果。
即
w
i
=
f
(
x
i
)
∑
k
n
f
(
x
k
)
w_i = \frac{f(x_i)}{\sum_k^n f(x_k)}
wi=∑knf(xk)f(xi)
过程
给出 X 0 X_0 X0,及其概率密度函数 f 0 f_0 f0,和采样{ x 0 1 x_0^1 x01,…, x 0 n x_0^n x0n}
预测
f
1
−
(
x
)
=
∫
−
∞
∞
f
Q
1
[
x
−
f
(
v
)
)
]
f
0
(
v
)
d
v
=
∑
i
n
w
i
f
Q
1
[
x
−
f
(
x
0
i
)
)
]
\begin{aligned} f_1^-(x)&=\int_{-\infty}^{\infty}f_{Q_1}[x-f(v))]f_{0}(v)~dv\\ &=\sum_i^nw_if_{Q_1}[x-f(x_0^i))] \end{aligned}
f1−(x)=∫−∞∞fQ1[x−f(v))]f0(v) dv=i∑nwifQ1[x−f(x0i))]
假设
Q
k
Q_k
Qk为正态分布,则
f
Q
[
x
−
f
(
x
0
i
)
]
=
1
2
π
Q
e
x
p
{
−
[
x
−
f
(
x
0
i
)
]
2
2
Q
}
∼
N
(
f
(
x
0
i
)
,
Q
)
f_Q[x-f(x_0^i)]=\frac{1}{\sqrt{2\pi Q}}exp\{-\frac{[x-f(x_0^i)]^2}{2Q}\} \sim N(f(x_0^i),Q)\\
fQ[x−f(x0i)]=2πQ1exp{−2Q[x−f(x0i)]2}∼N(f(x0i),Q)
其特征函数为
f
Q
[
x
−
f
(
x
0
i
)
]
→
特征函数
/
I
F
T
e
x
p
{
j
f
(
x
0
i
)
t
}
⋅
e
x
p
{
−
Q
2
t
2
}
f_Q[x-f(x_0^i)]\overset{特征函数/IFT}{\rightarrow}exp\{jf(x_0^i)t\}\cdot exp\{-\frac{Q}{2}t^2\}
fQ[x−f(x0i)]→特征函数/IFTexp{jf(x0i)t}⋅exp{−2Qt2}
由于
e
x
p
{
j
f
(
x
0
i
)
t
}
→
F
T
δ
(
x
−
f
(
x
0
i
)
)
e
x
p
{
−
Q
2
t
2
}
→
F
T
N
(
0
,
Q
)
exp\{jf(x_0^i)t\}\overset{FT}{\rightarrow}\delta(x-f(x_0^i))\\ exp\{-\frac{Q}{2}t^2\}\overset{FT}{\rightarrow}N(0,Q)
exp{jf(x0i)t}→FTδ(x−f(x0i))exp{−2Qt2}→FTN(0,Q)
所以
f
Q
[
x
−
f
(
x
0
i
)
]
f_Q[x-f(x_0^i)]
fQ[x−f(x0i)]可以看做两个事件的和事件,必然事件
δ
(
x
−
f
(
x
0
i
)
)
\delta(x-f(x_0^i))
δ(x−f(x0i))和随机事件
N
(
0
,
Q
)
N(0,Q)
N(0,Q)。所以可以得到
f
1
−
(
x
)
f_1^-(x)
f1−(x)的采样粒子{
x
1
−
1
x_1^{-1}
x1−1,…,
x
1
−
n
x_1^{-n}
x1−n}
x
1
−
i
=
f
(
x
0
i
)
+
Q
x_1^{-i}=f(x_0^i)+Q
x1−i=f(x0i)+Q
即
f
1
−
(
x
)
=
∑
i
n
w
i
f
Q
1
[
x
−
f
(
x
0
i
)
)
]
=
∑
i
n
w
i
δ
(
x
−
x
1
−
i
)
f_1^-(x)=\sum_i^nw_if_{Q_1}[x-f(x_0^i))]=\sum_i^nw_i\delta(x-x_1^{-i})
f1−(x)=i∑nwifQ1[x−f(x0i))]=i∑nwiδ(x−x1−i)
更新
观测数据
Y
1
=
y
1
Y_1=y_1
Y1=y1
f
1
+
(
x
)
=
η
f
R
1
[
y
1
−
h
(
x
)
]
)
f
1
−
(
x
)
=
η
∑
i
n
w
i
f
R
1
[
y
1
−
h
(
x
1
−
i
)
]
δ
(
x
−
x
1
−
i
)
\begin{aligned} f_1^+(x)&=\eta f_{R_1}[y_1-h(x)])f_1^-(x)\\ &=\eta\sum_i^nw_i f_{R_1}[y_1-h(x_1^{-i})]\delta(x-x_1^{-i}) \end{aligned}
f1+(x)=ηfR1[y1−h(x)])f1−(x)=ηi∑nwifR1[y1−h(x1−i)]δ(x−x1−i)
可以更新权重
w
i
=
w
i
f
R
1
[
y
1
−
h
(
x
1
−
i
)
]
w
i
=
f
(
x
i
)
∑
k
n
f
(
x
k
)
w_i=w_i f_{R_1}[y_1-h(x_1^{-i})]\\ w_i = \frac{f(x_i)}{\sum_k^n f(x_k)}
wi=wifR1[y1−h(x1−i)]wi=∑knf(xk)f(xi)
得到
f
1
+
(
x
)
=
∑
i
n
w
i
δ
(
x
−
x
1
−
i
)
f_1^+(x)=\sum_i^n w_i \delta(x-x_1^{-i})
f1+(x)=i∑nwiδ(x−x1−i)
可以估计得到
x
^
1
=
∑
i
n
w
i
x
1
−
i
\hat{x}_1=\sum_i^nw_ix_1^{-i}
x^1=i∑nwix1−i
总结
主要步骤如下:
- 假设 X 0 X_0 X0及其概率分布函数 f 0 f_0 f0,以及生成的采样{ x 0 i x_0^i x0i,…, x 0 n x_0^n x0n}
- 预测步:根据上一步的采样生成当前采样 x k − i = f ( x k − 1 i ) + Q x_k^{-i}=f(x_{k-1}^i)+Q xk−i=f(xk−1i)+Q
- 更新步:更新权重 w i = w i f R k [ y k − h ( x k − i ) ] w_i=w_i f_{R_k}[y_k-h(x_k^{-i})] wi=wifRk[yk−h(xk−i)],并归一化
- 估值: x ^ k = ∑ i n w i x k − i \hat{x}_k=\sum_i^nw_ix_k^{-i} x^k=∑inwixk−i
补充
重采样
在权重更新中,若假设噪声是高斯分布,会有大量粒子的权重趋于0,出现粒子退化,最终导致仅有几个或一个粒子有效,失去粒子更新的作用。
重采样方法和遗传算法类似。主要步骤如下:
- 根据不同粒子的权重,在(0,1)的区间分配区间
- 生成随机数
- 根据随机数,选取区间,并复制相应的粒子
- 权重重新赋为相同
可以依据 N = 1 ∑ i n w i 2 N=\frac{1}{\sum_i^nw_i^2} N=∑inwi21进行重采样,N越小退化越严重,越要重采样。