拒绝采样(rejection sampling)
来源:互联网 发布:iptables禁止端口访问 编辑:程序博客网 时间:2024/05/16 18:01
这篇关于采样的文章主要根据prml和wiki来的。
关于采样, 统计学中,有时我们需要获得某一个分布的样本, 比如我们想获得【0 1】之间几个均匀随机数, 就可以说对【0 1】之间的均匀分布进行采样。
对于特定的分布, 有的我们可以从获得服从这个分布的样本, 比如一条街上每天交通事故的数量服从泊松分布, 我们把每天的数据收集起来,就可以得到服从这个分布的样本集。但有时直接采样有困难, 或者成本太高。所以,我们想办法用计算机来模拟采样。
对于模拟采样,有很多方法, 我们这里主要说拒绝采样。
首先我们假设可以对【0 1】之间的均匀分布进行采样。当然这个采样是比较简单的, 因为很多函数库都有随机函数, 虽然一般也是伪随机数。
拒绝采样基于这样一个前提: 对一个随机变量取样, 等价于从这个变量所服从的密度函数下方的区域均匀取样。当然, 取样的结果是变量值,如果是一元变量, 取样后得到的是一元变量的值。
对于一些密度函数p(z), 可能函数形式复杂, 我们难以直接取样, 但对于给定的z, 我们容易得到p(z)的值,那么我们可以尝试拒绝采样。
如上图所示, 我们要采样p(z),我们还需要一个建议分布q(z), q(z)满足两点:
1 我们容易从q(z)采样
2, 存在k使得kq(z)>= p(z) 对所有的z成立
下面是采样方法
1,从建议分布采样一个点z(x坐标点)
2,从这个x坐标的画一条垂直直线,知道建议分布的曲线
3,沿这条直线均匀采样, 也就是从0到建议分布的值, 如果在p(z)外面, 拒绝这个采样
可以看出来 , 当k比较小的时候, 可以提高采样成功率
实际中,大多数时候 p(z)并不是normalized, 也就是说p(z)下的区域面积不为1
这时候这个算法依然可以用,而且不用改
因为对p(z)的scale,并不会对x轴的造成影响
- 拒绝采样(rejection sampling)
- 接受拒绝算法-rejection sampling
- 机器学习小组知识点30:接受-拒绝采样(Acceptance-Rejection Sampling)
- 拒绝采样(reject sampling)原理详解
- 蒙特卡洛采样之拒绝采样(Reject Sampling)
- Rejection sampling 笔记
- Gibbs sampling [Gibbs采样]
- Gibbs sampling [Gibbs采样]
- Gibbs sampling [Gibbs采样]
- machine learning sampling 采样
- 吉布斯采样(Gibbs Sampling)
- importance sampling(重要性采样)
- 采样之拒绝采样
- A simple explanation of rejection sampling in R
- Gibbs Sampling(吉布斯采样)
- Gibbs sampling [Gibbs采样]1
- 161206 - Importance sampling 重要性采样
- 分层采样(stratified sampling)
- xcode 4.6 破解及真机调试
- 初识Objecive-C 之 面向对象(一)
- 2-sat->poj 3207 Ikki's Story IV - Panda's Trick
- java中package打包之后使用javac编译的格式
- 空格和基本格式,c++里面的一些知识!
- 拒绝采样(rejection sampling)
- 导航电子地图的一些研究团队
- ios cell 样式
- make初试
- linux常用命令之文件查找命令
- 内部类 学习笔记(一)
- hdu4405 Aeroplane chess (概率dp)
- CUDA, 用于大量数据的超级运算:第十节
- C语言运算符优先级和口诀