粒子滤波算法

本文为《蒙特卡罗方法理论和应用》笔记

1.动态空间模型 \textbf{1.动态空间模型} 1.动态空间模型

动态空间模型包括过程模型和观测模型,分别由状态方程和观测方程描述,状态方程和观测方程为:
x ( t ) = a ( x ( t − 1 ) , u ( t ) ) y ( t ) = b ( x ( t ) , v ( t ) ) \begin{aligned} \boldsymbol{x}(t) &=a(\boldsymbol{x}(t-1), \boldsymbol{u}(t)) \\ \boldsymbol{y}(t) &=b(\boldsymbol{x}(t), \boldsymbol{v}(t)) \end{aligned} x(t)y(t)=a(x(t1),u(t))=b(x(t),v(t))
当过程噪音和观测噪音可分离时,状态方程和观测方程为:
x k = a ( x k − 1 , u k ) = a ( x k − 1 ) + u k y k = b ( x k , v k ) = b ( x k ) + v k \begin{aligned} \boldsymbol{x}_{k} &=a\left(\boldsymbol{x}_{k-1}, \boldsymbol{u}_{k}\right)=a\left(\boldsymbol{x}_{k-1}\right)+\boldsymbol{u}_{k} \\ \boldsymbol{y}_{k} &=b\left(\boldsymbol{x}_{k}, \boldsymbol{v}_{k}\right)=b\left(\boldsymbol{x}_{k}\right)+\boldsymbol{v}_{k} \end{aligned} xkyk=a(xk1,uk)=a(xk1)+uk=b(xk,vk)=b(xk)+vk
式中,所有下标 k k k表示时刻; a ( x k − 1 , u k ) a(\boldsymbol{x}_{k-1},\boldsymbol{u}_{k}) a(xk1,uk) a ( x k − 1 ) a(\boldsymbol{x}_{k-1}) a(xk1)为过程函数; b ( x k , v k ) b(\boldsymbol{x}_{k},\boldsymbol{v}_{k}) b(xk,vk) b ( x k ) b(\boldsymbol{x}_{k}) b(xk)为观测函数; x k \boldsymbol{x}_k xk x k − 1 \boldsymbol{x}_{k-1} xk1为状态, y k \boldsymbol{y}_{k} yk为观测; u k \boldsymbol{u}_{k} uk为过程噪声; v k \boldsymbol{v}_{k} vk为观测噪声。过程噪声的统计参数为 Q k \boldsymbol{Q}_k Qk ,观测噪声的统计参数为 R k \boldsymbol{R}_k Rk ,对单变量模型 Q k \boldsymbol{Q}_k Qk R k \boldsymbol{R}_k Rk表示方差,对多变量模型 Q k \boldsymbol{Q}_k Qk R k \boldsymbol{R}_k Rk表示协方差。可用统计参数 Q k \boldsymbol{Q}_k Qk R k \boldsymbol{R}_k Rk唯一地描述高斯噪声,但不能唯一地描述非高斯噪声。

2.隐马尔可夫随机过程 \textbf{2.隐马尔可夫随机过程} 2.隐马尔可夫随机过程

序贯随机过程的下一状态不仅与当前状态有关,而且还与以前所有状态都有关。序贯随机过程的概率分布为:
f ( x ) = f ( x 1 ∣ x 1 : 0 ) f ( x 2 ∣ x 1 : 1 ) f ( x 3 ∣ x 1 : 2 ) ⋯ f ( x k ∣ x 1 : k − 1 ) ⋯ f ( x m ∣ x 1 : m − 1 ) f(\boldsymbol{x})=f\left(\boldsymbol{x}_{1} | \boldsymbol{x}_{1: 0}\right) f\left(\boldsymbol{x}_{2} | \boldsymbol{x}_{1: 1}\right) f\left(\boldsymbol{x}_{3} | \boldsymbol{x}_{1: 2}\right) \cdots f\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{1: k-1}\right) \cdots f\left(\boldsymbol{x}_{m} | \boldsymbol{x}_{1: m-1}\right) f(x)=f(x1x1:0)f(x2x1:1)f(x3x1:2)f(xkx1:k1)f(xmx1:m1)
隐马尔可夫随机过程的概率分布为:
f ( x ) = f ( x 1 ∣ x 0 ) f ( x 2 ∣ x 1 ) ⋯ f ( x k ∣ x k − 1 ) ⋯ f ( x m ∣ x m − 1 ) f(\boldsymbol{x})=f\left(\boldsymbol{x}_{1} | \boldsymbol{x}_{0}\right) f\left(\boldsymbol{x}_{2} | \boldsymbol{x}_{1}\right) \cdots f\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{k-1}\right) \cdots f\left(\boldsymbol{x}_{m} | \boldsymbol{x}_{m-1}\right) f(x)=f(x1x0)f(x2x1)f(xkxk1)f(xmxm1)
隐马尔可夫随机过程本身具有马尔可夫性,即无后效性,下一状态只与当前状态有关,与以前状态无关。 x k + 1 \boldsymbol{x}_{k+1} xk+1只与 x k \boldsymbol{x}_k xk 有关,与 x 0 : k − 1 \boldsymbol{x}_{0:k-1} x0:k1无关, y k \boldsymbol{y}_k yk只与 x k \boldsymbol{x}_k xk有关,状态 x \boldsymbol{x} x接受的过程噪声 u \boldsymbol{u} u,观测 y \boldsymbol{y} y观测噪声 v \boldsymbol{v} v.

3.贝叶斯递推滤波 \textbf{3.贝叶斯递推滤波} 3.贝叶斯递推滤波

状态变量 X \boldsymbol{X} X 的先验概率分布为 f ( x ) f(\boldsymbol{\boldsymbol{x}}) f(x) ,观测变量 Y \boldsymbol{Y} Y 的概率分布为 f ( y ∣ x ) f(\boldsymbol{\boldsymbol{y|x}}) f(yx)
故状态变量 X \boldsymbol{X} X 的后验概率分布为
f ( x ∣ y ) = f ( y ∣ x ) f ( x ) ∫ f ( y ∣ x ) f ( x ) d x f(\boldsymbol{x|y})=\frac{f(\boldsymbol{y|x})f(\boldsymbol{x})}{\int f(\boldsymbol{y|x})f(\boldsymbol{x})d\boldsymbol{x} } f(xy)=f(yx)f(x)dxf(yx)f(x)
状态变量的估计值为
x ^ = ∫ x f ( x ∣ y ) d x \hat{\boldsymbol{x}}=\int \boldsymbol{x}f(\boldsymbol{x|y})d\boldsymbol{x} x^=xf(xy)dx
如果后验概率分布 f ( x ∣ y ) f(\boldsymbol{x|y}) f(xy)的分母积分和状态变量估计值的积分都能求解,则可得到状态变量的估计值,称为 贝叶斯估计 \textbf{贝叶斯估计} 贝叶斯估计.

4.贝叶斯递推滤波描述 \textbf{4.贝叶斯递推滤波描述} 4.贝叶斯递推滤波描述

0 : k 0:k 0:k时刻的状态值用 x 0 : k \boldsymbol{x}_{0:k} x0:k表示,
x 0 : k = x 0 , x 1 , ⋯   , x k \boldsymbol{x}_{0:k}=\boldsymbol{x}_0,\boldsymbol{x}_1,\cdots,\boldsymbol{x}_k x0:k=x0,x1,,xk;
1 : k 1:k 1:k时刻的观测值用 y 1 : k \boldsymbol{y}_{1:k} y1:k表示,
y 1 : k = y 1 , y 2 , ⋯   , y k \boldsymbol{y}_{1:k}=\boldsymbol{y}_1,\boldsymbol{y}_2,\cdots,\boldsymbol{y}_k y1:k=y1,y2,,yk.
贝叶斯递推滤波是给定所有观测值 y 1 : k \boldsymbol{y}_{1:k} y1:k构造状态 x 0 : k \boldsymbol{x}_{0:k} x0:k的后验概率分布,贝叶斯递推滤波分为 预 测 阶 段 ‾ \underline{预测阶段} 更 新 阶 段 ‾ \underline{更新阶段} .

预测阶段 \textbf{预测阶段} 预测阶段,预测阶段主要基于 x k − 1 \boldsymbol{x}_{k-1} xk1预测 x k \boldsymbol{x}_k xk 预测方程为: f ( x 0 : k ∣ y 1 : k − 1 ) = ∫ f ( x 0 : k ∣ x 0 : k − 1 ) f ( x 0 : k − 1 ∣ y 1 : k − 1 ) d x 0 : k − 1 f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k-1}\right)=\int f\left(\boldsymbol{x}_{0: k} | \boldsymbol{x}_{0: k-1}\right) f\left(\boldsymbol{x}_{0: k-1} | \boldsymbol{y}_{1: k-1}\right) \mathrm{d} \boldsymbol{x}_{0: k-1} f(x0:ky1:k1)=f(x0:kx0:k1)f(x0:k1y1:k1)dx0:k1

更新阶段 \textbf{更新阶段} 更新阶段,更新阶段主要根据 y k \boldsymbol{y}_k yk更新 x k \boldsymbol{x}_k xk. 根据贝叶斯定理,后验概率分布为
f ( x 0 : k ∣ y 1 : k ) = f ( y 1 : k ∣ x 0 : k ) f ( x 0 : k ) / f ( y 1 : k ) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right)=f\left(\boldsymbol{y}_{1: k} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{0: k}\right) / f\left(\boldsymbol{y}_{1: k}\right) f(x0:ky1:k)=f(y1:kx0:k)f(x0:k)/f(y1:k)
式中, f ( y 1 : k ) = ∫ f ( y 1 : k ∣ x 0 : k ) f ( x 0 : k ) d x 0 : k ( 1 ) f\left(\boldsymbol{y}_{1: k}\right)=\int f\left(\boldsymbol{y}_{1: k} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{0: k}\right) \mathrm{d} \boldsymbol{x}_{0: k} \qquad (1) f(y1:k)=f(y1:kx0:k)f(x0:k)dx0:k(1)

粒子滤波 \textbf{粒子滤波} 粒子滤波

1.后验概率分布变换 \textbf{1.后验概率分布变换} 1.后验概率分布变换

由于 f ( y 1 : k = f ( y 1 : k − 1 , y k ) f(\boldsymbol{y}_{1:k}=f(\boldsymbol{y}_{1:k-1},\boldsymbol{y}_k) f(y1:k=f(y1:k1,yk), 使用条件概率分布变换规则: f ( a , b ∣ c ) = f ( a ∣ b , c ) f ( b ∣ c ) f(a,b|c)=f(a|b,c)f(b|c) f(a,bc)=f(ab,c)f(bc) f ( a , b ) = f ( a ∣ b ) f ( b ) f(a,b)=f(a|b)f(b) f(a,b)=f(ab)f(b),后验概率分布变换为
f ( x 0 : k ∣ y 1 : k ) = f ( y 1 : k − 1 , y k ∣ x 0 : k ) f ( x 0 : k ) f ( y 1 : k − 1 , y k ) = f ( y k ∣ y 1 : k − 1 , x 0 : k ) f ( y 1 : k − 1 ∣ x 0 : k ) f ( x 0 : k ) f ( y k ∣ y 1 : k − 1 ) f ( y 1 ; k − 1 ) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right)=\frac{f\left(\boldsymbol{y}_{1: k-1}, \boldsymbol{y}_{k} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{0: k}\right)}{f\left(\boldsymbol{y}_{1: k-1}, \boldsymbol{y}_{k}\right)}=\frac{f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}, \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{y}_{1: k-1} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{0: k}\right)}{f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}\right) f\left(\boldsymbol{y}_{1 ; k-1}\right)} f(x0:ky1:k)=f(y1:k1,yk)f(y1:k1,ykx0:k)f(x0:k)=f(yky1:k1)f(y1;k1)f(yky1:k1,x0:k)f(y1:k1x0:k)f(x0:k)
再次使用贝叶斯定理:
f ( y 1 : k − 1 ∣ x 0 : k ) = f ( x 0 : k ∣ y 1 : k − 1 ) f ( y 1 : k − 1 ) / f ( x 0 : k ) f\left(\boldsymbol{y}_{1: k-1} | \boldsymbol{x}_{0: k}\right)=f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k-1}\right) f\left(\boldsymbol{y}_{1: k-1}\right) / f\left(\boldsymbol{x}_{0: k}\right) f(y1:k1x0:k)=f(x0:ky1:k1)f(y1:k1)/f(x0:k)
后验概率分布变换为
f ( x 0 : k ∣ y 1 : k ) = f ( y k ∣ y 1 : k − 1 , x 0 : k ) f ( x 0 : k ∣ y 1 : k − 1 ) f ( y 1 : k − 1 ) f ( x 0 : k ) f ( y k ∣ y 1 : k − 1 ) f ( y 1 : k − 1 ) f ( x 0 : k ) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right)=\frac{f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}, \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k-1}\right) f\left(\boldsymbol{y}_{1: k-1}\right) f\left(\boldsymbol{x}_{0: k}\right)}{f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}\right) f\left(\boldsymbol{y}_{1: k-1}\right) f\left(\boldsymbol{x}_{0: k}\right)} f(x0:ky1:k)=f(yky1:k1)f(y1:k1)f(x0:k)f(yky1:k1,x0:k)f(x0:ky1:k1)f(y1:k1)f(x0:k)
由于 y \boldsymbol{y} y的独立性, y k \boldsymbol{y}_k yk y 1 : k − 1 \boldsymbol{y}_{1:k-1} y1:k1 无关,因此有 f ( y k ∣ y 1 : k − 1 , x 0 : k ) = f ( y k ∣ x 0 : k ) f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}, \boldsymbol{x}_{0: k}\right)=f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{0: k}\right) f(yky1:k1,x0:k)=f(ykx0:k) ,后验概率分布变换为 f ( x 0 : k ∣ y 1 : k ) = f ( y k ∣ x 0 : k ) f ( x 0 : k ∣ y 1 : k − 1 ) / f ( y k ∣ y 1 : k − 1 ) ( 2 ) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1 : k}\right)=f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k-1}\right) / f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1 : k-1}\right) \qquad (2) f(x0:ky1:k)=f(ykx0:k)f(x0:ky1:k1)/f(yky1:k1)(2)
式中, f ( y k ∣ y 1 : k − 1 ) = ∫ f ( y k ∣ x 0 : k ) f ( x 0 : k ∣ y 1 : k − 1 ) d x 0 : k f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}\right)=\int f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k-1}\right) \mathrm{d} \boldsymbol{x}_{0: k} f(yky1:k1)=f(ykx0:k)f(x0:ky1:k1)dx0:k

2.蒙特卡罗状态估计 \textbf{2.蒙特卡罗状态估计} 2.蒙特卡罗状态估计

序贯重要抽样方法,由于采用重要抽样技巧,需要对结果纠偏,权重 w ( X k i ) w(\boldsymbol{X}_k^{i}) w(Xki)是纠偏因子,统计量估计值为
h ^ k = ( 1 / n ) ∑ i = 1 n h ( X k i ) w ( X K I ) \hat{h}_k=(1/n)\sum_{i=1}^n h(\boldsymbol{X}_k^i)w(\boldsymbol{X}_K^I) h^k=(1/n)i=1nh(Xki)w(XKI)
概率分布为 f ( x 0 : k ∣ y 1 : k ) f(\boldsymbol{x}_{0:k}|\boldsymbol{y}_{1:k}) f(x0:ky1:k) ,重要概率分布为 g ( x 0 : k ∣ y 1 : k ) g(\boldsymbol{x}_{0:k}|\boldsymbol{y}_{1:k}) g(x0:ky1:k) ,使用式(2),得到统计量 h ( x 0 : k ) h(\boldsymbol{x}_{0:k}) h(x0:k) 的数学期望为
E [ h ( x 0 : k ) ] = ∫ h ( x 0 : k ) f ( x 0 : k ∣ y 1 : k ) d x 0 : k = ∫ h ( x 0 : k ) ( f ( x 0 : k ∣ y 1 : k ) / g ( x 0 : k ∣ y 1 : k ) ) g ( x 0 : k ∣ y 1 : k ) d x 0 : k = ∫ h ( x 0 : k ) f ( y k ∣ x 0 : k ) f ( x 0 : k ∣ y 1 : k − 1 ) f ( y k ∣ y 1 : k − 1 ) g ( x 0 : k ∣ y 1 : k ) g ( x 0 : k ∣ y 1 : k ) d x 0 : k = ∫ h ( x 0 : k ) ( w ( x 0 : k ) / f ( y k ∣ y 1 : k − 1 ) ) g ( x 0 : k ∣ y 1 : k ) d x 0 : k \begin{aligned} E[h(\boldsymbol{x}_{0:k})] &=\int h(\boldsymbol{x}_{0:k})f(\boldsymbol{x}_{0:k}|\boldsymbol{y}_{1:k})d\boldsymbol{x}_{0:k} \\ &=\int h\left(\boldsymbol{x}_{0: k}\right)\left(f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right) / g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right)\right) g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right) d \boldsymbol{x}_{0: k}\\ &=\int h\left(\boldsymbol{x}_{0: k}\right) \frac{f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k-1}\right)}{f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}\right) g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right)} g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right) d \boldsymbol{x}_{0: k} \\ &=\int h\left(\boldsymbol{x}_{0: k}\right)\left(w\left(\boldsymbol{x}_{0: k}\right) / f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}\right)\right) g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right) \mathrm{d} \boldsymbol{x}_{0: k} \end{aligned} E[h(x0:k)]=h(x0:k)f(x0:ky1:k)dx0:k=h(x0:k)(f(x0:ky1:k)/g(x0:ky1:k))g(x0:ky1:k)dx0:k=h(x0:k)f(yky1:k1)g(x0:ky1:k)f(ykx0:k)f(x0:ky1:k1)g(x0:ky1:k)dx0:k=h(x0:k)(w(x0:k)/f(yky1:k1))g(x0:ky1:k)dx0:k
真实权重应为
f ( y k ∣ x 0 : k ) f ( x 0 : k ∣ y 1 : k − 1 ) / f ( y k ∣ y 1 : k − 1 ) / g ( x 0 : k ∣ y 1 : k ) f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k-1}\right) / f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}\right) / g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right) f(ykx0:k)f(x0:ky1:k1)/f(yky1:k1)/g(x0:ky1:k)
由于 f ( y k ∣ y 1 : k − 1 ) f(\boldsymbol{y}_k|\boldsymbol{y}_{1:k-1}) f(yky1:k1)是多维积分,实际上是未知的,为了得到可计算的权重,引入伪权重,伪权重为 w ( x 0 : k ) = f ( y k ∣ x 0 : k ) f ( x 0 : k ∣ y 1 : k − 1 ) / g ( x 0 : k ∣ y 1 : k ) ( 3 ) w\left(\boldsymbol{x}_{0: k}\right)=f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k-1}\right) / g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right) \qquad (3) w(x0:k)=f(ykx0:k)f(x0:ky1:k1)/g(x0:ky1:k)(3)
由于忽略了 f ( y k ∣ y 1 : k − 1 ) f(\boldsymbol{y}_k|\boldsymbol{y}_{1:k-1}) f(yky1:k1),伪权重不是真正意义上的权重,已经失去纠偏的意义,不能用它对模拟结果进行纠偏。于是得到统计量 h ( x 0 : k ) h(\boldsymbol{x}_{0:k}) h(x0:k)的数学期望为
E [ h ( x 0 : k ) ] = ∫ h ( x 0 : k ) ( w ( x 0 : k ) / f ( y k ∣ y 1 : k − 1 ) ) g ( x 0 : k ∣ y 1 : k ) d x 0 : k = ∫ h ( x 0 : k ) w ( x 0 : k ) g ( x 0 : k ∣ y 1 : k ) d x 0 : k ∫ f ( y k ∣ x 0 : k ) f ( x 0 : k ∣ y 1 : k − 1 ) d x 0 : k = ∫ h ( x 0 : k ) w ( x 0 : k ) g ( x 0 : k ∣ y 1 : k ) d x 0 : k ∫ w ( x 0 : k ) g ( x 0 : k ∣ y 1 : k ) d x 0 : k = ( 1 / n ) ∑ i = 1 n h ( X 0 : k i ) w ( X 0 : k i ) ( 1 / n ) ∑ i = 1 n w ( X 0 : k i ) = ∑ i = 1 n h ( X 0 : k i ) w ~ ( X 0 : k i ) \begin{aligned} E\left[h\left(\boldsymbol{x}_{0: k}\right)\right] &=\int h\left(\boldsymbol{x}_{0: k}\right)\left(w\left(\boldsymbol{x}_{0: k}\right) / f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}\right)\right) g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right) \mathrm{d} \boldsymbol{x}_{0: k} \\ &=\frac{\int h\left(\boldsymbol{x}_{0: k}\right) w\left(\boldsymbol{x}_{0: k}\right) g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right) \mathrm{d} \boldsymbol{x}_{0: k}}{\int f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k-1}\right) \mathrm{d} \boldsymbol{x}_{0: k}} \\ &=\frac{\int h\left(\boldsymbol{x}_{0: k}\right) w\left(\boldsymbol{x}_{0: k}\right) g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right) \mathrm{d} \boldsymbol{x}_{0: k}}{\int w\left(\boldsymbol{x}_{0: k}\right) g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right) \mathrm{d} \boldsymbol{x}_{0: k}} \\ &=\frac{(1 / n) \sum_{i=1}^{n} h\left(\boldsymbol{X}_{0: k}^{i}\right) w\left(\boldsymbol{X}_{0: k}^{i}\right)}{(1 / n) \sum_{i=1}^{n} w\left(\boldsymbol{X}_{0: k}^{i}\right)}=\sum_{i=1}^{n} h\left(\boldsymbol{X}_{0: k}^{i}\right) \tilde{w}\left(\boldsymbol{X}_{0: k}^{i}\right) \end{aligned} E[h(x0:k)]=h(x0:k)(w(x0:k)/f(yky1:k1))g(x0:ky1:k)dx0:k=f(ykx0:k)f(x0:ky1:k1)dx0:kh(x0:k)w(x0:k)g(x0:ky1:k)dx0:k=w(x0:k)g(x0:ky1:k)dx0:kh(x0:k)w(x0:k)g(x0:ky1:k)dx0:k=(1/n)i=1nw(X0:ki)(1/n)i=1nh(X0:ki)w(X0:ki)=i=1nh(X0:ki)w~(X0:ki)
式中归一化伪权重为
w ~ ( X 0 : k i ) = w ( X 0 : k i ) / ∑ i = 1 n w ( X 0 : k i ) \tilde{w}\left(\boldsymbol{X}_{0: k}^{i}\right)=w\left(\boldsymbol{X}_{0: k}^{i}\right) / \sum_{i=1}^{n} w\left(\boldsymbol{X}_{0: k}^{i}\right) w~(X0:ki)=w(X0:ki)/i=1nw(X0:ki)
蒙特卡罗状态估计可写为
X ^ 0 : k = ∑ i = 1 n X k i w ~ ( X 0 : k i ) \hat{\boldsymbol{X}}_{0: k}=\sum_{i=1}^{n} \boldsymbol{X}_{k}^{i} \tilde{w}\left(\boldsymbol{X}_{0: k}^{i}\right) X^0:k=i=1nXkiw~(X0:ki)这是由于采用伪权重,蒙特卡罗状态估计的形式,与以前的形式不同,前面少了因子 1 / n 1/n 1/n,而且采用归一化伪权重.

3.递推伪权重 \textbf{3.递推伪权重} 3.递推伪权重

为了得到递推伪权重,需要对式(2)的后验概率分布作变换,由于 f ( x 0 : k ∣ y 1 : k − 1 ) = f ( x 0 : k − 1 , x k ∣ y 1 : k − 1 ) f(\boldsymbol{x}_{0:k}|\boldsymbol{y}_{1:k-1})=f(\boldsymbol{x}_{0:k-1},\boldsymbol{x}_k|\boldsymbol{y}_{1:k-1}) f(x0:ky1:k1)=f(x0:k1,xky1:k1),并使用条件概率分布变换规则 f ( a , b ∣ c ) = f ( a ∣ b , c ) ⋅ f ( b ∣ c ) f(a,b|c)=f(a|b,c)\cdot f(b|c) f(a,bc)=f(ab,c)f(bc),后验概率分布变换为
f ( x 0 : k ∣ y 1 : k ) = f ( y k ∣ x 0 : k ) f ( x k ∣ x 0 : k − 1 , y 1 : k − 1 ) f ( x 0 : k − 1 ∣ y 1 : k − 1 ) / f ( y k ∣ y 1 : k − 1 ) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right)=f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{0: k-1}, \boldsymbol{y}_{1: k-1}\right) f\left(\boldsymbol{x}_{0: k-1} | \boldsymbol{y}_{1: k-1}\right) / f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}\right) f(x0:ky1:k)=f(ykx0:k)f(xkx0:k1,y1:k1)f(x0:k1y1:k1)/f(yky1:k1)
由于 y k \boldsymbol{y}_k yk只与 x k \boldsymbol{x}_k xk有关, x k \boldsymbol{x}_k xk只与 x k − 1 \boldsymbol{x}_{k-1} xk1有关,因此有
f ( y k ∣ x 0 : k ) f ( x k ∣ x 0 : k − 1 , y 1 : k − 1 ) = f ( y k ∣ x k ) f ( x k ∣ x k − 1 ) f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{0: k}\right) f\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{0: k-1}, \boldsymbol{y}_{1: k-1}\right)=f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{k}\right) f\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{k-1}\right) f(ykx0:k)f(xkx0:k1,y1:k1)=f(ykxk)f(xkxk1)于是得到后验概率分布为
f ( x 0 : k ∣ y 1 : k ) = f ( y k ∣ x k ) f ( x k ∣ x k − 1 ) f ( x 0 : k − 1 ∣ y 1 : k − 1 ) / f ( y k ∣ y 1 : k − 1 ) ( 4 ) f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right)=f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{k}\right) f\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{k-1}\right) f\left(\boldsymbol{x}_{0: k-1} | \boldsymbol{y}_{1: k-1}\right) / f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1 : k-1}\right) \qquad (4) f(x0:ky1:k)=f(ykxk)f(xkxk1)f(x0:k1y1:k1)/f(yky1:k1)(4)
各个时刻状态 X 0 : k \boldsymbol{X}_{0:k} X0:k的重要概率分布可写为
g ( x 0 : k ∣ y 1 : k ) = g ( x k ∣ x 0 : k − 1 , y 1 : k ) g ( x 0 : k − 1 ∣ y 1 : k − 1 ) g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right)=g\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{0: k-1}, \boldsymbol{y}_{1: k}\right) g\left(\boldsymbol{x}_{0: k-1} | \boldsymbol{y}_{1: k-1}\right) g(x0:ky1:k)=g(xkx0:k1,y1:k)g(x0:k1y1:k1)
由于 x k \boldsymbol{x}_k xk只与 x k − 1 \boldsymbol{x}_{k-1} xk1有关
g ( x 0 : k ∣ y 1 : k ) = g ( x k ∣ x k − 1 , y 1 : k ) g ( x 0 : k − 1 ∣ y 1 : k − 1 ) g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right)=g\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{k-1}, \boldsymbol{y}_{1: k}\right) g\left(\boldsymbol{x}_{0: k-1} | \boldsymbol{y}_{1: k-1}\right) g(x0:ky1:k)=g(xkxk1,y1:k)g(x0:k1y1:k1)
根据伪权重定义,并注意到式(4),得到各个时刻递推伪权重为
w ( x 0 : k ) = f ( x 0 : k ∣ y 1 : k ) f ( y k ∣ y 1 : k − 1 ) g ( x 0 : k ∣ y 1 : k ) = f ( y k ∣ x k ) f ( x k ∣ x k − 1 ) f ( x 0 : k − 1 ∣ y 1 : k − 1 ) g ( x 0 : k − 1 ∣ y 1 : k − 1 ) g ( x k ∣ x k − 1 , y 1 : k − 1 ) = f ( x 0 : k − 1 ∣ y 1 : k − 1 ) g ( x 0 : k − 1 ∣ y 1 : k − 1 ) f ( y k ∣ x k ) f ( x k ∣ x k − 1 ) g ( x k ∣ x k − 1 , y 1 : k ) = w ( x 0 : k − 1 ) f ( y k ∣ x k ) f ( x k ∣ x k − 1 ) g ( x k ∣ x k − 1 , y 1 : k ) ( 5 ) \begin{aligned} w\left(\boldsymbol{x}_{0: k}\right) &=\frac{f\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right) f\left(\boldsymbol{y}_{k} | \boldsymbol{y}_{1: k-1}\right)}{g\left(\boldsymbol{x}_{0: k} | \boldsymbol{y}_{1: k}\right)}=\frac{f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{k}\right) f\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{k-1}\right) f\left(\boldsymbol{x}_{0: k-1} | \boldsymbol{y}_{1: k-1}\right)}{g\left(\boldsymbol{x}_{0: k-1} | \boldsymbol{y}_{1: k-1}\right) g\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{k-1}, \boldsymbol{y}_{1: k-1}\right)} \\ &=\frac{f\left(\boldsymbol{x}_{0: k-1} | \boldsymbol{y}_{1: k-1}\right)}{g\left(\boldsymbol{x}_{0 : k-1} | \boldsymbol{y}_{1: k-1}\right)} \frac{f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{k}\right) f\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{k-1}\right)}{g\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{k-1}, \boldsymbol{y}_{1:k}\right)} \\ &=w\left(\boldsymbol{x}_{0: k-1}\right) \frac{f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{k}\right) f\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{k-1}\right)}{g\left(\boldsymbol{x}_{k} | \boldsymbol{x}_{k-1}, \boldsymbol{y}_{1: k}\right)} \end{aligned} \qquad (5) w(x0:k)=g(x0:ky1:k)f(x0:ky1:k)f(yky1:k1)=g(x0:k1y1:k1)g(xkxk1,y1:k1)f(ykxk)f(xkxk1)f(x0:k1y1:k1)=g(x0:k1y1:k1)f(x0:k1y1:k1)g(xkxk1,y1:k)f(ykxk)f(xkxk1)=w(x0:k1)g(xkxk1,y1:k)f(ykxk)f(xkxk1)(5) 初始时刻伪权重 w ( x 0 ) = f ( x 0 ) / g ( x 0 ) w(\boldsymbol{x}_0)=f(\boldsymbol{x}_0)/g(\boldsymbol{x}_0) w(x0)=f(x0)/g(x0)

4.标准粒子滤波过程 \textbf{4.标准粒子滤波过程} 4.标准粒子滤波过程

使用重要抽样技巧的关键是如何选取最佳重要概率分布 g ( x 0 : k ∣ y 1 : k ) g(\boldsymbol{x}_{0:k}|\boldsymbol{y}_{1:k}) g(x0:ky1:k),从式(5)看出,选取重要概率分布 g ( x 0 : k ∣ y 1 : k ) g(\boldsymbol{x}_{0:k}|\boldsymbol{y}_{1:k}) g(x0:ky1:k)变为选取概率分布 g ( x k ∣ x k − 1 , y 1 : k − 1 ) g(\boldsymbol{x}_k|\boldsymbol{x}_{k-1},\boldsymbol{y}_{1:k-1}) g(xkxk1,y1:k1)
通常可选取与观测值无关的先验概率分布作为重要概率分布,先验概率分布为
g ( x k ∣ x k − 1 , y 1 : k − 1 ) = f ( x k ∣ x k − 1 ) g(\boldsymbol{x}_k|\boldsymbol{x}_{k-1},\boldsymbol{y}_{1:k-1})=f(\boldsymbol{x}_k|\boldsymbol{x}_{k-1}) g(xkxk1,y1:k1)=f(xkxk1)
由式(5)得到第k时刻伪权重为
w ( x k ) = w ( x k − 1 ) f ( y k ∣ x k ) w\left(\boldsymbol{x}_{k}\right)=w\left(\boldsymbol{x}_{k-1}\right) f\left(\boldsymbol{y}_{k} | \boldsymbol{x}_{k}\right) w(xk)=w(xk1)f(ykxk)由观测方程,得到观测函数 b ( x k ) b(\boldsymbol{x}_k) b(xk),伪权重可写为 w ( x k ) = w ( x k − 1 ) f ( y k − b ( x k ) ) w\left(\boldsymbol{x}_{k}\right)=w\left(\boldsymbol{x}_{k-1}\right) f\left(\boldsymbol{y}_{k}-b\left(\boldsymbol{x}_{k}\right)\right) w(xk)=w(xk1)f(ykb(xk))
x k , X k i , u k , U k i \boldsymbol{x}_{\boldsymbol{k}}, \boldsymbol{X}_{k}^{\boldsymbol{i}}, \boldsymbol{u}_{\boldsymbol{k}}, \boldsymbol{U}_{\boldsymbol{k}}^{\boldsymbol{i}} xk,Xki,uk,Uki分别表示状态变量,状态样本变量,过程噪声变量,过程噪声样本值。令 y k , Y k i , v k , V k i \boldsymbol{y}_{k}, \boldsymbol{Y}_{k}^{i}, \boldsymbol{v}_{k}, \boldsymbol{V}_{k}^{i} yk,Yki,vk,Vki分别比哦啊是观测变量,观测样本值,观测噪声变量,观测噪声样本值。标准粒子滤波模拟过程包括初始化、序贯重要抽样、重抽样和状态值估计.

(1)初始化. 从初始概率分布 f ( x 0 ) f(\boldsymbol{x}_0) f(x0) 抽样产生初始时刻样本值 X 0 \boldsymbol{X}_0 X0 给出初始伪权重 w ( X 0 ) w(\boldsymbol{X}_0) w(X0).

(2)序贯重要抽样. 序贯过程是迭代过程,在粒子滤波中是时间的迭代过程.从过程噪声概率分布 f ( u k ) f(\boldsymbol{u}_k) f(uk) 抽样产生过程噪声样本值 U k i \boldsymbol{U}_{k}^i Uki 。从观测噪声概率分布 f ( v k ) f(\boldsymbol{v}_k) f(vk) 抽样产生观测噪声样本值 V k i \boldsymbol{V}_{k}^i Vki 。从先验概率分布 f ( x k ∣ x k − 1 ) f(\boldsymbol{x}_k|\boldsymbol{x}_{k-1}) f(xkxk1) 抽样产生状态样本值 X k i \boldsymbol{X}_k^i Xki 。伪权重为
w ( X k i ) = w ( X k − 1 i ) f ( Y k i ∣ X k i ) = w ( X k − 1 i ) f ( Y k i − b ( X k i ) ) w\left(\boldsymbol{X}_{k}^{i}\right)=w\left(\boldsymbol{X}_{k-1}^{i}\right) f\left(\boldsymbol{Y}_{k}^{i} | \boldsymbol{X}_{k}^{i}\right)=w\left(\boldsymbol{X}_{k-1}^{i}\right) f\left(\boldsymbol{Y}_{k}^{i}-b\left(\boldsymbol{X}_{k}^{i}\right)\right) w(Xki)=w(Xk1i)f(YkiXki)=w(Xk1i)f(Ykib(Xki))

(3)重抽样. 重抽样算法有随机重抽样算法、残差重抽样算法、系统重抽样算法、分层重抽样算法和优化组合重抽样算法等. 归一化伪权重为
w ~ ( X k i ) = w ( X k i ) / ∑ i = 1 n w ( X k i ) \tilde{w}\left(\boldsymbol{X}_{k}^{i}\right)=w\left(\boldsymbol{X}_{k}^{i}\right) / \sum_{i=1}^{n} w\left(\boldsymbol{X}_{k}^{i}\right) w~(Xki)=w(Xki)/i=1nw(Xki)
有效样本数为
N e f f = 1 / ∑ i = 1 n ( w ~ ( X k i ) ) 2 N_{\mathrm{eff}}=1 / \sum_{i=1}^{n}\left(\tilde{w}\left(\boldsymbol{X}_{k}^{i}\right)\right)^{2} Neff=1/i=1n(w~(Xki))2
如果有效样本数小于阈值,则进行重抽样。例如,随机重抽样的概率分布为
f ( i ) = w ~ ( X k i ) f(i)=\tilde{w}\left(\boldsymbol{X}_{k}^{i}\right) f(i)=w~(Xki)
利用直接抽样方法的列表查找算法抽样,得到i的样本值为
I = min ⁡ { i : F i − 1 < U ⩽ F i } I=\min \left\{i: F_{i-1}I=min{i:Fi1<UFi}
式中,累积分布函数为
F i = ∑ i = 1 n w ~ ( X k i ) F_{i}=\sum_{i=1}^{n} \tilde{w}\left(\boldsymbol{X}_{k}^{i}\right) Fi=i=1nw~(Xki)每个时刻模拟次数为n,重抽样随机变量 X \boldsymbol{X} X的样本值和伪权重为
X ~ k i = X k I , w ( X ~ k i ) = 1 / n \tilde{\boldsymbol{X}}_{k}^{i}=\boldsymbol{X}_{k}^{I}, \quad w\left(\tilde{\boldsymbol{X}}_{k}^{i}\right)=1 / n X~ki=XkI,w(X~ki)=1/n
(4)状态值的估计值和误差.每个时刻的状态估计值为
X ^ k = ∑ i = 1 n X k i w ~ ( X k i ) \hat{\boldsymbol{X}}_{k}=\sum_{i=1}^{n} \boldsymbol{X}_{k}^{i} \tilde{w}\left(\boldsymbol{X}_{k}^{i}\right) X^k=i=1nXkiw~(Xki)
m m m个时刻数,粒子滤波状态值估计的误差用均方根误差表示,均方根误差为
R M S E = ( ( 1 / m ) ∑ k = 1 m ( X ^ k − X k ) 2 ) 1 / 2 \mathrm{RMSE}=\left((1 / m) \sum_{k=1}^{m}\left(\hat{\boldsymbol{X}}_{k}-\boldsymbol{X}_{k}\right)^{2}\right)^{1 / 2} RMSE=((1/m)k=1m(X^kXk)2)1/2

    参考:康崇禄《蒙特卡罗方法理论和应用》

你可能感兴趣的:(贝叶斯统计,统计机器学习,采样算法)