当前位置:网站首页>拒绝采样小记
拒绝采样小记
2022-07-31 05:16:00 【Young_win】
section 1
拒绝采样最关键的部分,搞个矩形、向矩形里投点等等,所做的一切都是为了获得一个密度曲线所围成区域的均匀分布。只要能获得这样一个在密度曲线下满足均匀分布的样本,我们就可以获得与该密度曲线相匹配的随机变量的采样样本。方法是,只需把每个蓝点的横坐标提取出来,这些横坐标所构成的样本就是我们的目标样本。
step1:用一个矩形将这个密度曲线套起来,把密度曲线 框在一个矩形里。
step2:向矩形里随机投点10000次(虚值)。随机投点意味着在矩形这块区域内,这些点是满足均匀分布的。
step3:有的点落在了密度曲线下侧,有的点落在了密度曲线的上侧。只保留密度曲线下侧的点。
step4:把每个蓝点的横坐标提取出来,这些横坐标所构成的样本就是我们的目标样本。
section2
上述用了一个矩形,该矩形就是一个满足均匀分布的建议分布,建议分布只是获得目标密度函数曲线下均匀分布样本的一个辅助工具。采用均匀分布作为建议分布有时效率很低,为什么这么说?从上例就可以看出,均匀分布的好多点(那些绿点)都被剔除了,造成了一种浪费。可以选择一些其他曲线来把密度曲线框起来,效率会提高一点。这里目标密度函数曲线为 h ( x ) h(x) h(x),对应于下图中的蓝线;建议分布密度曲线为 g ( x ) g(x) g(x),我们把 g ( x ) g(x) g(x)乘上一个常数因子 c c c,然后 用 c g ( x ) cg(x) cg(x)这条曲线 将目标密度曲线框起来。
假定满足 g ( x ) g(x) g(x)的随机变量易于采样,拒绝采样的步骤如下:
- 从 g ( x ) g(x) g(x)采到一个样本数据,记 x ⋆ x^{\star} x⋆,把它作为一个建议
- 要不要接受这个建议 作为满足 h ( x ) h(x) h(x)分布的一个样本数据呢?我们定义一个接受概率: α = h ( x ⋆ ) c g ( x ⋆ ) \displaystyle\alpha = \frac{h(x^{\star})}{c g(x^{\star})} α=cg(x⋆)h(x⋆)
也就是说,我们以 α \alpha α的概率 接受 x ⋆ x^{\star} x⋆ 作为 h ( x ) h(x) h(x)分布的一个样本数据。
实际操作中,取一个 U ( 0 , 1 ) U(0, 1) U(0,1)的随机数 μ \mu μ,如果 μ < α \mu<\alpha μ<α,就接受 x ⋆ x^{\star} x⋆作为 h ( x ) h(x) h(x)的一个样本数据;否则,把它舍弃掉,回到1.步继续循环。最终可以获得一个样本。
- 文章开头是一下子抽取10000个点,到后来怎么成了一个个抽了呢?其实它们是对应的,把蓝点去掉的过程 就相当于做是否拒绝判断的过程。
- 如果有密度曲线下的均匀分布样本,就可以得到与密度曲线相匹配的分布的一个样本。
- 如果建议分布的形状和目标分布越接近,采样的效率就越高。
参考文献:https://gaolei786.github.io/statistics/reject.html
边栏推荐
猜你喜欢
随机推荐
ROS之service传输图片
RuntimeError: CUDA error: no kernel image is available for execution on the device问题记录
Web Screenshots and Reverse Proxy
Attribute Changer的几种形态
Understanding of js arrays
cocos2d-x implements cross-platform directory traversal
cocos2d-x-3.2 image graying effect
Global scope and function scope in js
crontab的定时操作
mysql common commands
Filter out egrep itself when using ps | egrep
cv2.resize()是反的
一个简单的bash转powershell案例
[swagger close] The production environment closes the swagger method
我的训练函数模板(动态修改学习率、参数初始化、优化器选择)
qt:cannot open C:\Users\某某某\AppData\Local\Temp\main.obj.15576.16.jom for write
flutter 混合开发 module 依赖
CNN的一点理解
TransactionTemplate 事务编程式写法
ROS 之订阅多个topic时间同步问题