1

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

使用此例程使冷凝 O(NlogN),其中 N 是样本数。确定性地选择基础样本可能会更好,因为那时算法是 O(N) 并且可能稍微更有效,但是为了概念上的简单性并且因为它更好地映射到已发表的文献,这个例程被保留在这里。

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

4

1 回答 1

1

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

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

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

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

我们会画:

ABBBCCCCCC

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

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

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

于 2012-11-11T19:01:19.193 回答