想象你是一家甜品店的主厨,店里最受欢迎的招牌是柠檬挞。你手里有一本“配方簿”:柠檬汁和糖的比例、烘烤温度、挞皮厚度……每天打烊后,你会根据当天客人试吃后的反馈——有人皱眉说“太酸了”,有人点头说“甜度刚好”——在配方簿上悄悄调整比例参数。有趣的是,你从不推翻重来,不会因为今天客人说酸就把柠檬挞改成巧克力蛋糕;你只会在“柠檬挞”这个风格框架内微调参数。 这就是贝叶斯推断的日常:先验是开张前的既有经验,似然是今天客人给出的反馈,后验是打烊后修正的新配方。而“共轭先验”之所以神奇,是因为它保证:无论你更新多少次,修正后的配方依然是同一种风格——后验分布与先验分布保持同一个函数形式,只是参数数值变了。于是你不需要每次打烊都从头算一遍繁琐的分布,只需在配方簿上轻松加上几笔,新的后验就自动成形了。
对 AI 从业者而言,共轭先验是贝叶斯方法从“理论优雅”走向“工程可用”的桥:它让在线学习、实时推断、A/B 测试等场景避免了沉重的数值采样,用几行解析公式就完成模型更新,是大规模推荐、增长实验背后的常用数学工具。
可视化演示
展示Beta-Binomial与Gamma-Poisson共轭更新过程(先验→后验同形式)及贝叶斯A/B测试应用,帮助理解共轭先验在贝叶斯推断中的计算优势。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+captions.beta+'
定义与动机
老周的配方簿从不轻易改变“菜系”。无论客人怎么反馈,明天端上桌的还是柠檬挞,只是柠檬汁和糖的比例悄悄挪动了一两个百分点。在贝叶斯世界里,这种“风格不变、参数微调”的优雅性质,正是共轭先验的定义:如果先验分布与后验分布同属一个分布族,那这个先验就是该似然函数的共轭先验。
为什么这个性质如此重要?因为贝叶斯推断的完整公式包含一个积分——证据 $P(\mathcal{D})$,它往往没有解析解。没有共轭性时,我们只能靠马尔可夫链蒙特卡洛(MCMC)采样去近似后验,一次实验可能要跑几小时。而共轭先验像一把钥匙,直接打开了后验的解析大门:你不需要算那个吓人的积分,只需把配方簿上的数字加一加,后验就自动出现了。
回到甜品店:共轭先验等于告诉老周——你尽管记录客人反馈,无论记多少条,修正后的配方永远还是“柠檬挞”那一页,不会翻到“巧克力蛋糕”那一页。这种稳定性,让贝叶斯推断从“每次重写整本菜谱”变成“在原有页面上加几笔”。
- 未知参数 $\theta$主厨真正关心的是柠檬汁占挞液的“酸度比例”,这是一个 0 到 1 之间的未知数。
- 先验 $\pi(\theta)$开张前,老周根据多年经验对 $\theta$ 有一个大致判断,比如“大概 0.3 左右,但不敢确定”。
- 似然 $P(\mathcal{D} \mid \theta)$如果比例真是 $\theta$,那今天客人说“刚好”或“太酸”的概率是多少?这描述了数据与参数的关系。
- 后验 $\pi(\theta \mid \mathcal{D})$看完今天的反馈后,老周修正出新的配方分布,这是“更新版配方”。
- 正比于 ∝分母证据 $P(\mathcal{D})$ 对 $\theta$ 来说是个常数,我们只关心 $\theta$ 的分布形状,所以用正比号忽略它。
判别方法
那么,怎么判断一个先验和某个似然是不是“天生一对”?老周的做法是:把一条新反馈代进配方逻辑里,看修正后的结果和原先的配方风格是否一致。数学上的判别方法也是一样的“代入实验”:把先验和似然乘起来,整理化简,看最终得到的后验“核”(即去掉归一化常数后剩下的函数骨架)是否与先验同属一个分布族。
具体操作分三步:第一,写出先验的密度表达式;第二,写出似然中与参数相关的部分;第三,将二者相乘、合并同类项,观察指数或分母结构是否“认出”了原来的分布族。如果认出来了,共轭成立。
这个判别方法在工程上非常实用:当你面对一个新的业务场景时,只要观察数据生成过程是“比例型”还是“计数型”,就能立刻圈定候选的共轭先验族。就像老周拿到一位新客人的反馈,瞬间就知道该在柠檬汁那一栏做加法,而不是去改糖的类型。指数族分布的天然性质保证了大批共轭对的存在,这也是为什么 Beta 和 Gamma 会成为贝叶斯工程里的“万金油配方”。
- 似然的“参数骨架”伯努利实验的似然只关心 $\theta$ 的指数结构,与 $k$ 次成功和 $n-k$ 次失败有关。
- 先验的“参数骨架”Beta 先验也长着同款骨架,指数是 $\alpha-1$ 和 $\beta-1$。
- 两个骨架相乘指数法则告诉我们,同底数幂相乘,指数相加。
- 检查新骨架整理后的后验指数为 $\alpha+k-1$ 和 $\beta+n-k-1$,结构仍是 Beta 分布的核心形式,于是判定共轭。
Beta共轭族
Beta-Binomial 共轭对是贝叶斯统计最经典的“黄金搭档”,对应老周最熟悉的场景:每一位客人试吃后只给两种反馈——“酸了”或“刚好”(伯努利实验)。老周关心的参数是“刚好的概率” $\theta$,这个比例型参数天然适合用 Beta 分布描述。Beta 分布的定义域就是 $[0,1]$,形状由两个参数 $\alpha$(成功经验数)和 $\beta$(失败经验数)控制,简直是为比例参数量身定做的配方纸。
假设老周今天的配方先验是 $\mathrm{Beta}(\alpha, \beta)$,先后来了 $n$ 位客人,其中 $k$ 位说“刚好”,$n-k$ 位说“太酸”。把伯努利似然和 Beta 先验相乘,利用指数相加的性质,后验立刻变成:
Beta 共轭族的神奇之处在于:老周不需要记住任何一个复杂的积分公式。每当一位新客人给出反馈,他只需要在配方簿的“刚好”栏或“太酸”栏画一道正字。十个客人后,$\alpha$ 和 $\beta$ 各增加了若干笔,后验的均值、方差、可信区间全部可以从这两个数字直接读出。这种“一笔一画更新信念”的过程,正是在线学习和实时决策的数学原动力。
- 写原始乘积贝叶斯公式给出后验正比于似然乘先验。
- 合并乘积指数$n$ 次实验中成功 $k$ 次,失败 $n-k$ 次,乘积化简为两个幂的乘积。
- 指数相加同底数幂相乘指数相加,得到合并后的指数。
- 识别后验族这正是 Beta 分布的核心形式,归一化系数 $B(\alpha+k, \beta+n-k)$ 自动补全。
Gamma共轭族
如果说 Beta 分布管理的是“比例型”配方参数,那 Gamma 分布管理的就是“强度型”参数——每小时接待多少位客人、每单位面积收到多少次点击、每秒钟发生多少次请求。这类计数数据的自然模型是泊松分布,而泊松似然的共轭先验恰好是 Gamma 分布。
老周的清晨客流账本就是一个典型例子:他观察每小时进店的客人数量 $x$,假设平均到达率是 $\lambda$,那么 $x$ 服从泊松分布。如果老周对 $\lambda$ 的先验判断是 Gamma 分布 $\mathrm{Gamma}(\alpha, \beta)$,那么在观测到 $n$ 个小时、总客流 $\sum x_i$ 后,后验会以同样优雅的方式更新:
Gamma 共轭族像是一本“客流强度账本”:$\alpha$ 记录“累计来过的客人”,$\beta$ 记录“累计观察的小时数”。每多观察一小时,就在 $\beta$ 上加 1;每看到一位新客人到达,就在 $\alpha$ 上加 1。账本形式永远不变,变的只是余额。在 AI 工程中,服务端请求量的实时预测、交易系统中的到达率监控,都依赖这套简洁的计数更新。
- 泊松似然$n$ 个独立观测的总似然是各小时概率的乘积。
- 提取 $\lambda$ 的指数把所有 $\lambda^{x_i}$ 合并为 $\lambda^{\sum x_i}$,把所有 $e^{-\lambda}$ 合并为 $e^{-n\lambda}$。
- 乘以 Gamma 先验先验贡献 $\lambda^{\alpha-1} e^{-\beta\lambda}$ 的指数部分与似然指数合并。
- 合并指数与速率指数相加得 $\alpha + \sum x_i - 1$,$e$ 指数相加得 $-(\beta + n)\lambda$,完整匹配 Gamma 分布的结构。
超参解释
老周的配方簿上,$\alpha$ 和 $\beta$ 到底意味着什么?为什么添一笔就能改变后验?其实,超参数 $(\alpha, \beta)$ 可以解读为“伪计数”:$\alpha$ 是配方簿里历史积累的“成功经验”条数,$\beta$ 是“失败经验”条数。Beta 分布的均值恰好是 $\frac{\alpha}{\alpha+\beta}$,即“成功经验占总经验的比例”——这正是老周对“刚好比例”的直觉估值。
当我们把先验均值和数据均值放在一起,后验均值会显示出一个极其优美的加权结构:
这个加权结构解释了老周决策时的心理:如果配方簿上有 100 条历史经验,今天只来了 2 位客人,他会更相信经验而不是这两位客人的极端评价;反之,如果配方簿几乎是空白的($\alpha+\beta$ 很小),他会更倾听今天的大量反馈。超参数本质上就是“经验的可信度”,而共轭更新不过是在经验与事实之间做一次理性的比例调和。
- 左侧后验均值后验 $\mathrm{Beta}(\alpha+k, \beta+n-k)$ 的均值公式,分子为 $\alpha+k$,分母为总伪计数加真实计数。
- 拆分为两项把分子拆成 $\alpha$ 和 $k$ 两部分,分别对应先验经验与真实数据。
- 构造先验均值项第一项分子分母同时除以 $\alpha+\beta$,凑出先验均值 $\frac{\alpha}{\alpha+\beta}$。
- 构造数据均值项第二项分子分母同时除以 $n$,凑出样本均值 $\frac{k}{n}$。
先验强度
“先验强度”就是配方簿的厚度,即 $\alpha + \beta$ 的总和。厚度越大,说明老周积累的经验越多,新数据想要撼动固有配方就越难;厚度越小,说明老周几乎没经验,很容易被新反馈牵着走。这一点与先验均值本身无关——即使两个配方簿的 $\alpha : \beta$ 比例相同(先验均值相同),厚度不同,更新速度也截然不同。
工程中,我们常常需要显式地控制先验强度。比如刚上线一个新品时,配方簿几乎是空的,我们会选择弱信息先验 $\mathrm{Beta}(1, 1)$(等价于均匀分布),让数据主导学习;当产品已经稳定运行很久、积累了充分经验时,我们会采用强先验,防止偶发噪声误导决策。后验参数的更新规则本身就体现了这种调控:
先验强度的调节在 A/B 测试实践中尤为关键。如果老周对两款柠檬挞都设置了极强先验,实验需要极长时间才能让数据“说服”后验产生差异;如果先验过弱,实验又容易受早期噪声干扰。老周的经验是:先验强度应大致模拟“过去等效观测了多少位客人”——10 条经验就写 10,100 条经验就写 100,诚实记录了自己的历史经验,后验才会给出最可靠的判断。
- 成功计数更新每遇到一次“成功”(客人说刚好),$\alpha$ 加 1,等价于在配方簿上新增一条成功经验。
- 失败计数更新每遇到一次“失败”(客人说太酸),$\beta$ 加 1,新增一条失败经验。
- 强度守恒总强度 $\alpha+\beta$ 加上总观测数 $n$,整体后验强度永远等于“先验强度 + 样本量”。
在线学习
共轭先验还有一项让工程师们爱不释手的超能力:天然支持在线学习。老周的打烊流程是:今天的后验,就是明天的先验。昨天他还将信将疑觉得酸度在 0.35 左右,今天观测了 20 位客人后后验收缩到了 0.31,那么明天开店前,他就带着 $\mathrm{Beta}(\alpha+昨日成功, \beta+昨日失败)$ 这个新配方出门。每一天的数据都不浪费,每一天都站在昨天的肩膀上。
这种序贯更新不需要保存全部历史数据,只需要保存当前的两个参数 $\alpha$ 和 $\beta$。用数学语言来描述这一轮更新的递归结构:
对 AI 工程师来说,这意味着推荐系统或广告点击率模型可以做到“秒级更新”:来了一条新的用户点击或未点击日志,只需将对应的 $\alpha$ 或 $\beta$ 加 1,后验分布立刻变化,不需要重跑全量数据,不需要启动采样器,甚至不需要存储原始日志。配方簿永远摊开在最新的一页上,而这一页是从开业第一天一页一页翻过来的。
- 历史数据集合$\mathcal{D}_{1:t}$ 表示从第 1 天到第 $t$ 天的全部反馈数据。
- 昨日后验成为今日先验$\pi(\theta \mid \mathcal{D}_{1:t-1})$ 既是前 $t-1$ 天的后验,也是第 $t$ 天更新时的先验。
- 今天的数据做似然乘以今天新到的反馈 $L(\mathcal{D}_t \mid \theta)$,完成今天的贝叶斯乘法。
A/B测试实战
当老周想推出一款新柠檬挞配方 B,和经典配方 A 一较高下时,共轭先验的价值体现得淋漓尽致。他把前 100 位客人随机分成两组试吃,记录好评数,然后为 A 和 B 各自维护一套 Beta 后验:$A$ 的后验是 $\mathrm{Beta}(\alpha_A + k_A, \beta_A + n_A - k_A)$,$B$ 的后验是 $\mathrm{Beta}(\alpha_B + k_B, \beta_B + n_B - k_B)$。两条曲线就像两位候选人的支持率分布,随着实验推进不断变瘦、变高、彼此分离。
最终决策的核心是计算“B 的真实好评率超过 A 的概率”。这个概率等于把两个后验密度叠在一起后,对 $B$ 的上方曲面积分:
老周不需要等到凑满预定样本量才看结果。他可以在实验进行到第 30 位客人时瞄一眼面板:如果 $P(\theta_B > \theta_A)$ 已经超过 95%,就提前收工上新;如果还在 60% 徘徊,就继续多试几天。这背后的工程意义是巨大的——传统的频率派 A/B 测试要求固定样本量、中途不得窥探,而贝叶斯方法配合共轭先验,让“随时看、随时停”成为可能,大幅缩短了决策周期,也给增长团队的实验效率按下了加速键。
---
- A 的后验配方 A 的后验只由 A 组的先验参数和观测计数决定。
- B 的后验配方 B 的后验同理,与 A 组完全独立。
- 内部积分固定 B先固定一个 $\theta_B$,计算 $\theta_A$ 从 0 到 $\theta_B$ 的累计概率,即“A 不如当前 B 的可能性”。
- 外部积分遍历 B再对所有可能的 $\theta_B$ 按其概率加权求和,得到总胜率。
AI 应用场景
贝叶斯A/B测试实时决策系统
阶段:实验评估与在线决策
解决的问题:传统 A/B 测试需要预先通过功效分析计算最小样本量,实验期间不能中途查看结果,否则会破坏显著性检验的数学前提;且 p 值只回答“是否显著”,不能回答“B 比 A 好多少”。使用 Beta-Binomial 共轭对后,每个实验组只需维护两个参数($\alpha$ 表示好评数+先验成功数,$\beta$ 表示差评数+先验失败数),任何时刻都能给出后验分布和胜率,让实验可以边跑边看、提前停止,也直接支持“多臂老虎机”式的动态分流。
具体案例:某内容推荐 APP 要对新版推荐算法做灰度实验,用 Beta(1,1) 作为 CTR 的先验。实验第 3 天,A 组观察到 3200 次曝光中 480 次点击,B 组观察到 3150 次曝光中 552 次点击。系统实时计算 $P(\theta_B > \theta_A)$,发现已超过 97%,于是决策面板亮起“B 胜出”信号,团队提前结束实验并全量发布新算法,节省了近一周的灰度时间。
推荐系统点击率的在线实时校准
阶段:在线服务与模型热更新
解决的问题:推荐系统的点击率会受到时段、热点事件影响而波动,离线模型无法快速响应。利用 Beta-Binomial 共轭先验对每个召回候选的实时 CTR 做增量校准:以离线预测作为先验均值,用 $\alpha+\beta$ 作为先验强度,线上每来一次曝光就更新一个“贝叶斯修正后 CTR”。相比全量重训模型,这种方法将更新延迟从小时级降低到毫秒级。
具体案例:在短视频推荐场景中,每条视频维护 $(\alpha, \beta)$ 两个参数。新视频没有历史点击率时使用全局弱先验 $\mathrm{Beta}(1,1)$,随着前几百次曝光快速积累信心;视频进入“冷启动→热启动→稳定”的生命周期后,参数平滑过渡。最终首页 CTR 提升 2.1%,视频冷启动阶段的人均播放时长提升 6.8%。
服务端请求量的Gamma-Poisson自适应限流
阶段:异常检测与容量规划
解决的问题:线上服务每秒钟的请求量是弹性波动的,传统固定阈值的限流策略要么过于保守浪费资源,要么反应迟缓导致雪崩。用 Gamma-Poisson 共轭对建模请求到达率 $\lambda$:以历史峰值时段的 Gamma 分布作为先验,每观测到一秒的请求数就更新一次后验,当后验的置信区间上界持续超过容量红线时触发扩容或限流。
具体案例:某电商平台在大促期间使用 Gamma(α=10, β=1) 描述每秒请求率,实时统计最近 60 秒的请求总数 $S$,后验变为 Gamma(10+S, 1+60)。当后验 95% 分位数连续 5 秒超过预警阈值时,系统自动扩容 20% 的容器,避免了往年大促前夕的频繁告警和人工扩容。
Python 演示
import mathimport random def log_beta_pdf(theta, a, b): if theta <= 0.0 or theta >= 1.0: return -float("inf") return (math.lgamma(a + b) - math.lgamma(a) - math.lgamma(b) + (a - 1.0) * math.log(theta) + (b - 1.0) * math.log1p(-theta)) def beta_pdf(theta, a, b): return math.exp(log_beta_pdf(theta, a, b)) def beta_mean(a, b): return a / (a + b) def credible_interval(a, b, alpha=0.05): xs = [i / 2000.0 for i in range(1, 2000)] logps = [log_beta_pdf(x, a, b) for x in xs] max_log = max(logps) ps = [math.exp(lp - max_log) for lp in logps] total = sum(ps) cdf = [] acc = 0.0 for p in ps: acc += p / total cdf.append(acc) lo, hi = xs[0], xs[-1] for i, c in enumerate(cdf): if c >= alpha / 2.0: lo = xs[i] break for i, c in enumerate(cdf): if c >= 1.0 - alpha / 2.0: hi = xs[i] break return lo, hi def online_update(clicks, alpha0=1.0, beta0=1.0): a, b = alpha0, beta0 history = [] for is_click in clicks: if is_click: a += 1.0 else: b += 1.0 history.append((a, b, beta_mean(a, b))) return history def prob_b_beats_a(a_a, b_a, a_b, b_b, n_samples=20000): wins = 0 for _ in range(n_samples): x = random.gammavariate(a_a, 1.0) y = random.gammavariate(b_a, 1.0) theta_a = x / (x + y) x = random.gammavariate(a_b, 1.0) y = random.gammavariate(b_b, 1.0) theta_b = x / (x + y) if theta_b > theta_a: wins += 1 return wins / n_samples def main(): random.seed(42) print("共轭先验在线更新:Beta(1,1) 作为点击率先验") clicks = [0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1] history = online_update(clicks) for i, (a, b, mean) in enumerate(history, 1): lo, hi = credible_interval(a, b) print("第%2d次曝光: 后验 Beta(%.1f, %.1f) 均值=%.3f 95%%区间=[%.3f, %.3f]" % (i, a, b, mean, lo, hi)) print("\nA/B测试:A(8/100),B(15/100)") a_a, b_a = 1 + 8, 1 + 92 a_b, b_b = 1 + 15, 1 + 85 p_win = prob_b_beats_a(a_a, b_a, a_b, b_b) print("P(B优于A) = %.3f" % p_win) if p_win > 0.95: print("达到95%显著阈值,建议停止实验并发布B") elif p_win > 0.8: print("倾向B胜出,继续观测") else: print("证据不足,继续实验") if __name__ == "__main__": main()
log_beta_pdf(theta, a, b)用对数伽马函数计算 Beta 密度对数,避免乘积下溢。beta_pdf(theta, a, b)对对数密度取指数,得到可直接用于绘图的概率密度。credible_interval(a, b, alpha)用网格近似法计算后验的 95% 可信区间,对应“配方置信度”。online_update(clicks, alpha0, beta0)逐条数据执行共轭更新,后验参数实时累加。for is_click in clicks每条点击日志到达时只做一次a += 1或b += 1的粒度操作。random.gammavariate(a, 1.0)用 Gamma 变量比值生成 Beta 样本,是蒙特卡洛采样的标准技巧。theta_b > theta_a比较一次采样中 B 的胜率是否高于 A,重复两万次统计胜率。p_win > 0.95工程中常用的停止阈值,对应“B 有 95% 以上概率优于 A”。
常见误区
误区我理解共轭就是“后验等于先验”,那这样更新来更新去岂不是没有意义?既然后验和先验是同一个东西,贝叶斯推断不就是在原地打转吗?
正解共轭说的是“分布族相同”,不是“分布相同”。就像老周的柠檬挞无论怎么改比例,它还是柠檬挞,但柠檬汁的占比已经从 0.35 变成了 0.31。后验 $\mathrm{Beta}(\alpha+k, \beta+n-k)$ 和先验 $\mathrm{Beta}(\alpha, \beta)$ 长得是同一类函数,但参数完全不同,均值、方差、可信区间都发生了实质变化。共轭的意义恰恰在于:更新后的分布仍然是熟悉的配方风格,所以不用重新推导闭式解。
为何常见:初学者看到“后验与先验同分布族”这句话,容易把“同族”误解为“相同”,忽略了参数变化带来的信息更新。
误区我见到的教程都在讲 Beta 是 Bernoulli 的共轭先验,所以认为共轭是这个组合专有的性质,换一个似然函数就不存在共轭先验了。
正解共轭关系遍地都是:Gamma 是 Poisson 的共轭先验、Normal 是 Normal 均值的共轭先验、Dirichlet 是 Multinomial 的共轭先验、Inverse-Gamma 是 Normal 方差的共轭先验。本质上,只要似然能写成某个指数族形式,就能找到对应的共轭先验。Beta-Binomial 只是最直观、应用最广的一组“黄金搭档”,绝不是唯一的一组——就像柠檬挞是招牌,但不代表甜品店只有这一道甜点。
为何常见:教材通常先用 Beta-Binomial 作为入门案例,容易让人误以为这个例子就是全部,而非通往一般规律的一扇窗。
误区既然共轭先验让后验有了解析形式,那我的 95% 可信区间、分位数、预测分布应该也都能手算出来,不需要任何采样或数值方法。
正解共轭保证的是后验密度有闭式表达式,但后验的分位数、可信区间、两个后验的胜率比较 $P(\theta_B > \theta_A)$ 仍然可能涉及复杂积分。工程实践中,我们通常用网格近似、数值积分或蒙特卡洛采样来计算这些统计量。共轭先验省去了最昂贵的“后验分布推断”这一步,但下游的统计加工依然需要数值工具。它像一包脱水蔬菜——大大节省了备菜时间,但下锅翻炒还是必要的。
为何常见:把“解析后验”误当成“全程免计算”,本质上是混淆了分布本身的闭式解与分布数字特征的数值求解。
误区为了让模型更稳定,我把 $\alpha$ 和 $\beta$ 都设得很大,比如 $\mathrm{Beta}(1000, 1000)$,以为这样先验足够“权威”,结果就可靠了。
正解先验强度本质是 $\alpha+\beta$,它描述的是配方簿里已积累的经验条数。如果强度远远超过真实经验——比如你其实只做过 5 次实验,却设置成 1000 条经验——先验会像一位固执的老主厨,对大量新数据视而不见,后验被死死按在先验均值附近,严重低估数据信号。正确的做法是让先验强度诚实反映历史经验:经验少就设弱先验,经验多才设强先验。
为何常见:在深度学习中“大模型、强正则”往往带来更稳定效果,这种惯性思维被错误迁移到了贝叶斯超参数设定上,忽略了先验强度的语义是“真实经验量”而非“正则力度”。
面试题
Q1. “共轭先验”这一名称的核心含义是什么?
- A.后验分布与先验分布属于同一分布族← 正确答案
- B.后验分布与似然函数属于同一分布族
- C.先验必须取均匀分布以保持客观
- D.后验分布永远等于先验分布
答案:A。共轭指“先验与后验同族”:$Beta(\alpha,\beta)$ 先验遇上伯努利似然后,后验仍是 Beta,只是参数变为 $\alpha+k,\beta+n-k$。它不等同于“后验=先验”(B 错),也不要求先验均匀(C 错),更不是后验不变(D 错)。就像柠檬挞改比例后还是柠檬挞。
Q2. 设先验为 Beta(2,3),进行 20 次独立伯努利试验,得到 15 次成功,则后验分布为?
- A.Beta(15,5)
- B.Beta(17,8)← 正确答案
- C.Beta(2,3)
- D.Beta(35,25)
答案:B。Beta 先验的指数部分与二项似然合并时,指数直接相加:$\alpha+k=2+15=17$,$\beta+n-k=3+20-15=8$。A 项忘记加上先验参数,C 项完全没有使用数据,D 项把数据点权当额外整体加进去,它们都偏离了共轭更新规则。
Q3. 共轭先验在实际工程中的主要优势包括哪些?
- A.后验分布存在解析闭式解← 正确答案
- B.规避了耗时的 MCMC 采样← 正确答案
- C.让所有统计推断告别数值计算
- D.支持逐条数据的在线增量更新← 正确答案
答案:ABD。共轭性提供闭式后验(A),使多数任务无需启动 MCMC(B),且能随时用新数据做参数加法更新(D)。但 C 过于绝对:分位数、可信区间、胜率比较等下游统计仍需数值积分或采样。
Q4. Gamma 分布是以下哪个似然函数的共轭先验?
- A.正态似然
- B.泊松似然← 正确答案
- C.伯努利似然
- D.均匀似然
答案:B。泊松似然中 $\lambda^{\sum x_i}e^{-n\lambda}$ 的指数结构与 Gamma 先验 $\lambda^{\alpha-1}e^{-\beta\lambda}$ 天然匹配,合并后仍为 Gamma。正态的共轭先验通常是正态或逆伽马,伯努利的共轭是 Beta,均匀似然则没有与之对应的自然共轭关系。
Q5. 关于 Beta-Binomial 后验均值的性质,下列说法正确的是?
- A.后验均值始终等于样本均值 k/n
- B.后验均值是先验均值与样本均值的加权平均← 正确答案
- C.后验均值等于先验众数
- D.后验均值与样本数据完全无关
答案:B。后验均值 $\frac{\alpha+k}{\alpha+\beta+n}$ 可改写为权重 $\frac{\alpha+\beta}{\alpha+\beta+n}$ 乘先验均值加权重 $\frac{n}{\alpha+\beta+n}$ 乘样本均值,是先验与数据的理性折中。A 忽略了先验贡献,C 混淆了均值与众数,D 则完全背离贝叶斯更新本质。
Q6. 以下哪些做法会增强先验对后验的影响?
- A.固定比例,同时增大 α 和 β← 正确答案
- B.减小 α+β 的总和
- C.保持 α/(α+β) 不变,将 α、β 各乘以 10← 正确答案
- D.增加实验样本量 n
答案:AC。先验强度由 $\alpha+\beta$ 度量。A 和 C 都增大了总强度,使先验权重变大;B 降低了强度,反而让数据更主导;D 增加样本量是增强数据影响,与增强先验影响方向相反。
Q7. 用“伪计数”解释 Beta 先验时,参数 α 和 β 分别代表什么?
- A.先验中“成功”和“失败”的历史经验次数← 正确答案
- B.数据样本的方差和偏度
- C.似然函数中的权重项
- D.后验分布的均值与标准差
答案:A。β 先验的 α、β 可视为“伪成功次数”和“伪失败次数”,更新时直接叠加真实数据得到后验参数。它们是配方簿上积累的经验条数,而非统计矩(B、D),也非似然权重(C)。
Q8. 在线学习中“昨日后验成为今日先验”这一递归成立的前提是什么?
- A.各批数据在给定参数下独立同分布← 正确答案
- B.先验必须为均匀分布
- C.样本量必须超过 1000
- D.先验强度必须恒定为 1
答案:A。贝叶斯在线更新的合法性来自数据条件独立性:给定参数 θ 时,各批观测相互独立。这样昨天的后验恰好包含全部历史信息,可直接作为今天的先验。B、C、D 都不是必要条件。
Q9. 关于贝叶斯 A/B 测试,下列表述正确的有哪些?
- A.用 P(θB>θA) 判断 B 版本胜出的概率← 正确答案
- B.必须预先固定样本量,中途不可查看
- C.借助共轭先验可实时计算两个后验← 正确答案
- D.先验强度完全不影响实验结论
答案:AC。贝叶斯 A/B 测试的核心输出就是胜率概率(A),且因共轭后验是解析形式,可以随时计算对比(C)。与频率派不同,它不要求固定样本量、允许中途查看(B 错);先验强度决定后验更新的“惯性”,必然影响早期结论(D 错)。
Q10. 在 Gamma-Poisson 共轭推断中,先验为 Gamma(α,β),观测 n 个独立泊松计数且总和为 Σx,则后验参数为?
- A.(α+n, β+Σx)
- B.(α+Σx, β+n)← 正确答案
- C.(αβ, n/Σx)
- D.(α+Σx, βΣx)
答案:B。泊松似然的指数项合并后为 $\lambda^{\sum x_i}e^{-n\lambda}$,与 Gamma 先验 $\lambda^{\alpha-1}e^{-\beta\lambda}$ 相乘,指数相加得到 $\alpha+\sum x_i$,指数速率相加得到 $\beta+n$。对应“累积到的总客流加到 α,观察到的总时长加到 β”,其他选项均混淆了两个参数的更新方向。