概率图模型 — 先画清依赖关系的形状,再决定推断走哪条路
R — 原文 (Reading)
"概率图模型的推断方法大致可分为两类。第一类是精确推断方法,希望能计算出目标变量的边际分布或条件分布的精确值;遗憾的是,一般情形下,此类算法的计算复杂度随着极大团规模的增长呈指数增长,适用范围有限。第二类是近似推断方法……在现实任务中更常用。"
— 周志华, 《机器学习》第14章 14.4节 "学习与推断"
"显然,若隐变量的拆解或变量子集的分布假设不当,将会导致变分法效率低、效果差。"
— 周志华, 《机器学习》第14章 14.5.2节 "变分推断"
I — 方法论骨架 (Interpretation)
多个变量纠缠在一起、谁影响谁说不清时,概率图模型把"依赖关系"显式画在图上:结点是变量,边是依赖。整个方法论是三连问。
第一问:边的语义是什么? 有向图(贝叶斯网/HMM)表达"谁生成谁",适合刻画因果方向或时序先后——HMM 的马尔可夫链假设(下一时刻状态仅依赖当前状态)就是有向依赖的极简形态;无向图(马尔可夫随机场)表达对称的相关关系,不区分方向,用极大团上的势函数定量描述"哪些取值搭配受偏好"。判据看问题本身:推理链有方向(语音→文字)还是有向;变量间是相互影响还是单向生成。
第二问:图从哪来? 专家给定(领域知识直接画出结构,条件独立性一目了然)或从数据学结构(代价高)。多数现实任务是专家定骨架、数据填参数(条件概率表/势函数)。
第三问:推断走哪条路? 这是工程成败的分水岭。先估极大团的规模——精确推断(变量消去、信念传播)的复杂度随团规模指数增长,团小且查询少才值得硬算;多个边际分布要查就用信念传播把求和变消息传递复用中间结果。团大则转近似:要的是期望值/预测精度且能接受随机性 → MCMC 采样(吉布斯逐变量重采样,收敛后样本近似后验);要确定性近似或高维效率 → 变分推断(限制近似分布族,把推断变成优化)。两条路各有暗礁:MCMC 怕不收敛与极端概率,变分怕拆解与分布族假设不当。
A1 — 书中的应用 (Past Application)
案例 1: 西瓜问题的贝叶斯网结构与吉布斯采样推断 (c23)
- 问题: 西瓜问题中,已知色泽=青绿、敲声=浊响、根蒂=蜷缩,求"好瓜且甜度高"的概率有多大?涉及查询变量 Q={好瓜,甜度} 与证据变量 E={色泽,敲声,根蒂} 的纠缠依赖。
- 方法论的使用: 作者先用领域知识画出贝叶斯网结构——色泽依赖好瓜和甜度、根蒂依赖甜度,并给出条件概率表(如 P(根蒂=硬挺|甜度=高)=0.1);随后指出这类图的精确推断是 NP 难的,于是改用吉布斯采样:随机产生与证据一致的初始样本,逐个对非证据变量按其条件分布重采样,T 轮采样后目标取值出现的频率即为后验概率的近似。
- 结论: 结构靠专家知识定、参数靠数据填、推断按团规模降级到采样——三段式流程完整落地;吉布斯采样的本质是在证据子空间中随机漫步的马尔可夫链,收敛到平稳分布即后验。
- 结果: 该演算成为 ch7 贝叶斯网推断的标准示例,也预演了 ch14 推断决策树的核心判断:"精确推断 NP 难 → 近似推断接手"。
A2 — 触发场景 (Future Trigger) ★
用户会在什么情境下需要这个 skill?
- 用户有一组相互影响的变量(症状-疾病、传感器-设备状态、用户行为序列),想表达它们的联合依赖而非独立建模每个变量。
- 用户面对序列标注/时序任务,问"HMM 还是用 CRF"、"观测和隐状态怎么对应"。
- 用户已建好图模型,推断代码跑不动(结点稠密、极大团巨大),纠结换算法还是换模型。
- 用户在 MCMC 和变分推断之间摇摆:一个慢但渐近准、一个快但带近似偏差,不知道按什么标准选。
- 用户拿到别人给的贝叶斯网/概率图项目,需要审阅"这个结构是谁定的、条件独立关系是否合理"。
语言信号 (用户的话里出现这些就应激活)
- "变量之间的依赖关系" / "联合分布怎么建" / "贝叶斯网络结构怎么定" / "Bayesian network"
- "HMM 适用场景" / "隐马尔可夫" / "CRF 还是 HMM" / "序列标注用什么模型" / "hidden Markov model"
- "马尔可夫随机场" / "MRF" / "势函数" / "团 clique"
- "变分推断还是 MCMC" / "variational inference" / "吉布斯采样 Gibbs sampling" / "ELBO 收敛了效果却差"
- "belief propagation 信念传播" / "变量消去太慢" / "probabilistic graphical model"
与相邻 skill 的区分
- 与
ml-bayesian-thinking的区别: 那边管"分布假设纪律"——MLE 选什么分布族、朴素贝叶斯的独立性谱系、EM 局部最优,对象是单个分类器的概率建模;本 skill 管多变量网络的图结构与推断路线(有向/无向、精确/近似)。朴素贝叶斯单模型问题 → 那边;多变量纠缠成网 → 本 skill。两者在"EM 用于含隐变量的图模型"处衔接。 - 与
ml-semisupervised的区别: 图半监督(标签传播)只是借用了图的结构做半监督,不涉及概率推断路线;用户目标是"利用未标注数据"→ 那边,目标是"表达与推断变量间依赖"→ 本 skill。 - 与
ml-dimensionality的区别: 两者都处理多变量纠缠,但降维是把变量投影到低维空间(找低维嵌入),图模型是把依赖关系显式写成图(保留可解释的条件独立结构)。要"压缩表示"→ 那边;要"读懂依赖+做概率推断"→ 本 skill。
E — 可执行步骤 (Execution)
当 skill 被激活后, agent 应按以下步骤执行:
判定边的语义方向
- 问用户:变量间是"谁生成/导致谁"(有向:因果链、时序先后、生成过程)还是"相互约束/相关对称"(无向:空间邻接、软约束、难以指定方向)?序列任务默认考察 HMM/CRF 家族。
- 完成标准: 给出"有向网 / 无向场 / 序列链式结构"三选一的判定及一句理由。
- 判停条件: 若用户其实只需要判别式预测、不需要概率解释 → 提示普通监督模型可能足够,确认后才继续。
确定结构来源
- 结构由专家给定(推荐起点:领域知识画骨架,直观且可控)还是从数据学习(成本高、需专门算法)?
- 完成标准: 明确写出结构的出处与理由;专家给定时应列出图中每条边的业务含义供用户核对。
估算推断可行性
- 检查图的连通密度:极大团有多大?查询有几个?团小(个位数变量级)→ 精确推断可行;团大或稠密连接 → 精确推断撞指数墙。
- 完成标准: 写出"极大团规模估计 + 精确推断可行与否"的结论。
- 判停条件: 团小且仅一两次查询 → 直接变量消去,跳过步骤 4-5;多次查询 → 改信念传播复用消息(注意无环图两轮即可得全部边际),跳过步骤 4-5。
选择近似推断路线
- 需要期望值/预测、容忍随机性与收敛诊断负担 → MCMC(首选吉布斯采样,逐变量条件重采样);需要确定性近似、大规模高维、或嵌入 EM 循环 → 变分推断(平均场拆解 + 简单分布族)。
- 完成标准: 写出所选路线及触发其选择的两个具体理由(精度需求/时间预算各一)。
假设风险审查
- MCMC 路:burn-in 是否丢弃、收敛诊断是否做了、极端概率(近0/1)是否会让采样失真;变分路:隐变量拆解是否符合模型结构、分布族假设是否有依据。
- 完成标准: 输出一份两条路线各自的风险清单勾选记录;变分路线必须附"拆解与分布族选择依据"说明。
验证与交付
- 用小规模子图(手工可算)对照检验实现正确性;报告推断结果的置信口径(精确值 / 采样标准误 / 变分的 KL 差距不可知需声明)。
- 完成标准: 对照测试通过 + 结果附带不确定性声明。
B — 边界 (Boundary) ★
不要在以下情况使用此 skill
- 变量间没有真实的依赖结构、各自独立即可解决:图模型徒增复杂度,一张没人需要的图比黑箱更糟。
- 用户只要判别式输出(分类标签)且不需要概率解释/不确定性量化:直接监督模型更快更稳,别为"看起来高级"上概率图。
- 数据量远小于参数量且没有可靠的领域知识定结构:结构学不出来、参数估不准,产出的是一幅精致的空想。
作者在书中警告的失败模式
- 精确推断的指数墙(x47): 复杂度随极大团规模呈指数增长——稠密图上坚持精确推断等于算不完;且变量消去对多个边际分布不复用中间结果(m12、m23 类消息被反复重算),多查询场景应换信念传播。规范化因子 Z 的精确计算通常也很难,好在许多任务并不需要 Z 的精确值。
- 变分推断的假设敏感性(x48): 平均场把复杂多变量拆成相互独立的子集、再用简单分布逼近——若拆解方式或分布族假设不当,L(q) 优化得再好也只是对一个糟糕近似族的优化:效率低、效果差。拆解要顺着模型结构来,不能随手切。
- 盘式记法只是记法: 重复结构(N 个同机制变量)压进方框能让图简洁,但它不改变推断难度——别把"图画得清爽"误当成"问题变简单了"。
- 话题模型的边界: LDA 只适用于能用词袋描述的数据(词不计顺序);顺序信息重要的文本任务,词袋前提本身就是信息损失。
作者的盲点 / 时代局限 (2016 成书)
- 手工设计势函数/特征函数(如 CRF 的转移/状态特征)属特定技术栈,神经序列标注普及后该实践已边缘化;当代深度概率模型(VAE、神经变分、扩散模型)把"分布族假设"交给神经网络参数化,本 skill 的变分决策树仍适用但假设审查的对象变了。
- 书中推断以中小规模图为主,未覆盖大规模分布式推断与随机变分推断;亿级变量的图工程实践需另行参考专门文献。
- 因果视角缺位:书中贝叶斯网的"有向"止步于概率依赖,未进入 do-演算/因果效应识别——把贝叶斯网当因果模型用时须格外谨慎,这是阶段0批判明确指出的作者盲点。
容易混淆的邻近方法论
- 神经网络: 也是"结点+边"的图,但边上传递的是确定性张量而非概率分布;图模型的独特卖点是条件独立性的显式表达与不确定性量化。
- 聚类/混合模型: 高斯混合等是无图结构的概率模型;只有当变量间的依赖关系本身成为建模对象时才升级为图模型。
- 规则/逻辑系统: 同样能表达变量间关系,但是确定性的(真/假);概率图处理的是带不确定性的软依赖。要确定性可解释规则 → 规则学习路线。
- 马尔可夫 blanket 滥用: "给定邻居条件独立于其他变量"是图性质,不是任何变量集合都适用的万能独立性证明——脱离图谈独立性无效。
相关 skills
- contrasts-with: ml-bayesian-thinking(单模型分布假设纪律 vs 多变量网络结构与推断路线), ml-semisupervised(图结构用于消化无标签 vs 表达依赖)
- composes-with: ml-dimensionality(多变量纠缠的两条出路:投影降维 vs 显式图建模)
审计信息
- 验证通过: c23 在阶段1.5 判为"教学演示类(场景过窄)";x47/x48 因当时"无挂靠出口"淘汰——本 skill 属扩充批A·第2组新增(覆盖 ch14),为其提供归属;R 引文已逐字核对章节文本,B 段失败模式均出自原书明言
- 测试通过率: 待阶段 3 测试 (详见 test-prompts.json)
- skill_version: 0.0.1
- 蒸馏时间: 2026-08-24