Day 41 · 2026.08.02

概率图模型

Probabilistic Graphical Models — 画一张图,就是宣布了一整套「什么与什么无关」
「概率的本质不在数字,而在数字背后的推理结构。」 — Judea Pearl

贝叶斯网络

Bayesian Network · 用缺失的边编码独立性
Directed Models
直觉版

$n$ 个二值变量的联合分布要 $2^n-1$ 个数,30 个变量就已超过十亿。但世界从不是全连接的。把直接依赖画成箭头,真正的信息在那些没画出的边里——每条缺边都断言一组条件独立,联合分布随之从指数塌成一堆小表的乘积。

更反直觉的是「解释消解」:草地湿可能因下雨,也可能因洒水器,两者本来无关;可一旦看到草地湿了,再得知昨夜下过雨,你对「洒水器开过」的信念立刻下降——雨已把湿解释掉。观测一个共同结果,会让它的两个原因凭空相关。

阴天 洒水器 下雨 草地湿 观测底部后被打开 红框 = 已观测
正式定义
$$P(X_1,\dots,X_n)=\prod_{i=1}^{n} P\!\left(X_i \mid \mathrm{pa}(X_i)\right)$$

$\mathrm{pa}(X_i)$ 是 $X_i$ 在有向无环图中的父节点集。这行式子只说一件事:给定直接原因,一个变量与所有非后代无关。存储代价从 $2^n$ 降到 $\sum_i 2^{|\mathrm{pa}(X_i)|}$。图不是分布的插图——图就是分布的一半定义,另一半只是局部条件概率表。

为什么美

这里有一部图论与概率论之间的词典。d-分离是纯组合的判定:只看路径怎么走、哪些节点被观测,不碰任何积分;结论却是关于分布的——图上分离蕴含分布中条件独立,且对几乎所有参数取值反过来也成立。用手指沿箭头描一遍就能回答的问题,等价于一族高维积分是否恒等。语法与语义的这种对应并非孤例(Day 19、Day 47):数学反复奖赏那些把语义问题降格成语法的人。

应用

诊断系统 QMR-DT 用双层网络连接数百种疾病与数千个症状;遗传连锁分析沿家系图传播基因型信念。最深远的一步是 Pearl 把箭头从「依赖」升级为「因果」:加上干预算子 $do(x)$,图便能判定某个因果效应能否从纯观测数据识别(后门准则)——「相关不等于因果」第一次成为可计算的命题。

一句话精华 · 思考题
贝叶斯网络的信息量不在画出的边里,而在没画的边里——建模就是负责任地声明「什么与什么无关」。
你画的系统依赖图是否也隐含地断言了一组「无关」?它被违反时你察觉得到吗?

马尔可夫链

Markov Chain · 局部规则决定全局不变量
Stochastic Processes
直觉版

马尔可夫性质只有一句话:未来只通过「现在」依赖过去。当前状态是全部历史的充分统计量——记住它,日志就可以全丢。

想象一大群人在状态图上随机游走,每步按同样的规则跳。无论起始分布多古怪,走够多步后,人群的整体分布会停下来不再变化——每个状态的流入恰好等于流出。个体仍在乱跳,宏观形状已经凝固。

A B C 0.7 0.6 0.9 分布随步数收敛到 π t=0 t=5 t→∞
正式定义
$$\pi P=\pi,\qquad \textstyle\sum_i \pi_i=1$$

$P$ 是转移矩阵,$P_{ij}$ 是从 $i$ 跳到 $j$ 的概率;行向量 $\pi$ 是状态上的分布。式子说:$\pi$ 是 $P$ 属于特征值 1 的左特征向量——走一步后分布纹丝不动。链若不可约且非周期,$\pi$ 唯一;误差按 $|\lambda_2|^t$ 衰减,谱隙越大混合越快(Day 4、Day 48)。

为什么美

规则完全是局部的——每个状态只知道自己往哪跳;结果却是全局且唯一的,而且恰是线性代数最基本的对象:特征向量。PageRank 正是这句话的兑现:「重要的页面被重要的页面链接」本是循环定义,特征向量方程把它解开了

更漂亮的是把逻辑倒过来用:不是给定链求平稳分布,而是给定想采样的分布,反设计一条以它为平稳分布的链。细致平衡 $\pi_i P_{ij}=\pi_j P_{ji}$ 里只出现 $\pi$ 的比值,那个算不出来的归一化常数被约掉了——高维后验写不出来却采得出来,原因正在于此。

应用

PageRank 与推荐系统的随机游走;MCMC 支撑起现代贝叶斯统计与 Ising 模型模拟;排队论用平稳分布算等待时间。Shannon 用马尔可夫链建模英文字母序列,是语言模型的史前史(Day 13)。最新一例是扩散模型:前向加噪是一条把数据打成高斯噪声的马尔可夫链,神经网络学的正是它的时间反演

一句话精华 · 思考题
「记住现在就够了」这一条约束,把随机过程压成一个矩阵,把长期行为压成一个特征向量。
你的系统里哪些「状态」其实是充分统计量?马尔可夫假设失效时,通常是漏掉了哪个变量?

隐马尔可夫模型

Hidden Markov Model · 隔着毛玻璃看一条链
Latent Variables
直觉版

真实状态藏在幕后按马尔可夫链演化——说话人想发的音素、市场的牛熊、基因组当前在编码区还是非编码区。你只看得到它随机「渲染」出的观测:一段声波、一天涨跌、一个碱基。链在暗处走,你在明处猜。

难处在于:长度 $T$ 的观测有 $|S|^T$ 条隐藏路径都能解释它。救命的正是马尔可夫性质——历史不同但此刻停在同一状态的路径,对未来的影响完全一样,可以就地合并成一个数。

隐状态格子(红 = Viterbi 最优路径) s₁ s₂ s₃ x₁ x₂ x₃ x₄ 观测
正式定义

两组参数:转移 $A_{ij}=P(z_t=j\mid z_{t-1}=i)$,发射 $B_{jk}=P(x_t=k\mid z_t=j)$。前向递推为

$$\alpha_t(j)=\Big[\sum_i \alpha_{t-1}(i)\,A_{ij}\Big]\,B_{j\,x_t}$$

$\alpha_t(j)$ 读作「产生了迄今全部观测 $x_{1:t}$、且此刻停在状态 $j$」的联合概率。方括号里那个求和就是全部秘密:它把所有通往 $j$ 的历史合并成一个数,因为未来只依赖 $j$、不依赖怎么走到 $j$;括号外乘上发射概率,吸收当前观测的证据。复杂度从 $O(|S|^T)$ 降到 $O(|S|^2T)$。

为什么美

同一张格子,把 $\sum$ 换成 $\max$,算出的就不再是边缘概率,而是最可能的那条隐藏路径——这正是 Viterbi。两者长得一模一样绝非巧合:它们是同一套递推在不同半环上的实例,$(+,\times)$ 给出概率求和,$(\max,\times)$ 给出最优路径。算法骨架与它计算的代数被彻底分离了:换个半环就换了语义,最短路径与序列比对都落在这张表上。你以为在解一个问题,其实证明了一整族问题(Day 19)。

应用

语音识别在深度学习之前由 HMM 统治三十年:隐状态是音素,发射模型刻画声学。生物信息学用它做基因预测与序列比对;Viterbi 译码跑在几乎每一部手机的卷积码解码器里(Day 33)。即便今天,端到端语音模型的 CTC 损失仍在跑同一套前向-后向递推,只是发射概率改由神经网络给出。

一句话精华 · 思考题
动态规划击败指数爆炸靠的不是技巧,而是模型自身的条件独立结构——马尔可夫性质就是「可合并」的许可证。
若隐状态对更早的历史仍有依赖,你会怎样扩充状态把它重新变成马尔可夫的?代价是什么?

推断即消息传递

Inference as Message Passing · 从图模型到深度学习
Inference & ML
直觉版

前三个概念其实是同一个算法的特例。把图看成一张通信网络:每个节点只知道自己与邻居的关系,它把「依我之见你该是什么样」总结成一条消息发出去,收齐邻居的消息后更新自己的信念。在树上跑一遍这个协议,每个节点得到的恰好是精确的边缘分布——而全局推断从未被任何节点整体执行过,它从局部对话中涌现。这正是分布式系统的世界观:没有中心协调者,全局一致由局部协议保证。

正式定义
$$m_{i\to j}(x_j)=\sum_{x_i}\psi_{ij}(x_i,x_j)\,\phi_i(x_i)\!\!\prod_{k\in N(i)\setminus j}\!\! m_{k\to i}(x_i)$$

$\phi_i$ 是节点 $i$ 自带的证据,$\psi_{ij}$ 是边上的兼容度($i,j$ 取这对值有多合理),$N(i)\setminus j$ 是除 $j$ 以外的邻居——刚从 $j$ 听来的话不能再还给 $j$,否则信念会自我强化成回音室。求和把 $i$ 的所有可能性积掉,只留下对 $j$ 的意见。

为什么美

图一旦有环,这套协议就失去理论保证,人们却照跑不误(loopy BP),效果常常好得离谱;十余年后才明白它其实在优化统计物理里的 Bethe 自由能。同一个方程在三个互不相干的领域各被独立发现过一次:统计物理的空腔法、编码论的 LDPC 译码、人工智能的信念传播。

精确推断不可行时还有第二条路:把推断变成优化——在一族简单分布 $q$ 里找最接近真后验的那个,最大化下界

$$\log P(x)\;\ge\;\mathbb{E}_{q}\!\left[\log P(x,z)\right]-\mathbb{E}_{q}\!\left[\log q(z)\right]$$

第一项要求 $q$ 落在高概率区,第二项是 $q$ 的熵、阻止它塌成一个点;下界与 $\log P(x)$ 的间隙恰是 KL 散度。「算积分」于是换成了「跑梯度下降」——这正是 VAE 的目标函数。

应用

LDPC 与 turbo 码用 loopy BP 译码,把速率推到 Shannon 极限附近(Day 13、Day 33)。VAE 与扩散模型的训练目标都是 ELBO 的变体。图神经网络的每一层就是消息传递的可学习版本——手工设计的势函数换成了神经网络;注意力机制也可读作全连接图上的一轮消息传递。深度学习并未废掉图模型,而是把它的推断步骤参数化了

一句话精华 · 思考题
结构即约束,约束即可算:图模型的力量来自敢于声明「这里没有边」,推断不过是让局部信念在这张骨架上传到收敛。
只学势函数、不声明结构的模型,是真学到了那些条件独立,还是用海量参数把它们背了下来?

深入思考

为什么「条件独立」比「独立」更基本?
无条件独立在真实世界里几乎不成立,因而没什么用。条件独立却比比皆是:给定直接原因后,远处的东西不再提供额外信息。更关键的是它可拼装——整个联合分布能由一堆条件独立断言组合出来。图模型之所以可能,正因世界的依赖稀疏且局部;这大概也是物理定律能写成微分方程(只涉及邻域)的同一个原因。
因果图比概率图多了什么?
多的是对干预的承诺。不同的有向图可以诱导出完全相同的联合分布(马尔可夫等价类),观测数据无从区分。因果图额外声明:切断某节点的所有入边(即 $do(x)$)后,其余机制保持不变。这个「模块自治」假设不是数据能验证的,而是建模者的表态;有了它才谈得上「若我改变 $X$,$Y$ 会怎样」——预测与决策的分水岭正在此处。
什么时候显式结构仍然不可替代?
当数据稀缺、需要外推到从未见过的干预、或必须给出校准的不确定度时。纯拟合模型只能在训练分布内插值;而一旦问题变成「若我改变 $X$ 会怎样」,没有结构声明就无从作答。这也解释了为什么临床试验设计、流行病建模、故障归因这些领域至今仍在手写图——那里错误的代价高到不允许把结构交给参数去猜。
大脑是不是在跑近似推断?
预测编码理论认为皮层自上而下传预测、自下而上传预测误差,形式上很接近层级高斯图模型上的消息传递;自由能原理进一步把感知与行动统一为同一个变分下界的优化——感知改 $q$ 去贴合世界,行动改世界去贴合 $q$。证据仍有争议,反对者指出它可被构造得几乎无法证伪。但这个类比提出了一个锋利的问题:若智能的核心是在结构化模型上做近似推断,「学习结构」与「在结构上推断」哪个才是更难的部分?