本章中,我们希望解决的基本的问题涉及到关于⼀个概率分布p(z)寻找某个函数f(z)的期望。这⾥,z的元素可能是离散变量、连续变量或者⼆者的组合。因此,在连续变量的情形下,我们希望计算下⾯的期望
我们假设,使⽤解析的⽅法精确地求出这种期望是⼗分复杂的。因此,我们采用采样的方法抽取出样本,计算出对应的值
本章的采样方法主要包括:重要采样、拒绝采样、蒙特卡罗采样、吉布斯采样、切片采样和混合蒙特卡罗采样等
基本采样方法
这里,我们研究从一个给定的概率分布中生成随机样本的方法
标准概率分布
这考虑如何从简单的非均匀分布中生成随机数。可以从均匀分布开始,利用变换的方法,形成所需要计算的概率分布,并求出这个概率分布的不定积分的反函数。
假设z在区间
这里,y所具有的分布是我们希望的得到的分布形式。对上式积分,有:
它就是p(y)的不定积分,因此y=h−1(z)。
这里存在两个难点:(1)变换f不容易构造(2)不定积分不一定容易求解
为了对非均匀分布采样,考虑另外的方法:拒绝采样和重要采样,但它们只能处理单变量概率分布的情况。
拒绝采样
拒绝采样的思想是,目前需要采样的概率分布形式复杂,我们引入相对简单的概率分布(提议分布,proposal distribution),这个概率分布能覆盖目标分布,然后直接在提议分布上采样,通过一定的准则选择拒绝还是接受当前的采样值。
假设我们希望从概率分布
z,我们能够很容易计算p(z),即:
现在,我们引入简单的提议分布q(z)和常数k,使得:
则函数kq(z)被称为比较函数。整体情况下图说明。拒绝采样器的每个步骤涉及到⽣成两个随机数。⾸先,我们从概率分布q(z)中⽣成⼀个数z0。接下来,我们在区间[0,kq(z0)]上的均匀分布
中⽣成⼀个数u0。这对随机数在函数kq(z)的曲线下⽅是均匀分布。最后,如果u0>widetildep(z0),那
么样本被拒绝,否则u0被保留。因此,如果它位于图11.4的灰⾊阴影部分,它就会被拒绝。这样,剩余的点对在曲线widetildep(z)下⽅是均匀分布的,因此对应的z值服从概率分布p(z)。
一个样本的接受率为p˜(z)kq(z),因此整体样本的接受率为:
显然,k越大,整体接受率越低,因此k越低越好,但是k有需要满足限制kq(z)处处不小于p˜(z)
一般而言,q(z)的形式不啊后确定,可以直接基于概率分布p(z)构建提议分布的函数形式。首先,可以从ln p(z)的某些格点处开始计算,计算对应的切线,将各个切线连起来形成界限函数。然后从界限分布中采样,如果样本被接受,则他是所求概率分布的样本;反之,将它并入格点的机会中,计算新的切线,优化界限函数。随着格点数量的增加,界限函数对目标概率分布的近似效果逐渐变好。
缺点:因为目标概率分布的情况复杂,找到⼀个较好的提议分布和⽐较函数是⼀件相当困难的事情。此外,接受率随着维度的指数下降是拒绝采样的⼀个⼀般特征。虽然拒绝采样在⼀维或⼆维空间中是⼀个有⽤的⽅法,但是它不适⽤于⾼维空间
重要采样
这种采样方法主要用于估计概率分布的期望。与拒绝采样不同,重要采样不拒绝任何的采样结果,而是给提议分布上的采样结果赋予权重
同样假设直接从p(z)采样无法完成,但是给定z,p(z)很容易计算。为了计算期望,我们均匀地对z空间采样,然后计算期望:
显然,这种采样是非常低小的,因为一般而言,目标概率分布都将它的大部分质量限制在z空间的一个很小的区域,也就是说只有很小部分的样本会对求合适产生贡献。
这里再次引入提议分布q(z),期望可以表示为: