关于我的更多学习笔记,欢迎您关注“武汉AI算法研习”公众号,本文作者微信comrliuyu。

本文分以下几个部分“【关于蒙特卡洛方法的理解】”、“【无意识统计学家定律】”、“【蒙特卡洛(Monte Carlo)法求定积分】”、“【蒙特卡洛采样】”来进行展开,总共阅读时间大约15分钟。

【关于蒙特卡洛方法的理解】

1、蒙特卡洛方法又称“随机抽样方法”,和一般数值计算方法有本质区别的计算方法,属于试验数学的分支,利用随机数进行统计试验,以求得统计特征(如:均值和概率);

2、蒙特卡洛方法可以通过随机投点来进行求解不规则图形的面积;

3、蒙特卡洛方法可以用于根据概率分布来随机采样的任务;

【无意识统计学家定律(Law of the unconscious statistician)

统计学中期望描述了随机变量的平均取值的大小特征,在计算期望过程中:是试验中每次可能结果的概率值乘以其结果的总和,也就是数值乘以其发生的概率的和。理解无意识统计学家定律就是告诉我们,事件万物相互之间是有相互联系的,一个事件的发生概率一定程度上可以用另一个事件的发生概率进行描述,比如函数F(X) = (X-3)^2中,X是一个随机变量,X的概率密度函数是影响到F(X)取值的概率密度函数的。

无意识统计学加定律,则是告诉已知随机变量X的概率分布fx(x),但不知道g(X)的分布,此时用LOTUS公式能计算出函数g(X)的数学期望。

X是离散分布时

X是连续分布时

【蒙特卡洛(Monte Carlo)法求定积分】

1、投点法求积分

如下图所示,有一个函数f(x),若要求它从a到b的定积分,其实就是求曲线下方的面积。可以用一个比较容易算得面积的矩型罩在函数的积分区间上(假设其面积为Area)。然后随机地向这个矩形框里面投点,其中落在函数f(x)下方的点为绿色,其它点为红色。然后统计绿色点的数量占所有点数量的比例为r,那么就可以据此估算出函数(x)从a到b的定积分为Area×r

2、期望法求积分(也称平均值法)

我们需要积分的目标为:

如果假设x在a到b之间是均匀分布的,则以上积分可以近似a到b之间距离和n个f(x)均值之间的乘积作为积分(积分可视作对面积)

如果假设x在a到b之间不是均匀分布,同时x在[a,b]之间的概率分布函数为p(x),则定积分有:

以上均匀分布是非均匀分布的一般形式,假设均匀分布则有其,则有

则期望法求积分的步骤是:

  1. 任选一个满足条件的概率分布p(x);
  2. 根据p(x),生成一组服从分布p(x)的随机数x1,x2,x3,...,xN;
  3. 计算均值,由于f(xi)和p(xi)已知。

【蒙特卡洛采样】

以上期望法求积分步骤中,有一个难点需要解决,即如何根据得到分布函数p(x)来进行采样得到随机数x1,x2?

1、如果p(x)是均匀分布,采样很简单,可以按一定间隔采样。

2、如果p(x)是非均匀分布,则步骤如下:

  1. 首先根据均匀分布U(0,1)随机生成一个数zi;
  2. 概率分布p(x)的累计分布函数为,则在累计分布函数或去zi对应的xi即为采样点;

3、对于复杂的概率分布p(x),难以通过均匀分布来实现,则采用接收-拒绝采样策略;

  1. 首先选定一个容易采样的概率分布 q(x),选择一个常数k,使得在定义域的所有位置都满足  p(x)位于kq(x)之下;
  2. 根据概率分布q(x) 随机生成一个样本xi;
  3. 计算,同时根据均匀分布U(0,1)生成随机数ui,如果则接收,否则拒绝。或者U(0,kq(x))如果落在灰色区域则拒绝,落在白色区域则接收此点。

当然接收-拒绝采样也存在两个问题:

  1. 合适的 q(x)分布比较难以找到;
  2. 难以确定一个合理的k值。

干货 | 蒙特卡洛方法(Monte Carlo)相关推荐

  1. 心得复述知识体系:《强化学习》中的蒙特卡洛方法 Monte Carlo Methods in Reinforcement Learning

    前言: 刚刚读完 Sutton 的<强化学习(第二版)>第5章:蒙特卡洛方法.为了巩固本章收获,笔者将在本文中用尽量简单直白的语言复述本章的思想,各个知识点之间的关系.同时,这方便笔者日后 ...

  2. 【路径追踪】数学工具--蒙特卡洛方法(Monte Carlo)

    Intro 蒙特卡洛方法是一类通过随机采样来求解问题的算法, 要求解的问题是某随机事件的概率或某随机变量的期望. 现在认为最早记载的一个蒙特卡洛计算示例是由蒲丰在 1777 年完成的投针试验. 在实验 ...

  3. java计算椭圆的面积_java算法3_蒙特卡洛方法(Monte Carlo method)求PI和椭圆面积

    蒙特卡洛方法,是一种以概率统计理论为指导的一类非常重要的数值计算方法.是指使用随机数来解决很多计算问题的方法.蒙特卡洛方法的名字来源于摩纳哥的一个城市蒙特卡洛,该城市以×××业闻名,而蒙特卡洛方法正是 ...

  4. 【Matlab 六自由度机器人】基于蒙特卡罗方法(Monte Carlo Method)构建机器人工作空间(附MATLAB建模仿真完整代码)

    [Matlab 六自由度机器人]基于蒙特卡洛法构建工作空间 往期回顾 前言 正文 一.蒙特卡洛方法及机器人工作空间的概述 1. 蒙特卡洛法 2. 机器人工作空间 二.rand函数的应用 1. rand ...

  5. 蒙特卡洛(Monte Carlo)法求定积分

    蒙特卡洛(Monte Carlo)法是一类随机算法的统称.随着二十世纪电子计算机的出现,蒙特卡洛法已经在诸多领域展现出了超强的能力.在机器学习和自然语言处理技术中,常常被用到的MCMC也是由此发展而来 ...

  6. 蒙特卡洛积分(Monte Carlo Integration)应用:利用蒙特卡洛积分生成 McBeth表

    蒙特卡洛积分(Monte Carlo Integration)应用 蒙特卡洛积分 通常函数f(x)的积分: 可以解释为计算函数曲线下方的面积: 而我们的蒙特卡洛积分则是通过近似的方式来获取一个函数的积 ...

  7. MATLAB蒙特卡洛(Monte Carlo)方法求椭圆面积

    MATLAB蒙特卡洛方法求椭圆面积 代码 代码 在某个规定的范围内随机打点,找到满足条件的点,并数一下这些点的数量与总的随机点数量的比,就OK了.关键是设置条件. 代码 clear;clc; n=10 ...

  8. Stata: 蒙特卡洛模拟(Monte Carlo Simulation)没那么神秘

    作者:侯新烁 湘潭大学 [编译] (知乎 | 简书 | 码云) Stata连享会 精彩推文1 || 精彩推文2 资料参考来源: The Stata Blog » Monte Carlo simulat ...

  9. 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)

    1. 蒙特卡罗方法的基本思想 蒙特卡罗方法又叫统计模拟方法,它使用随机数(或伪随机数)来解决计算的问题,是一类重要的数值计算方法.该方法的名字来源于世界著名的赌城蒙特卡罗,而蒙特卡罗方法正是以概率为基 ...

最新文章

  1. IDEA 构建为了打 jar 包的工程,包含 maven 打 jar 包的过程
  2. 从零开始入门 K8s | 调度器的调度流程和算法介绍
  3. 3-5 获取命令行参数
  4. SpringBoot maven打包源码发布到仓库配置
  5. 某同学工作之后的感悟
  6. 解决:未能将管道连接到虚拟机: 所有的管道范例都在使用中。
  7. idea中拉取项目时 没有文件_idea编译器中maven项目获取路径的方法
  8. ATT拟854亿美元收购时代华纳 国内运营商坐不住了
  9. oracle的存储过程怎么运行时间,ORACLE 定时运行存储过程经常使用时间间隔
  10. 《项目百态》读感系列”苏式风格“
  11. cad快速看图 2021
  12. 熬夜整理了一万多字的line-height总结,你还看不懂那我真的要跪了!
  13. c语言运算符表 壁纸,Fences 3.0.5 桌面图标管理工具正式版
  14. 伯努利试验和二项分布
  15. [转]ubuntu常用软件
  16. AD19 DRC 时弹出 Design contains shelved or modified (but not repoured) polygons
  17. Pandas操作Excel,统计pass/fail的个数
  18. sdust 2410 Mine Number
  19. 校招/社招/秋招/春招求职指南
  20. 360极速浏览器浏览网页字体模糊的解决方法

热门文章

  1. 怎样做优化才能提升网站的SEO排名?
  2. 联想笔记本更换固态硬盘和重装系统
  3. 三重缓冲:为什么我们爱它
  4. java.sql.SQLException: Unable to run insert stmt on object 解决办法
  5. 使用蓝桥杯单片机做一个智能密码锁可以修改密码
  6. 如何用python批量下载数据_如何用python从wind中批量导出数据
  7. 微信公众帐号开发教程第2篇-开发模式启用及接口配置
  8. memset()函数怎么用?
  9. AdminLTE Button小结
  10. Angular学习笔记64:使用Render2安全操作DOM元素