贝叶斯思维:用证据更新信念,而不是靠直觉下注
贝叶斯思维 / Bayesian Thinking
中文:信念不是”信 / 不信”的开关,而是一个随证据不断更新的概率。
EN: A belief isn’t a yes/no switch; it’s a probability you keep updating as evidence arrives.
我们来聊一件做 AI 的人天天在做、却很少做对的事:拿到一份新证据之后,你的判断到底该改变多少。
为什么要问这个问题
先说一个你大概率亲历过的场景。
新模型上线,有人跑了一次评测,分数从 71 涨到 76。群里瞬间炸出一句”新方法有效!”,PR 当天就合了。第二天另一个人换个随机种子重跑,分数又掉回 72。那涨上去的 5 分根本不是能力,是噪声——可它已经改变了整个团队的判断,甚至改了代码。
反过来的版本同样常见。评测里某个很少见的类别突然报了个红,监控告警一响,全组进入救火状态;回头查半天,发现就是一次抽样抖动,什么都没坏。
再来一个:某人拿模型跑了一个惊艳的 demo,截图往群里一发,大家立刻信了”这模型能做 X”。可等真接到生产负载上,十次里有八次翻车。
这三件事是同一个毛病:我们太容易因为一个观测——一次评测、一次告警、一个 demo——就把信念从”不确定”一把推到”确定”。 而一个更靠谱的做法其实简单到有点尴尬:按这份证据到底有多强,只挪一小步。
这套”该挪多少”的算法,两百多年前一个英国牧师就写下来了。
它从哪来
托马斯·贝叶斯,18 世纪的英国长老会牧师,业余搞数学。他生前没发表这个结果,是他死后朋友理查德·普莱斯在遗稿里翻出来、1763 年替他发表的。
他解决的问题,用大白话说就是:手里有个假设,现在来了一份新证据,我该把”这个假设为真”的概率,调整到多少?
几十年后,法国的拉普拉斯完全独立地把它重新推了一遍,还推广成了通用形式——又是那种好几个人从不同方向撞上同一堵墙的事,往往说明这堵墙是承重的。有意思的是,这条定律后来还吵了将近两百年(”概率到底是客观的频率,还是你主观的相信程度”),直到今天,它成了整个现代机器学习的地基之一。
核心直觉
贝叶斯的核心,剥掉数学,就一个乘法:
新信念 = 旧信念 × 这份证据的说服力
拆成三个词:
- 先验:看到证据之前,你原本多信这件事。
- 似然(证据强度):如果这个假设为真,你有多大可能看到眼前这份证据。
- 后验:看完证据之后,你更新过的信念。
两个旋钮决定你该挪多远。如果这件事本来就很不可能(先验很低),你需要一份非常强的证据才挪得动它;如果证据本身很弱(不管假设真不真,你都很容易看到它),那它基本挪不动你。
一次换随机种子就飘 5 分的评测,属于后者:这 5 分在”新方法有效”和”纯属手抖”两种情况下都很容易出现,所以它作为证据几乎是零强度,理应挪不动你的判断。
记住一把钥匙,后面反复用它:信念是一个刻度,不是一个开关。
graph LR
A[先验 原来的信念] --> C[后验 更新后的信念]
B[新证据的强度] --> C
C -.这次的后验是下次的先验.-> A
注意那条虚线:这不是一锤子买卖,是个循环。 你这一轮的后验,就是下一轮的先验。你永远不会到达”我确定了”,你只是不停地、一小步一小步地挪。这也正是 OODA 循环 / OODA Loop 里 Orient(研判)那一步的内核——所谓研判,本质就是拿新情报更新你的后验。
现实中的例子
有个医学统计里的经典题,几乎每个第一次听到的人都会答错。
假设有种病,发病率是千分之一。有个检测很准:得了病的人,99% 能测出阳性;没病的人,也只有 1% 会误报阳性。现在你测出了阳性。请问,你真得这病的概率是多少?
直觉会喊”99% 啊,检测这么准”。真实答案是:大约 9%。
算一下就懂了。找 1000 个人:其中 1 个真有病,检测基本能抓出这 1 个阳性;剩下 999 个没病的,1% 的误报率会让大约 10 个人也测出阳性。于是总共约 11 个阳性,里头只有 1 个是真的。11 分之 1,差不多就是 9%。
那 90 个百分点的差距,全来自一件被直觉忽略掉的事——这病本来就罕见。 分母里全是健康人,哪怕误报率低到 1%,光靠人多,假阳性的绝对数量也能轻松盖过真阳性。
于是又一把钥匙,跟第一把配着用:对一件罕见的事,哪怕一个很准的测试报了”阳性”,它大概率还是假的。
映射到 AI:一次阳性,多半是噪声
AI 这行几乎处处是贝叶斯,因为我们干的活,本质就是”拿数据更新对世界的信念”。挑几个最贴的说。
先验 × 似然,其实你天天在用。 权重衰减(L2 正则)在贝叶斯眼里,就是给权重加了个”默认应该小、除非数据强烈反对”的先验;调超参用的贝叶斯优化,更是把这套思路直接做成了算法——它维护一个”哪组超参可能好”的信念,每跑完一次昂贵的实验就更新一次,再把下一次实验花在收益期望最高的地方。这就是贝叶斯思维被写成代码的样子:把有限的实验,花在最能更新你信念的地方。
罕见 bug 和抖动的评测信号,就是那道 disease 题。 你的回归检测在某个很少出错的类别上报了个红——先别救火,先套那把钥匙:这个失败本来多罕见?检测器的误报率多高?在一件罕见的事情上,一个”阳性”大概率是噪声,而不是真出了事。 flaky 的测试、抖动的评测、偶发的告警,都是同一道题的变体。
为什么一次评测几乎不该改变你的判断。 温度、采样、几百条的小测试集,让单次评测本身就带着不小的方差。那涨上去的 5 分,在”真变强了”和”纯运气”两种情况下都很容易出现——似然比接近 1,按公式,它就该只带来一次微不足道的更新。证据弱,就该小步挪。 反过来,500 条样本、置信区间很窄、还能复现的结果,才是强证据,才配让你大改判断。
一个 demo,只告诉你”可能”,没告诉你”可靠”。 大家最爱在一个惊艳 demo 上过度更新。可一个 demo,是从一个你并不了解的分布里抽出来的一个样本(还往往是精心挑过的)。它能证明这事做得到,但对”在生产里稳定做到”这个信念,它挪不了几分。
A/B 实验也别看第一天就翻牌。 早期数据样本小、区间宽,你对”B 比 A 好”的信念应该是一条概率分布,而不是一个是/否。等区间收窄了再下结论,别在弱证据上一把全信。
校准,就是诚实地报概率。 一个校准良好的模型,说 70% 把握的那批预测,真实命中率就该在 70% 上下。这就是贝叶斯的精神落到工程上:报概率,别报一个光秃秃、不带不确定性的 flag。
所以开头那 5 分为什么不该让任何人激动,到这儿答案就一句话:弱证据,只配换来一次很小的更新。 你该做的不是翻牌,是把刻度往”新方法可能有效”轻轻挪一格,然后去攒更强的证据。
工程师视角:把”我信 / 不信”换成”我有几成把握”
道理讲完,落到几个能马上用的动作上。
给每个信念配一个概率,别配一个 flag。 不要说”新模型更好(真 / 假)”,要说”我大概六成信新模型更好,而且我知道什么样的证据能改变这个数”。前者一次抖动就被推翻,后者稳得多。
一次观测,顶多挪一小步。 想大改判断,先攒够证据:评测重复跑 N 次,报均值和置信区间,把单次结果当线索,而不是判决。
慌之前,先估一下 base rate。 把告警、回归当真事对待之前,先做一遍那道 disease 题:这事本来多罕见、检测多准。罕见事件上的阳性,先默认它多半是假的,再去查。
让证据强度决定更新幅度。 大样本 + 窄区间 + 可复现 → 大改;一个 demo → 小挪。这一条,几乎能救你一半的误判。
先把先验写下来,再去看数据。 动手前先记下你预期会看到什么(哪怕就一句话)。这样事后你才分得清:到底是数据改变了你,还是你为了迁就想要的结论、偷偷改了自己的想法。这是对付”锚定在第一个猜测上、然后把所有反证都解释掉”的最好解药。
debug 时别锚死在第一个假设上。 同时留两三个假设,各带一个概率;每来一个测试结果,就给它们重新称重,而不是抱着最初那个猜测一条道走到黑。这正是 Orient 那一步在做的事。
一句话总结这一节的姿势:把”我信 / 我不信”翻译成”我有几成把握”,是这行最省事、又最被低估的一次认知升级。
投资视角:好的投资人,都在偷偷做贝叶斯
把视角挪到投资,贝叶斯换身衣服又出现了。
一个像样的投资论点,本质是一个带概率的赌注:我七成信这家公司会赢。之后每一份财报、每一个数据点,都是证据,都该给这个概率重新称重。差的投资者干的正相反——他锚定在买入时的论点上,之后所有的利好都被当成印证,所有的利空都被解释掉。爱上一个仓位,本质就是给了它一个永不更新的先验。
base rate 在这儿也一样咬人:绝大多数创业公司会失败,所以一个惊艳的 pitch(一次”阳性”)落在”独角兽”这种极罕见的结果上,多半还是噪声。为一个创始人光鲜的 demo 心动,和为一次抖动的评测激动,是同一个 base-rate 错误。
绕回到我们做 AI 这件事:当你要评估一个 AI 系统、甚至一家 AI 公司值不值得押注时,把一个漂亮的榜分、一个惊艳的 demo,都当成”罕见事件上的一次弱阳性”来对待——别翻牌,只轻轻挪一格,然后拿你自己的私有评测、真实负载下的表现去攒更强的证据。
生活视角:强观点,弱持有
这套反射也不待在机房里。
你第一次见某人,他态度很差,你立刻给他贴上”这人真差劲”。这就是在一个样本(n=1)上过度更新,还忽略了 base rate——人人都有心情糟糕的一天。看一条空难新闻就不敢坐飞机,也是同一类错:一个鲜活、吓人的单一数据点,被你当成了强证据。
贝叶斯给的那个健康姿态,硅谷有句现成的话:强观点,弱持有(strong opinions, weakly held)。 你可以有一个很确定的判断(一个攒了大量证据的后验),但你同时清楚,什么样的反证能把它掀翻。有立场,但不教条。
绕回到 AI:你读一次评测、一个 demo、一条用户投诉时,需要的是同一个反射——一个响亮的单一数据点,只是一次弱更新。 先问 base rate 和样本量,再决定要不要翻牌。
常见误解
误解一:贝叶斯是个每次都要算的公式。 不是。它的价值是一种握着信念的姿势——用概率而不是 flag、按证据强度更新、永远先看 base rate——而不是真去列贝叶斯公式。实战里你几乎从不算,你只估”这次该往哪挪、挪多大”。
误解二:老是更新信念,是没立场、墙头草。正好相反。 贝叶斯恰恰同时给了你两样东西:在证据够多时,可以持有一个很强的判断;在强反证出现时,又必须改。墙头草是随最大的嗓门更新,贝叶斯是随最强的证据更新。它是教条的反面,不是立场的反面。
误解三:先验是主观的,所以贝叶斯不靠谱、可以随便设。 先验只在证据稀薄时才主导结论;证据一旦够多、够好,两个先验不同的诚实的人,后验会收敛到一块去。设错先验不致命,拒绝更新先验才致命——一个你永远不改的先验,才是真正主观的那个。
什么时候不成立
知道一个模型什么时候失效,比记住它本身更值钱。贝叶斯更新有几个悄悄的前提,破了它就不成立:
真相得在你的假设清单里。 贝叶斯只会在你已有的几个假设之间重新分配概率。要是真正的原因根本不在你的清单上,你会信心满满地收敛到一个”错误选项里最像的那个”。这时候你需要的不是重新称重,是往清单里加一个新假设——这是另一个动作。
证据得真的相互独立。 如果你那”一大堆证据”其实来自同一个坏掉的评测框架、同一个被污染的测试集,它们感觉像很多条独立证据,实则只有一条。把相关的证据当成独立的来数,是”又自信又错”的头号成因。
先验不能是 0 或 1。 概率一旦设成绝对的 0 或 100%,再乘任何证据它都纹丝不动——教条就是贝叶斯的死胡同。所以这套方法对你只有一个要求:永远别把话说死到 100%。
判断方法还是那两把钥匙,反着用:**”我这次到底该改变多少想法?”——先问证据有多强、这事本来多罕见、这些证据是不是其实来自同一个源头。** 证据弱、事件罕见、来源相关,就轻轻挪;只有又强、又独立、又反常的证据,才配让你大改。
相关模型
贝叶斯不是孤岛,它挂在一张网里(这些文章我会陆续补上):
- OODA 循环 / OODA Loop:Orient 那一步,本质就是拿新情报更新后验。整个 OODA,就是贝叶斯更新套上了行动的外壳。
- 古德哈特定律 / Goodhart’s Law:贝叶斯教你一份信号该信几分,古德哈特告诉你这份信号为什么会烂掉——一个被刷过的榜,就是一份被污染的似然。
- 均值回归 / Regression to the Mean:一次惊艳的评测里,有一部分是运气,而运气会回归。对极端观测过度更新,正是忘了它迟早要被均值拉回来。
- 幸存者偏差 / Survivorship Bias:你只看得见活下来的样本(那些惊艳的 demo、成功的公司),这会从根上污染你估的 base rate——你更新所依赖的证据,本身就是被筛选过的。
一句话记住
中文:信念不是开关,是刻度。别因为一次评测、一个 demo 就把它推到底——按证据的强度挪;挪完了,这个后验就是你下一次的先验。
EN: A belief isn’t a switch, it’s a dial. Don’t slam it to the end for one eval or one demo—move it by the strength of the evidence, and whatever you land on becomes your prior for the next round.