本章要用到概率密度和正态分布。宇宙学里的似然与先验 这个 Lab 已经用滑块搭好了先验和似然的直观图像,这里把它写成方程。目标有三个:手算和用网格算出后验,推出覆盖率的承诺,再看真值固定时承诺在哪里失效。
一个数的先验、似然和后验
设未知量是一个数 θ。测量之前,我们对它的了解写成先验密度 p(θ)。测量得到数据 y,模型给出每个 θ 下出现这组数据的可能性,这就是似然 p(y∣θ):把 y 固定,把它看成 θ 的函数。贝叶斯定理把两者合起来:
分母 p(y) 叫作证据,与 θ 无关,作用只是让后验的总概率等于一。
取一个具体模型。先验是标准正态分布 θ∼N(0,1)。做 n 次独立测量 yi=θ+ei,每次的高斯噪声标准差 s 已知。于是
右边是 θ 的二次式,后验必然是正态分布。把 θ2 项和 θ 项各自归拢,再配方:
后验方差 v 比先验方差 1 小,也比单次测量的方差 s2 小。均值 μ 是数据平均值往先验均值零拉回来一点的结果,这种往回拉叫作收缩。
例题
取 n=4、s=1,四次测量是 1.3、0.2、1.1、0.6,加起来是 3.2。后验方差 v=1/5=0.2,标准差 0.2≃0.447。均值 μ=0.2×3.2=0.64,比数据平均值 0.8 小,差的那一截就是收缩。
正态后验的中央 90% 区间,是均值左右各 1.645 个标准差。1.645 是标准正态分布下方占 95% 的那个点:
后验对称、只有一个峰时,这个中央区间同时也是最高密度区域,也就是装下 90% 概率的最短区间。
同一个后验,用网格来算
大多数后验写不出解析式。Lab 里的精确参考答案就是在网格上算的,步骤在这里一样适用。
- 从 −3 到 3 铺上宽度 0.01 的格子,每个格子的中心当作一个候选值 θj。
- 在每个中心算出对数先验加对数似然。先减去其中最大的值再取指数,免得数值下溢。
- 除以总和,让各格的概率 Pj 加起来等于一。
- 把格子按 Pj 从大到小排好,依次累加,直到总和达到 0.9。这些格子就组成 90% 最高密度区域。
这样算出的网格均值是 0.640,标准差 0.447。区域用了 148 个格子,装下 0.902 的概率,范围是 [−0.10,1.38]。多出来的一点概率和边缘的微小偏移,都是因为格子只能整个整个地加。Lab 用的是同一套做法,只是换成频率和衰减时间的二维网格,并在峰附近加密,让格子始终远小于后验的宽度。
为什么十次里有九次罩住真值
把区域记作 R(y),并假定对每一组数据,它都装着 0.9 的后验概率。设想重复做很多次实验:每次先从先验里抽一个真值,再按似然生成数据。真值落进区域的比例是
由贝叶斯定理,p(θ)p(y∣θ) 可以改写成 p(y)p(θ∣y)。这样里层对 θ 的积分正好是区域的后验概率,对每个 y 都等于 0.9:
这个结论靠两条假设撑着:真值是从后验所用的同一个先验里抽的,数据是按同一个似然生成的。Hermans 等人把左边这个比例叫作期望覆盖率,并拿它作为检验近似后验的主要指标。Hermans 等,2022,定义 2.1 Talts 等人也从同一个恒等式出发:把后验对数据求平均,得到的就是先验。Talts 等,2018,第 2 节
真值固定时的覆盖率
把真值固定住,只让噪声重来。在例题里,收缩会把每次的估计都往零拉五分之一,所以 μ−θ 服从均值为 −0.2θ、标准差为 0.4 的正态分布。90% 区间的半宽是 0.736,于是固定 θ 时的覆盖率为
其中 Φ 是标准正态分布的累积分布函数。
靠近先验中心时,精确区间罩住真值的次数偏多;离得远了就偏少。用标准正态先验给这些值加权再积分,结果恰好回到 0.900。精确后验的校准是平均意义上的,不是每个源都成立。
Lab 在二维里展示了同一件事。“微弱短促的振荡”这个预设的源靠近先验方框的边缘。在这个固定的源上生成 400 条合成记录,精确网格后验的 90% 区域罩住源的比例是 0.860,95% 区间为 0.823 到 0.891。
Lab 任务
打开 神经后验 Lab。
- 先预测再观察:保持训练条件,过一分钟后两条累计覆盖率曲线应该停在哪里?用记录条数解释它们开头为什么晃得厉害。
- 改一个条件:选“微弱短促的振荡”。曲线稳定之前,参照表 2.1 预测精确后验的覆盖率会高于还是低于 0.9。
- 比较:在参数平面里把白色标记拖向先验方框的中心,再拖向一个角,看精确 90% 等高线在方框边缘怎样变形。
练习
- 先验不变、s=1,至少要测几次,后验标准差才能降到 0.2 以下?
- 同事给出一个 90% 区间,并说“对这个源来说,真值有九成把握在里面”。什么条件下这种说法站得住?
- 网格做法里,为什么格子必须远比后验窄?如果不够窄,90% 区域会怎样?
答案展开答案
- 方差是 v=1/(1+n)。要求 v<0.04,即 1+n>25,所以 n≥25。这时后验标准差降到 1/26≃0.196。
- 这句话说的是给定这组数据后的后验概率。只要先验和似然如实描述了源和数据是怎样产生的,它就成立。由它推出的频率说法,是对从先验里抽出的源取平均;具体到某一个固定的源,频率可以不同,表 2.1 就是例子。
- 区域是用整个格子拼起来的。格子太宽,概率就一大块一大块地加,区域会超过 0.9,边缘也只能落在格子边界上。后验很窄时,甚至可能夹在两个格子中心之间,被严重失真。例题里 0.01 的格子约为后验宽度的四十五分之一,所以只多出 0.002。