概述

概率电路(Probabilistic Circuits,PC)是一类通过电路结构表示概率分布的可追踪模型。与传统概率图模型不同,概率电路在设计上保证了对某些查询(如边缘概率、条件概率)的精确高效计算,避免了近似推断的精度损失。1

概率电路可以看作是对和积网络(Sum-Product Networks, SPN)的形式化扩展,其核心思想是将复杂概率分布分解为可追踪的模块化组件。


形式化定义

电路结构

概率电路是一个有向无环图(DAG),具有以下结构:

其中:

  • 是节点集合,分为三类:
    • 和节点(Sum nodes):
    • 积节点(Product nodes):
    • 叶节点(Leaf nodes):
  • 是有向边集合
  • 是和节点的权重参数
  • 是叶节点的分布参数

节点定义

叶节点(Leaf Nodes)

叶节点表示基础概率分布,常见类型包括:

类型定义示例
指示器离散变量的取值指示
高斯连续变量的高斯分布
混合混合分布

积节点(Product Nodes)

积节点的输出是子节点输出的乘积,实现变量分解

和节点(Sum Nodes)

其中权重 。和节点实现选择性混合


三大核心性质

概率电路的表达能力由三个关键性质决定:可分解性、均匀性和平滑性。2

可分解性(Decomposability)

定义:对于每个积节点 ,其子节点 必须作用于不相交的变量集

意义:保证积节点可以分解为独立因子的乘积,实现高效的乘积计算。

示例

        *
       / \
      *   *      ← 积节点
     / \ / \
    a  b c  d    ← 叶节点(变量互不相交)

这里

均匀性(Homogeneity)

定义:对于每个和节点 ,其所有子节点的作用域完全相同

意义:保证和节点输出的加权平均有意义,实现一致的概率分布。

对比

均匀:                非均匀(非法):
    +                    +
   /|\                  /|\
  / | \                / | \
 p  p  p               a  b  c   ← 作用域不同
(same scope)          (different scopes)

平滑性(Smoothness)

定义:对于每个和节点 ,其所有子节点的作用域完全相同(与均匀性等价表述)。

实际上,平滑性 = 均匀性,这一性质确保了概率电路输出的归一性。


三大性质的表达能力影响

性质组合表达能力可追踪查询
仅可分解中等联合概率
可分解 + 均匀边缘概率
全部三条最强条件概率、归一化常数

为什么这三条性质如此重要?

  1. 可分解性 积节点可并行计算
  2. 均匀性 和节点可正确加权
  3. 平滑性 电路输出是有效概率分布

常见概率电路类型

和积网络(SPN)

SPN是最早的概率电路形式,由Poon和Domingos (2011)提出。3

定义:满足可分解性和平滑性的有根有向无环图。

表达能力:可以表示任意在变量上分解的联合分布。

示例结构

# 简化的SPN结构示例
class SumNode:
    def __init__(self, children, weights):
        self.children = children
        self.weights = weights  # 归一化权重
    
    def forward(self, x):
        return sum(w * child(x) for w, child in zip(self.weights, self.children))
 
class ProductNode:
    def __init__(self, children):
        self.children = children
    
    def forward(self, x):
        return prod(child(x) for child in self.children)

概率句子决策图(PSDD)

PSDD(Probabilistic Sentential Decision Diagram)由Kisa et al. (2014)提出。4

特点

  • 基于有序二元决策图(OBDD)构建
  • 每个子电路对应一个逻辑公式
  • 自然地嵌入领域知识

结构

        S (根节点)
       /|\
      / | \
     *  +  *      ← 交替的积/和节点
    / \/ \ / \
   a  b  c d  e   ← 指示器叶节点

RAT-SPN(Rectified Affine Transform SPN)

RAT-SPN由Peharz et al. (2020)提出,引入更灵活的线性变换。5

创新点

  • 使用线性变换替代简单的和-积结构
  • 支持连续变量建模
  • 更强的表达能力

电路评估(Evaluation)

精确概率计算

给定输入 ,电路评估通过自底向上的消息传递计算:

def evaluate(node, x):
    if isinstance(node, LeafNode):
        return node.prob(x[node.scope])
    elif isinstance(node, ProductNode):
        return prod(evaluate(child, x) for child in node.children)
    elif isinstance(node, SumNode):
        return sum(w * evaluate(child, x) 
                   for w, child in zip(node.weights, node.children))

时间复杂度

对于满足三大性质的概率电路:

操作时间复杂度说明
边缘概率 $O(V
条件概率 $O(V
归一化常数$O(V

与概率图模型的对比

特性概率电路贝叶斯网络马尔可夫网络
精确推断✓ (结构保证)部分 (树结构)困难
表示能力受限完整完整
学习难度中等简单困难
可解释性
参数效率

概率电路的优势

  1. 确定性可追踪性:结构决定可追踪查询的类型
  2. 模块化:易于组合和分解
  3. 端到端可训练:可微分设计支持梯度学习
  4. 编译友好:可以从其他模型编译得到

应用场景

1. 变分推断的统一框架

概率电路提供了一种统一视角来理解各种变分推断方法:

  • VAE:将编码器和解码器视为概率电路
  • 归一化流:特殊结构的概率电路
  • 自回归模型:链式结构的概率电路

2. 生成建模

输入x → 概率电路 → 生成样本

利用电路的条件独立性进行高效采样。

3. 推理加速

将复杂模型的推理过程编译为概率电路,实现毫秒级推理。

4. 可解释AI

电路的模块化结构提供了天然的因果解释路径。


电路表示能力边界

可表示的分布

概率电路可以高效表示:

  • 所有树结构的贝叶斯网络
  • 所有隐树模型
  • 任何可分解为层次结构的分布

不能高效表示的分布

  • 完全连接的马尔可夫网络(需要指数大小电路)
  • 具有复杂循环依赖的模型
  • 某些长程依赖的分布

数学框架总结

概率电路的数学核心是层次分解

其中 是第 层第 个因子的作用域。


参考


相关主题

Footnotes

  1. Choi et al. (2020). “Learning and Inference with Tractable Probabilistic Models”.

  2. Peharz et al. (2015). “On the Latent Variable Interpretation in Sum-Product Networks”.

  3. Poon & Domingos (2011). “Sum-Product Networks: A New Class of Tractable Models”. UAI 2011.

  4. Kisa et al. (2014). “Probabilistic Sentential Decision Diagrams”. KR 2014.

  5. Peharz et al. (2020). “Randomized Sum-Product Networks”. AISTATS 2020.