1700537225
p(u)||=p(x) .
1700537226
1700537227
(8.2)
1700537228
1700537229
1700537230
1700537231
1700537232
因此,如果从目标分布p(x)中不好采样x,可以构造一个变换,使得从变换后的分布p(u)中采样u比较容易,这样可以通过先对u进行采样然后通过反函数来间接得到x。如果是高维空间的随机向量,则对应Jacobian行列式。
1700537233
1700537234
特别地,在函数变换法中,如果变换关系φ(·)是x的累积分布函数的话,则得到所谓的逆变换采样(Inverse Transform Sampling)。假设待采样的目标分布的概率密度函数为p(x),它的累积分布函数为
1700537235
1700537236
1700537237
,
1700537238
1700537239
(8.3)
1700537240
1700537241
则逆变换采样法按如下过程进行采样:
1700537242
1700537243
(1)从均匀分布U(0,1)产生一个随机数ui;
1700537244
1700537245
1700537246
1700537247
(2)计算,其中是累积分布函数的逆函数。
1700537248
1700537249
根据式(8.2)和式(8.3),上述采样过程得到的xi服从p(x)分布。图8.2是逆变换采样法的示意图。
1700537250
1700537251
1700537252
1700537253
1700537254
图8.2 逆变换采样示意图
1700537255
1700537256
如果待采样的目标分布的累积分布函数的逆函数无法求解或者不容易计算,则不适用于逆变换采样法。此时可以构造一个容易采样的参考分布,先对参考分布进行采样,然后对得到的样本进行一定的后处理操作,使得最终的样本服从目标分布。常见的拒绝采样(Rejection Sampling)、重要性采样(Importance Sampling),就属于这类采样算法,下面分别简单介绍它们的采样过程。
1700537257
1700537258
1700537259
拒绝采样,又叫接受/拒绝采样(Accept-Reject Sampling)。对于目标分布p(x),选取一个容易采样的参考分布q(x),使得对于任意x都有,则可以按如下过程进行采样:
1700537260
1700537261
(1)从参考分布q(x)中随机抽取一个样本xi。
1700537262
1700537263
(2)从均匀分布U(0,1)产生一个随机数ui。
1700537264
1700537265
1700537266
(3)如果,则接受样本xi ;否则拒绝,重新进行步骤(1)~(3),直到新产生的样本xi被接受。
1700537267
1700537268
通过简单的推导,可以知道最终得到的xi服从目标分布p(x)。如图8.3(a)所示,拒绝采样的关键是为目标分布p(x)选取一个合适的包络函数M·q(x):包络函数越紧,每次采样时样本被接受的概率越大,采样效率越高。在实际应用中,为了维持采样效率,有时很难寻找一个解析形式的q(x),因此延伸出了自适应拒绝采样(Adaptive Rejection Sampling),在目标分布是对数凹函数时,用分段线性函数来覆盖目标分布的对数ln p(x),如图8.3(b)所示,这里不再细述。
1700537269
1700537270
1700537271
1700537272
1700537273
图8.3 拒绝采样示意图
1700537274
[
上一页 ]
[ :1.700537225e+09 ]
[
下一页 ]