zoukankan      html  css  js  c++  java
  • 粒子滤波(PF:Particle Filter)

    先介绍概念:来自百科
    粒子滤波指:通过寻找一组在状态空间中传播的随机样本来近似的表示概率密度函数,再用样本均值代替积分运算,进而获得系统状态的最小方差估计的过程,波动最小,这些样本被形象的称为“粒子”,故而叫粒子滤波。 
    粒子滤波(PF: Particle Filter)的思想基于蒙特卡洛方法(Monte Carlo methods),它是利用粒子集来表示概率,可以用在任何形式的状态空间模型上。其核心思想是通过从后验概率中抽取的随机状态粒子来表达其分布,是一种顺序重要性采样法(Sequential Importance Sampling)。简单来说,粒子滤波法是指通过寻找一组在状态空间传播的随机样本对概率密度函数进行近似,以样本均值代替积分运算,从而获得状态最小方差分布的过程。这里的样本即指粒子,当样本数量N→∝时可以逼近任何形式的概率密度分布。
     
    尽管算法中的概率分布只是真实分布的一种近似。但只要样本的量足够模拟现实空间的分布,一定程度的反应出现实空间的分布特点,就可以具有真实的应用性,而性能好坏都取决于选择样本所反应真实分布的程度。
     
    参数化的特点,它摆脱了解决非线性滤波问题时随机量必须满足高斯分布的制约,能表达比高斯模型更广泛的分布,也对变量参数的非线性特性有更强的建模能力。因此,粒子滤波能够比较精确地表达基于观测量和控制量的后验概率分布,可以用于解决SLAM问题。
     

     在我的项目中的应用:

     使用的是用PF去 查找优化的线性空间。

    因为空间流量是随机的,构成的整体分布随机,因为不符合高斯分布,所以无法找出合理的pdf(probability density function),所以只能用随意样本去模拟空间分布的PDF,(on academic,可以是信息传播的分布,波形图)。这样近似的模拟,得到后验概率posterior probability,PP就可以用来选择好的模型空间,

     在具体的实现过程中,基于pp值用线性探测,可以找出相对较好的空间,这是一定程度上的好的空间,同时可以防止作弊行为。

    我和老大探讨了一下,排序后,选取排名最大的,这样很容易使得存在作弊行为的空间过于优化。而这样做,一定范围的随机性配合空间的优势,这样的选取考虑到了两方面的优势,

    如果按照中庸想法,排好序列后,掐头去尾,去除最大的几个,和最小的几个,从中间范围随机选择几个,这样,也保持了一定的随机性。但这样做始终无法最大限度的保持随机性,而且最大和最小的排除并不具备绝对合理性。

    所以线性搜索是非常好的。

     

    粒子滤波的缺点

    最主要的问题是需要用大量的样本数量才能很好地近似系统的后验概率密度。面临的环境越复杂,描述后验概率分 布所需要的样本数量就越多,算法的复杂度就越高。因此,能够有效地减少样本数量的自适应采样策略是该算法的重点。另外,重采样阶段会造成样本有效性和多样性的损失,导致样本贫化现象。如何保持粒子的有效性和多样性,克服样本贫化,也是该算法研究重点。

     

  • 相关阅读:
    近两周总结、、
    联局域网服务器
    C++ builder 中的 XMLDocument 类详解(17) 更好地显示 xml 的测试结果 FormatXMLData 及其他
    看了《马粥街残酷史》这部电影有感
    这次出差总结
    C++ builder 中的 XMLDocument 类详解(18) NodeValue 与 NodeName 的读写区别
    oracle 常用语句
    c++ builder 中的 XMLDocument 类详解(14) XML的保存与创建
    C++ builder 中的 XMLDocument 类详解(16) – 前一个节点、后一个节点和父节点
    C++ builder 中的 XMLDocument 类详解(15) – Firstnode 和Lastnode
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205561.html
Copyright © 2011-2022 走看看