机器学习小组知识点30:接受-拒绝采样(Acceptance-Rejection Sampling)
来源:互联网 发布:优易68网络 编辑:程序博客网 时间:2024/06/05 17:28
蒙特卡洛数值积分
如果我们要求f(x)的积分,如
而
常用的方法是蒙特卡洛积分:
这样把q(x)看做是x在区间内的概率分布,而把前面的分数部门看做一个函数,然后在q(x)下抽取n个样本,当n足够大时,可以用采用均值来近似:
因此只要
均匀分布,Box-Muller 变换
在计算机中生成
当然计算机产生的随机数都是伪随机数。
而我们常见的概率分布,无论是连续的还是离散的分布,都可以基于
[Box-Muller 变换]
如果随机变量
则
其它几个著名的连续分布,包括指数分布、Gamma 分布、t 分布、F 分布、Beta 分布、Dirichlet 分布等等,也都可以通过类似的数学变换得到;离散的分布通过均匀分布更加容易生成。更多的统计分布如何通过均匀分布的变换生成出来,大家可以参考统计计算的书,其中 Sheldon M. Ross 的《统计模拟》是写得非常通俗易懂的一本。
Monte Carlo principle
Monte Carlo 抽样计算随即变量的期望值是接下来内容的重点:
接受-拒绝抽样
很多实际问题中,
然后重复如下步骤,直到获得
- 从 q(x) 中获得一个随机采样点
xi - 对于 x_i 计算接受概率(acceptance probability)
α=p(xi)Mq(xi) - 从
Uniform(0,1) 中随机生成一个值,用u 表示- 如果
α≥u ,则接受xi 作为一个来自p(x) 的采样值,否则就拒绝xi 并回到第一步。
你当然可以采用严密的数学推导来证明Reject Sampling的可行性。但它的原理从直观上来解释也是相当容易理解的。你可以想象一下在上图的例子中,从哪些位置抽出的点会比较容易被接受。显然,
但是该算法也面临着几个限制。一方面并不是较为容易找到一个
将会比较小,这将在高维情形中变得不实际。
参考文献:
1. http://www.cnblogs.com/xbinworld/p/4266146.html
2. http://blog.csdn.net/baimafujinji/article/details/51407703
3. https://cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/
4. An Introduction to MCMC for Machine Learning,2003
- 机器学习小组知识点30:接受-拒绝采样(Acceptance-Rejection Sampling)
- 拒绝采样(rejection sampling)
- 机器学习小组知识点31:重要性采样(Importance Sampling )
- 接受拒绝算法-rejection sampling
- 机器学习小组知识点28:简单随机采样(Simple Random Sampling)
- 机器学习小组知识点29:离线等可能K采样(Offline Sampling)
- (转载)机器学习知识点(十三)吉布斯采样法(Gibbs Sampling)
- 机器学习小组知识点32:马尔科夫蒙特卡罗采样算法1:(Metropolis-Hasting )
- 机器学习小组知识点33:马尔科夫蒙特卡罗采样算法2:(Gibbs )
- 蒙特卡洛采样之拒绝采样(Reject Sampling)
- Java机器学习库ML之三Sampling(采样)
- 机器学习小组知识点7:伯努利分布(Bernouli Distribution)
- 机器学习小组知识点8:二项式分布(Binomial distribution)
- 机器学习小组知识点10:多项式分布(Mutibinomial distribution)
- 机器学习小组知识点11:几何分布(Geometric Distribution )
- 机器学习小组知识点14:均匀分布(Uniform Distribution)
- 机器学习小组知识点16:指数分布(Exponential Distribution)
- 机器学习小组知识点20:EM算法(Expectation - Maximization)
- Go语言实现二分查找
- U盘中病毒,文件消失,但U盘的大小却没有改变
- leetcode_middle_61_48. Rotate Image
- 基于CNN的图像修复(CNN-based Image Inpainting)
- 统计学习方法——绪论
- 机器学习小组知识点30:接受-拒绝采样(Acceptance-Rejection Sampling)
- 欢迎使用CSDN-markdown编辑器
- UVALive 6957 Hyacinth (DFS) -- 解题报告
- iOS几种数据存储方式
- RNN与LSTM 理解
- Python -- 8. 类
- Python学习之路--进程,线程,协程
- VS2008用devenv.com命令行工具自动编译工程
- redis 的两种持久化方式及原理