可计算分布在语义学中的应用
1. 库接口与基本定律
在概率编程中,我们可以借助一些熟悉的定律来描述分布的特性,这些定律由指称语义所支持。比如,类型 Samp α 满足单子定律和交换律,这里的 ≡ 表示分布等价。以下是具体的定律:
- 左单位律 : x′ ← return x ; f x′ ≡ f x
- 右单位律 : x ← e ; return x ≡ e
- 绑定结合律 : x ← e ; y ← f x ; g y ≡ y ← (x ← e ; f x) ; g y
- 交换律 : x ← e1 ; y ← e2 ; f x y ≡ y ← e2 ; x ← e1 ; f x y
这些定律具有操作采样的解释。例如,绑定的结合律表明,在没有依赖关系的情况下,算法可以重新关联采样步骤,并且仍然能从相同的分布中获取样本。交换律则说明,如果两个分布是独立的,采样器可以按任意顺序对它们进行采样。虽然重新关联或交换会使采样器以不同的方式消耗输入随机性,但采样器所诱导的分布是等价的。
2. 作为库的可计算分布
我们现在介绍一个用于表达采样器的 Haskell 库,它实现了前面提到的思想。特别地,我们将展示如何在不假设实数或原始连续分布的情况下,在 Haskell 中实现采样语义。
超级会员免费看
订阅专栏 解锁全文
4万+

被折叠的 条评论
为什么被折叠?



