Practical Probabilistic Programming
作者: Avi Pfeffer
语言: 英文
出版年份: 2016
下载链接:
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。

书籍摘要

1. 概率编程概述

  • 定义:概率编程是一种使用编程语言来表达概率模型的方法。
  • 目标:通过概率推理系统,在给定证据的情况下,回答关于不确定情况的查询。
  • 系统组成:包括一个图灵完备的编程语言来表示模型,以及一组应用于模型的推理算法。

2. Figaro简介

  • 定义:Figaro是一个用Scala实现的概率编程系统。
  • 特点:支持创建模型、运行推理、处理证据和查询答案。
  • 示例:通过Hello World示例展示了如何使用Figaro创建简单的概率模型。

3. 概率模型与概率程序

  • 概率模型定义:用概率分布表示对不确定情况的一般知识。
  • 使用模型:通过应用证据到模型,并使用推理算法来回答查询。
  • 模型成分:包括变量、依赖关系、功能形式和数值参数。

4. 依赖关系建模

  • 贝叶斯网络:一种表示概率模型的图结构,包括变量、有向无环图和条件概率分布。
  • 马尔可夫网络:使用无向图和势函数来表示依赖关系。
  • 扩展:使用概率编程系统来扩展贝网络叶的功能斯。网络和 马尔 可##夫 5变量. 使用Scala和Figaro集合构建模型
  • Scala集合:用于组织和管理多个相同类型的。
  • Figaro集合:提供额外的功能,如处理未知数量的对象和定义在连续区域上的模型。

6. 面向对象概率建模

  • 优势:提供结构化的方式来组织复杂的程序,并启用代码重用。
  • 示例:通过打印机模型展示了如何使用面向对象技术来构建和推理概率模型。

7. 动态系统建模

  • 定义:动态系统的状态随时间变化,且不同时间点的状态相互依赖。
  • 类型:包括马尔可夫链、隐马尔可夫模型和动态贝叶斯网络。
  • 建模:使用Figaro宇宙来表示不同时间点的状态变量。

8. 概率推理

  • 推理规则:包括链式规则、全概率规则和贝叶斯规则。
  • 推理算法:包括变量消除、信念传播和采样算法(如重要性采样和马尔可夫链蒙特卡洛采样)。

9. 学习和参数估计

  • 贝叶斯学习:通过数据来更新模型的参数分布。
  • 最大似然估计和MAP学习:通过数据来估计模型的最可能参数值。
  • 期望最大化算法:一种迭代算法,用于在具有隐藏变量的模型中估计参数。
期待您的支持
捐助本站