Machine Learning: A Probabilistic Perspective

第3章 · 离散生成式模型

从 Beta–二项到 Dirichlet–多项、朴素贝叶斯与文档分类——离散数据的生成式建模。 共 10 个 Manim 动画,点击缩略图可全屏播放。

10
知识点
10
动画视频
§03
教材章节
知识脉络
01贝叶斯概念学
→
02数字游戏与归
→
03Beta-二
→
04后验预测与黑
→
05Dirich
→
06词袋语言模型
→
07朴素贝叶斯分
→
08贝叶斯朴素贝
→
09互信息特征选
→
10文档分类实例

场景 01–02

01 – 02
draft

贝叶斯概念学习

只给正例也能学概念——贝叶斯用「假设空间 + 似然 + 先验」解释人类如何从少数样本泛化。
$p(\mathbf{x}' \mid D) = \sum_{h} p(\mathbf{x}' \mid h) p(h \mid D)$
出于教学目的,这里介绍一个关于概念学习的简单例子,叫做数字游戏(number game)……可以用概率分布 $p(\mathbf{x}' \mid D)$ 来表示这种差异,该分布称为后验预测分布。(§3.2,p.57)
贝叶斯概念学习归纳推理
draft

数字游戏与归纳推理

同一个「16」可以引向数值邻近、共享数字、偶数幂等多种相似性——数据增多后归纳规则才突然「锁定」。
$\frac{p(D \mid h_two)}{p(D \mid h_even)} = (1/6)^N / (1/50)^N$$p(\mathbf{x}' \mid D) 在数轴上的形状反映当前归纳偏向$
图3.1 展示了通过实验得到的预测分布……在观测到 D={16,8,2,64} 后,大部分概率权重会集中在「2 的幂次」数字上。(§3.2,图3.1,p.57–58)
数字游戏归纳推理泛化梯度

场景 03–04

03 – 04
draft

Beta-二项模型

抛硬币学概率:Beta 先验 + 二项似然 → 后验仍是 Beta,只需把「伪计数」加上观测计数。
$p(\theta \mid D) = \mathrm{Beta}(\theta | a+N_1, b+N_0)$$以 \mathcal{O}(1/N) 速率下降;\hat{\theta}\approx0.5 时不确定性最大$
尽管这看似简单,但事实证明这个模型将是本书后面许多方法的基础,包括朴素贝叶斯分类器、马尔可夫模型等。(§3.3,p.63)
Beta分布二项分布共轭先验
draft

后验预测与黑天鹅

别只估 θ——用后验预测给未来留概率质量,加一平滑就是在经验计数上「留一手」。
$p(\mathbf{x}' \mid D) = ∫ p(\mathbf{x}' \mid \theta) p(\theta \mid D) d\theta$$p(\mathbf{x}'=1 \mid D) = (a+N_1)/(a+b+N)$
这证明了在经验计数上加1 并进行归一化后再代入的常见做法是合理的,这种技术称为加一平滑。(§3.3.4.1,p.67)
后验预测加一平滑黑天鹅

场景 05–06

05 – 06
draft

Dirichlet-多项模型

掷 K 面骰子:Dirichlet 先验 + 多项似然,后验仍是 Dirichlet——伪计数加经验计数。
$p(\theta \mid D) = \mathrm{Dir}(\theta | \alpha+N)$ MAP:$$\hat{\theta}_k = (N_k+\alpha_k-1)/(N+\alpha_0-K),\alpha_0=\sum\alpha_k$
将似然函数与先验分布相乘,发现后验分布也是狄利克雷分布……后验分布是通过将先验超参数(伪计数)α_k 加到经验计数 N_k 上得到的。(§3.4.3,p.68–69)
Dirichlet多项分布概率单纯形
draft

词袋语言模型

把句子当成单词袋子:忽略顺序,用 Dirichlet-多项后验预测下一个词的概率。
$p(\mathbf{X}=j \mid D) = (N_j+\alpha_j)/(N+\alpha_0)$
假设第 i 个单词使用 Cat(θ) 分布从所有其他单词中独立采样得到,这称为词袋(bag of words)模型。(§3.4.4.1,p.69)
词袋模型语言模型Dirichlet平滑

场景 07–08

07 – 08
draft

朴素贝叶斯分类器

给定类别,假设特征彼此独立——把高维联合分布拆成一堆一维分布相乘,简单却常常很管用。
$\hat{y} = argmax_c p(\mathbf{y}=c) \prod_{j} p(x_j \mid \mathbf{y}=c)$$p(\mathbf{x} \mid \mathbf{y}=c) = \prod_{j} p(x_j \mid \mathbf{y}=c)$
由此产生的模型称为朴素贝叶斯分类器(NBC)。该模型之所以被称为「朴素」,是因为我们并不期望特征是独立的……然而,即使朴素贝叶斯假设不成立,它通常也会产生性能良好的分类器。(§3.5,p.71)
朴素贝叶斯生成式分类条件独立
draft

贝叶斯朴素贝叶斯

MLE 会把「总出现的词」估成概率 1——测试时缺一词就全盘崩溃;贝叶斯版用 Beta/Dirichlet 平滑救命。
$伪计数 + 经验计数(与 \mathrm{MLE} 计数相同)$ 后验预测:$$p(\mathbf{y}=c \mid \mathbf{x},D) \propto \pĩ_c \prod_{j} \thetã_jc^{x_j}(1-\thetã_jc)^{1-x_j}$
最大似然估计的问题在于它可能会过度拟合……这是 3.3.4.1 节中讨论的黑天鹅悖论的另一种表现形式。(§3.5.1.2,p.73)
贝叶斯NBC拉普拉斯平滑后验预测

场景 09–10

09 – 10
draft

互信息特征选择

挑特征别只看「出现多不多」——看知道这个词后,类别标签的「不确定性」降了多少。
$I(X_j;\mathbf{Y}) = \sum_{\mathbf{x},\mathbf{y}} p(\mathbf{x},\mathbf{y}) \log [p(\mathbf{x},\mathbf{y})/(p(\mathbf{x})p(\mathbf{y}))]$
互信息可以理解为观测到特征 j 的值后,标签分布上熵的减少量。(§3.5.4,p.75)
互信息特征选择过滤法
draft

文档分类实例

把新闻邮件变成词袋,朴素贝叶斯几分钟就能分清 X Windows 和 Microsoft Windows。
$\hat{y}_i = argmax_c [\log \pĩ_c + \sum_{j} \log p(x_{ij} \mid \mathbf{y}=c)]$$\log \sum_{c} \exp(b_c) 的稳定计算(式 3.74)$
图3.8 给出了一个示例,其中有 2 个类别和 600 个二元特征,在词袋模型中表示单词的出现或不出现。(§3.5,图3.8,p.72–73)
文档分类新闻组词袋NBC
← 上一章 第2章 · 概率 下一章 → 第4章 · 高斯模型