讲解稿 · 第05章 第04节 · 贝叶斯方法¶
口播时长:约 18 分钟|建议语速:中速,公式处停两拍|字数:约 4200 字
导语(约 80 秒)¶
你的邮箱刚收到一封标题带“免费领取”的邮件,过滤器把它判成垃圾邮件。假设最近 1000 封邮件里,100 封是垃圾邮件;其中 60 封带这个词。其余 900 封正常邮件里,也有 18 封带这个词。
现在问:看到“免费领取”以后,这封邮件是垃圾邮件的概率有多大?很多人脱口而出 60%,因为“垃圾邮件中有 60% 带这个词”。可问题问的是反方向:在带这个词的 \(60+18=78\) 封邮件里,60 封是垃圾邮件,所以答案是
\(P(\text{词}\mid\text{垃圾})\) 和 \(P(\text{垃圾}\mid\text{词})\) 只换了竖线两边,答案却不同。贝叶斯方法处理的正是这种“看到证据以后,怎样反过来修正判断”的问题。再加一条证据,比如“邮件含陌生链接”,后验又该怎样更新?这条线会一直走到参数估计、垃圾邮件过滤、隐马尔可夫模型和 EM 算法。
复习昨日 & 今日路线(约 40 秒)¶
上一章 §05 的统计推断用样本做点估计、区间估计和假设检验;这一节把未知参数也当作不确定对象,比较 MLE、MAP 与完整贝叶斯推断,并把更新规则放进序列模型。下一节 §05 信息论会回答:一个后验有多不确定,两个分布相差多少,以及语言模型 perplexity 和 VAE 的 KL 正则项究竟在量什么。
核心概念一 · 条件概率、全概率与贝叶斯反演(约 3 分钟)¶
直觉。 条件概率不是给原样本空间重新涂色,而是把尺子缩到条件事件 \(B\) 里面,再量交集 \(A\cap B\) 占 \(B\) 多大。因此它是一个“测度比”,不是把两个事件名字交换一下。
好,到这里先把概率的地基补齐。
定义。 先把严格背景放回黑板。\(\Omega\) — 样本空间,装下全部结果;两次抛币时 \(\Omega=\{HH,HT,TH,TT\}\)。\(\mathcal F\) — 事件域,也叫 \(\sigma\)-代数,是允许赋概率的事件集合;此例可取 \(\mathcal F=2^\Omega\),共 16 个事件。\(P\) — 概率测度,把 \(\mathcal F\) 中事件映到 \([0,1]\);例如 \(P(\{HH\})=1/4\)。
这里你可能会问:为什么不直接把所有子集都当事件?有限样本空间通常可以;不可数样本空间里,为了让可列并、补集和测度同时可控,需要先指定 \(\sigma\)-代数。
沿用 Ch04 的 Kolmogorov 三公理母版,不增加“贝叶斯公理”:
- K1 非负性:概率像长度,不能为负;若 \(P(A)=-0.3\),就不是合法概率。
- K2 规范化:全部可能性必须分完,\(P(\Omega)=1\);若仅有两个结果却分到 \(0.5\) 和 \(0.3\),总和 \(0.8\),不合法。
- K3 可列可加性:两两互斥事件可逐项相加;若 \(A\cap B=\varnothing\)、\(P(A)=0.2\)、\(P(B)=0.3\),却声称 \(P(A\cup B)=0.4\),应为 \(0.5\),不合法。
于是当 \(P(B)>0\),
例如 \(P(A\cap B)=0.2\)、\(P(B)=0.5\),条件概率就是 \(0.4\)。把同一个交集写成两种乘法形式,
立刻得到
分母来自全概率公式。若 \(A_1,\ldots,A_m\) 两两互斥且并集为 \(\Omega\),那么
例子。 令 \(S\) 表示垃圾邮件、\(N\) 表示正常邮件,先验分别为 \(0.1\) 和 \(0.9\);\(W\) 表示含“免费”,\(L\) 表示含陌生链接。给定类别后暂时假设 \(W,L\) 条件独立,并取
两类未归一化权重分别是
所以
这就是朴素贝叶斯的多证据更新。黑板上画两条原因分支 \(S,N\),每条再分出 \(W,L\),最后把所有能产生证据的路径加进分母。
反例。 很多人把“互斥”当“独立”。其实在 \(P(B)>0\) 时,\(P(A\mid B)=P(A)\) 当且仅当 \(A,B\) 独立;两个正概率事件若互斥,交集为 0,反而不独立。上例的条件独立也不是公理:若“免费”和“领取”几乎是同一个触发器,硬拆后连乘会重复计算证据。
[进阶,可跳] 若 \(P(B)=0\),不能直接除以 \(P(B)\)。对连续变量条件在 \(X=x\) 上,要用正则条件分布;这不是把 0 塞进分母。
一句话总结。 贝叶斯公式负责反转条件方向,全概率公式负责把所有可能原因放进分母。
学生常问:“softmax 也做归一化,它输出的就是贝叶斯后验吗?”——不是;softmax 只把分数归一化,只有模型假设、训练目标和校准都成立时,输出才可解释为相应条件概率。
暂停思考一¶
只保留“免费”这一条证据,上例的后验是多少?先算分母 \(0.1\times0.6+0.9\times0.02=0.078\),再算 \(0.06/0.078\approx76.9\%\)。加入陌生链接后升到 96.4%,升高来自似然比,不是来自词语本身“看起来可疑”。
核心概念二 · MLE、MAP 与完整贝叶斯(约 3 分钟)¶
直觉。 把模型参数想成一个旋钮。MLE 只把旋钮转到“现有数据最容易出现”的位置;MAP 还装了一根由先验拉住的弹簧;完整贝叶斯不把旋钮锁死,而是保留每个位置的可信程度。
定义。 \(D\) — 观测数据集,例如 10 次抛币的 7 正 3 反。\(\theta\) — 模型参数,例如正面概率 \(p=0.6\)。\(L(\theta\mid D)\) — 似然函数,固定数据、把参数当自变量;若样本独立同分布,
MLE、MAP 与后验分别回答三个不同问题:
这里 \(p_0(\theta)\) 是先验密度。离散假设的证据用求和;连续参数的证据用积分:
PMF 的点值是概率,靠 \(\sum\) 归一;PDF 的点值是密度,靠 \(\int\) 归一。两者不能混用。
例子。 7 正 3 反时,
若先验为 \(\mathrm{Beta}(2,2)\),MAP 为
完整后验是 \(\mathrm{Beta}(9,5)\),后验均值 \(9/14\approx0.643\),分布宽度同时表达不确定性。黑板上画三条曲线:似然峰在 0.7,先验峰在 0.5,后验峰落在两者之间。
高斯先验做 MAP 会产生 \(L^2\) 正则项。这里顺手消歧:\(\lambda_{\mathrm{rate}}=5\) 表示 §03 泊松过程每小时平均 5 次;\(\lambda_{\mathrm{Lag}}=2\) 表示 Ch03 约束的 Lagrange 乘子;\(\lambda_{\mathrm{reg}}=0.01\) 表示正则化系数。三者只共用字母,不共用含义。
反例。 若 10 次全是正面,MLE 给出 \(\hat p=1\),等于断言下一次反面的模型概率为 0。小样本下这过度自信。MAP 也不等于完整贝叶斯:两个后验可以有相同峰值,却一个很窄、一个很宽。
一句话总结。 MLE 只看数据,MAP 给出先验约束下的一个点,完整贝叶斯保留整份参数分布。
学生常问:“先验是不是随便拍脑袋?”——先验可来自历史批次、物理边界或层级模型;拿不准时应报告不同先验下的敏感性,而不是假装没有先验选择。
核心概念三 · 共轭先验与连续后验更新(约 2.5 分钟)¶
直觉。 共轭先验像一本只记两列的账:成功来一次,第一列加一;失败来一次,第二列加一。数据不断到达,不必从头重算整条曲线。
定义。 若先验与后验属于同一分布族,就称该先验为共轭先验。对伯努利或二项似然,取 \(p\sim\mathrm{Beta}(\alpha,\beta)\);\(\alpha,\beta\) 是形状参数,例如 \(\mathrm{Beta}(2,2)\) 在 0.5 附近对称。观察 \(h\) 次正面、\(t\) 次反面后,
所以后验为 \(\mathrm{Beta}(\alpha+h,\beta+t)\)。黑板上只画两个格子 \([\alpha,\beta]\),正面更新左格,反面更新右格。
例子。 从 \(\mathrm{Beta}(2,2)\) 出发,先看到 7 正 3 反,得到 \(\mathrm{Beta}(9,5)\);再看到 4 正 1 反,得到
把两批合成 11 正 4 反,也会直接得到 \(\mathrm{Beta}(2+11,2+4)=\mathrm{Beta}(13,6)\)。后验均值是 \(13/19\approx0.684\);更新顺序不影响结果,前提是各次抛掷独立同分布且同一个 \(p\) 没有漂移。
同样的配对还有:Poisson 或 Exponential 的率参数配 Gamma,类别概率向量配 Dirichlet,多维类别模型再经 softmax 给出归一化概率,Normal 均值配 Normal。Dirichlet 可以看作 Beta 从两个类别扩到多个类别。
反例。 后验是连续密度,曲线高度可以大于 1,仍然合法;密度不等于概率。对连续 \(p\),\(P(p=0.65\mid D)=0\),区间概率必须积分。若参数随时间变化,却仍把旧账无条件累加,后验会越来越窄,也会越来越错。
一句话总结。 共轭性把“先验乘似然再归一化”压缩成参数加计数,序列更新与批量更新一致。
学生常问:“MAP 能一直递推吗?”——能把上一次完整后验当下一次先验;只传上一次 MAP 点值会丢掉分布宽度,不是同一件事。
暂停思考二¶
若第二批不是 4 正 1 反,而是 0 正 5 反,后验会从 \(\mathrm{Beta}(9,5)\) 变成什么?答案是 \(\mathrm{Beta}(9,10)\),均值从 \(9/14\approx0.643\) 降到 \(9/19\approx0.474\)。新证据不是覆盖旧信念,而是和旧证据一起记账。
核心概念四 · 从一次更新到 HMM 与 EM(约 3 分钟)¶
直觉。 你看不到天气,只看见朋友是否带伞。天气是隐藏状态,雨伞是观测;每过一天,先按天气转移预测,再用当天雨伞做一次贝叶斯修正。序列推断就是反复执行“预测—更新”。
定义。 \(Z_t\) — 第 \(t\) 时刻隐藏状态,例如雨或晴;\(X_t\) — 第 \(t\) 时刻观测,例如带伞或不带伞。马尔可夫性质是
HMM 再假设给定 \(Z_t\) 后,\(X_t\) 与其他时刻条件独立,其联合分布分解为
转移矩阵 \(T\in\mathbb R^{2\times2}\) 的第 \(i\) 行给出从状态 \(i\) 去各状态的概率,每行和为 1。例如
它的平稳行向量为 \(\boldsymbol\pi=(4/7,3/7)\),满足 \(\boldsymbol\pi T=\boldsymbol\pi\);MCMC 会设计一个以后验为平稳分布的链来采样。
例子。 初始雨晴各半,带伞的发射概率分别为 0.9 和 0.2。看到第一天带伞后,雨天后验是
前向算法对所有路径求和,得到观测序列概率;Viterbi 对路径取最大值,对观测“带伞、带伞、不带伞”会选出“雨、雨、晴”。参数未知时,Baum–Welch,也就是 EM,在 E 步用前向—后向算隐藏状态与转移的后验权重,在 M 步最大化加权完整数据似然。GMM 的“簇责任度—更新均值和协方差”也是同一套 E/M 交替;VAE 则用编码器 \(q_\phi(z\mid x)\) 近似难算的后验,并在下一节用 KL 项约束它。
CRF 改为直接建模 \(p(\mathbf y\mid\mathbf x)\),允许标签利用整个输入。为避免符号冲突,这里把 CRF 特征权重写成 \(w_k\),不再复用 \(\lambda\)。
反例。 马尔可夫性质不是“各时刻独立”:明天仍依赖今天,只是不再额外依赖更早历史。Viterbi 最优路径也不等于把每个时刻边缘后验最大的状态拼起来,因为“全局最大”与“逐点最大”不是同一个运算。
一句话总结。 HMM 把贝叶斯更新沿时间展开:前向求和、Viterbi 取最大、EM 在隐藏状态未知时学习参数。
学生常问:“EM 每轮都提高似然,是否保证找到全局最优?”——不保证;它通常只保证不降低目标,结果可能停在局部最优或鞍点附近。
一个走完全程的例子(约 2.5 分钟)¶
把整节压进“天气—雨伞”系统。黑板上画两层时间线:上层 \(Z_t\) 是雨/晴,下层 \(X_t\) 是伞/无伞;竖箭头写发射概率,横箭头写转移概率。
- 一次 Bayes 更新。 第一天先验 \(P(R_1)=0.30\),且 \(P(U_1\mid R_1)=0.9\)、\(P(U_1\mid S_1)=0.2\)。看到伞后,证据概率是 \(0.27+0.14=0.41\),所以
$\(P(R_1\mid U_1)=\frac{0.27}{0.41}\approx0.6585.\)$
- 沿 Markov 链预测。 若 \(P(R_2\mid R_1)=0.7\)、\(P(R_2\mid S_1)=0.4\),两条路径贡献分别是 \(0.7\times0.6585=0.4610\) 与 \(0.4\times0.3415=0.1366\),故
$\(P(R_2\mid U_1)=0.4610+0.1366=0.5976.\)$
- 第二次更新。 第二天朋友没带伞,取 \(P(N_2\mid R_2)=0.1\)、\(P(N_2\mid S_2)=0.8\)。雨、晴两项权重为 \(0.0598\) 和 \(0.3220\),于是
$\(P(R_2\mid U_1,N_2)=\frac{0.0598}{0.0598+0.3220}\approx0.157.\)$
- 学习参数。 若已知天气记录里有 7 次“雨后仍雨”和 3 次“雨后转晴”,雨天持续率 \(q\) 的 MLE 是 \(0.7\)。给 \(q\) 一个 \(\mathrm{Beta}(2,2)\) 先验,后验为 \(\mathrm{Beta}(9,5)\),MAP 是 \(8/12\approx0.667\),后验均值是 \(9/14\approx0.643\)。若天气记录不可见,只剩雨伞序列,就由前向—后向加 EM 估计这些转移参数;若只要最可能天气路径,则用 Viterbi。
这一轮同时出现了测度比、全概率分母、先验到后验、多次更新、MLE/MAP/完整后验,以及 HMM 的推断与学习。
暂停思考三¶
若第一天雨天先验不是 30%,而是 1%,即使看到伞,雨天后验是多少?分子 \(0.9\times0.01=0.009\),分母 \(0.009+0.2\times0.99=0.207\),后验只有 \(0.009/0.207\approx4.35\%\)。强证据也未必压得过极低基准率。
易错点回头看(约 90 秒)¶
坑一。 很多人以为 \(P(A\mid B)=P(B\mid A)\),其实两者通常不同,因为一个以 \(B\) 的测度作分母,另一个以 \(A\) 的测度作分母;垃圾邮件例里就是 76.9% 对 60%。
坑二。 很多人以为“互斥就独立”,其实正概率互斥事件必然相关,因为知道 \(B\) 发生会把 \(A\) 的条件概率降到 0;独立的判据是 \(P(A\mid B)=P(A)\),且要求 \(P(B)>0\)。
坑三。 很多人以为 MAP 或一个 softmax 向量就是完整贝叶斯推断,其实 MAP 只保留后验峰值,softmax 只执行归一化,因为参数不确定性只有在保留并积分整个后验时才进入预测:
与下节的钩子(约 30 秒)¶
现在后验已经算出来了,但还缺三把量尺:它到底有多不确定?近似分布 \(q\) 代替真实后验 \(p\) 要付出多少代价?模型对下一个词平均有多意外?下一节信息论用熵、KL 散度、互信息与 perplexity 回答这三个问题,并解释 VAE 为何要加 KL 正则项。