跳到主要内容
Sandbox Physics
从模拟里学到的后验能不能信

后验分布与 90% 可信区域到底保证什么

Sandbox Physics ·

后验是看过数据以后,未知量的概率分布;90% 可信区域是其中占 90% 概率的那一块。这个区域保证的是一个平均:真值从先验里抽,数据按模型生成,那么真值落进区域的比例是 90%。真值固定在某一个数上时,这个比例可以偏高,也可以偏低。

本章要用到概率密度和正态分布。宇宙学里的似然与先验 这个 Lab 已经用滑块搭好了先验和似然的直观图像,这里把它写成方程。目标有三个:手算和用网格算出后验,推出覆盖率的承诺,再看真值固定时承诺在哪里失效。

一个数的先验、似然和后验

设未知量是一个数 θ\theta。测量之前,我们对它的了解写成先验密度 p(θ)p(\theta)。测量得到数据 yy,模型给出每个 θ\theta 下出现这组数据的可能性,这就是似然 p(y∣θ)p(y\mid\theta):把 yy 固定,把它看成 θ\theta 的函数。贝叶斯定理把两者合起来:

p(θ∣y)=p(y∣θ) p(θ)p(y),p(y)=∫p(y∣θ) p(θ) dθ.p(\theta\mid y)=\frac{p(y\mid\theta)\,p(\theta)}{p(y)},\qquad p(y)=\int p(y\mid\theta)\,p(\theta)\,\mathrm d\theta .

分母 p(y)p(y) 叫作证据,与 θ\theta 无关,作用只是让后验的总概率等于一。

取一个具体模型。先验是标准正态分布 θ∼N(0,1)\theta\sim\mathcal N(0,1)。做 nn 次独立测量 yi=θ+eiy_i=\theta+e_i,每次的高斯噪声标准差 ss 已知。于是

ln⁡p(θ∣y)=−θ22−∑i=1n(yi−θ)22s2+const.\ln p(\theta\mid y)=-\frac{\theta^2}{2}-\sum_{i=1}^{n}\frac{(y_i-\theta)^2}{2s^2}+\text{const}.

右边是 θ\theta 的二次式,后验必然是正态分布。把 θ2\theta^2 项和 θ\theta 项各自归拢,再配方:

p(θ∣y)=N(μ,v),v=11+n/s2,μ=vs2∑i=1nyi.p(\theta\mid y)=\mathcal N(\mu,v),\qquad v=\frac{1}{1+n/s^2},\qquad \mu=\frac{v}{s^2}\sum_{i=1}^{n}y_i .

后验方差 vv 比先验方差 11 小,也比单次测量的方差 s2s^2 小。均值 μ\mu 是数据平均值往先验均值零拉回来一点的结果,这种往回拉叫作收缩。

例题

取 n=4n=4、s=1s=1,四次测量是 1.31.3、0.20.2、1.11.1、0.60.6,加起来是 3.23.2。后验方差 v=1/5=0.2v=1/5=0.2,标准差 0.2≃0.447\sqrt{0.2}\simeq0.447。均值 μ=0.2×3.2=0.64\mu=0.2\times3.2=0.64,比数据平均值 0.80.8 小,差的那一截就是收缩。

正态后验的中央 90% 区间,是均值左右各 1.6451.645 个标准差。1.6451.645 是标准正态分布下方占 95% 的那个点:

μ±1.645v=0.64±0.736  ⇒  [−0.096,  1.376].\mu\pm1.645\sqrt v=0.64\pm0.736\;\Rightarrow\;[-0.096,\;1.376].

后验对称、只有一个峰时,这个中央区间同时也是最高密度区域,也就是装下 90% 概率的最短区间。

同一个后验,用网格来算

大多数后验写不出解析式。Lab 里的精确参考答案就是在网格上算的,步骤在这里一样适用。

  1. 从 −3-3 到 33 铺上宽度 0.010.01 的格子,每个格子的中心当作一个候选值 θj\theta_j。
  2. 在每个中心算出对数先验加对数似然。先减去其中最大的值再取指数,免得数值下溢。
  3. 除以总和,让各格的概率 PjP_j 加起来等于一。
  4. 把格子按 PjP_j 从大到小排好,依次累加,直到总和达到 0.90.9。这些格子就组成 90% 最高密度区域。

这样算出的网格均值是 0.6400.640,标准差 0.4470.447。区域用了 148 个格子,装下 0.9020.902 的概率,范围是 [−0.10,  1.38][-0.10,\;1.38]。多出来的一点概率和边缘的微小偏移,都是因为格子只能整个整个地加。Lab 用的是同一套做法,只是换成频率和衰减时间的二维网格,并在峰附近加密,让格子始终远小于后验的宽度。

为什么十次里有九次罩住真值

把区域记作 R(y)R(y),并假定对每一组数据,它都装着 0.90.9 的后验概率。设想重复做很多次实验:每次先从先验里抽一个真值,再按似然生成数据。真值落进区域的比例是

Pr⁡[θ∈R(y)]=∫ ⁣ ⁣∫p(θ) p(y∣θ) 1[θ∈R(y)] dθ dy.\Pr[\theta\in R(y)]=\int\!\!\int p(\theta)\,p(y\mid\theta)\,\mathbf 1[\theta\in R(y)]\,\mathrm d\theta\,\mathrm dy .

由贝叶斯定理,p(θ) p(y∣θ)p(\theta)\,p(y\mid\theta) 可以改写成 p(y) p(θ∣y)p(y)\,p(\theta\mid y)。这样里层对 θ\theta 的积分正好是区域的后验概率,对每个 yy 都等于 0.90.9:

Pr⁡[θ∈R(y)]=∫p(y)[∫R(y)p(θ∣y) dθ]dy=∫p(y) (0.9) dy=0.9.\Pr[\theta\in R(y)]=\int p(y)\left[\int_{R(y)}p(\theta\mid y)\,\mathrm d\theta\right]\mathrm dy=\int p(y)\,(0.9)\,\mathrm dy=0.9 .

这个结论靠两条假设撑着:真值是从后验所用的同一个先验里抽的,数据是按同一个似然生成的。Hermans 等人把左边这个比例叫作期望覆盖率,并拿它作为检验近似后验的主要指标。Hermans 等,2022,定义 2.1 Talts 等人也从同一个恒等式出发:把后验对数据求平均,得到的就是先验。Talts 等,2018,第 2 节

真值固定时的覆盖率

把真值固定住,只让噪声重来。在例题里,收缩会把每次的估计都往零拉五分之一,所以 μ−θ\mu-\theta 服从均值为 −0.2 θ-0.2\,\theta、标准差为 0.40.4 的正态分布。90% 区间的半宽是 0.7360.736,于是固定 θ\theta 时的覆盖率为

C(θ)=Φ ⁣(0.736+0.2 θ0.4)−Φ ⁣(−0.736+0.2 θ0.4),C(\theta)=\Phi\!\left(\frac{0.736+0.2\,\theta}{0.4}\right)-\Phi\!\left(\frac{-0.736+0.2\,\theta}{0.4}\right),

其中 Φ\Phi 是标准正态分布的累积分布函数。

表 2.1 真值固定时,精确 90% 区间的覆盖率。
真值该真值处的覆盖率
θ=0\theta=00.9340.934
θ=1\theta=10.9000.900
θ=2\theta=20.7970.797
θ=3\theta=30.6320.632

靠近先验中心时,精确区间罩住真值的次数偏多;离得远了就偏少。用标准正态先验给这些值加权再积分,结果恰好回到 0.9000.900。精确后验的校准是平均意义上的,不是每个源都成立。

Lab 在二维里展示了同一件事。“微弱短促的振荡”这个预设的源靠近先验方框的边缘。在这个固定的源上生成 400 条合成记录,精确网格后验的 90% 区域罩住源的比例是 0.8600.860,95% 区间为 0.8230.823 到 0.8910.891。

Lab 任务

打开 神经后验 Lab。

  1. 先预测再观察:保持训练条件,过一分钟后两条累计覆盖率曲线应该停在哪里?用记录条数解释它们开头为什么晃得厉害。
  2. 改一个条件:选“微弱短促的振荡”。曲线稳定之前,参照表 2.1 预测精确后验的覆盖率会高于还是低于 0.9。
  3. 比较:在参数平面里把白色标记拖向先验方框的中心,再拖向一个角,看精确 90% 等高线在方框边缘怎样变形。

练习

  1. 先验不变、s=1s=1,至少要测几次,后验标准差才能降到 0.20.2 以下?
  2. 同事给出一个 90% 区间,并说“对这个源来说,真值有九成把握在里面”。什么条件下这种说法站得住?
  3. 网格做法里,为什么格子必须远比后验窄?如果不够窄,90% 区域会怎样?
答案
  1. 方差是 v=1/(1+n)v=1/(1+n)。要求 v<0.04v<0.04,即 1+n>251+n>25,所以 n≥25n\ge25。这时后验标准差降到 1/26≃0.1961/\sqrt{26}\simeq0.196。
  2. 这句话说的是给定这组数据后的后验概率。只要先验和似然如实描述了源和数据是怎样产生的,它就成立。由它推出的频率说法,是对从先验里抽出的源取平均;具体到某一个固定的源,频率可以不同,表 2.1 就是例子。
  3. 区域是用整个格子拼起来的。格子太宽,概率就一大块一大块地加,区域会超过 0.90.9,边缘也只能落在格子边界上。后验很窄时,甚至可能夹在两个格子中心之间,被严重失真。例题里 0.010.01 的格子约为后验宽度的四十五分之一,所以只多出 0.0020.002。

来源

  1. Hermans 等,2022,定义 2.1
  2. Talts 等,2018,第 2 节

继续阅读

这一页直接连着哪些内容

从模拟里学到的后验能不能信 · 阅读路径

从后验到校准,再到模型失配

  1. 文章神经网络给出的漂亮后验,怎样证明可以相信
  2. 当前页面后验分布与 90% 可信区域到底保证什么
  3. 文章用秩统计和覆盖率检查后验是否校准
  4. 文章用重要性权重和残差检验找出错误的模拟器
  5. 文章动手复算振铃后验的校准检验
  6. 文章读懂 DINGO 论文里的 P–P 图、散度和采样效率
这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策