粒子过滤器中有替换采样与无替换采样之间的区别
Difference between sampling with replacement vs without replacement in particle filter
对于一个简单的粒子滤波器的重采样过程,有放回采样和无放回采样有什么区别统计偏差和实际意义的术语?
我相信我心目中的无替换重采样方法与通常的无替换采样统计方法是不一样的。
在更具体的上下文中:
在模拟和观察之后粒子滤波器的过程,我最终得到一个双元素元组列表 (s, p),长度为 N。然而,s 代表我相信的状态,概率为 p。
采样与替换将是:
1.Calculate 列表中每个元组的 p 的累积总和。
2.Draw从[0, 1)随机数,看每个随机数在累加和上落在哪个桶中,那个桶对应的元素被复制为下一轮的新粒子
这是with替换因为每个随机数都是独立的,每个旧粒子都有机会等于p被选中,无论已经生成了多少新粒子。
采样 无 替换将是:
1.Calculate 列表中每个元组的 p 的累积总和。
2.Generate 等差数列中的浮点数列表,其中 i-th 元素等于 i * (1 / N)。使用它作为随机数插入累积和桶。您可以将其想象为使用具有等距栏的栏杆对累积总和 p 列表进行切片。同样,每个桶对应的元素被复制成为一个新的粒子。
这是没有替换的,因为一旦桶选择的算术序列用完,就再也不会选择它了。
实际例子:
N = 8
(s, p) 列表:
(A, 0.1),
(乙, 0.2),
(C, 0.3),
(D, 0.4)
用替换,假设随机数分别为:0.2、0.8、0.4、0.7、0.6、0.3、0.9、0.1,新列表粒子变为B、D、C、D , C, B, D, A
没有替换,等差数列为:0.125,0.25,0.375,0.5,0.625,0.75,0.875,0.99999999,新粒子列表变为B,B,C,C , D, D, D, D
我认为您描述的 "without resampling" 方法是错误的,因为它保证如果第一个元素的可能性小于 1 / N
,那么它 不会 被选中,因此这些状态将被算法自动拒绝。
对比第一个元素和中间的元素,即使它的可能性小于1 / N
,仍然可以被选中。这意味着该算法偏向中间的第一个元素。
这不是您在重采样步骤中想要的;一切都应该有公平的非零传播机会。否则,您将失去概率正确性保证。
Mehrdad 是对的;你的抽样方法有问题。也有修复此错误的方法(例如在删除每个样本后重做该过程),但从概念上讲,在粒子过滤器中不进行替换的采样只是一个坏主意。
采样步骤的目标是在特定时间步从真实状态概率分布中抽取样本。因为我们用有限数量的粒子来近似这个分布,有放回的采样本质上修改了每个样本之后的分布,所以最终样本的分布不同于第一个样本的分布。
更具体地,考虑一种假设情况,其中有两个粒子处于状态 A 和 B,质量分别为 0.01 和 0.99。如果我们取两个有放回的样本,我们很可能(0.98 概率)得到两个处于状态 B 的粒子。但是,如果我们取两个没有放回的样本,我们将 总是 得到一个处于状态 B 的粒子每个。这会丢弃原始粒子分布中的大量信息,并将其替换为基本均匀的分布。
那个特定的例子是人为设计的,但考虑到通常在粒子过滤器中,粒子的数量是恒定的。也就是说,您对粒子进行采样、重新加权,然后再次对相同数量的粒子进行重新采样。在此设置中,不带替换的重新采样只是简单地再现了原始粒子集(因为您将对每个粒子进行采样),从而完全忽略了重新加权步骤的影响!
对于一个简单的粒子滤波器的重采样过程,有放回采样和无放回采样有什么区别统计偏差和实际意义的术语?
我相信我心目中的无替换重采样方法与通常的无替换采样统计方法是不一样的。
在更具体的上下文中:
在模拟和观察之后粒子滤波器的过程,我最终得到一个双元素元组列表 (s, p),长度为 N。然而,s 代表我相信的状态,概率为 p。
采样与替换将是:
1.Calculate 列表中每个元组的 p 的累积总和。
2.Draw从[0, 1)随机数,看每个随机数在累加和上落在哪个桶中,那个桶对应的元素被复制为下一轮的新粒子
这是with替换因为每个随机数都是独立的,每个旧粒子都有机会等于p被选中,无论已经生成了多少新粒子。
采样 无 替换将是:
1.Calculate 列表中每个元组的 p 的累积总和。
2.Generate 等差数列中的浮点数列表,其中 i-th 元素等于 i * (1 / N)。使用它作为随机数插入累积和桶。您可以将其想象为使用具有等距栏的栏杆对累积总和 p 列表进行切片。同样,每个桶对应的元素被复制成为一个新的粒子。
这是没有替换的,因为一旦桶选择的算术序列用完,就再也不会选择它了。
实际例子:
N = 8
(s, p) 列表: (A, 0.1), (乙, 0.2), (C, 0.3), (D, 0.4)
用替换,假设随机数分别为:0.2、0.8、0.4、0.7、0.6、0.3、0.9、0.1,新列表粒子变为B、D、C、D , C, B, D, A
没有替换,等差数列为:0.125,0.25,0.375,0.5,0.625,0.75,0.875,0.99999999,新粒子列表变为B,B,C,C , D, D, D, D
我认为您描述的 "without resampling" 方法是错误的,因为它保证如果第一个元素的可能性小于 1 / N
,那么它 不会 被选中,因此这些状态将被算法自动拒绝。
对比第一个元素和中间的元素,即使它的可能性小于1 / N
,仍然可以被选中。这意味着该算法偏向中间的第一个元素。
这不是您在重采样步骤中想要的;一切都应该有公平的非零传播机会。否则,您将失去概率正确性保证。
Mehrdad 是对的;你的抽样方法有问题。也有修复此错误的方法(例如在删除每个样本后重做该过程),但从概念上讲,在粒子过滤器中不进行替换的采样只是一个坏主意。
采样步骤的目标是在特定时间步从真实状态概率分布中抽取样本。因为我们用有限数量的粒子来近似这个分布,有放回的采样本质上修改了每个样本之后的分布,所以最终样本的分布不同于第一个样本的分布。
更具体地,考虑一种假设情况,其中有两个粒子处于状态 A 和 B,质量分别为 0.01 和 0.99。如果我们取两个有放回的样本,我们很可能(0.98 概率)得到两个处于状态 B 的粒子。但是,如果我们取两个没有放回的样本,我们将 总是 得到一个处于状态 B 的粒子每个。这会丢弃原始粒子分布中的大量信息,并将其替换为基本均匀的分布。
那个特定的例子是人为设计的,但考虑到通常在粒子过滤器中,粒子的数量是恒定的。也就是说,您对粒子进行采样、重新加权,然后再次对相同数量的粒子进行重新采样。在此设置中,不带替换的重新采样只是简单地再现了原始粒子集(因为您将对每个粒子进行采样),从而完全忽略了重新加权步骤的影响!