#DeepLearningBook#算法概览之九:Monte Carlo Methods
来源:互联网 发布:淘宝财务报表 编辑:程序博客网 时间:2024/05/19 01:11
一、Importance Sampling
对于一个比较复杂函数的积分,我们往往是在这条乱七八糟的取消下面画方格,对方格做累加来近似这个函数的积分;方格的高就是此时的函数值,方格的宽度依据采样的方式决定。
均匀采样:
这里x是随机变量,它的分布式p(x),f(x)就是这个随机变量的函数。但是它带来的问题是如果f(x)的分布是在一段值特别大,而另一段值特别接近零。那么如果还采用均匀采样,在f(x)值大的区域就容易出现误差,而在f(x)值小的区域,过于频繁的采样便成了一种浪费。比如这张图里面的情况:
因此我们想要将上面的式子做适当的变形,也就有了Importance Sampling(重要性采样):
这里认为q(x)是x的分布,而右边的那个分式是随机变量x的函数。最优的q(x)的选择q*表达式如下:
Z是归一化常数,使得q(x)的积分为1,保证它是一个有效的概率密度函数。
i)从这个表达式本身出发,我们可以看到它的效果是使得随机变量x的概率分布基本就是一个常数了(可能会有负的部分)。换句话说,它将随机变量的函数的复杂度转移到了随机变量的概率分布函数上,就是值简单,但是采样过程复杂了。对于Monte Carlo而言,采样是一个相对比较容易操作的过程,但是函数值相对不能把控。上面所说的这个复杂度的转移(Importance Sampling)使得average的计算可以在Monte Carlo的框架下比较简易地得到解决。
ii)从这个表达式的求取过程出发:
一个好的q(x)可以使得
最后可以得到最优函数:
第二种Importance Sampling的方法是不要求normalized的p和q,normalize的过程直接通过
二、 Markov Chain Monte Carlo Methods(MCMC)
概括起来,MCMC基于这样的理论,在满足细致平稳条件(detailed balance equation)条件下,MCMC可以通过很长的状态转移到达稳态。
细致平稳条件:
pi(x) * P(y|x) = pi(y) * P(x|y)
其中pi指分布,P指概率。这个平衡方程也就是表示条件概率(转化概率)与分布乘积的均衡。这个条件直观上理解就是,从x状态跑到y状态上去丢失的能量可以通过从y状态跑到x状态补充回来,换句话说两者之间状态的切换是平稳的。
转移的过程基本遵循:
这个随机过程在最后往往会收敛到一个stationary distribution/equilibrium distribution:
Metropolis-Hastings algorithm:待补充
Gibbs Sampling algorithm:
Gibbs sampling or Gibbs sampler is an algorithm to generate a sequence of samples from the joint probability distribution of two or more random variables. The purpose of such a sequence is to approximate the joint distribution, or to compute an integral (such as an expected value).
它的大致框架如下,具体算法意义需要进一步学习:
参考文献:
[1]http://blog.csdn.net/abcjennifer/article/details/25908495
[2]http://www.cnblogs.com/xbinworld/p/4266146.html
看pdf好麻烦…打字也好麻烦…不如说活着就很麻烦………………好想吃抹茶蛋糕!
- #DeepLearningBook#算法概览之九:Monte Carlo Methods
- Sequential Monte Carlo Methods
- #DeepLearningBook#算法概览之二
- 蒙特卡罗法(Monte Carlo Methods)
- 蒙特卡罗方法(Monte Carlo Methods)
- #DeepLearningBook#算法概览之五:Sequence Modeling
- #DeepLearningBook#算法概览之七:Autoencoders
- #DeepLearningBook#算法概览之八:Representation Learning
- Monte Carlo , 蒙特卡洛算法
- #DeepLearningBook#算法概览之一
- Monte Carlo Sampling Methods-- 蒙特卡洛采样方法
- 机器学习之Grid World的Monte Carlo算法解析
- #DeepLearningBook#算法概览之六:Linear Factor Models
- #DeepLearningBook#算法概览之十:Deep Generative Models
- 概率算法中的Monte carlo算法
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
- yperparameter Optimization on Spark ML using Monte Carlo methods
- 针对MySQL创建用户后无法登录的原因
- 云客Drupal8源码分析之控制器执行及其解析器controller_resolver
- leetcode-FuzzBuzz
- 批量修改文件编码
- 贪心算法-背包算法-java实现
- #DeepLearningBook#算法概览之九:Monte Carlo Methods
- HTML中footer一直沉底的最常用解决办法
- CGlib简单介绍
- MySql存储过程基础语法摘要
- 关于使用Windbg查看线程死锁问题
- codeforces 159A Friends or Not
- Dijkstra算法(单源最短路径)
- Java 集合深入理解(16):HashMap 主要特点和关键方法源码解读
- 可执行程序工作目录