JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

实践中的贝叶斯法则

贝叶斯法则把一个模糊的预感加上新证据,转化为一个更新过的、诚实的信念。本指南让先验、似然与后验变得可感可触,再展示共轭先验和 MAP 估计如何把这个想法变成真正能算得出来的东西。

从一个公式到一种思考方式

你已经把贝叶斯定理当作一行代数见过:把一个条件概率翻转过来。在这里,我们要认真地把它当作学习的引擎。整个贝叶斯推断都建立在一步操作上——从你在看到数据之前所相信的出发,权衡每种可能性对你实际拿到的数据解释得有多好,最后得到你在看到之后应当相信的。这种前后之变,正是不确定性下推理的核心。

三个名词撑起整个故事,我们就把它们点一次名、记牢。先验是你在这批数据之前对某个未知量的信念。似然是对未知量的每个候选取值而言,观测到的数据有多大可能。后验就是更新之后得到的信念。贝叶斯法则说的就一句话:后验正比于似然乘以先验。

一个实例:这枚硬币公平吗?

拿一个具体的未知量:一枚硬币的偏向,也就是正面出现的长期概率 θ。在抛之前,你对 θ 有什么信念?一个合理的先验可能是「大概在 0.5 附近,但我不确定」——一个以一半为中心的平缓隆起。这个信念本身就是 θ 上的一个概率分布,而不是单个数字,因为你诚实地承认自己并不确定。

现在你抛了十次,看到 7 次正面、3 次反面。似然要问:对每个可能的 θ,*恰好这个结果*有多大可能?θ 接近 0.7 的硬币让「十中取七」相当可能;θ 接近 0.1 的硬币则几乎不可能产生它。把这条似然曲线乘上你的先验隆起,再重新归一化使其总和为一,你就得到了后验——这是数据之后你对 θ 更锐利的信念。

posterior(θ)  ∝  likelihood(data | θ) × prior(θ)

   prior:        broad hump around 0.5
   likelihood:   peaks near 0.7  (because 7/10 heads)
   posterior:    a hump pulled toward 0.7, narrower
                 than the prior — sharper, not certain
后验位于先验与数据之间,且比两者都更窄:证据收紧了信念。

注意刚才发生了什么。后验并没有一下子跳到 0.7。它落在先验的 0.5 与数据的 0.7 之间某处,因为十次抛掷是微弱的证据。若抛上一千次,数据就会压过先验,把后验几乎完全拉到硬币真实的样子上。数据越多,先验的影响越小——这不是缺陷,恰恰是要点所在。

共轭先验:当数学保持整洁

「重新归一化使其总和为一」里潜伏着一个实际的麻烦。对大多数先验来说,那个归一化常数是一个没有闭式解的困难积分,这也正是后续指南要借助采样和近似推断的原因。但对某些幸运的搭配,代数会干净地闭合。这些就是共轭先验:一种其形状被似然*保留*下来的先验,于是后验仍属于同一族分布,只是换上更新过的数字。

我们的硬币就是经典案例。Beta 分布是抛硬币(伯努利)数据的共轭先验。把先验写成 Beta(a, b),你可以把 a 和 b 读作在任何真实抛掷之前,你假装已经看到的「想象中的正面数」和「想象中的反面数」。在观测到 h 次正面、t 次反面后,后验就只是 Beta(a + h, b + t)。没有积分——你只是把你的计数加到先验的计数上。

prior      = Beta(a, b)          # a heads, b tails imagined
data       = h heads, t tails    # actually observed
posterior  = Beta(a + h, b + t)  # just add the counts!

# Beta(2,2) + 7 heads, 3 tails  ->  Beta(9, 5)
# posterior mean = 9 / (9+5) ≈ 0.64
共轭性把贝叶斯更新变成了记账:把观测计数加到先验计数上。

MAP:把信念坍缩为一个答案

完整的后验是一个分布,但有时你必须交出一个最佳的单一猜测——为了显示一个数字,或为了接入流水线的下一环节。最自然的选择是后验的峰值:数据与你的先验合起来认为最可信的那个取值。这就是最大后验估计,简称 MAP。

MAP 与你早已熟知的东西有着优美的关系:极大似然估计,即 MLE。MLE 挑选让数据最可能出现的取值——它*只*听数据的。MAP 挑选让似然乘先验最大的取值——它既听数据,*也*听你的先验知识。所以 MAP 就是 MLE 加上一个先验;而随着数据增多,先验的声音渐弱,两个估计趋于一致。

这层联系不只是优雅的趣闻——它悄悄解释了前几级的一个工具。给模型加上 L2 权重惩罚(岭回归正则化)*恰恰*就是在权重上放一个高斯先验的 MAP 估计,这个先验说的是「权重大概很小」。L1 惩罚(lasso)则是带着另一种偏好稀疏权重的先验的 MAP。你曾把正则化当作对抗过拟合的技巧来认识,原来它是一个乔装打扮的贝叶斯先验。

把更新养成习惯,以及它带来的回报

贝叶斯最深刻的实用价值在于更新是*递归*的:今天的后验成为明天的先验。你永远不必重新经历全部数据的历史。第一组十次抛掷后相信 Beta(9, 5),接着又看到四次正面——更新为 Beta(13, 5)。一个系统正是这样从数据流中持续学习,把每个新观测折叠进一个不断滚动的单一信念里。

  1. 陈述你的先验。 写下在这批数据之前你对未知量的信念——并诚实面对你有多不确定。模糊的先验就是一个宽阔的分布。
  2. 写出似然。 选一个模型,说明对未知量的每个可能取值,观测到的数据有多大可能。
  3. 相乘并归一化。 把先验与似然结合,再重新缩放以得到后验——若共轭则可精确求得,否则近似求得。
  4. 诚实地总结。 报告一个可信区间,而不只是单个点,让不确定性随答案一同传递。
  5. 循环。 当新数据到来时,今天的后验就是明天的先验。回到第二步。

第四步才是真正的奖赏。因为后验是一个完整的分布,贝叶斯模型可以报告一个可信区间——「我有 95% 的把握 θ 在 0.41 到 0.83 之间」——而不是一个光秃秃的点估计。仅看十次抛掷后,那个区间很宽,这正是模型在对你说实话:它还不太了解。这种对疑虑的诚实记账,正是本阶梯其余部分赖以建立的基础。

临行前的诚实提醒

贝叶斯是有原则的,而非魔法。两点提醒让它保持诚实。第一,先验是一个实实在在的建模选择,一个自信但错误的先验在数据太少时会把你带偏——贝叶斯不会凭空造出你没放进去的信息。第二,「95% 可信」的可靠程度仅取决于你的模型;如果似然设定错了,后验会精准地对错误的东西充满自信。

尽管如此,你现在掌握的这套框架是真正强大的。先验、似然、后验;用共轭性做干净的更新;以及作为通往你已熟知的极大似然与正则化之桥梁的 MAP。从这里开始,本阶梯豁然展开:当积分变难时,近似方法接手;当众多未知量相互作用时,图模型给贝叶斯提供一个可攀爬的结构。你已掌握语法,本阶梯其余部分就是词汇。