UA STAT675 统计计算I 随机数生成8 Adaptive Rejection Sampling
UA STAT675 統計計算I 隨機數生成8 Adaptive Rejection Sampling
- Adaptive Rejection Sampling的幾何展示
- 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?x2log?f(x)<0\frac{\partial^2}{\partial x^2}\log f(x)<0?x2?2?logf(x)<0
就稱fff是log-concave的;這類密度的采樣方法早期由Devroye (1985) 提出,更一般性的結果由Gilks、Wild (1992) 等人基于envelope Accept-Reject方法提出,被稱為Adaptive Rejection Sampling (ARS),這個算法的思想很簡單,就是用分段線性函數構造log?f(x)\log f(x)logf(x)的包絡。
在fff的支撐集中選一系列點,x0,x1,x2,?x_0,x_1,x_2,\cdotsx0?,x1?,x2?,?,連接(x0,log?f(x0))(x_0,\log f(x_0))(x0?,logf(x0?))與(x1,log?f(x1))(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)的第一段包絡;連接(x1,log?f(x1))(x_1,\log f(x_1))(x1?,logf(x1?))與(x2,log?f(x2))(x_2,\log f(x_2))(x2?,logf(x2?))的線段如果在log?f(x)\log f(x)logf(x)的下方,就將其作為下包絡,考慮連接(x2,log?f(x2))(x_2,\log f(x_2))(x2?,logf(x2?))與(x3,log?f(x3))(x_3,\log f(x_3))(x3?,logf(x3?))的線段,延長到x1x_1x1?處,如果在在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算法
記fff得目標密度,我們把它的支撐集分為nnn段,{[xi?1,xi]}i=1n\{[x_{i-1},x_i]\}_{i=1}^n{[xi?1?,xi?]}i=1n?,每一段的上包絡為g=gi,?x∈[xi?1,xi]g=g_i,\forall x \in [x_{i-1},x_i]g=gi?,?x∈[xi?1?,xi?],下包絡為l=li,?x∈[xi?1,xi]l=l_i,\forall x \in [x_{i-1},x_i]l=li?,?x∈[xi?1?,xi?],滿足
li(x)≤f(x)≤Migi(x)l_i(x) \le f(x) \le M_ig_i(x)li?(x)≤f(x)≤Mi?gi?(x)
Algorithm 6: Adaptive Rejection Sampling
Step 0: initialize nnn and {x0,x1,?,xn}\{x_0,x_1,\cdots,x_n\}{x0?,x1?,?,xn?}
Loop: for i=1,?,ni=1,\cdots,ni=1,?,n
- Step 1: generate x~gix \sim g_ix~gi?, u~U(0,1)u \sim U(0,1)u~U(0,1)
- Step 2: if u≤l(x)Mg(x)u \le \frac{l(x)}{Mg(x)}u≤Mg(x)l(x)?, accept xxx; otherwise, if u≤f(x)Mg(x)u \le \frac{f(x)}{Mg(x)}u≤Mg(x)f(x)?, accept xxx
總結
以上是生活随笔為你收集整理的UA STAT675 统计计算I 随机数生成8 Adaptive Rejection Sampling的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UA STAT675 统计计算I 随机数
- 下一篇: UA PHYS515 电磁理论II 静电