第 IV 部分 · 不确定知识与推理
第 15 章 概率编程
Chapter 15 · Probabilistic Programming
本章导读
用通用编程语言写生成模型、让推断自动化:概率编程把贝叶斯网络的「图 + 表」推广为「代码 + 随机性」,是现代概率建模的基础设施。
学习要点
- 核心思想:模型 = 带随机原语的程序;推断 = 对满足观测条件的执行轨迹计算后验。
- 与贝叶斯网络对照:允许循环、递归与任意数据结构带来的表达力提升。
- 通用推断:MCMC、变分推断、序贯蒙特卡洛如何在程序空间中运行。
- 代表系统:WebPPL(书中采用)、Church、Anglican,以及 Python 生态的 PyMC 概览。
- 典型应用:认知科学建模、因果推断、贝叶斯实验设计与程序合成。
核心概念
| 术语 | English | 一句话解释 |
|---|---|---|
| 生成模型 | Generative Model | 描述数据产生过程的随机程序 |
| 后验推断 | Posterior Inference | 给定观测后对程序变量的条件计算 |
| 重要性采样 | Importance Sampling | 按建议分布采样并加权的推断方法 |
| 变分推断 | Variational Inference | 用优化寻找近似后验的推断方法 |
| 序贯蒙特卡洛 | SMC | 随证据到来逐步更新粒子的一族方法 |
| WebPPL | WebPPL | 可在浏览器运行的概率编程语言 |
| 溯因推理 | Abduction | 由观察反推最可能的成因 |
| 随机原语 | Stochastic Primitive | flip / sample 等语言内置随机结构 |