ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

崔岩的笔记——粒子滤波原理及应用(3)粒子滤波原理及算法流程

2022-01-08 21:03:22  阅读:171  来源: 互联网

标签:采样 状态 粒子 权重 滤波 贝叶斯 原理


崔岩的笔记——粒子滤波原理及应用(1)概率论与数理统计基础_今天也是睡觉的一天的博客-CSDN博客

崔岩的笔记——粒子滤波原理及应用(2)蒙特卡洛法与贝叶斯滤波_今天也是睡觉的一天的博客-CSDN博客

粒子滤波原理

粒子滤波是基于蒙特卡洛仿真的近似贝叶斯滤波算法。

我们可以从贝叶斯滤波的过程来相应的给出粒子滤波的过程。

贝叶斯滤波公式推导分为两步,详细推导过程请见:崔岩的笔记——粒子滤波原理及应用(2)蒙特卡洛法与贝叶斯网络。

第一步为状态预测,即通过上一时刻的状态量和当前时刻的控制量预测当前时刻的状态量:

\overline{bel}(X_t) = \int P(X_t|U_t,X_{t-1})bel(X_{t-1})dX_{t-1}

第二步为量测更新,即通过当前时刻的观测量来修正当前时刻状态量的预测量:

bel(X_t) = \eta P(Z_t|X_t)\overline{bel}(X_t)

式中\eta代表归一化常数。

对照贝叶斯滤波给出粒子滤波算法:

①生成初代粒子

通过先验概率生成初代粒子N个,各粒子之间相互独立,各个粒子的初始状态量分布服从先验概率分布。

X_o^{(i)} \sim P(X_0),i = 1,2,...,N

②对于每个粒子进行状态量更新

对比贝叶斯滤波中的状态预测步骤,我们对每一个粒子上一时刻状态量X_{t-1}^{(i)}按照控制方程q(X_t|U_t,X_{t-1})进行更新,得到X_{t}^{(i)}

③对于每个粒子进行权重计算

对比贝叶斯滤波中的量测更新步骤,我们根据观测量Z_t,结合观测方程P(Z_t|X_t)计算每个粒子的权重W^{(i)},与贝叶斯滤波中的量测更新不同的是,我们在这一步不对粒子的状态量进行更新,而是引入一个新的参数——粒子权重,通过权重大小来表明各个粒子中,哪一个粒子的状态量估计值同真值更接近,其接近的程度又是多少。

④优胜劣汰

根据每个粒子的权重通过重采样步骤进行粒子的删除与复制,淘汰权重低的粒子,留下权重高的粒子。具体可以参考轮盘赌算法。

粒子重采样后需要对粒子权重进行重置,再依次循环状态更新、权重计算、优胜劣汰三步。最终会得到一个粒子集,我们通常把这个粒子集的状态量均值作为粒子滤波的结果。

在上述的整个过程中,我们使用粒子分布对概率进行表示、包括采样过程的理论依据就是蒙特卡洛法

粒子滤波算法流程

①初始化,t = 0

For i = 1:N,从先验分布P(X_0)中抽取初始化状态X^{i}_0

②For i = 1:T

(a)重要性采样阶段

For i = 1:N,采样\hat X_k^{(i)} \sim q(X_k|X^{(i)}_{0:k-1},Z_{1:k})

For i = 1:N,为每个粒子计算权重

W^{(i)}_k = W^{(i)}_{k-1}\frac{P(Z_k|X^{(i)}_k)P(X^{(i)}_k|X^{(i)}_{k-1})}{q(X_k|X^{(i)}_{0:k-1},Z_{1:k})}

For i = 1:N,归一化权重

\tilde {W_k}(X^{(i)}_{0:k}) = \frac{W_k(X^{(i)}_{0:k})}{\sum_{i=1}^N W_k(X^{(i)}_{0:k})}

(b)选择阶段(重采样)

根据归一化权值\tilde {W_k}(X^{(i)}_{0:k})的大小对粒子进行复制和淘汰

For i = 1:N,重新设置权重W_k^{(i)} = \frac{1}{N}

(c)输出

粒子滤波的输出为一组样本点,以样本点近似表示后验分布

P(X_{0:k}|Z_{1:k}) \approx \hat P(X_{0:k}|Z_{1:k}) = \frac{1}{N}\sum_{i = 1}^N \delta_{X^{(i)}_{0:k}} (dX_{0:k})

计算均值

E(g_k(X_{0:k})) = \int g_k(X_{0:k})P(X_{0:k}|Z_{1:k})dX_{0:k} \approx \frac{1}{N}\sum_{i = 1}^N g_k(X^{(i)}_{0:k})

end

标签:采样,状态,粒子,权重,滤波,贝叶斯,原理
来源: https://blog.csdn.net/qq_43587949/article/details/122385977

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有