机器学习数学基础 120 章

有向无环图、拓扑序与因子分解

层级:B|建议先修:08-01、05-03、05-08

有向无环图(DAG)既能描述依赖方向,又避免循环定义。Bayesian 网络用 DAG 把高维联合分布分解成一组局部条件概率。

1. DAG 的定义

有向图中,边 uvu\to v 表示从 uu 指向 vv。若不存在沿箭头方向出发又回到原节点的有向环,则称为有向无环图。

对节点 XiX_i

  • 父节点集合记为 Pa(Xi)\operatorname{Pa}(X_i)
  • 子节点集合记为 Ch(Xi)\operatorname{Ch}(X_i)
  • 祖先是沿有向路径能到达 XiX_i 的节点;
  • 后代是从 XiX_i 出发沿有向路径能到达的节点。

2. 拓扑序

DAG 的拓扑序是节点的一个线性排列,使每条边的起点都出现在终点之前。一个图存在拓扑序,当且仅当它是 DAG。

Kahn 算法:

  1. 找出所有入度为 0 的节点;
  2. 取出其中一个加入序列,并删除其所有出边;
  3. 重复,直到全部节点被取出;
  4. 若仍有节点却找不到入度为 0 的节点,说明存在环。

拓扑序通常不唯一。它表示一种与依赖方向兼容的计算或生成顺序。

3. 概率链式法则

任意联合分布都可按某个变量顺序分解:

p(x1,,xn)=i=1np(xix1,,xi1).p(x_1,\ldots,x_n) =\prod_{i=1}^np(x_i\mid x_1,\ldots,x_{i-1}).

这个恒等式本身不带独立假设,但后面的条件集合会越来越大。

4. Bayesian 网络因子分解

若一个联合分布对 DAG GG 因子分解,则

p(x1,ldots,xn)=i=1np(xiPa(Xi)).p(x_1,ldots,x_n) =\prod_{i=1}^np(x_i\mid \operatorname{Pa}(X_i)).

每个变量只依赖自己的父节点,而无需依赖拓扑序中全部前驱。这能大幅减少参数数量并暴露条件独立结构。

例如 ABA\to BACA\to CBDB\to DCDC\to D,则

p(a,b,c,d)=p(a)p(ba)p(ca)p(db,c).p(a,b,c,d)=p(a)p(b\mid a)p(c\mid a)p(d\mid b,c).

5. 局部 Markov 性质

在 Bayesian 网络中,每个节点在给定其父节点后,与自己的非后代条件独立。形式上,

XiNonDesc(Xi)Pa(Xi),X_i\perp \operatorname{NonDesc}(X_i)\mid \operatorname{Pa}(X_i),

其中要排除父节点本身。这个局部性质与因子分解密切相关。

6. 生成模型解释

可按拓扑序采样:

  1. 先从没有父节点的根变量采样;
  2. 已知父节点取值后,从每个子变量的条件分布采样;
  3. 直到生成全部变量。

因此 DAG 不仅是计算图,也可定义数据的联合生成过程。

7. 三种基本结构

三个节点有三种典型连接:

  1. 链:XZYX\to Z\to Y
  2. 分叉:XZYX\leftarrow Z\to Y
  3. 对撞:XZYX\to Z\leftarrow Y

链和分叉中,给定中间节点 ZZ 会阻断 X,YX,Y 的路径;对撞结构中,不观测 ZZ 时路径阻断,观测 ZZ 或其后代反而可能让 X,YX,Y 相关。这是 d-分离的核心。

8. Markov 等价

不同方向的 DAG 可能表达相同的条件独立集合。两个 DAG 若具有相同骨架和相同对撞结构,则 Markov 等价。

因此只从观察数据中的独立关系,通常无法识别所有边方向;因果方向还需要时间顺序、干预数据或额外假设。

9. 参数量示例

nn 个二值变量完全联合建模,需要 2n12^n-1 个自由参数。若某 DAG 中每个节点最多有 kk 个父节点,每个条件概率表的规模约为 2k2^k,总参数规模约为 O(n2k)O(n2^k)。稀疏图以结构假设换取统计和计算效率。

10. 易错点

  1. 箭头不自动代表因果,只表示因子分解或依赖方向;因果解释需要额外语义。
  2. 没有直接边不等于边缘独立,可能通过其他路径相关。
  3. 拓扑序不是按节点名字排序,也不一定唯一。
  4. DAG 不能直接表示有向反馈环;动态系统常通过时间展开消除环。

常见问答

Q1:任何联合分布都能用 DAG 表示吗?
可以用完全 DAG 按链式法则表示,但未必得到参数节省。稀疏 DAG 需要真实的条件独立结构。

Q2:删除一条边意味着什么?
意味着加入某种条件独立假设,使子节点的条件分布不再直接依赖该父节点候选。

Q3:为什么 DAG 不能有环?
有环时无法给出父先子后的拓扑生成顺序,局部条件分布也未必能组成合法联合分布。

Q4:神经网络计算图也是 Bayesian 网络吗?
普通确定性计算图描述数值运算,不一定表示随机变量联合分布。若节点具备概率语义并满足相应分解,才是概率图模型。

练习

  1. 为边 AC,BC,CDA\to C,B\to C,C\to D 写出一个拓扑序和联合分解。
  2. 同一图是否可能有多个拓扑序?给出例子。
  3. 二值链 X1XnX_1\to\cdots\to X_n 需要多少个自由参数?
  4. 解释为什么观察数据通常不能区分 XYX\to YXYX\leftarrow Y

答案与提示

  1. A,B,C,DA,B,C,D,分解为 p(a)p(b)p(ca,b)p(dc)p(a)p(b)p(c\mid a,b)p(d\mid c)A,BA,B 可交换。
  2. 可以。两个互不相连的根节点可任意交换顺序。
  3. 根节点 1 个参数,其余每个条件表有 2 个自由参数,共 1+2(n1)=2n11+2(n-1)=2n-1
  4. 两节点无对撞结构,两个方向编码相同的独立关系;还需干预或额外假设定向。