# Ml Graphical Models

> 用概率图模型表达多变量依赖时的建模与推断路线决策。用户问"变量依赖关系怎么建模/HMM 适用 场景/贝叶斯网络结构怎么定/变分推断还是 MCMC"、或推断跑不动时激活。 动作: 判关系因果向(有向网)或相关对称(无向场)→结构专家给定或学习→推断决策树: 精确可行吗(团规模!)→变量消去/信念传播; 不可行→MCMC vs 变分按需选。 不适用于: 确定性规则系统、纯分类选型。 trigger: probabilistic graphical model, HMM, Bayesian network, MRF, CRF, variational inference, MCMC, 吉布斯采样, belief propagation。

- Skill: `fieldlu/ml-graphical-models` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add fieldlu/ml-graphical-models`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fieldlu/ml-graphical-models/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: fieldlu (https://skillmd.com/u/fieldlu)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fieldlu/ml-graphical-models

---


# 概率图模型 — 先画清依赖关系的形状，再决定推断走哪条路

## 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?

1. 用户有一组相互影响的变量（症状-疾病、传感器-设备状态、用户行为序列），想表达它们的联合依赖而非独立建模每个变量。
2. 用户面对序列标注/时序任务，问"HMM 还是用 CRF"、"观测和隐状态怎么对应"。
3. 用户已建好图模型，推断代码跑不动（结点稠密、极大团巨大），纠结换算法还是换模型。
4. 用户在 MCMC 和变分推断之间摇摆：一个慢但渐近准、一个快但带近似偏差，不知道按什么标准选。
5. 用户拿到别人给的贝叶斯网/概率图项目，需要审阅"这个结构是谁定的、条件独立关系是否合理"。

### 语言信号 (用户的话里出现这些就应激活)

- "**变量之间的依赖关系**" / "联合分布怎么建" / "**贝叶斯网络**结构怎么定" / "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 应按以下步骤执行:

1. **判定边的语义方向**
   - 问用户：变量间是"谁生成/导致谁"（有向：因果链、时序先后、生成过程）还是"相互约束/相关对称"（无向：空间邻接、软约束、难以指定方向）？序列任务默认考察 HMM/CRF 家族。
   - 完成标准: 给出"有向网 / 无向场 / 序列链式结构"三选一的判定及一句理由。
   - **判停条件**: 若用户其实只需要判别式预测、不需要概率解释 → 提示普通监督模型可能足够，确认后才继续。

2. **确定结构来源**
   - 结构由专家给定（推荐起点：领域知识画骨架，直观且可控）还是从数据学习（成本高、需专门算法）？
   - 完成标准: 明确写出结构的出处与理由；专家给定时应列出图中每条边的业务含义供用户核对。

3. **估算推断可行性**
   - 检查图的连通密度：极大团有多大？查询有几个？团小（个位数变量级）→ 精确推断可行；团大或稠密连接 → 精确推断撞指数墙。
   - 完成标准: 写出"极大团规模估计 + 精确推断可行与否"的结论。
   - **判停条件**: 团小且仅一两次查询 → 直接变量消去，跳过步骤 4-5；多次查询 → 改信念传播复用消息（注意无环图两轮即可得全部边际），跳过步骤 4-5。

4. **选择近似推断路线**
   - 需要期望值/预测、容忍随机性与收敛诊断负担 → MCMC（首选吉布斯采样，逐变量条件重采样）；需要确定性近似、大规模高维、或嵌入 EM 循环 → 变分推断（平均场拆解 + 简单分布族）。
   - 完成标准: 写出所选路线及触发其选择的两个具体理由（精度需求/时间预算各一）。

5. **假设风险审查**
   - MCMC 路：burn-in 是否丢弃、收敛诊断是否做了、极端概率(近0/1)是否会让采样失真；变分路：隐变量拆解是否符合模型结构、分布族假设是否有依据。
   - 完成标准: 输出一份两条路线各自的风险清单勾选记录；变分路线必须附"拆解与分布族选择依据"说明。

6. **验证与交付**
   - 用小规模子图（手工可算）对照检验实现正确性；报告推断结果的置信口径（精确值 / 采样标准误 / 变分的 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

