【问题标题】:How to pick base samples deterministically in the particle filter algorithm?如何在粒子滤波算法中确定性地选择基础样本?
【发布时间】:2012-11-11 15:08:04
【问题描述】:

粒子滤波算法以其在视频序列中跟踪对象的用途而闻名:在每次迭代中,该算法都会生成关于对象运动的假设(或样本)。为了生成新假设,缩合算法的第一步涉及样本的选择:this web page 中提供的示例显示了选择步骤的实现,它使用二分搜索来选择一个碱基样本;支持pick_base_sample() 函数的评论解释了这一点

使用此例程可以使冷凝 O(NlogN),其中 N 是样本数。选择基础样本可能更好 确定性地,从那时起算法是 O(N) 并且可能 效率稍高一些,但此例程保留在这里 概念简单,因为它更好地映射到已发布的 文学。

确定性地选择基础样本意味着什么? 如何确定性地选择基础样本?

【问题讨论】:

  • 链接死了。您应该在帖子中解释所有相关信息。
  • 对您的应用程序一无所知,从这个意义上说,“确定性”通常意味着您选择一些固定的方法来决定要做什么,从某种意义上说,如果您面临完全相同的集合将来再次选择替代方案时,您的算法将产生相同的输出。

标签: algorithm language-agnostic probability particle-filter


【解决方案1】:

凝聚算法利用多个样本来表示当前估计的状态,每个样本都有一个关联的权重(估计样本正确的概率)。

选择步骤从这个集合中选择N个样本(有放回,所以同一个样本可以出现多次)。

为了解释选择步骤,想象将样本绘制为一系列线段。让每条线段的宽度等于该样本的权重。

例如,假设我们有样本 A(权重 0.1)B(权重 0.3)和 C(权重 0.6)。

我们会画:

ABBBCCCCCC

正常的随机选择过程包括通过沿这条线选取一个随机点并查看哪个样本出现在该位置来抽取样本。这种方法的感知问题是,当使用树数据结构来保存权重时,它需要 O(logN) 操作来计算出哪个样本出现在特定位置。 (虽然在实践中我不认为这会成为实现中的主要处理瓶颈)

另一种确定性(基本上认为“可重复”和“不涉及随机数”)方法是通过沿同一条线选取 N 个规则间隔的点来简单地选择样本。这样做的好处是执行此操作的算法需要时间 O(N) 而不是 O(NlogN)。

(确定性算法是循环遍历所有样本,跟踪到目前为止看到的总重量。每当总重量达到下一个规则间隔的点时,您就收集一个新样本。这只需要一次通过样本,所以是 O(N)。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多