来自 | 知乎   作者 | 薛定豆

链接 | https://zhuanlan.zhihu.com/p/223042372

编辑 | 深度学习这件小事公众号

本文仅作学术交流,如有侵权,请联系后台删除。

20世纪40年代,蒙特卡洛(Monte Carlo, 位于摩纳哥的赌城,如上图)方法由John von Neumann,Stanislaw Ulam和 Nicholas Metropolis 在 Los Alamos National Lab (LANL) 曼哈顿计划中,为模拟中子扩散发展出的一种统计方法。正如名字反映出的,蒙特卡洛方法本质上是跟赌博一样具有随机特性。

   一、估计圆周率  的值

如果(x,y)是独立地从0到1之间均匀分布抽样出的一系列的数对number pair, 那么这些随机的位置坐标(x,y)落在1为半径圆弧内的概率应该是:四分之一圆的面积➗整个正方形的面积:

而因为(x,y) 是0到1的均匀分布,所以这个概率当抽样足够多的时候就等于红色的点数除以总共点数:

这样一来,只要采样足够多,就可以得到无限趋近于的值。这个例子很好的体现了Monte Carlo(MC)方法的精神:利用随机分布的特性,大数次抽样得到准确的估计。换句话说,就是我猜,我猜地又多又均匀就基本上成功了!

   二、估计定积分的值

微积分里我们学到,定积分(也就是曲线下的面积)可以想象成很多等宽小矩形加起来的面积之和,如下图所示,

如果用蒙特卡洛的思维来做的话,可以从a到b的均匀分布产生一些列的x值: ,只要抽样足够多,就可以估计出在这个区间内  的平均值,记做  这样一来,曲线下面积就等效成一个以这个平均值为高的矩形面积:

   三、重要性抽样(Importance sampling)

其实,很多积分中  还是有一些重要的区域的,为了使采样更有效率,一般我们可以采用重要性抽样来计算积分:

这里,  是任意满足正定  且归一化  条件的概率分布,且  是从这个分布采样的随机数。重要性抽样其实仅仅就是做了个恒等变形,把原来要均匀采样的概率分布(其实就是  )替换成任意概率分布,并把要平均的函数除以这个分布。重要性抽样是统计和物理中常见的方法,可以很好的对重点区域采样而快速估计积分。

另一方面,重要性抽样有着很简单直接的并行化方案:对于多维定积分,  从分布  中采样的话,(这里为了符号简便,现在暂时将第  次采样记做带括号的上标  )

其实,统计力学里常见的积分就是物理量  的系综平均

这里 是正则系综分布函数,  是正则配分函数。

   四、Metropolis Monte Carlo算法 (Markov Chain Monte Carlo, MCMC)

那么,问题来了,怎么对任意分布  采样?这里介绍Metropolis MC算法,也叫Metropolis-Hastings算法,它类似于随机瞎走(Random walk)的方式产生一列数,这些数的总体分布服从  。这里,我们以平衡态统计力学中的最常见的Boltzmann分布为例说明。

玻尔兹曼分布说对于构型  ,它的概率应该是  ,这里  是这个构型的能量。我们想要产生服从玻尔兹曼分布的一系列  ,可以设想如果我基于原来的一个构型  怎么产生下一个构型  呢?

当体系达到平衡时,体系在  的概率  不应该随时间改变,于是有

这里  表示基于  随机产生  的转移概率(Transition probability),求和是对于所有可能的其他构型。从上面关系可以得到只要满足下面细致平衡(detailed balance)条件,就可以产生出服从玻尔兹曼分布的序列:

Metropolis选择的是下面方式选择转移概率(尽量最大化接受新构型):

读者可以将上面两个式子相除,就可以看出在不管新构型的能量是更高还是更低,这个转移概率的比值都服从细致平衡条件,也就是最终产生的分布就会使玻尔兹曼分布了。

Metropolis算法——移动然后选择接受这个移动还是拒绝这个移动

  1. 从起始构型  ,计算能量  ;

  2. 随机移动一些构型坐标得到一个trial构型  ,并计算该构型的能量  ;

  3. 决定是否接受这个移动:
    (1)如果  ,那么100%接受这个移动,正式的下一步构型就是 了;
    (2)如果  ,那么产生一个0到1之间的随机数R, 并跟转移概率  比较,如果  那就接受这个移动  ,否则就拒绝这个移动  ;

  4. 回到第二步,直到累积N个构型。

这一列构型  被称为马尔科夫链(Markov Chain),因为产生的新构型只跟当前构型有关,对前面的构型没有任何的记忆效应,所以这个方法又叫马尔科夫链蒙特卡洛(MCMC)。而且,从任何初始构型出发,最终都会达到平衡而且服从就是玻尔兹曼分布,即通过配比转移概率  达到对某构型的采样概率为 且不随“时间”改变。【注意:MC里序列是没有物理上时间先后关系的,所有说MC“时间序列”都是指随机产生的顺序。】

当然,这个例子只是一个统计力学里的概率分布函数,其实任何形式的分布都可以用MC产生,使得MC方法在统计里应用的不要太多。

15分钟入门蒙特卡洛 Monte Carlo相关推荐

  1. python 神经网络工具_神经网络15分钟入门!使用python从零开始写一个两层神经网络...

    本篇是该系列的第三篇,建议在阅读本篇文章之前先看前两篇文章. 在本文中将使用python实现之前描述的两层神经网络,并完成所提出的"象限分类"的问题. 需要注意的是,虽然标题叫做神 ...

  2. 蒙特卡洛python求解派_利用蒙特卡洛(Monte Carlo)方法计算π值[ 转载]

    圆周率π是一个无理数,没有任何一个精确公式能够计算π值,π的计算只能采用近似算法. 国际公认的π值计算采用蒙特卡洛方法. 一.蒙特卡洛方法 蒙特卡洛(Monte Carlo)方法,又称随机抽样或统计试 ...

  3. 利用蒙特卡洛(Monte Carlo)方法计算π值

    圆周率π是一个无理数,没有任何一个精确公式能够计算π值,π的计算只能采用近似算法. 国际公认的π值计算采用蒙特卡洛方法. 蒙特卡洛方法 蒙特卡洛(Monte Carlo)方法,又称随机抽样或统计试验方 ...

  4. 蒙特卡洛(Monte Carlo)方法简介

    蒙特卡洛(Monte Carlo)方法的本质 蒙特卡洛(Monte Carlo)方法,即蒙特卡洛采样,是一种根据某已知分布的概率密度函数f(x),产生服从此分布的样本X的方法. 蒙特卡洛采样有很多种, ...

  5. 蒙特卡洛(Monte Carlo)方法的介绍和应用

    蒙特卡洛(Monte Carlo)方法的介绍和应用 蒙特卡洛(Monte Carlo)方法 在渲染中,我们经常听到术语"蒙特卡洛"(通常缩写为MC).但是这是什么意思?实际上,它所 ...

  6. Matlab用向量误差修正VECM模型蒙特卡洛Monte Carlo预测债券利率时间序列和MMSE 预测...

    原文链接:http://tecdat.cn/?p=27246  此示例说明如何从 VEC( q ) 模型生成 Monte Carlo 预测.该示例将生成的预测与最小均方误差 (MMSE) 预测和来自V ...

  7. jq 正则判断邮箱_Python正则15分钟入门

    lypython群里有同学问我,如何从大量格式不确定的word文档抽取姓名.电话号码.邮箱等信息存入excel表格.通过之前我们的文章,他已经学会读取和写入文档和表格,但就是无法处理格式不确定的文档. ...

  8. Matlab用向量误差修正VECM模型蒙特卡洛Monte Carlo预测债券利率时间序列和MMSE 预测

    最近我们被客户要求撰写关于VECM的研究报告,包括一些图形和统计输出. 此示例说明如何从 VEC( q ) 模型生成 Monte Carlo 预测.该示例将生成的预测与最小均方误差 (MMSE) 预测 ...

  9. Geode 15分钟入门指南

    Apache Geode文档 本文档介绍了产品概念,并提供了Apache Geode 1.7的完整设置说明. 源文件可从[Apache Geode Github存储库](../../../../ gi ...

最新文章

  1. gdb常用调试命令汇总!
  2. 罗辑思维首席架构师:Go微服务改造实践
  3. python基础语法教程:行与缩进
  4. 计算机网络通信技术课程的基本知识点内容,河北《计算机网络与通信(2339)》自学考试大纲...
  5. Python的列表推倒式、生成器及迭代器
  6. java 获得站点地址_JavaWeb项目里面的路径获取方法总结
  7. LABjs异步加载组件
  8. Linux学习笔记11_系统操作、优化相关命令复习
  9. matplotlib条形图
  10. php 计算签名,php – 计算Amazon Marketplace API的签名问题
  11. Pandas loc/iloc用法详解
  12. SL400装WIN7后声音键无法使用的解决方法
  13. 区别python中list()和tolist()的区别
  14. EPLAN小知识——如何在费斯托(FESTO)官网下载EPLAN部件
  15. VMware清理vmdk文件
  16. 论文笔记 SiamMask : Fast Online Object Tracking and Segmentation: A Unifying Approach
  17. Android高性能音频之opensl es播放流程(七)
  18. Mybatis-Plus eq、ne、gt、lt、ge、le分别代表含义
  19. 逻辑代数基本公式及定律
  20. 孔庆东看金庸小说的奇情怪恋

热门文章

  1. 2022款“诺亚”无人船,具备4G异地控制、航点规划、视频回传等功能
  2. 数字字符串转化为数字
  3. 生信分析——聚类分析
  4. 30 张Java 的思维导图,全面梳理构建 Java 的知识体系
  5. Vue项目实战 —— 后台管理系统( pc端 ) 第一篇
  6. mysql in group by_mysql isn't in GROUP BY
  7. 无线上网不用花钱全攻略
  8. 数据可视化----ECharts---折线图(四)
  9. OpenCV实战之人脸美颜美型(二)——人脸检测
  10. 酒店弱电融合通信解决方案在酒店业的应用及前景