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

用重要性权重和残差检验找出错误的模拟器

Sandbox Physics ·

在模拟上做校准,检验的是神经后验和它的模拟器合不合,不检验模拟器和数据合不合。另有两项检查能补上一部分空缺。重要性权重在手头这一条记录上,把网络和假定模型下的精确后验对比,网络力不从心时就会露馅。残差检验看数据减去最佳拟合信号后,剩下的部分像不像假定的噪声,能抓到模型本身的一些错误。可要是模型漏掉的信号能靠挪动参数被拟合吸收掉,两项检查都会放过它。

本章接着 用秩统计和覆盖率检查后验是否校准。新用到的有:换一个分布求期望、卡方分布、一阶泰勒展开。下面所有数字都来自 Lab 的模型,所以先把模型交代清楚。

教学模型

记录是合成的白化应变:128 个采样 dkd_k,采样时刻 tk=k/(4096 Hz)t_k=k/(4096\,\mathrm{Hz}),共 31.25 ms31.25\,\mathrm{ms}。假定的信号是一个振幅和相位都固定的阻尼正弦:

hk(f,τ)=A e−tk/τcos⁡(2πftk+φ),A=1,  φ=0,h_k(f,\tau)=A\,\mathrm e^{-t_k/\tau}\cos(2\pi f t_k+\varphi),\qquad A=1,\;\varphi=0,

频率 ff 在 200200 到 300 Hz300\,\mathrm{Hz} 之间均匀分布,衰减时间 τ\tau 在 22 到 10 ms10\,\mathrm{ms} 之间均匀分布。这沿用 Berti、Cardoso 与 Will 的写法;按他们的品质因子 Q=πfτQ=\pi f\tau,Lab 默认的源(250 Hz250\,\mathrm{Hz}、6 ms6\,\mathrm{ms})约为 4.74.7。Berti、Cardoso 与 Will,2006,第二节 假定噪声是白色高斯噪声,每个采样的标准差 σ\sigma 已知,于是

ln⁡p(d∣f,τ)=−12σ2∑k=0127[dk−hk(f,τ)]2+const.\ln p(d\mid f,\tau)=-\frac{1}{2\sigma^2}\sum_{k=0}^{127}\bigl[d_k-h_k(f,\tau)\bigr]^2+\text{const}.

振幅和噪声用的是同一套白化单位。σ=0.2\sigma=0.2 时,默认信号的最优信噪比 ∑khk2/σ≃13.0\sqrt{\textstyle\sum_k h_k^2}/\sigma\simeq13.0。网络只见过从这个模型生成、σ\sigma 在 0.150.15 到 0.60.6 之间的记录。

重要性权重:拿网络和精确后验比

设网络对 θ=(f,τ)\theta=(f,\tau) 给出的后验是 q(θ∣d)q(\theta\mid d),先验是 π(θ)\pi(\theta)。精确后验下的任何期望,都能改写成 qq 下的期望:

Ep[g]=∫g(θ) π(θ) p(d∣θ) dθ∫π(θ) p(d∣θ) dθ=Eq[g w]Eq[w],w(θ)=π(θ) p(d∣θ)q(θ∣d).\mathbb E_{p}[g]=\frac{\int g(\theta)\,\pi(\theta)\,p(d\mid\theta)\,\mathrm d\theta}{\int\pi(\theta)\,p(d\mid\theta)\,\mathrm d\theta} =\frac{\mathbb E_{q}[g\,w]}{\mathbb E_{q}[w]},\qquad w(\theta)=\frac{\pi(\theta)\,p(d\mid\theta)}{q(\theta\mid d)} .

从网络里抽 nn 个样本 θi\theta_i,算出各自的权重 wiw_i,再用平均值代替期望。qq 等于精确后验时,所有权重都等于同一个数 p(d)p(d)。qq 漏掉一部分后验时,落在漏掉区域里的少数样本会拿到极大的权重。采样效率

ϵ=(∑iwi)2n∑iwi2\epsilon=\frac{\bigl(\sum_i w_i\bigr)^2}{n\sum_i w_i^2}

量的就是这件事:权重全相等时为一,一个样本独大时接近 1/n1/n。Dax 等人在引力波网络 DINGO 上用的就是这个量,并把它偏低看作数据超出网络所学范围的信号。Dax 等,2023

样本很多时,ϵ\epsilon 趋于 Eq[w]2/Eq[w2]\mathbb E_q[w]^2/\mathbb E_q[w^2]。一个一维的例子能看出它掉得有多快。设精确后验是标准正态,网络给出中心正确、标准差为 kk 的正态分布,则

Eq[w2]Eq[w]2=∫p(θ)2q(θ) dθ=k22k2−1.\frac{\mathbb E_q[w^2]}{\mathbb E_q[w]^2}=\int\frac{p(\theta)^2}{q(\theta)}\,\mathrm d\theta=\frac{k^2}{\sqrt{2k^2-1}} .

网络宽了 1.51.5 倍,ϵ→0.83\epsilon\to0.83;窄成 0.750.75 倍,ϵ→0.63\epsilon\to0.63。k≤1/2k\le1/\sqrt2 时积分发散,权重的方差是无穷大,有限次抽样算出的效率靠不住。提议分布偏窄,比偏宽危险得多。DINGO 训练时用一种倾向于盖住全部后验质量的损失函数,这是原因之一。

在 Lab 的模型里,从整个训练范围抽 2000 条记录,网络效率的中位数是 0.9660.966。σ\sigma 在 0.060.06 到 0.10.1 之间的记录比训练时见过的都干净,中位数跌到 0.0290.029。在这些记录上,400 次里网络的 90% 区域只罩住源 0.380.38,精确网格则罩住 0.890.89。

残差检验:拿数据检验模型

重要性权重用的是假定的似然,所以只能判断网络和假定模型合不合。要检验模型本身,得看拟合以后剩下什么。假定模型正确时,在真实参数处,缩放后的残差 (dk−hk)/σ(d_k-h_k)/\sigma 是 128 个独立的标准正态数。拟合两个参数大约吃掉两个自由度,所以最小值

χmin⁡2=min⁡f,τ1σ2∑k[dk−hk(f,τ)]2\chi^2_{\min}=\min_{f,\tau}\frac{1}{\sigma^2}\sum_{k}\bigl[d_k-h_k(f,\tau)\bigr]^2

近似服从自由度为 126126 的卡方分布,均值 126126,标准差 252≃15.9\sqrt{252}\simeq15.9。Lab 给出的是取到这么大或更大的概率,低于 0.010.01 就标出这条记录。

对模型正确的记录,这项检验标出了 0.9%0.9\%,和应有的 1%1\% 很接近。对 20 ms20\,\mathrm{ms} 处带毛刺的记录,它标出 96.5%96.5\%;真实噪声是假定 σ\sigma 的 1.51.5 倍时,全部标出。这两种情况下,重要性采样效率都远高于 0.10.1 的警戒线,中位数约为 0.700.70 和 0.960.96,因为网络和假定模型的精确后验仍然对得上。可精确后验自己也错了:它的 90% 区域只在 0.400.40 和 0.620.62 的记录里罩住了源。

漏掉一个小信号,答案会挪多少

设数据里多了一个模型没有的信号 δh\delta h。定义按噪声加权的内积 (a∣b)=∑kakbk/σ2(a\mid b)=\sum_k a_k b_k/\sigma^2,以及费希尔矩阵 Γij=(∂ih∣∂jh)\Gamma_{ij}=(\partial_i h\mid\partial_j h)。把最佳拟合对 δh\delta h 展开到一阶,Cutler 与 Vallisneri 得到参数的偏移

δθi=(Γ−1)ij (∂jh∣δh).\delta\theta^{i}=\bigl(\Gamma^{-1}\bigr)^{ij}\,\bigl(\partial_j h\mid\delta h\bigr).

Cutler 与 Vallisneri,2007,第二节 Γ\Gamma 和内积都按 1/σ21/\sigma^2 变化,所以偏移和噪声水平无关;后验宽度却按 σ\sigma 变化。同样大小的失配,信号越响,危害越大。

保存的网格检验在默认的源上加了一个示意性的第二模式,来检验这个公式。强度 0.020.02 时,公式预言频率偏移 0.0888 Hz0.0888\,\mathrm{Hz},网格算出 0.0882 Hz0.0882\,\mathrm{Hz};衰减时间预言 0.0208 ms0.0208\,\mathrm{ms},网格算出 0.0207 ms0.0207\,\mathrm{ms}。强度 0.30.3 时,把 σ\sigma 从 0.60.6 降到 0.050.05,频率偏移从 1.76 Hz1.76\,\mathrm{Hz} 趋向高信噪比下约 1.23 Hz1.23\,\mathrm{Hz} 的值,而以后验标准差为单位的偏移从 0.160.16 涨到 1.701.70。

两项检查都漏掉的失配

在 σ=0.2\sigma=0.2 的默认源里加一个强度 0.60.6 的第二模式。拟合靠挪动 ff 和 τ\tau 把它吸收了大半,残差看上去几乎就是噪声:400 条记录里检验只标出 6%6\%。网络仍然和假定模型的精确后验对得上,效率中位数是 0.980.98。可在名义 90% 的水平上,两种后验都只在大约 0.740.74 的记录里罩住了源。

表 4.1 哪项检查看得见哪种毛病。每行 400 条合成记录,名义 90% 区域。
记录网络覆盖率精确覆盖率效率中位数残差检验标出
训练范围内0.9050.9050.9000.9000.9900.9900.8%0.8\%
比训练数据更干净0.2850.2850.8930.8930.0200.0201.3%1.3\%
记录里的毛刺0.3730.3730.1130.1130.2920.292100%100\%
噪声比假定的强0.6480.6480.6500.6500.9800.980100%100\%
藏着的第二模式0.7350.7350.7430.7430.9830.9836.3%6.3\%

各行就是 Lab 里固定源的预设。毛刺那一行,效率也跌到中位数 0.290.29,因为这么强的毛刺让记录离训练时见过的样子太远;真正把它标出来的是残差检验。Talts 等人把这条边界说得很一般:校准不保证模型丰富到足以描述真相。Talts 等,2018,第 4 节 有研究专门拿故意写错的模拟器去考神经方法,试过的补救办法没有一种能在所有情况下防止失败。Cannon、Ward 与 Schmon,2022 要揭出这种情况,得换一个包含第二模式的更完整模型,给它算后验,也给它做校准。

Lab 任务

打开 神经后验 Lab。

  1. 预测:选“记录里的毛刺”,再把紫色手柄往下拖,让强度趋近零。效率和残差检验 p 值,哪个先恢复?
  2. 改一个条件:在“藏着的第二模式”里把强度从 0.60.6 调到 11。残差检验开始报警了吗?覆盖率的缺口变大了吗?
  3. 比较:把噪声带边缘拖到略低于 0.150.15,再拖到略高于 0.60.6。训练范围的哪一侧更伤网络?精确后验为什么不在乎?

练习

  1. 二十个重要性权重,除了一个是别的十倍,其余全相等。求 ϵ\epsilon。
  2. 残差检验为什么用 126126 个自由度,而不是 128128 个?
  3. 按上面的标度论证,如果线性公式成立,σ\sigma 减半时,以后验标准差为单位的频率偏移变成几倍?
答案
  1. 把权重写成十九个 11 和一个 1010。∑w=29\sum w=29,∑w2=19+100=119\sum w^2=19+100=119,所以 ϵ=292/(20×119)≃0.353\epsilon=29^2/(20\times119)\simeq0.353。一个离群值就让有用的样本少了将近三分之二。
  2. 最小值是对两个拟合参数取的。在最佳拟合附近,模型对参数近似线性时,每拟合一个参数,残差平方和就少一个自由度。
  3. 偏移本身不变,后验宽度减半,所以以后验标准差为单位的偏移翻倍。网格在 σ=0.3\sigma=0.3 和 0.150.15 处的值 0.290.29 和 0.570.57 与此相符。

来源

  1. Berti、Cardoso 与 Will,2006,第二节
  2. Dax 等,2023
  3. Cutler 与 Vallisneri,2007,第二节
  4. Talts 等,2018,第 4 节
  5. Cannon、Ward 与 Schmon,2022

继续阅读

这一页直接连着哪些内容

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

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

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

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