UA STAT675 统计计算I 随机数生成8 Adaptive Rejection Sampling

UA STAT675 统计计算I 随机数生成8 Adaptive Rejection Sampling

Adaptive Rejection Sampling的几何展示

这一讲我们讨论一类重要密度的采样方法,回顾一下指数分布族
f ( x ) = h ( x ) e θ x − ϕ ( θ ) f(x)=h(x)e^{\theta x - \phi(\theta)} f(x)=h(x)eθxϕ(θ)

如果
∂ 2 ∂ x 2 log ⁡ f ( x ) < 0 \frac{\partial^2}{\partial x^2}\log f(x)<0 x22logf(x)<0

就称 f f f是log-concave的;这类密度的采样方法早期由Devroye (1985) 提出,更一般性的结果由Gilks、Wild (1992) 等人基于envelope Accept-Reject方法提出,被称为Adaptive Rejection Sampling (ARS),这个算法的思想很简单,就是用分段线性函数构造 log ⁡ f ( x ) \log f(x) logf(x)的包络。

在这里插入图片描述
f f f的支撑集中选一系列点, x 0 , x 1 , x 2 , ⋯ x_0,x_1,x_2,\cdots x0,x1,x2,,连接 ( x 0 , log ⁡ f ( x 0 ) ) (x_0,\log f(x_0)) (x0,logf(x0)) ( x 1 , log ⁡ f ( x 1 ) ) (x_1,\log f(x_1)) (x1,logf(x1))的线段如果在 log ⁡ f ( x ) \log f(x) logf(x)的上方,就将其作为 log ⁡ f ( x ) \log f(x) logf(x)的第一段包络;连接 ( x 1 , log ⁡ f ( x 1 ) ) (x_1,\log f(x_1)) (x1,logf(x1)) ( x 2 , log ⁡ f ( x 2 ) ) (x_2,\log f(x_2)) (x2,logf(x2))的线段如果在 log ⁡ f ( x ) \log f(x) logf(x)的下方,就将其作为下包络,考虑连接 ( x 2 , log ⁡ f ( x 2 ) ) (x_2,\log f(x_2)) (x2,logf(x2)) ( x 3 , log ⁡ f ( x 3 ) ) (x_3,\log f(x_3)) (x3,logf(x3))的线段,延长到 x 1 x_1 x1处,如果在在 log ⁡ f ( x ) \log f(x) logf(x)的上方,就将其作为 log ⁡ f ( x ) \log f(x) logf(x)的第二段上包络;按照这个过程找 log ⁡ f ( x ) \log f(x) logf(x)的分段线性包络,这就是ARS算法找envelope的思路。

Adaptive Rejection Sampling算法

f f f得目标密度,我们把它的支撑集分为 n n n段, { [ x i − 1 , x i ] } i = 1 n \{[x_{i-1},x_i]\}_{i=1}^n {[xi1,xi]}i=1n,每一段的上包络为 g = g i , ∀ x ∈ [ x i − 1 , x i ] g=g_i,\forall x \in [x_{i-1},x_i] g=gi,x[xi1,xi],下包络为 l = l i , ∀ x ∈ [ x i − 1 , x i ] l=l_i,\forall x \in [x_{i-1},x_i] l=li,x[xi1,xi],满足
l i ( x ) ≤ f ( x ) ≤ M i g i ( x ) l_i(x) \le f(x) \le M_ig_i(x) li(x)f(x)Migi(x)


Algorithm 6: Adaptive Rejection Sampling

Step 0: initialize n n n and { x 0 , x 1 , ⋯   , x n } \{x_0,x_1,\cdots,x_n\} {x0,x1,,xn}
Loop: for i = 1 , ⋯   , n i=1,\cdots,n i=1,,n

  • Step 1: generate x ∼ g i x \sim g_i xgi, u ∼ U ( 0 , 1 ) u \sim U(0,1) uU(0,1)
  • Step 2: if u ≤ l ( x ) M g ( x ) u \le \frac{l(x)}{Mg(x)} uMg(x)l(x), accept x x x; otherwise, if u ≤ f ( x ) M g ( x ) u \le \frac{f(x)}{Mg(x)} uMg(x)f(x), accept x x x

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:C马雯娟 返回首页