面向哲思的编程与架构
笔记哲思阅读动态搜索RSS 订阅
切换到深色模式
搜索
RSS 订阅
切换到深色模式
© 2026 Vic Chen. All rights reserved.CC BY-NC-ND 4.0
← 笔记
概率视角下的机器学习(二):概率论工具箱

概率视角下的机器学习(二):概率论工具箱

2026年1月8日6,24518分钟

这一章不含高深模型,却备齐了后面每一章都要用的基础工具:概率的两种解释、三条基本规则(和、积、贝叶斯)、一张常用分布速查表、蒙特卡洛近似,以及信息论三件套(熵、KL 散度、互信息)。这一篇挑三个值得亲手推一遍的结果是贝叶斯定理下的基率谬误、蒙特卡洛误差、KL 散度为什么恒非负。把工具背后的直觉钉牢,并把它们和后面的变分推断、损失函数、稀疏模型这些去处对上号。


目录
  • TL;DR
  • 1. 概率的两种解释
  • 2. 三条基本规则
  • 2.1 推导一:贝叶斯定理下的基率谬误
  • 2.2 独立与条件独立
  • 3. 一张速查表:常用分布
  • 3.1 离散分布
  • 3.2 连续分布
  • 3.3 多元高斯与变量变换
  • 4. 蒙特卡洛近似:算不动积分,就用抽样代替
  • 4.1 推导二:蒙特卡洛误差
  • 5. 信息论三件套:熵、KL、互信息
  • 5.1 推导三:KL 散度恒非负
  • 6. 收拢:工具箱
  • 7. 时代注脚:2012 → 2026
目录
  • TL;DR
  • 1. 概率的两种解释
  • 2. 三条基本规则
  • 2.1 推导一:贝叶斯定理下的基率谬误
  • 2.2 独立与条件独立
  • 3. 一张速查表:常用分布
  • 3.1 离散分布
  • 3.2 连续分布
  • 3.3 多元高斯与变量变换
  • 4. 蒙特卡洛近似:算不动积分,就用抽样代替
  • 4.1 推导二:蒙特卡洛误差
  • 5. 信息论三件套:熵、KL、互信息
  • 5.1 推导三:KL 散度恒非负
  • 6. 收拢:工具箱
  • 7. 时代注脚:2012 → 2026
目录
  1. TL;DR
  2. 1. 概率的两种解释
  3. 2. 三条基本规则
  4. 2.1 推导一:贝叶斯定理下的基率谬误
  5. 2.2 独立与条件独立
  6. 3. 一张速查表:常用分布
  7. 3.1 离散分布
  8. 3.2 连续分布
  9. 3.3 多元高斯与变量变换
  10. 4. 蒙特卡洛近似:算不动积分,就用抽样代替
  11. 4.1 推导二:蒙特卡洛误差
  12. 5. 信息论三件套:熵、KL、互信息
  13. 5.1 推导三:KL 散度恒非负
  14. 6. 收拢:工具箱
  15. 7. 时代注脚:2012 → 2026
机器学习概率MLAPP
相关文章
  • 01
    概率视角下的机器学习(三):贝叶斯概念学习与朴素贝叶斯2026/01
  • 02
    概率视角下的机器学习(一):为什么用概率视角看机器学习2026/01
  • 03
    从预测一个词开始(二):词怎么变成数2026/03
← 上一篇概率视角下的机器学习(一):为什么用概率视角看机器学习
下一篇 →概率视角下的机器学习(三):贝叶斯概念学习与朴素贝叶斯

评论

© 2026 Vic Chen · 面向哲思的编程与架构CC BY-NC-ND 4.0

TL;DR

这是「概率视角下的机器学习」系列的第二篇。上一篇建立了整本书的世界观,把所有不知道的量当作随机变量,为它建概率分布,再用概率论的规则去推断。世界观有了,接下来得有趁手的工具。

MLAPP 第 2 章就是这套工具箱。它本身不含硬核模型,但后面每一章都在反复取用这里的东西:想写模型要挑分布,想算后验要用贝叶斯规则,后验算不动要靠蒙特卡洛,衡量两个分布的差距要用 KL。这一篇跟着原书第 2 章的骨架走,把工具一件件摆出来,并挑三个值得亲手推一遍的结果做完整推导。它们不难,但推完之后,对概念的理解会更透彻。


1. 概率的两种解释

在使用工具之前,原书 §2.1 先问了一个容易被跳过的问题:ppp 这个符号到底什么意思?有两种解释,它们的分歧会一直延续到本系列第四篇。

  • 频率派(frequentist)把概率看成长期频率:抛一枚硬币,p(正面)=0.5p(\text{正面}) = 0.5p(正面)=0.5 的意思是,抛无穷多次,正面出现的比例趋于一半。这个解释干净,但只对「可重复的事件」成立。
  • 贝叶斯派(Bayesian)把概率看成信念的度量(degree of belief):ppp 量化的是「我对某件事有多确信」。这样一来,「2026 年北极冰盖会不会消融」这种一次性、不可重复的事件也能谈概率了。

对机器学习来说,很多要推断的量,比如某个参数的真值、某封邮件是不是垃圾邮件等,都不是「可重复实验」,而是「一次性的未知」。所以 MLAPP 采信贝叶斯解释:概率是对不确定性的量化,无论这个不确定来自随机性,还是来自我们的无知。

ℹ
这里只点到为止。频率派与贝叶斯派的完整对照,包括它们怎么估参数、怎么做模型选择、各自的病理在哪等等,是本系列第四篇(对应原书 §5–6)的正题。这一篇只需记住:我们默认用贝叶斯解释,ppp 是「信念」。

2. 三条基本规则

整套概率论,日常够用的其实只有三条规则。原书 §2.2 把它们讲得很明白。

ℹ
先厘清一组容易混的说法:变量代入具体取值,ppp 算出来是一个 [0,1][0,1][0,1] 里的数,叫概率(如 p(y=1)=0.004p(y=1)=0.004p(y=1)=0.004);变量留作自变量、对它每个可能取值都给出一个概率,p(⋅)p(\cdot)p 就是一个函数,叫(如 整体)。分布是「壳」,代入取值掉出来的数才是概率。下面三条规则等号两边写的都是变量、没代值,所以它们是(对所有取值都成立);基率谬误那段代入数字后,处理的才是一个个概率值。
  1. 和规则(sum rule),也叫边缘化:想去掉一个变量,就把它求和掉(连续情形就是积分掉)(Chen 注:联合分布 $p(x,y)$ 同时描述了 $x$ 和 $y$;若只关心 $x$,就把不关心的 $y$「消掉」,也就是对 $y$ 的所有取值求和(连续情形改为积分),得到只关于 $x$ 的边缘分布 $p(x)$。打个比方:按「性别 × 是否戴眼镜」统计班级人数,只想知道戴眼镜的有多少人,就把「戴眼镜的男生」和「戴眼镜的女生」两格加起来,性别这一维就被加掉了。连续情形把求和换成积分,积分本就是连续版的求和,思路一样。)。
p(x)=∑yp(x,y)(2.4)p(x) = \sum_{y} p(x, y) \tag{2.4}p(x)=y∑​p(x,y)(2.4)
  1. 积规则(product rule):联合 = 条件 × 边缘(Chen 注:联合 $p(x,y)$ 是 $x,y$ 同时发生的概率;条件 $p(x\mid y)$ 是 $y$ 已发生的前提下 $x$ 发生的概率;边缘 $p(y)$ 是 $y$ 自己发生的概率。把「同时发生」拆成两步:先让 $y$ 发生(概率 $p(y)$),再在 $y$ 已发生的情况下让 $x$ 发生(概率 $p(x\mid y)$),两步相乘就得到联合。之所以第二步要用条件概率,是因为它依赖第一步的结果——女生里戴眼镜的比例未必等于全班的比例。对称地也可先让 $x$ 发生,写成 $p(x,y)=p(y\mid x)\,p(x)$;两种拆法相等,正是下面贝叶斯定理的来源。)。
p(x,y)=p(x∣y) p(y)(2.3)p(x, y) = p(x \mid y)\, p(y) \tag{2.3}p(x,y)=p(x∣y)p(y)(2.3)
  1. 积规则对 x,yx,yx,y 是对称的:既能写成 p(x∣y) p(y)p(x\mid y)\,p(y)p(x∣y)p(y),也能写成 p(y∣x) p(x)p(y\mid x)\,p(x)p(y∣x)p(x)。两者都等于同一个 ,令它们相等再解出 ,就得到了全书最重要的一条式子——(Bayes rule):
p(y∣x)=p(x∣y) p(y)p(x)=p(x∣y) p(y)∑y′p(x∣y′) p(y′)(2.7)p(y \mid x) = \frac{p(x \mid y)\, p(y)}{p(x)} = \frac{p(x \mid y)\, p(y)}{\sum_{y'} p(x \mid y')\, p(y')} \tag{2.7}p(y∣x)=p(x)

这条式子是整个概率视角的引擎:它告诉你,观测到 xxx 之后,该怎么把先验信念 p(y)p(y)p(y) 更新成后验信念 p(y∣x)p(y \mid x)p(y∣x)。分母只是个归一化常数,靠和规则把分子的所有 y′y'y′ 加起来得到。全书从头到尾,「学习」这件事的数学内核,基本都是这条式子的反复应用。

2.1 推导一:贝叶斯定理下的基率谬误

贝叶斯定理长得简单,但用起来常常反直觉。原书 §2.2.3.1 给了一个经典示例:乳腺癌的乳房 X 光筛查,值得亲手算一遍,因为它把「先验有多重要」这件事讲透了。

设一位 40 多岁的女性做了一次乳房 X 光筛查,结果呈阳性。记 x=1x = 1x=1 表示检测阳性,y=1y = 1y=1 表示真的患乳腺癌。已知:

  • 检测的灵敏度(真阳性率)不错,p(x=1∣y=1)=0.8p(x = 1 \mid y = 1) = 0.8p(x=1∣y=1)=0.8;
  • 但这种癌症的患病率[先验,也叫基率(base rate)]很低,p(y=1)=0.004p(y = 1) = 0.004p(y=1)=0.004;
  • 而且它有假阳性率 。
p(x=1∣y=1)=0.8,p(y=1)=0.004,p(x=1∣y=0)=0.1(2.8–2.10)p(x = 1 \mid y = 1) = 0.8 , \quad p(y = 1) = 0.004 , \quad p(x = 1 \mid y = 0) = 0.1 \tag{2.8–2.10}p(x=1∣y=1)=0.8,p(y=1)=

你真正想知道的是:检测阳性的条件下,真的患癌的概率 p(y=1∣x=1)p(y = 1 \mid x = 1)p(y=1∣x=1) 是多少?直觉上,灵敏度都 80% 了,应该挺高吧。用贝叶斯定理算一下:

p(y=1∣x=1)=p(x=1∣y=1) p(y=1)p(x=1∣y=1) p(y=1)+p(x=1∣y=0) p(y=0)(2.11)p(y = 1 \mid x = 1) = \frac{p(x = 1 \mid y = 1)\, p(y = 1)}{p(x = 1 \mid y = 1)\, p(y = 1) + p(x = 1 \mid y = 0)\, p(y = 0)} \tag{2.11}p(y=1∣x=1)=

代入数字(其中 p(y=0)=1−0.004=0.996p(y=0) = 1 - 0.004 = 0.996p(y=0)=1−0.004=0.996):

=0.8×0.0040.8×0.004+0.1×0.996=0.00320.0032+0.0996=0.00320.1028≈0.031(2.12)= \frac{0.8 \times 0.004}{0.8 \times 0.004 + 0.1 \times 0.996} = \frac{0.0032}{0.0032 + 0.0996} = \frac{0.0032}{0.1028} \approx 0.031 \tag{2.12}=0.8×0.004+0.1×0.9960.8×0.004​=

答案是约 3%。检测阳性了,真患病的概率却只有 3%——这就是基率谬误(base rate fallacy)。原因在分母里:患病的人本来就极少(0.4%),而健康人虽然假阳性率只有 10%,但健康的人基数太大(99.6%),乘出来的假阳性总量(0.0996)反而远远盖过了真阳性(0.0032)。

✓
基率谬误的教训不是「检测没用」,而是「先验不能扔」。忽略基率 p(y=1)p(y=1)p(y=1)、只盯着灵敏度看,就会把 3% 错估成 80%。这正是概率视角反复强调的一点:后验 = 似然 × 先验,两头都要认真对待。后面读到朴素贝叶斯、贝叶斯参数估计时,会一次次回到这条式子。

2.2 独立与条件独立

原书 §2.2.4 还强调了两个后面到处都要用的概念。两个变量独立(X⊥YX \perp YX⊥Y),当且仅当联合能拆成边缘之积:p(x,y)=p(x) p(y)p(x, y) = p(x)\,p(y)p(x,y)=p(x)p(y)。更有用的是条件独立(X⊥Y∣ZX \perp Y \mid ZX⊥):在给定 之后 与 独立,

p(x,y∣z)=p(x∣z) p(y∣z)(2.15)p(x, y \mid z) = p(x \mid z)\, p(y \mid z) \tag{2.15}p(x,y∣z)=p(x∣z)p(y∣z)(2.15)

条件独立是把复杂联合分布拆小、让模型可算的核心手段。朴素贝叶斯的「朴素」(第三篇)、图模型里的边(图模型子系列),本质上都是在声明一堆条件独立假设。记住这个记号,后面会省很多力气。


3. 一张速查表:常用分布

原书用三节(§2.3、§2.4、§2.5)集中介绍了一批常用分布。与其逐个抄公式,不如先记住每个分布「是干什么用的、藏了什么假设」。挑选分布,本质上就是在挑选对数据形状的假设。

3.1 离散分布

分布建模对象一句话记忆
伯努利(Bernoulli)单次二值试验(抛一次硬币)一个参数 θ\thetaθ,p(x)=θx(1−θ)1−xp(x)=\theta^x(1-\theta)^{1-x}p(x)=θx(1−θ)1−x(Chen 注:$\theta$ 是取「1」的概率。代入即得 $p(1)=\theta$、$p(0)=1-\theta$:指数当开关,谁的指数为 1 谁留下,另一个被 0 次方消成 1。)
二项(Binomial)

分类问题里的标签服从多项伯努利,词袋模型里的词频服从多项分布。这些是后面朴素贝叶斯、主题模型的直接积木。

3.2 连续分布

连续情况下,高斯分布(Gaussian / 正态分布,§2.4.1)是绝对的主角:

N(x∣μ,σ2)=12πσ2exp⁡ ⁣(−12σ2(x−μ)2).(2.43)\mathcal{N}(x \mid \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\!\left(-\frac{1}{2\sigma^2}(x - \mu)^2\right) . \tag{2.43}N(x∣μ,σ2)=

为什么它到处都是?原书给了三个理由,最关键的两个都很硬:一是中心极限定理(§2.6.3),大量独立随机量之和趋于高斯,而现实中的噪声往往正是许多小扰动之和;二是最大熵(Chen 注:「熵」用来度量不确定性(见本篇信息论一节)。最大熵原理:在满足已知约束的所有分布里,挑熵最大(最「摊平」)的那个,等于不偷偷塞进约束之外的额外假设。),在给定均值和方差的所有分布里,高斯的熵最大,也就是「在只知道前两阶矩(Chen 注:矩(moment)是刻画分布形状的一组数:一阶矩是均值(中心在哪),二阶矩对应方差(分散程度)。「前两阶矩」就是均值和方差。)的前提下,做了最少的额外假设」。这第二点原书放在 §9.2.6 证明,本系列会在监督学习子系列(指数族那一篇)里正式推导。

但高斯有个软肋:尾巴太薄,对离群点(outlier)极其敏感,一个远处的点能把均值和方差拽得很偏。原书因此还给了几个「替补」方案:

分布相对高斯的改进典型用途
学生 ttt(Student-ttt)尾巴更厚,抗离群点稳健回归、稳健均值估计
拉普拉斯(Laplace)尖峰厚尾,∣x∣\lvert x\rvert∣x∣ 惩罚(Chen 注:拉普拉斯密度指数里是 $-\lvert x-\mu\rvert$(绝对值),取负对数就得到一个 $\lvert x\rvert$ 形的惩罚项,即 $\ell_1$ 正则化;对比高斯是 $x^2$($\ell_2$)。$\lvert x\rvert$ 在 0 处有尖角,会把参数顶到正好为 0,从而产生稀疏。)稳健建模;ℓ1\ell_1ℓ1​ /稀疏先验的源头
贝塔(Beta)定义在 [0,1][0,1] 上
ℹ
这张表不用背,但值得记住背后的两条线:(1)学生 t(§2.4.2)和拉普拉斯(§2.4.3)是高斯的「抗揍版」,换来稳健性;其中拉普拉斯的 ∣x∣\lvert x\rvert∣x∣ 形状正是套索(lasso)稀疏性的来源,原书放在 §13.3,本系列会在监督学习「线性回归与稀疏模型」里推。(2)贝塔(§2.4.5)、狄利克雷(§2.5.4)、伽马(§2.4.4)都是拿来当共轭先验(Chen 注:共轭先验(conjugate prior):与某似然相乘后,后验仍落在先验那一族,只是参数变了。好处是省掉贝叶斯定理里那个算不动的归一化积分,更新退化成「改改参数」。如 Beta 是伯努利/二项的共轭先验,后验就是把正/反次数加到先验参数上。)的——它们能让贝叶斯更新后的后验和先验同族、算得动。共轭这件事是第三篇的核心机关,这里先埋个伏笔。

3.3 多元高斯与变量变换

高维版是多元正态(multivariate normal, MVN,§2.5.2),把方差换成协方差矩阵 Σ\boldsymbol{\Sigma}Σ,是整个监督学习子系列第一篇(高斯模型)的主角,这里先记个名字。另外原书 §2.6 讲了随机变量的变换:若 y=f(x)y = f(x)y=f(x),yyy 的密度要乘上雅可比行列式来做体积校正(§2.6.2)。这个技巧在今天的标准化流(normalizing flow)里被用到了极致,这是个典型的 2012 → 2026 注脚,文末再说。


4. 蒙特卡洛近似:算不动积分,就用抽样代替

有了分布,就要拿它算东西,通常是算某个期望 E[f(X)]\mathbb{E}[f(X)]E[f(X)],或者算变量变换后的分布。麻烦在于,这些积分/求和一旦维度高、分布复杂,就没有解析解。原书 §2.7 给的通用出路是蒙特卡洛近似(Monte Carlo approximation):与其硬算积分,不如从分布里抽一堆样本,用样本的平均去逼近期望。

具体来说,从 p(x)p(x)p(x) 里独立抽取 SSS 个样本 x1,…,xSx_1, \dots, x_Sx1​,…,xS​,那么

E[f(X)]=∫f(x) p(x) dx  ≈  1S∑s=1Sf(xs)  ≜  fˉ(2.98)\mathbb{E}[f(X)] = \int f(x)\, p(x)\, dx \;\approx\; \frac{1}{S} \sum_{s=1}^{S} f(x_s) \;\triangleq\; \bar{f} \tag{2.98}E[f(X)]=∫f(x)p(x)dx≈

这招简单到近乎作弊,但极其管用。今天的马尔可夫链蒙特卡洛(MCMC)、粒子滤波、贝叶斯深度学习,底座都是它。那它的误差有多大?这是第二个值得亲手推导的结果。

4.1 推导二:蒙特卡洛误差

记真值 μ=E[f(X)]\mu = \mathbb{E}[f(X)]μ=E[f(X)],σ2=Var⁡[f(X)]\sigma^2 = \operatorname{Var}[f(X)]σ2=Var[f(X)]。样本均值 fˉ=1S∑sf(xs)\bar{f} = \frac{1}{S}\sum_s f(x_s)。因为各 ,先看它的期望,它是的:

E[fˉ]=1S∑s=1SE[f(xs)]=1S⋅Sμ=μ\mathbb{E}[\bar{f}] = \frac{1}{S}\sum_{s=1}^{S} \mathbb{E}[f(x_s)] = \frac{1}{S}\cdot S\mu = \muE[fˉ​]=S1​

再看方差。独立变量之和的方差等于方差之和,而常数 1/S1/S1/S 提出来要平方:

Var⁡[fˉ]=1S2∑s=1SVar⁡[f(xs)]=1S2⋅Sσ2=σ2S\operatorname{Var}[\bar{f}] = \frac{1}{S^2}\sum_{s=1}^{S}\operatorname{Var}[f(x_s)] = \frac{1}{S^2}\cdot S\sigma^2 = \frac{\sigma^2}{S}Var[fˉ​]=S2

所以估计的标准误差(standard error)是

Var⁡[fˉ]=σS□\sqrt{\operatorname{Var}[\bar{f}]} = \frac{\sigma}{\sqrt{S}} \quad \squareVar[fˉ​]​=

这正是原书 (μ^−μ)→N(0,σ2/S)(\hat{\mu} - \mu) \to \mathcal{N}(0, \sigma^2/S)(μ^​−μ)→N(0,σ2/S) 那条结论(§2.7.3)背后的方差。这条 σ/S\sigma/\sqrt{S}σ 是蒙特卡洛的命门:误差按 衰减,想把精度提高 10 倍,样本要多 100 倍,收敛偏慢。但它有个高维下无可替代的优点:。相比之下,用网格法数值积分,格点数随维度指数爆炸(又是维度灾难)。正因为蒙特卡洛不吃这一套,它才成了高维推断的主力。这也解释了本系列为什么把「蒙特卡洛与 MCMC」放在压轴——它是推断三件套(主线四)的收口。


5. 信息论三件套:熵、KL、互信息

工具箱的最后一格,是信息论(§2.8)。它给了我们一把尺子,度量「一个分布有多不确定」以及「两个分布差多远」。这三个量在后面的损失函数、变分推断里频繁出现。

  • 熵(entropy,§2.8.1)量化一个分布的不确定性。离散情形下:
H(X)=−∑k=1Kp(X=k) log⁡2p(X=k).(2.107)\mathbb{H}(X) = -\sum_{k=1}^{K} p(X = k)\, \log_2 p(X = k) . \tag{2.107}H(X)=−k=1∑K​p(X=k

分布越均匀,熵越大(最不确定)(Chen 注:把熵读成「平均意外度」:$\log(1/p_k)$ 是单个结果的意外量(概率越小越意外),熵是它按概率的加权平均。均匀分布每个结果都同样难猜、意外最大,故熵最大;集中在一点时结果基本能猜到、几乎没有意外,熵趋近 0。可证 $\mathbb{H}(X)\le\log K$,等号当且仅当均匀。);越集中在某一点,熵越小(越确定)。均匀分布取到最大熵。

  • KL 散度(Kullback-Leibler divergence,§2.8.2)量化两个分布 ppp 和 qqq 的差距:
KL(p ∥ q)=∑kpklog⁡pkqk(2.110)\mathbb{KL}(p \,\|\, q) = \sum_{k} p_k \log \frac{p_k}{q_k} \tag{2.110}KL(p∥q)=k∑​pk​log

它可以拆成负熵加交叉熵(cross entropy):

KL(p ∥ q)=−H(p)⏟负熵+(−∑kpklog⁡qk)⏟交叉熵 H(p, q).(2.111)\mathbb{KL}(p \,\|\, q) = \underbrace{-\mathbb{H}(p)}_{\text{负熵}} + \underbrace{\Big(-\sum_k p_k \log q_k\Big)}_{\text{交叉熵 }\mathbb{H}(p,\,q)} . \tag{2.111}KL(p∥q)=负熵

它有两条必须记住的性质:KL(p∥q)≥0\mathbb{KL}(p\|q) \ge 0KL(p∥q)≥0,当且仅当 p=qp = qp=q 时取等(原书 §2.8.1);以及它不对称,KL(p∥q)≠KL(q∥p)\mathbb{KL}(p\|q) \ne \mathbb{KL}(q\|p)KL(p∥q),所以它不是真正的「距离」。非负性是第三个值得亲手推的结果。

5.1 推导三:KL 散度恒非负

log⁡\loglog 是凹函数,凹函数满足 E[log⁡Z]≤log⁡E[Z]\mathbb{E}[\log Z] \le \log \mathbb{E}[Z]E[logZ]≤logE[Z]。把 −KL-\mathbb{KL}−KL 里的求和看成对 ppp 的期望:

−KL(p ∥ q)=∑kpklog⁡qkpk=Ep ⁣[log⁡qkpk].-\mathbb{KL}(p \,\|\, q) = \sum_k p_k \log \frac{q_k}{p_k} = \mathbb{E}_p\!\left[\log \frac{q_k}{p_k}\right] .−KL(p∥q)=k∑​pk​

对凹的 log⁡\loglog 用詹森不等式(Jensen's inequality)(Chen 注:詹森不等式(Jensen's inequality):对凹函数 $g$,$\mathbb{E}[g(Z)]\le g(\mathbb{E}[Z])$,先平均再喂进函数,不小于先喂进函数再平均(凸函数则反号)。直观上理解,凹函数「上凸」,弦总在曲线下方,取值的加权平均落在弦上,自然不超过对应的函数值。$\log$ 是凹的,故可把期望挪进 $\log$ 里。),把期望挪到 log⁡\loglog 里面:

Ep ⁣[log⁡qkpk]≤log⁡Ep ⁣[qkpk]=log⁡∑kpkqkpk=log⁡∑kqk=log⁡1=0.\mathbb{E}_p\!\left[\log \frac{q_k}{p_k}\right] \le \log \mathbb{E}_p\!\left[\frac{q_k}{p_k}\right] = \log \sum_k p_k \frac{q_k}{p_k} = \log \sum_k q_k = \log 1 = 0 .Ep​[logp

于是 −KL(p∥q)≤0-\mathbb{KL}(p\|q) \le 0−KL(p∥q)≤0,即 KL(p∥q)≥0\mathbb{KL}(p\|q) \ge 0KL(p∥q)≥0。等号成立当且仅当 qk/pkq_k/p_kq 是常数,也就是 。

✓
这条不等式看着小,却是全书的顶梁柱之一。变分推断(主线四)的整个思路,就是「后验算不动,那就找一个好算的 qqq,去最小化 KL(q∥p)\mathbb{KL}(q\|p)KL(q∥p)」,它之所以能成立,全靠 KL 非负、且只在 q=pq=pq=p 时取零。同一个詹森不等式,还会在 EM 算法(主线三)里推出对数似然的下界。记住这个推法,后面会重复用到。

从 KL 的分解式还能顺手读出一件事:KL(p∥q)=H(p,q)−H(p)\mathbb{KL}(p\|q) = \mathbb{H}(p, q) - \mathbb{H}(p)KL(p∥q)=H(p,q)−H(p)。在机器学习里,ppp 是固定的真实标签分布,H(p)\mathbb{H}(p)H(p) 是常数,所以最小化交叉熵损失,等价于最小化模型 与真实分布 的 KL 散度。你在训练分类器时天天用的交叉熵 loss,本质就是在拿 KL 当尺子。

  • 互信息(mutual information,§2.8.3)则量化「知道 XXX 能帮我们减少多少关于 YYY 的不确定」,它正好是联合分布与「假装独立」的乘积分布之间的 KL:
I(X;Y)=KL(p(x,y) ∥ p(x) p(y)).(2.119)\mathbb{I}(X; Y) = \mathbb{KL}\big(p(x, y) \,\|\, p(x)\,p(y)\big) . \tag{2.119}I(X;Y)=KL(p(x,y)∥p(x)p(y)).(

由 KL 非负立刻得到 I(X;Y)≥0\mathbb{I}(X;Y) \ge 0I(X;Y)≥0,且为零当且仅当 X⊥YX \perp YX⊥Y。所以互信息是比「相关系数」更本质的相关性度量:相关系数只抓线性关系,互信息抓任何形式的依赖。


6. 收拢:工具箱

把这一章的三格工具和它们的去处连起来:

图1:概率工具箱(§2)的三格工具及其在后续各篇的去处

用四条主线再对一遍:贝叶斯规则是参数估计谱系(主线一)的引擎;共轭先验为第三篇的贝叶斯更新铺路;蒙特卡洛是推断三件套(主线四)的收口工具;KL 非负这条不等式同时撑起了变分推断(主线四)和 EM 的下界(主线三)。这一章看着零碎,其实每一格都直通后面的某条主线。


7. 时代注脚:2012 → 2026

第 2 章的工具十四年来基本没动:概率的三条规则、常用分布、信息论的定义,都是数学事实,不会过时。真正被这十四年放大的是蒙特卡洛与变分这两条近似推断的路子。

今天的生成模型(Chen 注:2013 年 Kingma 与 Welling 的变分自编码器(VAE)把变分推断和神经网络缝在一起,用「重参数化技巧」让 KL 目标可以反向传播;2020 年之后的扩散模型,其训练目标同样可以写成一个变分下界。这些都是 MLAPP 第 2 章里 KL 散度与蒙特卡洛这两格工具的直接延续。)几乎全都站在这两格工具之上。前面提到的变量变换(雅可比校正),在标准化流里被做成了可逆神经网络;蒙特卡洛的 σ/S\sigma/\sqrt{S}σ/S​ 误差,是理解扩散模型采样为什么要跑很多步的底层原因。换句话说,第 2 章不是「入门章」,而是通往 2026 年生成模型的地基。

工具箱到此备齐。下一篇将用它们处理第一个具体问题:如何从离散数据中学习概念。我们会讲贝叶斯概念学习与朴素贝叶斯,共轭先验也将在那里正式登场。

(
⋅
)
分布
p(y)p(y)p(y)
分布之间的恒等式
p(x,y)p(x,y)
p(x,y)
p(y∣x)p(y\mid x)p(y∣x)
贝叶斯定理
p(x∣y)p(y)
​
=
∑y′​p(x∣y′)p(y′)p(x∣y)p(y)​
(2.7)
p(x=1∣y=0)=0.1p(x = 1 \mid y = 0) = 0.1
p(x=1∣y=0)=0.1
0.004
,
p
(
x
=
1∣
y=
0)=
0.1
(2.8–2.10)
p(x=1∣y=1)p(y=1)+p(x=1∣y=0)p(y=0)p(x=1∣y=1)p(y=1)​
(2.11)
0.0032+0.0996
0.0032
​
=
0.10280.0032​≈
0.031
(2.12)
Y
∣
Z
ZZZ
XXX
YYY
nnn 次独立伯努利里成功几次
伯努利的计数版本
多项伯努利(Multinoulli)单次 KKK 选一(掷一次骰子)二值推广到 KKK 类,用 one-hot 编码(Chen 注:用长度为 $K$ 的向量表示类别:命中的那一类置 1,其余全 0,只有一个位置是「热」的。掷骰子出 3 就是 $(0,0,1,0,0,0)$。好处是各类别地位对等、不引入虚假的大小顺序。)
多项(Multinomial)nnn 次 KKK 选一的计数二项分布的多类版本
泊松(Poisson)单位时间/空间里稀有事件的次数一个参数 λ\lambdaλ,均值方差都等于 λ\lambdaλ(Chen 注:$\lambda$ 是「率」,表示单位时间/空间里事件平均发生的次数(如每小时平均来 3 个客人,$\lambda=3$)。$p(x)=e^{-\lambda}\lambda^x/x!$。核心性质:均值和方差都等于 $\lambda$,一个参数同时定死了中心和波动。)
2
π
σ2
​
1
​
exp
(−2σ21​(x−μ)2)
.
(2.43)
[0,1]
给「概率」当先验(第三篇主角)
伽马(Gamma)定义在正实数上给方差/精度当先验
狄利克雷(Dirichlet)定义在概率单纯形(Chen 注:概率单纯形(probability simplex):所有合法概率向量 $(p_1,\dots,p_K)$ 的集合,满足每项非负、加总为 1。$K=3$ 时是空间里的一块三角形面片。Dirichlet 在它上面取值,等于「分布之上的分布」,抽一次就得到一个合法的多项参数。)上给多项参数当先验(主题模型)
S1​
s=1∑S​
f
(
xs​
)
≜
fˉ​
(2.98)
fˉ​=S1​∑s​f(xs​)
f(xs)f(x_s)f(xs​)
独立同分布
无偏(Chen 注:无偏(unbiased)指估计量的期望正好等于真值,即 $\mathbb{E}[\bar{f}]=\mu$。不是说单次抽样恰好命中,而是重复无数轮后这些 $\bar{f}$ 的平均落在 $\mu$ 上,不系统性偏高或偏低。像准星没歪的枪:每枪未必中靶心,但弹着点的中心在靶心。无偏只管「中心对不对」,散得多开由方差管。)
s=1
∑
S
​
E
[
f
(
xs​
)]
=
S1​⋅
Sμ=
μ
1
​
s=1∑S​
Var
[
f
(
xs​
)]
=
S21​⋅
Sσ2=
Sσ2​
S​
σ
​
□
/
S​
1/S1/\sqrt{S}1/S​
这个收敛率和维度 DDD 无关
)
log2​
p
(
X
=
k).
(2.107)
qk​pk​​
(2.110)
−H(p)
​
​
+
交叉熵 H(p,q)(−k∑​pk​logqk​)​​.
(2.111)
=
KL(q∥p)
log
pk​qk​​
=
Ep​[logpk​qk​​].
k
​
qk​
​
]
≤
logEp​[pk​qk​​]=
logk∑​pk​pk​qk​​=
logk∑​qk​=
log1=
0.
k
​
/
pk​
p=qp = qp=q
□\square□
qqq
ppp
2.119
)