AI算法工程师手册-一、蒙特卡洛方法

一、蒙特卡洛方法

  1. 蒙特卡洛方法Monte Carlo 可以通过采用随机投点法来求解不规则图形的面积。 求解结果并不是一个精确值,而是一个近似值。当投点的数量越来越大时,该近似值也越接近真实值。

  2. 蒙特卡洛方法也可以用于根据概率分布来随机采样的任务。 1.1 布丰投针问题

  3. 布丰投针问题是1777年法国科学家布丰提出的一种计算圆周率的方法:随机投针法。其步骤为:

  4. 首先取一张白纸,在上面绘制许多条间距为 一、蒙特卡洛方法 - 图1

  5. 取一根长度为 一、蒙特卡洛方法 - 图2

  6. 计算针与直线相交的概率 一、蒙特卡洛方法 - 图5

一、蒙特卡洛方法 - 图7

  1. 由于向纸上投针是完全随机的,因此用二维随机变量 ![一、蒙特卡洛方法 - 图8] 来确定针在纸上的具体位置。其中:

  2. 一、蒙特卡洛方法 - 图9

  3. 一、蒙特卡洛方法 - 图1

一、蒙特卡洛方法 - 图1 当 ![一、蒙特卡洛方法 - 图14] 时,针与直线相交。 由于 ![一、蒙特卡洛方法 - 图15] 相互独立,因此有概率密度函数:

一、蒙特卡洛方法 - 图1 因此,针与直线相交的概率为:

一、蒙特卡洛方法 - 图1 根据 ![一、蒙特卡洛方法 - 图18] 即可得证。

  1. 布丰投针问题中,蒙特卡洛方法是利用随机投点法来求解面积 ![一、蒙特卡洛方法 - 图19] 。 1.2 蒙特卡洛积分
  2. 对于函数 ![一、蒙特卡洛方法 - 图21] 可以采用两种方法来求解:投点法、期望法。
  3. 投点法求积分:对函数 ![一、蒙特卡洛方法 - 图24],对其求积分等价于求它的曲线下方的面积。 此时定义一个常数 ![一、蒙特卡洛方法 - 图25] 。

随机向矩形框中随机的、均匀的投点,设落在函数 一、蒙特卡洛方法 - 图2 具体做法是:从 ![一、蒙特卡洛方法 - 图34] 构成一个随机点。

  • 一、蒙特卡洛方法 - 图3

  • 一、蒙特卡洛方法 - 图4 假设绿色点有 ![一、蒙特卡洛方法 - 图43] 。

一、蒙特卡洛方法 - 图4

  1. 期望法求积分:假设需要求解积分 ![一、蒙特卡洛方法 - 图48] 满足条件:

一、蒙特卡洛方法 - 图5 令:

一、蒙特卡洛方法 - 图5 则有:![一、蒙特卡洛方法 - 图53] 。 则期望法求积分的步骤是:

  • 任选一个满足条件的概率分布 一、蒙特卡洛方法 - 图5

  • 根据 一、蒙特卡洛方法 - 图5

  • 计算均值 一、蒙特卡洛方法 - 图6

  • 在期望法求积分中,如果 ![一、蒙特卡洛方法 - 图64] 可以取均匀分布的概率密度函数:

一、蒙特卡洛方法 - 图6 此时 ![一、蒙特卡洛方法 - 图67] 。 其物理意义为:![一、蒙特卡洛方法 - 图69] 就是平均面积。

一、蒙特卡洛方法 - 图7

  1. 对于期望 ![一、蒙特卡洛方法 - 图73] 的表达式比较复杂,则也可以转化为另一个期望的计算。 选择一个比较简单的概率密度函数 ![一、蒙特卡洛方法 - 图76],根据:

一、蒙特卡洛方法 - 图7 令 ![一、蒙特卡洛方法 - 图78] 。此时可以使用期望法求积分的策略计算。 1.3 蒙特卡洛采样

  1. 采样问题的主要任务是:根据概率分布 ![一、蒙特卡洛方法 - 图80] 。

  2. 如果 一、蒙特卡洛方法 - 图8

  3. 如果 一、蒙特卡洛方法 - 图8

  4. 首先根据均匀分布 一、蒙特卡洛方法 - 图8

  5. 一、蒙特卡洛方法 - 图8 令 ![一、蒙特卡洛方法 - 图90] 的采样。

一、蒙特卡洛方法 - 图9

  1. 通过均匀分布的采样的原理:假设随机变量 ![一、蒙特卡洛方法 - 图96] 的概率分布为:

一、蒙特卡洛方法 - 图9 因为 ![一、蒙特卡洛方法 - 图100] 。 这其中有两个关键计算:

  • 根据 一、蒙特卡洛方法 - 图1

  • 根据 一、蒙特卡洛方法 - 图1 如果累计分布函数无法计算,或者反函数难以求解,则该方法无法进行。

  • 对于复杂的概率分布 ![一、蒙特卡洛方法 - 图113] ,难以通过均匀分布来实现采样。此时可以使用接受-拒绝采样 策略。

  • 首先选定一个容易采样的概率分布 一、蒙特卡洛方法 - 图1

  • 然后根据概率分布 一、蒙特卡洛方法 - 图1

  • 计算 一、蒙特卡洛方法 - 图1 具体做法是:根据均匀分布 ![一、蒙特卡洛方法 - 图121] ,则接受该样本;否则拒绝该样本。

一、蒙特卡洛方法 - 图1

  1. 接受-拒绝采样 在高维的情况下会出现两个问题:

  2. 合适的 一、蒙特卡洛方法 - 图1

  3. 难以确定一个合理的 一、蒙特卡洛方法 - 图1 这两个问题会导致拒绝率很高,无效计算太多。

文章列表

更多推荐

更多
  • Pharo敏捷人工智能-第一部分:神经网络
    Apache CN

  • Pharo敏捷人工智能-第二部分:遗传算法
    Apache CN

  • Pharo敏捷人工智能-# 第三部分:神经进化 第三部分:神经进化
    Apache CN

  • Azure数据工程指南-二十四、数据治理的权限 创建 azure 预览帐户,探索 azure 预览,探索词汇表,浏览资产,以编程方式使用预览,摘要,管理凭证和访问,创建扫描, 许多组织需要建立数据治理流程、标准和方法,并且已经能够使用内部 SQL Server 工具(如 Master
    Apache CN

  • Azure数据工程指南-二十二、Synapse 分析工作区 创建 Synapse 分析工作区,使用 Spark 探索样本数据,用 SQL 查询数据,用 SQL 创建外部表,摘要, 微软 Azure 数据平台的众多新增功能已经围绕许多类似的产品及其在现代 Azure 数据平台中的用途产生了兴奋和困
    Apache CN

  • Azure数据工程指南-二十三、数据块中的机器学习 创建 MLflow 实验,安装 MLflow 库,创建笔记本,选择性测井,自动记录,摘要, 寻求利用机器学习(ML)和人工智能能力的组织和开发人员花费大量时间构建 ML 模型,并寻求一种方法来简化他们的机器学习开发生命周期,以跟踪实验,
    Apache CN

  • Azure数据工程指南-二十一、将 Apache Spark 的 GraphFrame API 用于图形分析 安装 JAR 库,加载新数据表,将数据加载到数据块笔记本中,用顶点和边构建一个图,查询图表,寻找有图案的图案,用 PageRank 发现重要性,探索入度和出度度量,摘要,进行广度优先搜索,查找连接的组件, 图形技术使用户能够以图形的形式
    Apache CN

  • Azure数据工程指南-20 二十、部署 SQL 数据库先决条件,创建 Visual Studio SQL 数据库项目,安装 Visual Studio GitHub 扩展,导入 AdventureWorks 数据库,连接到 GitHub Repo 源代码控制,将
    Apache CN

  • Azure数据工程指南-十九、部署数据工厂更改 先决条件,创建 DevOps 持续集成构建管道,创建 DevOps 持续部署发布渠道,验证部署的数据工厂资源,摘要,Azure PowerShell 任务停止触发器,ARM 模板部署任务,Azure PowerShell 任务启动触发器
    Apache CN

  • Azure数据工程指南-十八、用于 Cosmos DB 的 Azure Synapse 链接 创建一个 Azure Cosmos DB 帐户,启用 Azure Synapse 链接,创建一个 Cosmos DB 容器和数据库,将数据导入 Azure Cosmos DB,在 Azure Synapse Analytics 中创建
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多