“概率程序中的条件化与评分把证据落实为执行筛选或似然加权,再在总质量满足 $0<Z<\infty$ 时归一化。零证据、连续变量的零概率单点和程序不终止分别需要说明,不能把 Bayes 公式中的…”
形式陈述
本页先考虑几乎必然终止、没有非确定选择的生成程序。observe B 为违反 score w 将当前非负权重乘以可测数值
只有当
时,才能定义后验概率
这与条件分布相连,但程序必须说明评分、拒绝及不终止分别如何处理。存在多种条件化语义,不能只写一个除法就认为所有模型相同。
直觉
生成步骤描述观测前可能发生什么,observe 删除不合证据的执行,score 按证据吻合程度重新分配相对权重。直到最后归一化,权重都只是尚未加到一的量,不能逐项当成最终概率。
归一化把全部路径联系起来,所以一般不能把每个局部分支先各自归一化,再直接按原分支概率混合。那会抹掉不同分支对证据的支持程度。
例子与边界
两个盒子的完整后验计算
先以 observe red 后返回盒子标签。
未归一化输出质量为
于是 score 3/4、对盒 score 1/6,得到同一加权测度。这是有限离散模型中似然加权与显式证据筛选的一次直接核对。
零证据不能靠随便填值修复
若程序只可能返回零,却执行 observe x=1,则
连续情况也要谨慎:observe x=1/2 的事件概率为零,因此上述筛选规则同样给零测度。若实际观测带噪声,应使用相应似然密度评分;若要沿连续变量定义正则条件分布,则需要测度分解及版本选择,不能把单点等式当作正概率事件。
权重有限与程序终止是两项条件
若 score 2 执行一次,
若程序有不终止概率,按终止且被接受的输出定义
推论与应用
评分串联时权重相乘,不同执行的质量相加,最后再统一归一化。这给重要性采样等推断方法提供语义目标,却不保证有限样本估计没有方差或偏差问题。
模型语义回答后验应是什么,推断算法回答如何近似它。若
参考资料
- [1] Nils Jansen et al., Conditioning in Probabilistic Programming, 2015,observe、条件期望变换器及非终止交互。
- [2] Sam Staton et al., Semantics for Probabilistic Programming: Higher-Order Functions, Continuous Distributions, and Soft Constraints, 2016,评分与归一化语义。