机器学习里,「贝叶斯」这个词至少承担了三项不同的工作,而它们经常被混为一谈。
第一项是贝叶斯公式。它是一条关于条件概率的恒等式,本身没有争议,也不要求任何哲学立场:
p(θ∣D)=p(D)p(D∣θ)p(θ).第二项是贝叶斯决策。它问的不是「参数是多少」,而是「在还不确定的情况下,应该采取什么行动」。给定后验分布与一个损失函数,最优行动就是使后验期望损失最小的那个。
第三项是贝叶斯学习。它把模型参数也看成随机变量,用后验分布而不是点估计来描述知识状态;预测时对参数做积分,而不是代入一个「最佳值」。
三者可以独立使用,也可以串成一条链:先验与似然给出后验,后验与损失给出行动,行动的结果又成为新的数据。本文沿着这条链走一遍:先补齐概率论的语言,再建立决策论的骨架,最后看这套骨架如何解释机器学习里的分类器、正则化、错误率、泛化界与不确定性。
这条链的终点是一个看起来过于理想化的量,即贝叶斯风险。它假设真实分布已知,因而在实践中永远算不出来。但正是这个「算不出来的量」充当了学习理论的坐标原点:它告诉我们,在给定问题里错误率的下限在哪里,模型的哪些部分在逼近这个下限,哪些部分只是在拟合噪声。
把所有监督学习问题写成同一个形式,只需要四样东西:
- 状态 Y∈Y:真实类别、待预测的实数值,或环境里我们关心但看不见的量;
- 观测 X∈X:我们拿到的特征;
- 行动 a∈A:模型输出的预测、决策或控制量;
- 损失 L:Y×A→R:当真实状态为 y、采取行动 a 时付出的代价。
四者合起来称为一个决策问题。一个决策规则(decision rule)是一个映射
δ:X→A,x↦δ(x),它的风险(risk)定义为
R(δ)=E(X,Y)∼P[L(Y,δ(X))].这里期望是对联合分布 P(X,Y) 取的。这个分布在实践中未知,于是我们退而求其次:用样本来估计它,或者直接在一个受限的函数类里最小化经验风险。这个「退而求其次」的过程,就是统计学习理论。
同一套语言可以覆盖很多看似不同的任务。医疗诊断中,Y 是是否患病,a 是是否治疗,损失把漏诊与误诊的代价写成两个不同的数;垃圾邮件过滤中,Y 是邮件类别,a 是放行或拦截;回归中,a 是一个实数,损失通常是平方误差;强化学习中,X 是历史状态,a 是动作,损失是负回报。它们的共同点是:不确定性由 P(Y∣X) 描述,偏好由 L 描述,决策则是两者的交汇。
把联合风险按 X 分解,可以得到一个更有用的形式:
R(δ)=∫X(∫YL(y,δ(x))p(y∣x)dy)p(x)dx=EX[r(δ(X),X)],其中
r(a,x)=E[L(Y,a)∣X=x]称为在 x 处采取行动 a 的条件风险。这个分解是整个理论的第一块基石:联合风险被拆成了「每个观测点上的局部风险」再对 X 平均。于是,只要在每个 x 上把 r(a,x) 压到最低,全局风险就自动最低,不同 x 之间没有耦合。
条件概率的定义是
P(A∣B)=P(B)P(A∩B),P(B)>0.它不是在「重新定义」概率,而是在缩小样本空间:一旦知道 B 发生,所有不含 B 的结果都被排除,原来的概率需要在剩下的世界里重新归一化。连续情形下,条件分布由条件密度 p(y∣x)=p(x,y)/p(x) 给出;更一般地,它是测度论意义下的正则条件分布,本文不展开技术细节。
由条件概率的定义立刻得到乘法公式
P(A∩B)=P(A∣B)P(B)=P(B∣A)P(A),两边同除以 P(B),就是贝叶斯公式。
把 B 换成数据 D,把 A 换成参数或隐变量 θ,得到
p(θ∣D)=p(D)p(D∣θ)p(θ),p(D)=∫p(D∣θ)p(θ)dθ.公式的四个部分各有名字:
| 名称 | 记号 | 含义 |
|---|
| 先验 | p(θ) | 看到数据前的信念 |
| 似然 | p(D∣θ) | 给定参数时数据的概率 |
| 证据 | p(D) | 与 θ 无关的归一化常数,也是模型比较的关键 |
| 后验 | p(θ∣D) | 看到数据后的信念 |
下面的图把这条链画全。注意「后验」不是终点:它只是决策的输入。
贝叶斯决策流程:先验与似然合成后验,后验与损失共同决定最优行动 公式右端的 p(D) 与 θ 无关,所以在求后验时常常被略去,写成
p(θ∣D)∝p(D∣θ)p(θ).但这个省略只在「给定模型」内部成立。一旦要比较不同模型,p(D) 就是主角,第 6.5 节会回到这一点。
还要强调一点:贝叶斯公式本身只是概率论的一条定理,接受它不需要接受任何统计哲学。真正带有立场的是下一步——把 θ 看成随机变量,并为它指定先验。
设 θ∈[0,1] 是一枚硬币正面向上的概率,先验取 Beta 分布
p(θ)=B(α,β)θα−1(1−θ)β−1.观测到 n 次投掷中 k 次正面,似然为
p(D∣θ)=θk(1−θ)n−k.两者相乘,后验的核为
p(θ∣D)∝θα+k−1(1−θ)β+n−k−1,这正是 Beta(α+k, β+n−k)。归一化常数不用算,因为 Beta 分布的形式已经把它确定了。这就是共轭先验的好处:后验与先验属于同一个分布族,更新只需要改两个参数。
后验均值是
E[θ∣D]=α+β+nα+k,把它改写成加权平均:
α+β+nα+k=α+β+nα+β⋅α+βα+α+β+nn⋅nk.右边第一项是先验均值,第二项是样本频率。权重由「先验有多强」(α+β)与「数据有多少」(n)决定。数据越多,先验越被稀释。这就是最朴素的收缩(shrinkage)。
如果下一步要预测新的一次投掷,贝叶斯答案是后验预测分布
p(xnew=1∣D)=E[θ∣D]=α+β+nα+k.这里恰好等于后验均值,是因为伯努利概率是 θ 的线性函数。对一般模型,后验预测分布并不等于「把后验均值代进去」,这个区别在第 6 节会反复出现。
先验常被批评为「主观」。这个批评有一半是对的:先验确实是一个假设,而且不同先验会给出不同后验。但「主观」不等于「任意」。先验可以被数据稀释:在正则条件下,后验的渐近行为与先验无关(见 6.4)。先验也可以层级化:给超参数再加一层先验,让数据同时决定参数与超参数。先验还可以被检验:通过后验预测检验、敏感性分析,看结论是否依赖于某个特定选择。
更重要的是,非贝叶斯方法同样有假设。模型类、正则项、损失函数、优化算法,都是假设,只是它们不以「先验」的名字出现。贝叶斯的优点不是没有假设,而是把假设写在了明处,并且提供了一个用概率语言修改假设的机制。
第 7.8 节会给出一个更强的说法:在相当一般的条件下,所有可容许(admissible)的决策规则都可以看成某个先验(或先验序列)下的贝叶斯规则。换句话说,贝叶斯规则不是一个「流派」,而是可容许决策规则的一般形式。这个结论把「为什么要用先验」从个人偏好提升到了决策论的结构性事实。
有了后验 p(y∣x),决策问题就变成了一个逐点的优化问题。
定义 3.1(贝叶斯决策规则) 若决策规则 δ∗ 满足
δ∗(x)∈arga∈Amin E[L(Y,a)∣X=x]对几乎所有的 x,则称 δ∗ 为贝叶斯决策规则(Bayes decision rule)。
定理 3.1(逐点最优即全局最优) 对任意决策规则 δ,都有
R(δ) ≥ R(δ∗)=EX[a∈Aminr(a,X)].
证明。 由塔性质,
R(δ)=EX[E[L(Y,δ(X))∣X]]=EX[r(δ(X),X)].对每个 x,r(δ(x),x)≥minar(a,x),因此逐点取期望即得结论。□
证明只用了两件事:期望的塔性质,以及「逐点最小 ≤ 先对点取最小再平均」这样一个显而易见的事实。它不要求损失凸、不要求后验有密度、也不要求行动空间是有限的。这种一般性是贝叶斯决策理论最漂亮的地方之一。严格地说,若逐点下确界不可达,把 min 换成 inf、把 argmin 换成「取一列逼近的行动」即可,证明不变。
把上式改写成差值,可以得到一个更有解释力的恒等式:
R(δ)−R∗=EX[≥0r(δ(X),X)−aminr(a,X)].右边每一项都是非负的,称为在 x 处的逐点遗憾(pointwise regret)。它说明:一个决策规则的次优性完全来自它在某些 x 上没有选到局部最优行动。不同 x 之间的错误不会相互抵消,也不会相互放大。
分类问题最常用的损失是 0-1 损失:
L(y,a)=1{y=a}.此时条件风险为
r(a,x)=E[1{Y=a}∣X=x]=1−p(a∣x),最小化 r(a,x) 等价于最大化后验概率:
δ∗(x)=argy∈Ymax p(y∣x).这就是最大后验决策(maximum a posteriori decision)。二分类时,若 η(x)=p(Y=1∣x),规则简化为
δ∗(x)={1,0,η(x)≥21,η(x)<21,决策边界是集合 {x:η(x)=1/2}。当 η(x)=1/2 时两种行动同样好,实践中用固定的打破平局规则即可。
回归问题常用平方损失 L(y,a)=(y−a)2。此时
r(a,x)=E[(Y−a)2∣X=x]=Var(Y∣X=x)+(a−E[Y∣X=x])2,第二项在 a=E[Y∣X=x] 时取到最小值。因此平方损失下的贝叶斯行动是后验均值,也就是回归函数
f∗(x)=E[Y∣X=x].这个结论还可以从另一个角度理解:后验均值是 Y 在 L2 意义下最好的预测,任何其他预测都会多出一项方差。
若损失为 L(y,a)=∣y−a∣,条件风险为 r(a,x)=E[∣Y−a∣∣X=x]。对 a 求次梯度,在 Y 的分布连续时它就是导数:
∂ar(a,x)=P(Y<a∣x)−P(Y>a∣x),令 0 属于次梯度,等价于
P(Y≤a∣x)≥21,P(Y≥a∣x)≥21.满足这两个不等式的 a 就是后验中位数。直观上,中位数把后验概率一分为二,左右两侧的「质量」相等,因此向左或向右移动 a 都不会降低期望绝对误差。
平方损失对异常值敏感,因为误差被平方;绝对损失只看见误差的大小。这个差异在决策层面的表现,就是均值与中位数的差异。
现实中的两类错误很少同等昂贵。设预测为正类的代价为 cFP(假阳性),预测为负类的代价为 cFN(假阴性),正确分类的代价为 0。此时
r(1,x)=cFPp(0∣x),r(0,x)=cFNp(1∣x).选择正类当且仅当 r(1,x)≤r(0,x),即
p(1∣x) ≥ cFP+cFNcFP.阈值不再固定在 1/2,而是由两类代价的比值决定。若漏诊的代价是误诊的十倍,阈值就降到 1/11 左右,模型会倾向于把更多样本判为正类。
这个式子也说明:类别不平衡本身不是问题,损失不对称才是问题。重采样改变了训练分布,相当于改变了先验;如果最终要解决的是原分布上的决策问题,那么重采样之后还需要把阈值校正回来。
把常见损失与对应的贝叶斯行动放在一起:
| 损失 | 贝叶斯行动 |
|---|
| 0-1 损失 | 后验众数 |
| 平方损失 | 后验均值 |
| 绝对损失 | 后验中位数 |
| 非对称 0-1 损失 | 阈值 cFP/(cFP+cFN) |
| 带拒绝的 0-1 损失 | 最大后验低于 1−c 时拒绝 |
最后一行是拒绝选项(reject option):除了预测类别,模型还可以说「我不确定」。若拒绝的代价为 c∈(0,1),预测的期望代价为 1−maxyp(y∣x),拒绝的代价为 c,因此最优规则是
拒绝⟺ymaxp(y∣x)<1−c.这就是 Chow 规则。它把「不确定性」直接翻译成了一个可执行的动作,而不是一个只用来画图的分数。
把定理 3.1 中的最优值单独命名:
R∗=δinfR(δ)=EX[a∈Aminr(a,X)].R∗ 称为贝叶斯风险(Bayes risk),也叫贝叶斯错误率(分类情形)。它是这个问题在信息层面的下限:即使知道真实分布、知道每个 x 上的后验,也只能做到这里。它不是某个算法的性能指标,而是问题本身的属性。
对二分类 0-1 损失,把 3.2 节的规则代回去,得到
R∗=E[min{η(X),1−η(X)}].对多分类,则是
R∗=1−E[y∈Ymaxp(y∣X)].这两个式子在理论里出现得非常多,因为它们把「分类有多难」压缩成了一个标量。
进一步,二分类的超额风险有一个很干净的形式:
R(δ)−R∗=E[∣2η(X)−1∣1{δ(X)=δ∗(X)}].证明。 对固定的 x,若 δ(x)=δ∗(x),逐点遗憾为 0;若不等,则所选行动的后验概率是 max{η,1−η},最优行动的后验概率是 min{η,1−η},两者之差为
max{η,1−η}−min{η,1−η}=∣2η−1∣.对 X 取期望即得。□
这个恒等式很有解释力:只有越过决策边界的样本才贡献错误,而且每个样本的权重是 ∣2η(X)−1∣。后验接近 1/2 的样本位于边界附近,即使分错,代价也小;后验接近 0 或 1 的样本一旦分错,代价就接近 1。换句话说,贝叶斯错误率不是由边界的长度决定的,而是由边界附近的后验质量决定的。
回归情形也有类似的恒等式。设 f∗(x)=E[Y∣X=x],则对任意 f^,
R(f^)−R∗=E[(f^(X)−f∗(X))2].证明。 把平方展开:
E[(Y−f^(X))2]−E[(Y−f∗(X))2]=E[(f^(X)−f∗(X))2]+2E[(Y−f∗(X))(f∗(X)−f^(X))].交叉项对 X 取条件期望后,E[Y−f∗(X)∣X]=0,因此消失。□
这两个恒等式把「模型误差」翻译成了「决策遗憾」:分类器的错误只发生在越过边界的点上,回归器的误差则是函数逼近误差的平方。贝叶斯风险就是那个无法被任何模型消除的起点。
这是最常见的混淆之一。MAP 是后验的众数,是一个「点」;贝叶斯行动是使后验期望损失最小的动作,依赖损失函数。两者只有在参数空间上取 0-1 损失时才重合。
更麻烦的是,MAP 对重参数化不协变。若 ϕ=h(θ) 是一个非线性变换,p(θ∣D) 的众数经过 h 之后,一般不是 p(ϕ∣D) 的众数,因为密度会多出一个 Jacobian 因子。后验中位数在单调变换下等变,后验均值在仿射变换下等变,而 MAP 连这个性质都没有。这也是为什么在贝叶斯推断里,除非有明确的 0-1 损失,否则「取众数」并不是一个默认正确的选择。
设两类先验相等,类条件密度为 p0,p1。由 3.2 节,贝叶斯规则在 η(x)=1/2 处切换,其中
η(x)=p0(x)+p1(x)p1(x).于是
pe∗=∫min{21p0(x), 21p1(x)}dx=21∫min{p0(x),p1(x)}dx.利用恒等式
min{p0,p1}=2p0+p1−∣p0−p1∣,以及 ∫(p0+p1)/2=1,得到
pe∗=21(1−21∫∣p0(x)−p1(x)∣dx)=21(1−∥P0−P1∥TV).这里 ∥⋅∥TV 是全变差距离。公式的几何意义很直接:两个类条件分布的重叠面积越大,错误率越高;当两个分布完全重合时 pe∗=1/2,当支撑集不相交时 pe∗=0。
若先验不相等,公式改为
pe∗=∫min{π0p0(x), π1p1(x)}dx,它仍然是一个「重叠面积」,只是两侧的权重不同。先验越偏向某一类,另一类的判定区域就越小,错误率的构成也随之改变。
设
X∣Y=0∼N(μ0,Σ),X∣Y=1∼N(μ1,Σ),先验相等。对数似然比为
logp0(x)p1(x)=(x−μ0)⊤Σ−1(μ1−μ0)−21(μ1+μ0)⊤Σ−1(μ1−μ0).这是一个 x 的线性函数。定义马氏距离的平方
Δ2=(μ1−μ0)⊤Σ−1(μ1−μ0),则在 Y=1 下,对数似然比服从 N(Δ2/2, Δ2)。贝叶斯规则在似然比为零处切换,因此
pe∗=P(N(Δ2/2,Δ2)<0)=Φ(−2Δ)=Q(2Δ),其中 Φ 是标准正态分布函数,Q=1−Φ。
几个数值可以帮助建立直觉:
| Δ | pe∗=Q(Δ/2) | Bhattacharyya 上界 21e−Δ2/8 |
|---|
| 1 | 0.3085 | 0.4412 |
| 2 | 0.1587 | 0.3033 |
| 3 | 0.0668 | 0.1623 |
| 4 | 0.0228 | 0.0677 |
上界来自
pe∗≤21BC(P0,P1)=21exp(−8Δ2),其中 BC(P0,P1)=∫p0p1 是 Bhattacharyya 系数。当 Δ 很大时,
Q(2Δ)∼Δ2π2e−Δ2/8,与上界只差一个多项式因子。指数部分完全一致,这正是 Chernoff 界想要抓住的东西:错误率衰减的速率。
全变差是精确的,但它通常难以估计。实践中更常用的是 Hellinger 距离与 KL 散度。它们与全变差之间有一条标准的不等式链:
∥P0−P1∥TV≤H(P0,P1),H2(P0,P1)=1−BC(P0,P1),以及
H2(P0,P1)≤21DKL(P0∥P1).把第一条与 pe∗=21(1−TV) 结合,得到
pe∗ ≥ 21(1−2DKL(P0∥P1)).这是 Le Cam 两点法的核心不等式:如果两个分布很难区分(KL 很小),那么任何分类器的错误率都不可能低。注意方向——KL 给的是错误率的下界,不是上界。KL 很大并不意味着问题容易,只意味着这个下界变得松甚至变得平凡。
上界则需要另一个量:
pe∗≤21BC(P0,P1).这是因为 ∫min{p0,p1}≤∫p0p1(算术-几何平均不等式)。Bhattacharyya 系数可以直接计算的情形(例如高斯),这个上界就能给出正确的指数衰减率。
把两个方向放在一起,可以看到散度在决策问题里的角色:它们不是「错误率」,而是错误率的证书。全变差是唯一精确的那个,但它通常最难估计;Bhattacharyya 系数给出上界,KL 给出下界,Hellinger 则通过 TV≤H 把两边连起来。关于 f-散度的那篇文章,正是把这些证书放在同一个凸函数框架下;而贝叶斯错误率则告诉我们,这些证书最终约束的是什么。
由 3.6 节的恒等式,只有满足 δ(X)=δ∗(X) 的样本才贡献错误,且权重是 ∣2η(X)−1∣。这意味着贝叶斯错误率不是由决策边界的「长度」或「复杂度」决定的,而是由边界附近的后验质量决定的。
高维空间里,决策边界可以非常复杂,但如果后验在边界两侧都很尖锐(η 接近 0 或 1),错误率仍然可以很低。反过来,一个简单的线性边界,如果穿过一大片 η≈1/2 的区域,错误率就会很高。这解释了为什么「边界复杂度」本身不是泛化误差的可靠指标:真正决定错误率的是后验在边界附近的分布,而不是边界的几何形状。
平方损失下,贝叶斯风险为
R∗=E[(Y−f∗(X))2]=E[Var(Y∣X)].这是数据生成过程本身的噪声,任何模型都消不掉。对一个在训练集 D 上学到的回归器 f^D,有标准的偏差-方差分解:
ED[(Y−f^D(X))2]=贝叶斯风险σε2+偏差2(f∗(X)−EDf^D(X))2+方差VarD(f^D(X)).第一项是问题的下限,后两项是估计带来的。模型太简单,偏差大;模型太复杂,方差大。贝叶斯风险给出了这条权衡曲线的起点:无论怎么调模型,都不可能把期望误差压到它下面。
贝叶斯规则只依赖后验概率 η(x)=p(Y=1∣x)。因此有两条路可以走:直接建模 η,或者分别建模类条件密度 p(x∣y) 与先验 p(y),再用贝叶斯公式合成。前者叫判别式(discriminative),后者叫生成式(generative)。
生成式的合成公式是
η(x)=π0p0(x)+π1p1(x)π1p1(x).只要两边的密度估计足够准,这个式子就给出贝叶斯后验。线性判别分析(LDA)假设两类共享协方差 Σ,此时对数似然比是 x 的线性函数:
logp0(x)p1(x)=(μ1−μ0)⊤Σ−1x+常数,决策边界是一个超平面。二次判别分析(QDA)允许两类有不同的协方差 Σ0,Σ1,对数似然比出现 x⊤(Σ1−1−Σ0−1)x 这样的二次项,边界变成二次曲面。朴素贝叶斯再加一层条件独立假设,把 p(x∣y) 拆成各个特征的乘积,用很大的偏差换取很小的方差。
两条路的目标是同一个 η,但统计性质不同。生成式利用了 p(x∣y) 的结构,在模型正确时样本效率更高;判别式直接优化决策边界,在模型误设时通常更稳健。这不是「谁更好」的问题,而是「你愿意把假设放在哪一侧」的问题。
这里说的是 oracle 贝叶斯规则:它假设 η 已知。实践中我们把估计的 η^ 代入,得到的只是 plug-in 分类器;文献里的「贝叶斯分类器」有时指这个 oracle 规则,有时指朴素贝叶斯之类的具体算法,读的时候要分清。plug-in 分类器的风险与 R∗ 之间的差距,正是第 7 节要分解的估计误差。
值得一提的是,朴素贝叶斯的条件独立假设几乎总是错的,但它的分类性能常常不差。原因在于 0-1 损失只关心 η(x) 是否越过 1/2,而不要求 η 的数值完全准确;只要假设带来的偏差没有把决策边界推得太远,分类结果就可以是对的。这个现象也提醒我们:概率估计的质量与决策的质量不是同一件事。
这个区别在损失函数上有一个精确的对应。0-1 损失只关心 η(x) 是否越过阈值,因此它对概率的微小误差不敏感;交叉熵(对数损失)则是一个严格 proper scoring rule,它的总体最优解恰好是真实的条件分布 p(y∣x):
E[−logq(Y∣X)]=E[H(p(⋅∣X))]+E[KL(p(⋅∣X)∥q(⋅∣X))],右边第一项与 q 无关,第二项在 q=p(⋅∣X) 时为零。所以,在总体意义上,用交叉熵训练模型是在要求它给出校准的概率;用 0-1 损失训练,只要求它给出正确的分类。两者目标不同,不能互相替代。
设参数化模型 p(D∣θ)=∏ip(yi∣xi,θ),噪声为高斯,方差 σ2。则负对数似然正比于平方误差:
−logp(D∣θ)=2σ21i∑(yi−fθ(xi))2+常数.若给参数加上高斯先验 θ∼N(0,τ2I),则
−logp(θ)=2τ21∥θ∥2+常数.MAP 估计为
θ^MAP=argθmin i∑(yi−fθ(xi))2+τ2σ2∥θ∥2.这就是岭回归,也是神经网络里的权重衰减。若把目标写成均方误差,系数变为 σ2/(nτ2)。若先验换成 Laplace 分布 p(θj)=2b1e−∣θj∣/b,负对数先验正比于 ∥θ∥1,MAP 就变成 Lasso。
| 先验 | 负对数先验 | 等价惩罚 |
|---|
| 均匀先验 | 常数 | 无(MLE) |
| 高斯 N(0,τ2) | ∥θ∥2/(2τ2) | 岭回归、权重衰减 |
| Laplace (0,b) | ∥θ∥1/b | Lasso |
| 稀疏诱导先验 | 非凸惩罚 | 特征选择 |
这张表解释了一个常见的困惑:为什么正则化看起来像是「人为加上去的技巧」,却总是有效。它其实是在补充一个先验:参数不应该太大,或者不应该同时有很多非零分量。正则项不是外来的约束,而是模型假设的一部分,只是以惩罚的形式出现。
需要谨慎的是,深度网络里的权重衰减与高斯先验的对应只在全批量 MAP 的意义上成立。SGD 的噪声、批量大小、参数化方式(例如 BatchNorm 的缩放不变性)都会改变有效的先验。把它当成一个有用的类比,而不是一个严格的等价。
二分类的贝叶斯规则可以写成似然比检验:
δ(x)=1⟺p0(x)p1(x)≥π1cFNπ0cFP.左边是数据提供的证据,右边是先验与代价决定的阈值。先验偏向负类,阈值升高;漏诊更贵,阈值降低。这个分解把「数据说什么」与「我们更怕哪种错误」分开了。
把阈值从低到高扫一遍,就得到 ROC 曲线。设阈值为 t,记真正率为 TPR(t)、假正率为 FPR(t),则期望代价为
C(t)=π0cFPFPR(t)+π1cFN(1−TPR(t)).贝叶斯决策做的不是「选一个看起来最好的点」,而是根据先验与代价,在 ROC 上选一个使这个线性函数最小的点。等代价线的斜率是
dFPRdTPR=π1cFNπ0cFP.这也说明 AUC 只是一个与阈值无关的排序指标。两个模型的 AUC 可以一个高一个低,但在某个特定的代价结构下,AUC 低的模型反而更优。脱离代价谈「最好的分类器」是没有意义的。
3.5 节已经导出了 Chow 规则:当最大后验低于 1−c 时拒绝。把这句话放到整个数据集上,就得到一条风险-覆盖率曲线:随着拒绝阈值升高,被拒绝的样本增多,覆盖率下降,但在被接受的样本上错误率也下降。
选择性分类的理论目标不是最大化准确率,而是最小化
选择性风险=被接受样本数被接受样本上的错误数,同时满足覆盖率约束。这两个量之间的权衡,仍然由损失函数决定:拒绝的代价 c 越小,模型越倾向于拒绝;c 越大,模型越倾向于冒险。
在医疗、自动驾驶、内容审核这些场景里,拒绝选项往往比「提高模型容量」更有效。一个知道自己不知道的模型,比一个在所有样本上都自信地犯错的模型更有用。
类别不平衡经常被当成一个数据处理问题,但在决策论的框架里,它首先是一个先验与损失的问题。
设原分布的类先验为 π0,π1,重采样后的先验为 π0′,π1′。同一个似然比 p1(x)/p0(x) 在两种分布下给出的后验几率不同:
porig(0∣x)porig(1∣x)=pres(0∣x)pres(1∣x)⋅π1′π0π1π0′.如果重采样之后不把这个因子校正回去,决策阈值就偏了。反过来,如果不想重采样,也可以直接在原分布上训练,然后按 3.5 节的公式移动阈值。两条路在理论上等价,差别只在实现难度与估计方差。
真正不能省掉的是损失函数。若两类错误的代价确实不同,那么无论怎么采样,都必须把代价写进决策规则;否则得到的只是一个在改动后的分布上「看起来平衡」的分类器,而不是原问题的最优决策。
给定训练集 D,预测 Y 至少有三层做法:
- 代入式:先估计一个参数 θ^,再用 p(y∣x,θ^) 预测;
- 后验预测:对参数积分,
pˉ(y∣x)=∫p(y∣x,θ)p(θ∣D)dθ;
- 贝叶斯行动:在预测分布上再做一次决策,
a∗(x)=argamin∫L(y,a)pˉ(y∣x)dy.
第二层是贝叶斯学习的核心,第三层才是完整的贝叶斯决策。很多讨论停在第二层,把「后验预测」直接当成答案;但在有明确损失的问题里,真正的答案是第三层。
后验预测是一个混合分布,不是「把后验均值代进去」。由于 p(y∣x,θ) 通常对 θ 非线性,
∫p(y∣x,θ)p(θ∣D)dθ=p(y∣x,E[θ∣D]).差别在不确定性大的区域尤其明显。设想后验在两个相距很远的参数值上各有一个峰,代入均值会得到一个位于两峰之间、几乎没有概率质量的预测;后验预测则会把两个峰的概率都保留下来。前者过度自信,后者诚实地表达了「我不知道是哪一个」。
预测的不确定性可以分成两类。偶然不确定性(aleatoric uncertainty)来自数据生成过程本身的噪声:同样的 x 可能对应不同的 y,即使知道真实参数也无法消除。认知不确定性(epistemic uncertainty)来自知识不足:我们不知道哪个参数是对的,但随着数据增多,它会收缩。
对平方损失,这两种不确定性由全方差公式精确分解:
Var(Y∣x,D)=偶然Eθ∣D[Var(Y∣x,θ)]+认知Varθ∣D(E[Y∣x,θ]).第一项是「即使知道模型参数,预测仍然会波动的部分」;第二项是「不同参数给出的预测均值之间的差异」。在数据稀疏的区域,后验宽,第二项大;随着数据增加,后验收缩,第二项趋于零。第一项则不会消失。
这个分解也是主动学习的理论基础:我们想选的样本,是那些能最大程度降低认知不确定性的样本,而不是那些本身就带噪声的样本。
在参数空间上定义一个损失,报一个点估计,本质上也是一次决策:
| 参数空间上的损失 | 最优估计 |
|---|
| 平方损失 | 后验均值 |
| 绝对损失 | 后验中位数 |
| 0-1 损失 | 后验众数(MAP) |
所以贝叶斯估计不是与决策论并列的东西,而是决策论在参数空间上的应用。后验均值与 MAP 会打架,是因为它们对应不同的损失,没有谁更「正确」。若你关心的是平方误差,均值是对的;若你关心的是「最可能的那个值」,众数是对的;若你关心的是「误差不超过某个范围」,分位数才是对的。
同样的逻辑适用于区间估计。一个可信区间是一个「集合值」的行动,它的损失函数衡量区间是否覆盖真值、以及区间有多宽。置信区间与可信区间的差异当然有概率哲学的成分;但从决策论看,它们也对应不同的损失:一个关心重复抽样下的覆盖率,一个关心给定数据下的后验覆盖概率。
在正则条件下,后验会随着数据增多而集中到真实参数附近。Bernstein–von Mises 定理给出了更精确的结论:后验在适当的缩放与中心化之后,趋近于一个正态分布,
n(θ−θ^n)∣D ⇒ N(0, I(θ0)−1),其中 I(θ0) 是 Fisher 信息。等价地,后验近似为
p(θ∣D)≈N(θ^n, n1I(θ0)−1).Doob 定理则从另一个角度保证一致性:对先验几乎所有的参数值,后验都会收敛到真值附近的任意邻域。注意「先验几乎处处」这个限定:先验可能把质量放在一个坏集合上,只是那个集合的概率为零。
这两个定理解释了为什么在大样本下,贝叶斯与频率派的答案往往一致。后验的宽度以 O(1/n) 收缩,先验对形状的影响随之减弱,后验主要由似然决定。但这也划出了边界:当模型奇异(参数不可识别、网络层数过多、对称性导致 Fisher 信息退化)时,Bernstein–von Mises 失效,后验的形状本身携带信息,不能用一个高斯替代。这正是奇异学习理论要处理的情形。
贝叶斯模型比较的核心量是边缘似然(marginal likelihood),也就是贝叶斯公式的分母:
p(D∣M)=∫p(D∣θ,M)p(θ∣M)dθ.两个模型的比较用贝叶斯因子:
BF12=p(D∣M2)p(D∣M1),p(M2∣D)p(M1∣D)=BF12⋅p(M2)p(M1).边缘似然自动带有奥卡姆惩罚。用 Laplace 近似可以看出这一点。设 θ^ 是后验众数,H=−∇2log[p(D∣θ)p(θ∣M)]θ^,则
p(D∣M)≈p(D∣θ^)p(θ^∣M)(2π)d/2∣H∣−1/2.在正则模型里 H≈nI(θ^),取对数后
logp(D∣M)≈logp(D∣θ^)−2dlogn+O(1).于是
BIC=−2logp(D∣θ^)+dlogn正是 −2logp(D∣M) 的主项。参数越多,惩罚越重;但更准确地说,惩罚的不是维度本身,而是参数空间中「能给出不同预测」的有效体积。一个参数如果对预测没有影响,它就不会贡献体积,也就不会被惩罚。
边缘似然也有它自己的问题:它对先验敏感。一个过分分散的先验会把概率质量摊到大量「几乎不预测数据」的区域,导致模型被过度惩罚。这就是 Lindley 悖论的一个侧面:当原假设是一个点、备择假设是一个很宽的分布时,贝叶斯因子可能强烈支持原假设,即使频率派的检验已经拒绝了它。贝叶斯方法不会自动给出「正确」的模型选择,它只是把选择的标准写清楚了。
设 H 是模型类,RH=infh∈HR(h),h^ 是从数据中学到的模型。则
R(h^)−R∗=近似误差(RH−R∗)+估计误差(R(h^)−RH).第一项由模型类决定:模型类太小,无论如何训练都逼近不了贝叶斯风险。第二项由样本量与模型复杂度决定:模型类太大,有限样本上的经验风险会偏离真实风险。
贝叶斯风险 R∗ 是这两项的共同起点。它既不属于模型,也不属于算法,而是问题本身的下限。学习理论的大部分内容,都可以理解为在给定 R∗ 的情况下,分别研究这两项能压到多低。
这也解释了为什么「更复杂的模型」有时有用、有时有害:它降低近似误差,却可能提高估计误差。深度学习成功的部分原因,是它在大规模数据上把估计误差压得足够低,同时用极宽的模型类把近似误差压得很小。这不是对偏差-方差权衡的否定,而是权衡曲线在数据量增大后的重新定位。
一个决策规则序列 δn 称为普遍一致的(universally consistent),若对任意分布 P,
R(δn) P R∗依概率成立。注意这里收敛的是风险,不是后验估计。一个模型可以是一致的,但给出的概率完全不校准;反过来,一个校准很好的模型也可能因为模型类太小而无法逼近贝叶斯风险。
k 近邻是最经典的例子。Stone 定理说:若 k→∞ 且 k/n→0,则 k-NN 是普遍一致的。1-NN 更极端:它的渐近错误率不超过 2R∗。这个「二倍」的常数很说明问题——即使是最简单的局部方法,也能在渐近意义下接近贝叶斯风险,代价是收敛速度很慢,而且在高维里被维数灾难拖垮。
一致性是一个渐近性质,它不告诉你有限样本下会发生什么。一个普遍一致的估计器可能在 n=106 时仍然表现很差;一个不一致的估计器可能在某个特定问题上表现得很好。贝叶斯风险给出的是终点,不是路线。
PAC-Bayes 把贝叶斯式的分布对象与频率式的泛化保证放在同一个不等式里。这里的 P,Q 是假设空间上的分布,不要与数据分布混淆。
定理 7.1(McAllester 界) 设先验 P 在看到数据前固定,损失取值于 [0,1]。对任意 δ∈(0,1),以至少 1−δ 的概率,对所有后验分布 Q 同时成立:
Eh∼Q[R(h)]≤Eh∼Q[R^n(h)]+2nKL(Q∥P)+log(2n/δ),其中 R^n 是经验风险。
这个界的美妙之处在于:P 必须在看到数据前固定,Q 可以是任何依赖于数据的分布。KL 项衡量「为了解释数据,你把信念从先验挪了多远」。先验越集中、后验越贴近先验,界就越紧;后验越远离先验,界就越松。
这正是奥卡姆剃刀的概率版本,只不过它作用在分布而不是单个假设上。一个在大量假设上分散的 Q 会付出很大的 KL,即使它的经验风险很低;一个集中在少数假设上的 Q 则可以用较小的 KL 换取较好的界。
PAC-Bayes 也有它的局限:界在深度网络里常常很松,常数项可能大到没有实际意义。但它提供了一个正确的概念框架:泛化不是「参数少」的同义词,而是「后验没有比先验复杂太多」。后来的 flatness、sharpness、信息论泛化界,都可以在这个框架里找到位置。
精确后验通常不可行,因为归一化常数 p(D) 是一个高维积分。变分推断用一个受限制的分布族 Q 去逼近后验,目标是
q∗=argq∈Qmin KL(q(θ) ∥ p(θ∣D)).直接最小化这个 KL 仍然需要 p(D),于是利用恒等式
logp(D)=ELBO(q)Eq[logq(θ)p(D,θ)]+KL(q(θ) ∥ p(θ∣D)),把问题转化为最大化证据下界(ELBO):
ELBO(q)=Eq[logp(D∣θ)]−KL(q(θ) ∥ p(θ)).第一项鼓励 q 解释数据,第二项惩罚 q 偏离先验。最大化 ELBO 等价于最小化 KL(q∥p(θ∣D)),因为 logp(D) 与 q 无关。
KL 的方向很重要。KL(q∥p) 倾向寻模(mode-seeking):只要 q 覆盖了后验的一个峰,它就不太在意漏掉其他峰,因此常常低估方差。反方向 KL(p∥q) 倾向覆盖质量(mass-covering),但它的计算需要 p(θ∣D) 的归一化常数。变分推断通常用前者,因为 ELBO 只需要未归一化的联合分布。
从决策论的角度看,变分推断本身也是一个决策问题:在受限的分布族里,选一个使 KL 最小的近似。这里的「损失」是 KL,行动是一个分布,而不是一个点。贝叶斯决策理论的框架在这里再次出现,只是行动空间从 A 变成了 Q。
把参数换成网络权重 w,后验 p(w∣D) 就是贝叶斯神经网络。精确后验不可行,实践中用 MC dropout、Laplace 近似、变分推断或深度集成来近似。
对分类问题,预测熵可以分解为
H[Y∣x,D]=Ew∣D[H[Y∣x,w]]+I(Y;w∣x,D).第一项是偶然不确定性:即使固定权重,类别仍然有噪声。第二项是认知不确定性:不同权重给出的预测分布之间的差异。BALD 等主动学习准则,就是用它来挑选「最能减少认知不确定性」的样本。
但「贝叶斯」这个标签不保证校准。一个近似的后验可能给出过度自信的预测;深度集成不是严格的贝叶斯方法,却常常校准得更好。判断的标准应该是决策质量与校准,而不是方法的名字。一个模型如果能在高损失的区域拒绝预测,或者把不确定性传递给下游决策,它就已经在做贝叶斯决策了,哪怕它没有显式地计算后验。
在序贯决策里,后验不只是用来「估计」,还用来「探索」。Thompson 采样的规则很简单:每一步从后验中采样一个环境参数 θ~∼p(θ∣Dt),然后按这个采样出的环境做最优动作。
这个规则自动平衡了利用与探索。不确定性大的动作在采样中更可能显得最优,因此会被更频繁地尝试;随着数据增多,后验收窄,采样出的环境越来越接近真实环境,策略逐渐转向利用。它的贝叶斯遗憾有理论保证,而且实现起来只需要一个后验采样器。
从决策论的角度看,Thompson 采样把「信息」当成了决策的一部分:当前动作的收益不只是它带来的即时回报,还包括它揭示的信息。完整的贝叶斯解决方案是动态规划,在信念空间(belief space)上求解;Thompson 采样是它的一个可计算的近似。
主动学习问的是:下一个标签应该买哪一个?从决策论看,这是一个两级决策:先选一个样本,再在拿到标签后做预测。理想的采集函数是「期望后验风险降低」:
xnext=argxmin Ey∼p(y∣x,D)[R∗(D∪{(x,y)})],其中 R∗(D) 是当前数据下的贝叶斯风险。这个量通常算不出来,于是有了各种近似:熵、互信息、BALD、期望模型变化。
贝叶斯优化把目标函数本身当成随机变量,用后验选择下一个评估点。Expected Improvement 就是
EI(x)=E[max{0, fmin−f(x)}∣D],它把「可能变好多少」与「变好的概率」乘在一起。探索与利用的权衡,在这里被写成了一个一维积分的最大化问题。
最后回到 2.4 节留下的那个说法。一个决策规则 δ 称为可容许的(admissible),若不存在另一个规则 δ′,使得
R(δ′)≤R(δ)对所有分布 P,且至少对一个 P 严格小于。换句话说,可容许就是「没有被另一个规则全面支配」。一个处处比别的规则差的决策规则,理应被淘汰;可容许性把这个直觉形式化了。
定理 7.2(Wald 完整类定理) 在损失函数凸、行动空间紧、实验族满足适当正则条件(例如被某个 σ-有限测度支配)时,每一个可容许的决策规则都是某个先验(或先验序列的极限)下的贝叶斯规则。
这个定理的意义在于:在适当条件下,它把「频率派的极大极小规则」「看起来没有先验的规则」也纳入了贝叶斯框架。先验不再是一个可选的信仰,而是可容许性这个要求所对应的对偶变量。你可以拒绝某个具体的先验,但很难拒绝「存在某个先验」这件事。
定理的条件不能省。损失不凸、行动空间不紧,或者问题是非参数的,结论可能失效;此时需要广义先验、极限贝叶斯规则,或者放弃完整类定理的结论。这些技术细节不改变核心信息:贝叶斯规则不是许多决策规则中的一种,而是所有不被支配的决策规则的一般形式。
从实践的角度看,这个定理不告诉你该选哪个先验,只告诉你:如果你想要一个不被全面支配的规则,你总可以把它写成某个先验下的贝叶斯规则。先验的选择仍然是建模的一部分,但「要不要用先验」已经不再是一个真正的选项。
取先验 Beta(3,3),观测到 10 次投掷中 7 次正面。后验为
Beta(3+7, 3+3)=Beta(10,6).把几个估计量放在一起:
| 量 | 值 |
|---|
| 先验均值 | 3/6=0.5 |
| 最大似然估计 | 7/10=0.7 |
| 后验均值 | 10/16=0.625 |
| 后验众数 | 9/14≈0.643 |
| 后验预测 p(xnew=1∣D) | 0.625 |
后验均值被先验从 0.7 拉回到 0.625,这就是收缩。数据越多,拉力越弱:若观测到 100 次中 70 次正面,后验均值变为 73/106≈0.689,已经非常接近 0.7。
如果决策是「猜下一次是否为正面」,且两类错误的代价相同,那么只要后验预测大于 1/2 就猜正面,0.625 满足条件。若两类错误的代价不同:把反面误判为正面的代价为 2,把正面误判为反面的代价为 1,则阈值变为
cFP+cFNcFP=2+12=32,而 0.625<2/3,最优行动变成猜反面。同一个后验,换一个损失,结论就变了。这正是贝叶斯决策理论与「最大后验」的分水岭:后验只有一个,行动却取决于代价。
设观测模型 yi∼N(θ,σ2),先验 θ∼N(μ0,τ2),样本均值为 xˉ,样本量为 n。后验仍是高斯:
θ∣D∼N(μn,τn2),其中
μn=1/τ2+n/σ2μ0/τ2+nxˉ/σ2,τn21=τ21+σ2n.把 μn 写成加权平均:
μn=τ2+σ2/nσ2/nμ0+τ2+σ2/nτ2xˉ.第二项前面的系数就是收缩因子。取 μ0=0、τ=1、σ=1、xˉ=1:
| n | 后验均值 μn | 后验方差 τn2 |
|---|
| 1 | 1/2=0.5 | 1/2=0.5 |
| 4 | 4/5=0.8 | 1/5=0.2 |
| 25 | 25/26≈0.962 | 1/26≈0.038 |
| 100 | 100/101≈0.990 | 1/101≈0.0099 |
样本越多,后验越靠近样本均值,方差越小。先验的作用不是「永远拉住估计」,而是在小样本时提供一个稳定的起点,随着证据积累自动退场。
设某疾病的患病率为 1%,检测的灵敏度为 99%,特异度为 95%。一个人检测阳性,患病概率是多少?
用贝叶斯公式:
P(D∣+)=P(+∣D)P(D)+P(+∣¬D)P(¬D)P(+∣D)P(D)=0.99×0.01+0.05×0.990.99×0.01=0.0099+0.04950.0099≈0.167.尽管检测看起来很准,阳性者真正患病的概率只有 16.7%,因为健康人占了绝大多数,5% 的假阳性率乘以 99% 的基础人数,产生了一个比真阳性更大的绝对数量。这就是基础率谬误:把 P(+∣D) 与 P(D∣+) 混为一谈。
患病率变化时,同一个检测给出的后验完全不同:
| 患病率 | P(D∣+) |
|---|
| 0.5% | 0.090 |
| 1% | 0.167 |
| 5% | 0.510 |
| 10% | 0.688 |
现在加入代价。设漏诊的代价是误诊的 10 倍,即 cFN=10、cFP=1,则治疗阈值是
cFP+cFNcFP=111≈0.091.在患病率 1% 时,P(D∣+)≈0.167>0.091,应当治疗;在患病率 0.5% 时,P(D∣+)≈0.090,已经落到阈值以下,治疗与不治疗的期望代价几乎相同。同一个阳性结果,在不同的先验与代价下导向不同的行动,这不是检测本身变了,而是决策问题变了。
这个例子也说明了为什么「准确率」不是一个好的汇报指标。检测的准确率是
0.99×0.01+0.95×0.99≈0.9504,看起来很高,但它几乎完全由健康人贡献;在真正需要决策的那一小部分人身上,后验概率才是关键。
设两类共享方差 σ2=1,均值分别为 0 与 2,先验相等。则 Δ=2,贝叶斯错误率为
pe∗=Q(1)≈0.1587.若把均值差扩大到 4,Δ=4,错误率降为 Q(2)≈0.0228。错误率随马氏距离以 e−Δ2/8 的速率衰减,但永远不为零,因为两个高斯的支撑集在整个实轴上重叠。
Bhattacharyya 上界给出
pe∗≤21e−Δ2/8,在 Δ=2 时为 0.303,在 Δ=4 时为 0.0677。上界不紧,但它的指数部分与真实错误率一致;这正是我们在 4.2 节强调的「速率」而非「常数」。
把全文的线索压缩成一行:
先验p(θ)×似然p(D∣θ) ⟶ 后验p(θ∣D) ⟶ 行动argamin E[L(Y,a)∣D] ⟶ 下限R∗.这条链的每一段都可以独立展开,也可以独立质疑。它有两个层次的角色。
它是规范性框架。它把「假设」「证据」「偏好」「行动」四件事分开:先验与似然负责描述世界,损失负责描述我们想要什么,决策规则负责把两者接起来。很多机器学习里的争论,本质上是在争论这四个部分中的某一个,却常常被包装成「模型好不好」的单一问题。它也是理论基准。贝叶斯风险给出了任何算法都无法突破的下限,超额风险分解把模型误差拆成近似误差与估计误差,贝叶斯错误率把分布差异翻译成可分性。没有这个基准,「泛化」就只是一个没有坐标的词。
最后一点也许最重要:贝叶斯决策理论并不要求你真的相信某个先验。它要求你把不确定性写下来,把代价写下来,然后接受由此推出的结论。剩下的,是计算问题。