AI算法工程师手册-三、MCMC 采样

三、MCMC 采样

  1. 概率图模型中最常用的采样技术是马尔可夫链蒙特卡罗方法Markov Chain Monte Carlo:MCMC。 给定连续随机变量 ![三、MCMC 采样 - 图1] 中的概率可以计算为:

三、MCMC 采样 - 图5 如果函数 ![三、MCMC 采样 - 图6] 。

  • 如果 三、MCMC 采样 - 图9

三、MCMC 采样 - 图1

  • 如果概率密度函数 三、MCMC 采样 - 图1 3.1 MCMC 算法
  • MCMC 算法的基本思想是:先设法构造一条马尔可夫链,使其收敛到平稳分布恰好为 ![三、MCMC 采样 - 图18] 分布的样本。最后通过这些样本来进行估计。 这里马尔可夫链的构造至关重要,不同的构造方法将产生不同的MCMC算法。Metropolis-Hastings:MH算法是MCMC的重要代表。
  • 假设已经提供了一条马尔可夫链,其转移矩阵为 ![三、MCMC 采样 - 图20] 。 通常 ![三、MCMC 采样 - 图23] 并不满足细致平稳条件不成立。但是可以改造已有的马尔可夫链,使得细致平稳条件成立。 引入一个函数 ![三、MCMC 采样 - 图25] ,则有:

三、MCMC 采样 - 图2 令: ![三、MCMC 采样 - 图29] 。

  1. 在改造 ![三、MCMC 采样 - 图35] 的概率接受这个转移。

  2. 如果接受率 三、MCMC 采样 - 图4

  3. 根据推导 三、MCMC 采样 - 图4

三、MCMC 采样 - 图4

 于是: ![三、MCMC 采样 - 图46] 。因此,即使提高了接受率,细致平稳条件仍然成立。
  1. 将 ![三、MCMC 采样 - 图47] 。

  2. 三、MCMC 采样 - 图4

  3. 三、MCMC 采样 - 图5

  4. 三、MCMC 采样 - 图5

  5. MH 算法: 输入:

  6. 先验转移概率矩阵 三、MCMC 采样 - 图5

  7. 目标分布 三、MCMC 采样 - 图5

  8. 输出: 采样出的一个状态序列 三、MCMC 采样 - 图5 算法:

  9. 初始化 三、MCMC 采样 - 图5

  10. 三、MCMC 采样 - 图5

  11. 根据 三、MCMC 采样 - 图6

  12. 计算 三、MCMC 采样 - 图6

三、MCMC 采样 - 图6

  • 根据均匀分布从 三、MCMC 采样 - 图6

  • 返回采样得到的序列 三、MCMC 采样 - 图7 3.2 Gibbs 算法

  • MH算法不仅可以应用于一维空间的采样,也适合高维空间的采样。 对于高维的情况,由于接受率 ![三、MCMC 采样 - 图76]),MH算法的效率通常不够高,此时一般使用 Gibbs 采样算法。

  • 考虑二维的情形:假设有概率分布 ![三、MCMC 采样 - 图78] ,可以证明有:

三、MCMC 采样 - 图8 于是 ![三、MCMC 采样 - 图82] 作为直线上任意两点之间的转移概率,则这两点之间的转移满足细致平稳条件。 同理:考察 ![三、MCMC 采样 - 图86] 作为直线上任意两点之间的转移概率,则这两点之间的转移满足细致平稳条件。 可以构造状态空间上任意两点之间的转移概率矩阵 ![三、MCMC 采样 - 图92]:

  • 如果 三、MCMC 采样 - 图9

  • 如果 三、MCMC 采样 - 图9

  • 否则 三、MCMC 采样 - 图1 采用该转移矩阵 ![三、MCMC 采样 - 图102],都满足细致平稳条件:

三、MCMC 采样 - 图1 于是这个二维状态空间上的马尔可夫链将收敛到平稳分布 ![三、MCMC 采样 - 图105] ,这就是吉布斯采样的原理。

  1. Gibbs 算法:

  2. 输入:目标分布 三、MCMC 采样 - 图1

  3. 输出: 采样出的一个状态序列 三、MCMC 采样 - 图1 算法步骤:

  4. 初始化:随机初始化 三、MCMC 采样 - 图1 执行迭代,迭代步骤如下:

  5. 随机或者以一定次序遍历索引 三、MCMC 采样 - 图1

  6. 三、MCMC 采样 - 图1

    该条件概率就是状态转移概率 三、MCMC 采样 - 图1

  7. 根据条件概率 三、MCMC 采样 - 图1

  8. 三、MCMC 采样 - 图1

  9. 最终返回一个状态序列 三、MCMC 采样 - 图1

  10. 吉布斯采样Gibbs sampling 有时被视作MH算法的特例,它也使用马尔可夫链获取样本。

文章列表

更多推荐

更多
  • 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

  • 近期文章

    更多
    文章目录

      推荐作者

      更多