专栏名称: 算法与数学之美
从生活中挖掘数学之美,在实践中体验算法之奇,魅力旅程,从此开始!
目录
相关文章推荐
超级数学建模  ·  30年前,售价高达千元的“奢侈品”梦特娇怎么 ... ·  21 小时前  
九章算法  ·  又一批美国码农要暴富了! ·  昨天  
超级数学建模  ·  进口红酒打响“价格战”!299元6瓶,80年 ... ·  昨天  
51好读  ›  专栏  ›  算法与数学之美

从随机过程到马尔科夫链蒙特卡洛方法

算法与数学之美  · 公众号  · 算法 数学  · 2016-10-16 22:49

正文

请到「今天看啥」查看全文


3. Motivation

MCMC 可解决高维空间里的积分和优化问题:

  • 上面一个例子简单讲了利用高斯分布的 CDF 可以产生高斯随机数,但是有时候我们遇到一些分布的 CDF 计算不出来(无法用公式表示),随机数如何产生?

  • 遇到某些无法直接求积分的函数,如 e^{x^2},在计算机里面如何求积分?

  • 如何对一个分布进行高效快速的模拟,以便于抽样?

  • 如何在可行域很大(or large number of possible configurations)时有效找到最优解——RBM 优化目标函数中的问题。

  • 如何在众多模型中快速找到更好的模型——MDL, BIC, AIC 模型选择问题。

3.1 The Monte Carlo principle

实际上,Monte Carlo 抽样基于这样的思想:假设玩一局牌的赢的概率只取决于你抽到的牌,如果用穷举的方法则有 52! 种情况,计算复杂度太大。而现实中的做法是先玩几局试试,统计赢的概率,如果你不太确信这个概率,你可以尽可能多玩几局,当你玩的次数很大的时候,得到的概率就非常接近真实概率了。

上述方法可以估算随机事件的概率,而用 Monte Carlo 抽样计算随即变量的期望值是接下来内容的重点:X 表示随即变量,服从概率分布 p(x), 那么要计算 f(x) 的期望,只需要我们不停从 p(x) 中抽样

当抽样次数足够的时候,就非常接近真实值了:

Monte Carlo 抽样的方法还有一个重要的好处是:估计值的精度与 x 的维度无关(虽然维度越高,但是每次抽样获得的信息也越多),而是与抽样次数有关。在实际问题里面抽样二十次左右就能达到比较好的精度。

但是,当我们实际动手的时候,就会发现一个问题——如何从分布 p(x) 中抽取随机样本。之前我们说过,计算可以产生均匀分布的伪随机数。显然,第二小节产生高斯随机数的抽样方法只对少数特定的问题管用,对于一般情况呢?

3.2 Rejection Sampling

Reject Sampling 实际采用的是一种迂回( proposal distribution q(x) )的策略。既然 p(x) 太复杂在程序中没法直接采样,那么我设定一个程序可抽样的分布 q(x) 比如高斯分布,然后按照一定的方法拒绝某些样本,达到接近 p(x) 分布的目的:







请到「今天看啥」查看全文