若由本篇博文增加关注,就解封本篇博文的VIP权限哈,记得在下方留言哈
5. 重采样
为什么需要重采样?
因为在实际应用SIS的过程中,我们发现出现了粒子退化现象:即经过多次迭代后,假设100个粒子,其中有1的粒子的归一化权值为0.99,而另外的99个粒子之和才0.01,这将会造成目标跟踪的失败。解决办法有啥呢:1.选取好的重要性概率密度函数;2.重采样。
什么叫做重采样,重采样就是在已经采样的结果上,再进行采样。如果不理解的话,来看看下面几幅图:
上图是重要性采样,一定看清楚样本在哪里,权值又在哪里。那些后验PDF高的地方权值相应的就大,所以我们要对这些大权值的粒子进行重采样:
观察上图,你需要知道下面几点:
- 对于权值小的粒子直接省去了,这个直接造成了在多次迭代后会造成粒子枯竭的情况(这和粒子退化可不一样哈)。
- 在重采样后粒子的个数不变。
- 重采样后粒子的权值依然相同
那么怎样进行重采样呢?一般我们采用均匀重采样。来再看下面这幅图:
假设我们经过重要性采样后得到三个粒子x1,x2,x3,且权值分别为0.1,0.1,0.8。如果我们用计算机产生0到1的随机数,看看这个随机数落到上面纵坐标的哪一部分,即把相应的粒子保存即可。由于上述得到的是三个粒子,则重采样也应该进行三次得到三个粒子,这三个粒子的权值是相同的,但是相应的状态则大部分是属于归一化权重是0.8的那个状态。这里的假设的粒子较少,你可以想想有2000个粒子的场景。 - 到此我们已经把标准的粒子滤波算法的整个流程详细叙述了一遍。即:初始化——》接着递归:贯序重要性采样,重采样——》输出
- SIR
还记得上面我提到的避免例子退化的另一个方法:选择一个好的重要性概率密度函数吗,SIS+重采样+一个好的重要性概率密度函数=SIR。
一般选取的这个好的重要性概率密度函数为状态转移概率密度函数:
将上式代入上篇中权值的计算结果即可:
下面重要的来了,这个对于你编程时很重要:上面的是重采样后的权值,这个i从1到N,这N个粒子的权值是一样的,则那个符号是“服从”的意思,乘不乘个常数无伤大雅吧。这个是该时刻在重要性采样时候的权值,这时还没经过重采样哈。
- 上面是服从量测噪声的概率密度函数。如果不知道可以看看我的这篇文章(从零开始)基于检测前跟踪雷达目标跟踪技术的研究:第(5)周所学知识。如果有VIP权限,第一时间私聊我,我会尽快解封。
- 最后