sampling学习小结
本文是在阅读prml的第11章后,写的一个总结。
首先要说说为什么需要采样。通常没我们会遇到很多问题无法用分析的方法求得精确解,例如待求问题很复杂。遇到这种情况的时候,人们通常会采用一些方法得到近似解,其中随机模拟就是一类近似求解的方法,采样就是随机模拟的核心。
-基本方法:
从基本概率分布产生新变量分布,假设有某分布的分布函数是 F(x) ,若 y 是
问题: F−1(y) 难解
-基于proposal distribution方法:
从分布 p(z) 采样很困难,但是可以找到一个相对更容易的分布 q(z) ,这个 q(z) 称之为proposal distribution。
- Rejection sampling
具体操作如下,设定一个方便抽样的函数 q(x),以及一个常量 k,使得 p(x) 总在 kq(x) 的下方。(参考上图)
- x 轴方向:从 q(x) 分布抽样得到 a。
- y 轴方向:从均匀分布(0, kq(a)) 中抽样得到 u。
- 如果刚好落到灰色区域: u > p(a), 拒绝, 否则接受这次抽样
- 重复以上过程
为什么需要乘上k呢?
对于两个分布,其积分面积是一致的,因为都等于概率1, 不能时刻保证任意一个分布大于另一个分布,所以乘上k后能够保证这一点。
在选择k的过程中,需要选择尽量小,这样能保证拒绝率小,从而提高采样的的效率。
Adaptive Rejective Sampling
拒绝采样的弱点在于当被拒绝的点很多时,采样的效率会非常不理想。同时我如果能够找到一个跟目标分布函数非常接近的参考函数,那么就可以保证被接受的点占大多数(被拒绝的点很少)。这样一来便克服了拒绝采样效率不高的弱点。如果函数是 log-concave 的话,那么我们就可以采样自适应的拒绝采样方法。
什么是log-concave呢?
就是对任意的p(x) 如果他的log p(x)是凹函数,那么p(x) 就是log-concave.
在对数图像上找一些点做图像的切线,如下图所示。因为对数图像是凹函数,所以每个切线都相当于一个超平面,而且对数图像只会位于超平面的一侧。
因为我们之前对p(x) 取了对数,还原回去就是做一个指数运算。如下图中的一些曲线,这些曲线会被原函数的图形紧紧包裹住。特别是当这些的指数函数变得很多很稠密时,以彼此的交点作为分界线,我们其实相当于得到了一个分段函数。这个分段函数是原函数的一个逼近。用这个分段函数来作为参考函数再执行Reject Sampling,自然就完美的解决了我们之前的问题。
- Importance sampling
假设对 p(z) 的采样困难,但是对一个给定的 z ,却可以容易计算其值。若现在不是要计算分布的采样,而是计算一个函数
E(f)=∫p(z)f(z)dz=p(z)f(z)q(z)q(z)dz≈1L∑L