重要性采样
最近再看贝叶斯实验设计(BOED)相关文献的,发现重要性采样是一个常用方法。重要性采样和MCMC一样,是一种从难采样分布中采样的方法。常用于后验分布样本的采集。
目标
目标是求取积分式:
Ep[f(x)]=∫xf(x)p(x)dx=∫xf(x)p(x)q(x)q(x)dx=∫xf(x)w(x)q(x)dx=Eq[f(x)w(x)]\mathbb{E}_p[f(x)]=\int_{x}f(x)p(x)dx \\
=\int_{x}f(x)\frac{p(x)}{q(x)}q(x)dx\\
=\int_{x}f(x)w(x)q(x)dx\\
=\mathbb{E}_q[f(x)w(x)]Ep[f(x)]=∫xf(x)p(x)dx=∫xf(x)q(x)p(x)q(x)dx=∫xf(x)w(x)q(x)dx=Eq[f(x)w(x)]
通过上述等价的公式,将从ppp上的期望,转移到qqq上来求,但是需要对原来的函数进行一个加权w(x)w(x)w(x)。
这样转移的原因在于,概率分布ppp采样是困难的,而概率分布qqq采样是容易的,这个分布式我们自己随意选取的,但是需要注意选取时要保证两个分布的支撑(取值范围)相同。例如,ppp可以是某种复杂的后验分布,而qqq可以是高斯分布、均匀分布等极为容易采样,且具有直接采样算法的概率分布。
而概率分布ppp的采样虽然是困难的,但是其是可以计算的,新手常常误解这一点。采样的困难并不是来源于不能计算。因此,权重w(x)w(x)w(x)是可以计算的。
计算
利用蒙特卡洛积分,可以容易的将上面的期望写为求和形式:
Eq[f(x)w(x)]=1N∑i=1Nf(xi)w(xi)
\mathbb{E}_q[f(x)w(x)]\\
=\frac{1}{N}\sum_{i=1}^{N}f(x_i)w(x_i) Eq[f(x)w(x)]=N1i=1∑Nf(xi)w(xi)
其中,xi∼q(x)x_i \sim q(x)xi∼q(x)采样,上面也已经说过q(x)q(x)q(x)是好采样的。
有效样本数
进行了大量采样后,有效样本数表达为:
ESS=(∑i=1Nwi)2∑i=1Nwi2ESS = \frac{(\sum_{i=1}^{N}{w_i)^2}}{\sum_{i=1}^{N}w_i^2}ESS=∑i=1Nwi2(∑i=1Nwi)2
有效样本数是评判采样质量的一个标准,其思想来源于如果概率分布ppp和概率分布qqq十分的接近,则有效样本数会接近采样数。如果两者概率分布相差很大,则权重要么很大,要么很小,则有效样本数就会降低。
如果将权重归一化,则有效样本数的定义就成为:
ESS=1∑i=1NWk2ESS = \frac{1}{\sum_{i=1}^{N}W_k^2}ESS=∑i=1NWk21
其中,WkW_kWk代表归一化后的权重。
重要性采样在贝叶斯实验设计中的好处
重要性采样在贝叶斯实验设计中有一个特点,即每次不需要重新进行采样,只需要重新计算权重。但是实际上并不能节约太多算力,原因是贝叶斯实验设计的过程中主要导致计算高昂的是正向模型的多次运行,而计算权重的过程仍然需要重新计算正向模型(设计变量改变导致模型发生变化)。