贝叶斯公式
从条件概率到贝叶斯公式
设 $A$ 和 $B$ 是两个事件,$P(B) > 0$,则条件概率定义为:
$$ P(A \mid B) = \frac{P(A \cap B)}{P(B)} $$由此可以把联合概率 $P(A \cap B)$ 写成两种形式:
$$ P(A \cap B) = P(A \mid B)\, P(B) = P(B \mid A)\, P(A) $$两边一除,就得到贝叶斯公式:
$$ P(A \mid B) = \frac{P(B \mid A)\, P(A)}{P(B)} $$分母 $P(B)$ 通常用全概率公式展开。若 $\{A_1, A_2, \dots, A_n\}$ 是对样本空间的一个划分(两两互斥,并集为全集),则:
$$ P(B) = \sum_{i} P(B \mid A_i)\, P(A_i) $$代入后得到完整形式:
$$ P(A_i \mid B) = \frac{P(B \mid A_i)\, P(A_i)}{\displaystyle\sum_{j} P(B \mid A_j)\, P(A_j)} $$先验、似然与后验
把贝叶斯公式里的每一项都赋予含义,就得到了贝叶斯推断的语言:
- $P(A)$ 是先验(Prior):在看到证据之前,我们对 $A$ 的初始信念
- $P(B \mid A)$ 是似然(Likelihood):假设 $A$ 成立,观测到 $B$ 的概率
- $P(A \mid B)$ 是后验(Posterior):看到证据 $B$ 之后,对 $A$ 的更新信念
- $P(B)$ 是归一化常数,保证后验概率之和为 $1$
所以贝叶斯公式在说:
$$ \text{后验} \;\propto\; \text{似然} \times \text{先验} $$新证据通过似然项修正先验,得到后验。先验强则证据的影响被压制;先验弱(接近均匀)则后验主要由数据说话。
推广到随机变量分布
上面的公式以"事件"为单位,但在机器学习中,我们更常面对的是随机变量的分布——例如,模型参数 $\theta$ 是一个连续随机变量,观测数据 $x$ 也是。贝叶斯公式对这种情形同样成立,只需把概率 $P$ 换成概率密度函数 $p$。
离散随机变量的形式与事件版本完全相同:
$$ p(x \mid y) = \frac{p(y \mid x)\, p(x)}{p(y)}, \qquad p(y) = \sum_x p(y \mid x)\, p(x) $$连续随机变量中,求和换成积分:
$$ p(x \mid y) = \frac{p(y \mid x)\, p(x)}{p(y)}, \qquad p(y) = \int p(y \mid x)\, p(x)\, \mathrm{d}x $$形式一模一样,区别仅在于分母的计算方式。这也是贝叶斯推断在实践中最棘手的地方:对连续情形,分母的积分通常没有解析解,这直接催生了变分推断、MCMC 等近似方法。
用机器学习的语言重写,设 $\theta$ 为模型参数,$\mathcal{D}$ 为观测数据:
$$ \underbrace{p(\theta \mid \mathcal{D})}_{\text{后验}} = \frac{\overbrace{p(\mathcal{D} \mid \theta)}^{\text{似然}}\; \overbrace{p(\theta)}^{\text{先验}}}{\underbrace{p(\mathcal{D})}_{\text{边缘似然(归一化常数)}}} $$分母 $p(\mathcal{D}) = \int p(\mathcal{D} \mid \theta)\, p(\theta)\, \mathrm{d}\theta$ 与 $\theta$ 无关,在只关心后验的形状时可以忽略,这就是为什么经常写成 $p(\theta \mid \mathcal{D}) \propto p(\mathcal{D} \mid \theta)\, p(\theta)$。
直觉陷阱:检测阳性一定意味着患病吗?
设某疾病的患病率为 $1\%$,检测试剂灵敏度(患病时阳性)为 $99\%$,假阳性率(未患病时阳性)为 $5\%$。
若检测结果为阳性,患病概率是多少?很多人会想:灵敏度这么高,阳性肯定意味着患病。
先算分母 $P(+)$:
$$ P(+) = 0.99 \times 0.01 + 0.05 \times 0.99 = 0.0099 + 0.0495 = 0.0594 $$代入贝叶斯公式:
$$ P(\text{患病} \mid +) = \frac{0.99 \times 0.01}{0.0594} \approx 16.7\% $$结果只有约 $17\%$。原因在于患病率极低,即使假阳性率很小,庞大的健康人群还是会产生大量假阳性,把真正的患者"淹没"。
这就是先验的力量:当先验概率极低时,再强的似然也难以大幅拉高后验。
贝叶斯更新
贝叶斯公式不是一次性的,而是支持序贯推断:每来一条新证据,就把当前的后验当成下一轮的先验,再做一次更新。
$$ P(\theta) \xrightarrow{x_1} P(\theta \mid x_1) \xrightarrow{x_2} P(\theta \mid x_1, x_2) \xrightarrow{\cdots} P(\theta \mid x_1, \dots, x_n) $$若各观测独立,最终结果与把所有数据一次性代入等价。但序贯的视角更符合现实:信念随着证据的积累不断演化,每一步都是完整的推断。
与频率主义的分歧
频率主义把概率定义为大量重复试验中的频率极限,参数被视为固定但未知的常数,估计的目标是给出点估计和置信区间。
贝叶斯主义则把概率理解为对不确定性的度量,参数本身被视为随机变量,有自己的分布。推断的结果不是一个数,而是后验分布——它完整描述了在当前数据下,参数的不确定性。
两种框架没有绝对的高下之分,但分歧在于是否允许引入先验。频率主义认为先验是主观的,应尽量避免;贝叶斯主义认为先验是已有知识的自然编码,回避它反而是一种信息的浪费。
在机器学习中的体现
最大后验估计(MAP) 是最直接的应用。相比最大似然估计只最大化似然 $P(D \mid \theta)$,MAP 还加入了参数的先验:
$$ \hat{\theta}_{\text{MAP}} = \arg\max_\theta\; P(D \mid \theta)\, P(\theta) $$这里先验 $P(\theta)$ 起到了正则化的作用。高斯先验对应 $L_2$ 正则化(Ridge),拉普拉斯先验对应 $L_1$ 正则化(Lasso)。所谓正则化,本质上就是对参数施加了一个先验信念:参数不应该太大、或应该尽量稀疏。
朴素贝叶斯分类器 直接用贝叶斯公式做分类:
$$ \hat{y} = \arg\max_y\; P(\mathbf{x} \mid y)\, P(y) $$“朴素"来自于一个强假设:在已知类别 $y$ 的条件下,各特征 $x_j$ 相互独立,从而
$$ P(\mathbf{x} \mid y) = \prod_j P(x_j \mid y) $$这个假设几乎总是不成立的,但它极大简化了参数估计,而且在文本分类这类任务上效果出奇地好——可能是因为即使独立性假设不精确,特征的方向(相关 vs. 不相关)往往仍然正确。
变分推断(VI) 处理的是更棘手的问题:在生成模型(如 VAE、扩散模型)中,后验 $P(\mathbf{z} \mid \mathbf{x})$ 的分母往往无法解析计算,因为它需要对所有可能的隐变量积分。变分推断的思路是,用一族简单分布 $Q(\mathbf{z})$ 去逼近后验,通过最小化
$$ D_{\mathrm{KL}}\!\left(Q(\mathbf{z}) \,\|\, P(\mathbf{z} \mid \mathbf{x})\right) $$来找到最好的近似。这个优化目标等价于最大化 ELBO(证据下界),是 VAE 和扩散模型训练目标的理论出发点。