接上一篇,现在我们介绍蒙特卡罗积分和几种采样方法。目前我只是对粒子滤波有一个比较基础的认识,基本原理上只涉及到了蒙特卡罗采样和Important Sampling,Sequential Important Sampling,Sampling-Importance Resampling三种,所以就只介绍这几种。
1 蒙特卡罗积分
蒙特卡罗方法又被称为随机采样法或统计试验法,其基本思路就是将实际求解的问题描述成某种随机变量,然后从已知的概率分布采样,建立各种估计量,得到所求的解。所谓的蒙特卡罗积分也是这个思想。
假设
D
是
蒙特卡罗积分就是将积分值
假设从概率密度 p(x) 中采样得到 Np 个独立同分布的样本值 [x1,...,xNp] ,那么 G(x) 的蒙特卡罗估计可以为
由大数定理可以知道,当 [x1,...,xNp] 相互独立而且 Np→∞ 的时候,我们上面得到的估计 fNp^ 就会以概率1收敛与积分的真值,也就是
由中心极限定理可以知道,收敛的速率为
从以上推理我们基本可以知道,估计的误差率是 O(Np−1/2) ,而且估计的方差和采样的个数成反比。
2 几种采样方法
2.1 重要采样
重要采样是采样分布的“重要”区域,这样的话可以提高计算效率。一般来说先验分布
p(x)
难以采样,我们间接的选取一个重要分布
q(x)
来取代原来真实的分布,于是有下面的公式:
蒙特卡罗重要性采样就是从重要分布 q(x) 采大量的(比如说 Np )独立样本以此来获得加权的求和项来估计 f(x) 。
其中 W(xi)=p(xi)q(xi) 叫做重要性权值,但是如果归一化因子 p(x) 不知道,我们只能说权值正比于一个常数,也就是 W(xi)∝p(xi)q(xi) ,为了保证 ∑Npi=1W(xi)=1 ,我们通常对权值做归一化,也就是
2.2 序贯重要采样
一个好的重要分布对于重要采样的效果是很重要的,因此怎么选择重要分布是成功应用重要采样的关键,但是一般来说寻找一个重要分布尤其是在高维空间中寻找是很难的。一个很自然的想法就是我们可以按照顺序来建立重要分布,这就是所谓的序贯重要采样(SIS)的基本思想。
如果我们的重要分布式按照一个因式分解的形式选择的,如下所示,那么重要采样就可以采用迭代的方式来进行。
为了便于理解,我们考虑一个简化的例子,也就是不考虑条件,按照条件概率我们可以有
因此重要权重就可以看作
于是也就可以用迭代的形式来计算
2.3 重采样
重采样的目的可以基于以下几点:
(1)如果重要权重不是均匀分布的,那么计算一些“琐碎”的权重很没有必要,是对计算能力的浪费;
(2)当重要权值不准确的时候,重采样可以提供选择重要样本的机会。
注意:
(1)一般来说,重采样是在两次重要采样之间执行的。在重采样的时候,粒子和相关重要权重
{x(i),W^(i)}
被新的等权重的粒子替换。重采样可以每一步都执行也可以在需要的时候执行。
(2)重采样不会提高当前状态估计的精度,因为重采样也会带来额外的蒙特卡罗方差。
在目前我只用到了一种重要采样算法,我在这里给出:
(1)产生一个均匀分布
u∼U(0,1)
,建立一个权重的累积概率,也就是
si=∑ij=1W^(j)
;
(2)寻找一个
si
使得
si−1≤u≤si
,索引为
i
的粒子被选择;
(3)给定
(4)
W(i)=1/Np
.