跳到主要内容

学习概率模型 — 从糖果袋到 EM

这一章讲三件事: 「学习」怎么变成一次贝叶斯推断; 概率模型的参数怎么从完全数据里「数」出来; 数据带着看不见的变量(聚类——把数据自动分成几堆、疾病、HMM 的隐藏状态)时, EM 怎么在「猜责任」与「重估参数」之间循环。 读完你会把第 12 章的「过拟合」重新理解成先验对复杂度的惩罚

1. 这一章讲什么

第 12 章学的是「输入→输出」的函数;本章学的是概率模型本身: 数据被看作证据,假设被看作「世界如何运作的概率理论」。 贝叶斯观点的承诺是:学习可以完全归约为概率推断1

2. 顶层全景

一袋糖果,5 种假设(h1:100% 樱桃 … h5:100% 酸橙)

贝叶斯学习 P(hi|d)=αP(d|hi)P(hi);预测=对全部假设加权平均
MAP 只用后验最大的那个假设(奥卡姆;先验=复杂度惩罚)
最大似然 先验取均匀(MAP 的极限);大数据时近似贝叶斯
MDL −log2P(d|h)−log2P(h):「说明数据+说明假设」的总位数

完全数据:最大似然三步法(似然→取对数→求导置零)
朴素贝叶斯参数 = 频率;生成 vs 判别

隐变量:EM = E 步(按当前参数算隐变量后验)
+ M 步(按加权频率重估参数),循环
应用:混合高斯聚类 · 带隐变量的贝叶斯网络 · HMM(Baum-Welch)

3. 核心原理

3.1 主走查:一袋糖果的四条哲学

主走查的输入:惊喜糖果只有樱桃(好吃)和酸橙(难吃)两种, 包装不告诉你口味;已知袋子有五种配方——h1 全樱桃、h2 75/25、 h3 五五开、h4 25/75、h5 全酸橙;先验〈0.1,0.2,0.4,0.2,0.1〉 (厂家的说法)。任务:预测下一颗糖的口味2

贝叶斯学习的预测是加权平均:P(D_{N+1}|d)=ΣP(lime|h_i)P(h_i|d)。 连续吃出 10 颗酸橙的更新轨迹:

N=0:h3(五五开)后验最大 —— 先验说了算
N=2:h4(75% 酸橙)反超
N=3:h5(全酸橙)登顶
N=10:「我们认命了」——h5 的后验≈1,
但贝叶斯预测仍是 〈对每个 h 加权〉,略低于 1 且渐近 1

3

四个候选 learner 在同一份数据上分出了性格4:

  • MAP 取后验最大的单一假设:3 颗酸橙后就断言「下一颗必是酸橙 (概率 1.0)」,比贝叶斯的 0.8 更冒险——它把未选中假设的可能性全丢了。
  • 最大似然:先验取均匀时的 MAP。数据大时先验被证据淹没, ML 是贝叶斯的良好近似;小数据时会出事
  • MDL:MAP 取对数后的形式,−log2P(d|h)−log2P(h)= 「给定假设,编码数据要几位」+「编码假设要几位」——最压缩数据的假设 就是最优假设。奥卡姆剃刀在这里有了准确的算术形态。

复杂数据的参数怎么数?完全数据(每个变量都观测到)下, 贝叶斯网络的最大似然参数恰好是频率:新厂家的糖果比例 θ 未知, 打开 N 颗、c 颗樱桃,对数似然求导置零得 θ̂=c/N—— 绕了一圈,「显然的结果」背后是可推广的标准流程: 似然→对数似然→对每个参数求导置零5。 红绿包装版本(θ,θ1,θ2)展示对数似然的关键红利:取对数后, 联合式按参数分解成三个独立方程,每个参数自己解自己6。 顺带修一个坑:某事件一次都没出现时,ML 会把它概率置 0; 惯例是把计数初始化为 1(拉普拉斯平滑的近亲)7

生成 vs 判别的对照在这里给出了实验结论:Ng & Jordan 在 15 个小数据集上比较 朴素贝叶斯(生成)与逻辑斯谛回归(判别)——全量数据时判别在 9 个数据集上赢; 少量数据时生成在 14 个上赢8

3.2 EM:看不见的变量怎么办

医疗记录里有症状、诊断、治疗,唯独没有病本身——疾病是隐变量 (hidden/latent variable)。它值得费劲保留:书里的心脏病诊断网络, 去掉隐变量 HeartDisease 后,参数从 78 个暴涨到 708 个—— 隐变量同时压缩了模型和所需的样本量(要多少数据才够)9

EM 算法在「猜」与「算」之间循环10:

E 步:按当前参数 θ,算每个样例里隐变量的后验分布(它「该负多少责任」)
M 步:把这些后验当成软计数,重新数频率、重估参数 θ′
循环至对数似然不再上升

最小应用是无监督聚类/混合高斯:十万颗恒星的光谱,不知道有几种 恒星类型、各是哪些——隐变量就是「每颗星属于哪一类」; E 步按距离分摊成员度,M 步按成员度重新估计每类的均值方差11。 同一个循环换个皮就是 HMM 的 Baum-Welch:E 步用前向-后向算每个时刻 处于每个隐藏状态的概率,M 步按这些概率数转移与发射频率—— 第 10 章的 HMM 模型,参数正是这样学出来的12

要诚实的边界:EM 保证对数似然单调上升、停在局部极大; 初值决定落在哪个峰上,多维高斯聚类尤其明显13。 贝叶斯网络的结构(图长什么样)也能学:评分+搜索,但组合空间巨大, 实践中要靠先验与限制14

4. 作者的判断与证据

  • (书内定理) 贝叶斯预测的最优性:对任何不排除真假设的先验, 错误假设的后验终将消失,且无论数据多少,贝叶斯预测都是最优的15
  • (书内数据) MAP 在 3 颗酸橙后给出 1.0 的预测 vs 贝叶斯 0.8; 心脏病网络 78 vs 708 参数;Ng & Jordan 的 9:14498
  • (作者的方法论) 「MAP 学习自然体现了奥卡姆剃刀」——复杂度惩罚 从此有了两种等价语言(概率先验 / 描述长度)16
  • (书内坦白) EM 的局部极大问题、「先验从哪来」依旧悬置—— 作者不假装这些被解决了13

5. 边界与局限

  • 贝叶斯最优性的代价是求和/积分:假设空间大时只能用 MAP/ML 近似, 而近似的冒险程度正比于数据量小到什么程度。
  • EM 不保证全局最优;聚类结果对初始化与类数 K 敏感,K 本身常靠选择准则拍板。
  • 结构学习的搜索空间随节点数超指数增长,实用系统大量依赖领域约束。
  • 本章假设模型类正确;模型类错了,再多的数据也只是在错误的族内最优。

6. 可带走的

  1. 「学习=推断」:把假设变成随机变量,过拟合自然变成先验问题。
  2. 一条光谱记住四种 learner:贝叶斯(全平均)→ MAP(取尖)→ ML(均匀先验) → MDL(数位数)。
  3. 小数据信生成,大数据信判别——Ng & Jordan 的 9:14 是最省事的决策依据。
  4. 完全数据下,贝叶斯网络参数=计数;取对数让参数解耦。
  5. 看见「没观测到的中间量」就想 EM:疾病、聚类归属、HMM 状态是同一件事。
  6. 零计数初始化为 1:一行代码,防一票 0 概率灾难。
  7. EM 的收敛是局部的;换个初值多跑几遍,比对没跑诚实。

7. 原文地图

主题原书章原文位置
学习=推断20 开篇text/10-fm.txt:23261(搜「概率推断」)
糖果 5 假设20.1text/10-fm.txt:23278(搜「100% 樱桃味」)
贝叶斯学习定义20.1text/10-fm.txt:23294(搜「贝叶斯学习」)
10 颗酸橙轨迹20.1text/10-fm.txt:23315(搜「10 颗」) · text/10-fm.txt:23318(搜「认命」)
贝叶斯预测最优20.1text/10-fm.txt:23330(搜「最优的」)
MAP 1.0 vs 0.820.1text/10-fm.txt:23338(搜「1.0」)
MDL20.1text/10-fm.txt:23355(搜「log2」) · text/10-fm.txt:21665(搜「最小描述长度」)
ML 与大数据20.1text/10-fm.txt:23364(搜「最大似然」) · text/10-fm.txt:23369(搜「淹没」)
θ̂=c/N20.2.1text/10-fm.txt:810(搜「比例」)
标准方法三步20.2.1text/10-fm.txt:23402(搜「似然写成」)
零计数20.2.1text/10-fm.txt:23409(搜「置为 0」)
分解成独立方程20.2.1text/10-fm.txt:23428(搜「3 项求和」)
朴素贝叶斯 2n+120.2.2text/10-fm.txt:23457(搜「2n + 1」)
生成 vs 判别 9:1420.2.3text/10-fm.txt:23473(搜「判别模型将会输出一个类别」) · text/10-fm.txt:864(搜「14 个」)
高斯 ML20.2.4text/10-fm.txt:23489(搜「标准差」)
贝叶斯参数学习20.2.5text/10-fm.txt:23517(搜「贝叶斯参数学习」)
结构学习20.2.7text/10-fm.txt:23650(搜「贝叶斯网络结构学习」,或搜「结构学习」)
心脏病 78 vs 70820.3text/10-fm.txt:23741(搜「其总数为 78」)
隐变量=疾病20.3text/10-fm.txt:23721(搜「隐藏变量(latent variable)」)
混合高斯聚类20.3.1text/10-fm.txt:23744(搜「无监督聚类」) · text/10-fm.txt:23747(搜「恒星」)
HMM 训练20.3.3text/10-fm.txt:23891(搜「隐马尔可夫模型」)
EM 一般形式20.3.4text/10-fm.txt:23910(搜「EM 算法的一般形式」)

Footnotes

  1. 出处:「概率模型学习」第 12970 段(text/10-fm.txt:12970,搜「概率推断」)。

  2. 出处:「概率模型学习」第 23278 段(text/10-fm.txt:23278,搜「100% 樱桃味」)。

  3. 出处:「概率模型学习」第 23315 段(text/10-fm.txt:23315,搜「10 颗」)。 「我们认命了」在 23318 段。

  4. 出处:「概率模型学习」第 23338 段(text/10-fm.txt:23338,搜「1.0」)。 2

  5. 出处:「概率模型学习」第 23402 段(text/10-fm.txt:23402,搜「似然写成」)。 θ̂ 的结果在 23399 段。

  6. 出处:「概率模型学习」第 23428 段(text/10-fm.txt:23428,搜「3 项求和」)。

  7. 出处:「概率模型学习」第 23410 段(text/10-fm.txt:23410,搜「初始化为 1」)。

  8. 出处:「概率模型学习」第 864 段(text/10-fm.txt:864,搜「14 个」)。 2

  9. 出处:「概率模型学习」第 23741 段(text/10-fm.txt:23741,搜「其总数为 78」)。 2

  10. 出处:「概率模型学习」第 23910 段(text/10-fm.txt:23910,搜「EM 算法的一般形式」)。

  11. 出处:「概率模型学习」第 23744 段(text/10-fm.txt:23744,搜「无监督聚类」)。

  12. 出处:「概率模型学习」第 23891 段(text/10-fm.txt:23891,搜「隐马尔可夫模型」)。

  13. 出处:「概率模型学习」第 4079 段(text/10-fm.txt:4079,搜「局部极大」,或搜「收敛」)。 2

  14. 出处:「概率模型学习」第 23931 段(text/10-fm.txt:23931,搜「贝叶斯网络结构」)。

  15. 出处:「概率模型学习」第 23330 段(text/10-fm.txt:23330,搜「最优的」)。

  16. 出处:「概率模型学习」第 23352 段(text/10-fm.txt:23352,搜「奥卡姆剃刀」)。