返回博客

贝叶斯实验选点为何需要稳定的 LogEI?

从高斯积分推导 EI 的负尾相消、下溢与稳定对数表达,执行可复现数值对照,并明确批量近似、噪声、预算和科学实验验证的边界。

一个自动实验系统有两个优化问题:怎样从实验数据建立后验,以及怎样根据后验选择下一次实验。第二个问题看起来只是对候选打分,实际上也可能需要一次非凸优化。若打分值与梯度已经数值归零,更好的预测模型未必能让选点程序继续前进。

本文解读 Ament 等人的 Unexpected Improvements to Expected Improvement for Bayesian Optimization,正式发表于 NeurIPS 2023,预印本首次公开于 2023 年 10 月 31 日,本文阅读的是 2025 年 1 月 7 日 v3。它不是 2026 年的新发布。我们聚焦解析单点 LogEI:在不更换预测后验的情况下,如何避免 Expected Improvement(EI,期望改进)的数值失真。下面的推导与数值检验围绕这个问题展开,不能替代真实科学实验的收益验证。

1. 最小基线:同一后验,选择一个实验

设连续实验条件为 \(x\in\mathcal X\subseteq\mathbb R^d\),希望最大化经过标准化、无量纲的效用 \(f(x)\)。先限定为单目标、单次选择一个点、无噪声观测。已有数据 \(\mathcal D\) 下,候选的潜在函数值具有高斯后验:

\[f(x)\mid\mathcal D\sim\mathcal N\!\left(\mu(x),\sigma^2(x)\right).\]

这里 \(\mu\) 是均值,\(\sigma\) 是潜在函数的不确定性标准差,不是直接把下一次观测的测量噪声加进去。\(b\) 是本轮固定的最好已知函数值;在内层选点时,不随着候选位置变化。\(b,\mu,\sigma\) 必须使用同一输出尺度。若效用尚有物理单位,应先固定一个与候选无关的标准单位再取对数,不能让单位选择改变排序。

最简单的贪心方案选最大后验均值,可能忽略有不确定性的候选。EI 用“超出当前最好值的正部”的后验期望来打分。在这组限定条件下,它表示下一次评价带来的预期最好值增量;它不是一般的信息增益,也不是科研发现概率。Frazier 的贝叶斯优化教程提供了这一基线和噪声等扩展的背景。

\[\begin{aligned}\mathrm{EI}(x)&=\mathbb E\!\left[(f(x)-b)_+\mid\mathcal D\right],\\x_{\mathrm{next}}&\in\operatorname*{arg\,max}_{x\in\mathcal X}\mathrm{EI}(x).\end{aligned}\]

在连续条件空间中,\(\operatorname{argmax}\) 本身通常不能直接解析求出,因此需要初始候选、多个重启与局部优化。如果是一个有限的分子候选库,则可以枚举打分,但数值归零仍可能造成大量假平局。本文讨论的故障出现在这一步,还没有增加新实验数据。

2. 从高斯积分推到 EI 与梯度

令 \(Z\sim\mathcal N(0,1)\),写成 \(f=\mu+\sigma Z\),并定义 \(z=(\mu-b)/\sigma\)。以下先取 \(\sigma>0\)。\(\phi\) 与 \(\Phi\) 分别是标准正态密度和分布函数。把超过阈值的区域单独积分:

\[\mathrm{EI}(x)=\sigma\int_{-z}^{\infty}(z+t)\phi(t)\,\mathrm dt.\]

积分分成常数项和 \(t\phi(t)\) 项,使用 \(\phi'(t)=-t\phi(t)\) 即得:

\[\begin{aligned}h(z)&=\phi(z)+z\Phi(z),\qquad \mathrm{EI}=\sigma h(z),\\h'(z)&=\Phi(z),\\\frac{\partial\mathrm{EI}}{\partial\mu}&=\Phi(z),\qquad\frac{\partial\mathrm{EI}}{\partial\sigma}=\phi(z).\end{aligned}\]

两个偏导有清楚的含义:在另一量固定时,提高均值或增加不确定性都能增加 EI。但最终对实验条件的梯度还要经过模型映射:

\[\begin{aligned}\nabla_x\mathrm{EI}&=\Phi(z)\nabla_x\mu+\phi(z)\nabla_x\sigma,\\\nabla_x\log\mathrm{EI}&=\frac{\nabla_x\mathrm{EI}}{\mathrm{EI}}.\end{aligned}\]

这里需要区分“EI 的值很小”与“对 \(x\) 的真实梯度为零”。即使 \(\sigma>0\),\(\nabla_x\mu\) 和 \(\nabla_x\sigma\) 也可能为零或互相抵消。LogEI 不能消除真实驻点,也不保证找到全局最优。相反,当这些变化本来存在、只是数值表达把它们压成零时,稳定计算才有可修复的对象。

3. 为什么负尾部特别容易算坏?

若 \(z=-a\),\(a>0\),模型认为候选均值比最好值低了 \(a\) 个后验标准差。此时 \(h(-a)=\phi(a)-a\Phi(-a)\):两项非常接近,却都远大于最终差值。误差有两层来源:相减会损失有效位,指数项又可能超出浮点数的可表示范围。仅增加重启次数不能保证恢复已经丢失的数值信息。

把同一个积分换成正部距离 \(s\),再设 \(u=as\),能看得更直接:

\[\begin{aligned}h(-a)&=\phi(a)\int_0^\infty s\,e^{-as-s^2/2}\,\mathrm ds\\&=\frac{\phi(a)}{a^2}\int_0^\infty u\,e^{-u-u^2/(2a^2)}\,\mathrm du.\end{aligned}\]

这个式子没有两个几乎相等的数相减。对 \(a\to\infty\),展开积分中的第二个指数;利用 \(\int_0^\infty u^k e^{-u}\,du=k!\),得到渐近展开:

\[h(-a)\sim\frac{\phi(a)}{a^2}\left(1-\frac{3}{a^2}+\frac{15}{a^4}-\cdots\right).\]

所以 EI 大致包含 \(e^{-a^2/2}/a^2\) 的尺度,极小是数学对象本身的性质。LogEI 的目的不是声称这些候选具有很高改进概率,而是在数值上保留它们之间的差异和可用导数。相应的对数尺度为:

\[\log\mathrm{EI}=\log\sigma-\frac{a^2}{2}-\frac12\log(2\pi)-2\log a+O(a^{-2}).\]

这只是负尾部的渐近式,不应在所有 \(z\) 上替代精确计算。特别是 \(z\) 接近零时,直接套用 \(\log|z|\) 显然不合适。实际实现需要按区域选择稳定的表达。

4. 稳定 LogEI 需要在取指数之前改写

当 \(\sigma>0\) 时,EI 严格为正,数学上的对数单调性给出:

\[\begin{aligned}\mathrm{LogEI}(x)&=\log\sigma(x)+\log h(z(x)),\\\operatorname*{arg\,max}_{x}\mathrm{EI}(x)&=\operatorname*{arg\,max}_{x}\log\mathrm{EI}(x).\end{aligned}\]

这说的是同一后验、同一候选域中的全局最优点集合。有限精度、局部搜索、停止阈值与重启策略仍可能让两种实现选择不同的点。写成 log(max(EI, tiny)) 也没有解决问题:截断区域变成常数,原本的排序和梯度仍然丢失。

固定提交的 BoTorch 解析实现采用三个区域:\(z>-1\) 时直接计算;较负时使用缩放互补误差函数和稳定的差值对数;极负时采用主导渐近项。中间区域可以写为:

\[\begin{aligned}w&=\log\!\left(|z|\operatorname{erfcx}\!\left(\frac{-z}{\sqrt2}\right)\right)+\frac12\log\!\left(\frac\pi2\right),\\\log h(z)&=-\frac{z^2}{2}-\frac12\log(2\pi)+\operatorname{log1mexp}(w).\end{aligned}\]

其中 \(\operatorname{erfcx}(v)=e^{v^2}\operatorname{erfc}(v)\),需使用真正稳定的特殊函数,例如 SciPy 的 erfcx,不能先让 erfc 下溢再乘指数。log1mexp 使用 log1p 或 expm1 来避免 \(w\) 接近零时再发生相消。到了更极端的负尾,\(w\) 本身也会接近零到超出分辨能力,因此仍需要第三分支;分支阈值与 dtype 有关。

下面仅示意输入输出关系,未执行模型拟合或自动微分。单输出模型的候选张量为 \((R,1,d)\),\(R\) 个候选、每组一个点;后验均值与方差压去两个单例维度后均为 \((R,)\):

posterior = model.posterior(X, observation_noise=False)
mu = posterior.mean.squeeze(-1).squeeze(-1)
sigma = posterior.variance.squeeze(-1).squeeze(-1).sqrt()
z = (mu - b) / sigma
score = log(sigma) + stable_log_h(z)
x_next = multistart_maximize(score, bounds, restarts, budget)

不要让均值、标准差和最好值的广播偷偷多出一维。向量化代码还应屏蔽未选中分支的危险输入,避免非法值污染自动微分。\(\sigma=0\) 的退化点需单独按 \(\max(\mu-b,0)\) 的极限处理;在无噪声且已评价的点上,该值通常为零。把所有标准差强行增大,不是本文所说的数值等价改写。

原创解析单点实验选点机制示意,非实验曲线或测量数据。两条替代路径共享同一数据、同一高斯后验的均值与标准差,且本轮最好值固定。普通 EI 直接计算在负尾可能因相消和下溢得到零值,数值梯度失去有效信号。稳定 LogEI 从一开始稳定计算 log-h,而非对已经为零的 EI 取对数,以保留相对数值和搜索方向;这不保证梯度处处非零。在标准差为正、全局精确优化的条件下,两者理论最优点集合相同,但有限精度或局部优化可能选出不同实验点。选出的候选进入物理实验,新观测加入数据集后更新后验与最好值,形成下一轮闭环。LogEI 的数值实现不会改变训练后验。仍须检验后验校准、候选可行性、优化器与实验条件;数值稳定不证明科学发现或湿实验收益。
原创机制示意,非实验曲线:普通 EI 与稳定 LogEI 共享同一后验和本轮固定最好值。稳定计算可避开负尾相消与下溢造成的数值失真;正标准差下理论最优点集合相同,但实际数值搜索仍可选出不同点。新实验观测才驱动后验更新。后验校准、可行性与实验收益需要独立检验。

5. 实际检验:直接 EI 归零,对数仍有分辨率

本节执行了独立的数值计算,未训练 GP、未运行 BoTorch 自动微分、未执行完整 BO 或物理实验。固定 \(\sigma=1\),给定八个 \(z\) 值;直接 float64 基线使用 \(\Phi(z)=\tfrac12\operatorname{erfc}(-z/\sqrt2)\),避免用 1 + erf 人为制造额外的 CDF 相消。

稳定路径是原创的标量参考实现,使用 SciPy 特殊函数和分支式,按官方源码核对思想,但不声称逐位复现其 Torch 实现。高精度参照以 mpmath 计算高斯闭式,并在负尾用上面的正积分独立核对,增加精度复算以检查稳定性。依赖、运行命令和完整检查见 可下载复现脚本。

以下结果已在本机运行,不是论文结果的转录:CPython 3.12.14,SciPy 1.16.2,mpmath 1.3.0,NumPy 2.3.5,macOS arm64,53 位二进制尾数。主表固定 \(\sigma=1\),分别检查 \(z\in\{1,0,-1,-5,-10,-20,-40,-100\}\)。高精度参照以 80 与 160 位十进制目标精度复算,内部各增加 40 位保护精度;负尾的正积分与闭式交叉核对。各项均通过脚本阈值。这是高精度复算的一致性检验,不是区间算术提供的严格误差证明。

主表中稳定对数值与“160 位参照转成双精度”的最大绝对差为 \(1.82\times10^{-12}\);固定 \(\sigma,b\) 的均值偏导与参照的最大相对差为 \(1.51\times10^{-12}\)。双精度中心差分另以步长 \(10^{-5}\max(1,|z|)\) 核对标量对数值,最大相对差为 \(1.30\times10^{-11}\)。某些条目与舍入参照的差为零,不能解释为无限精度的精确相等。额外检查覆盖极负分支、正仿射尺度变换、排序及零标准差的显式拒绝;代码没有拟合 GP、运行选点优化、执行自动微分或测量 GPU 延迟。

表中导数是 \(\partial\log\mathrm{EI}/\partial\mu\),保持 \(\sigma,b\) 固定;不是对实验条件的完整 \(\nabla_x\log\mathrm{EI}\)。数值只为显示而舍入;完整精度和所有断言由复现脚本输出。

本机标量数值对照,固定标准差为 1;不是科学实验数据。

\(z\)普通双精度 EI稳定 log EI\(\partial_\mu\log\mathrm{EI}\)
11.0833154710.08002621884930.776638725202
00.3989422804-0.9189385332051.25331413732
-10.08331547059-2.485121025711.90427123333
-55.346165534e-08-16.74430116275.36181624129
-107.474560255e-25-55.553122036110.1943830334
-201.370012495e-90-206.91783850920.0992628111
-400-808.29856835740.0499066576
-1000-5010.1295788100.019994004

两条路径比较的是同一个数学 EI,不是两个模型。表中的零说明当前直接表达不能分辨该值,不说明改进事件概率严格为零。稳定的对数值也不能转换成新增材料发现、药物活性提升或更低实验成本;这一步只验证计算表达。

若需要检查自动微分,应另做完整模型条件下的梯度与方向导数检验:固定后验、共同初始化和重启预算,用高精度参照比较候选排序;在远离分支边界的适当尺度下做有限差分,再检查实际选点。这些是建议的后续测试,没有把本节标量检验扩写成未执行的训练实验。

6. 批量、噪声和约束:哪里不再是严格等价?

单点解析结论不能原样套给一批实验。设 \(X=(x_1,\ldots,x_q)\),应从联合后验采样以保留候选间相关性,批量 EI 是:

\[\begin{aligned}\mathrm{qEI}(X)&=\mathbb E\!\left[\max_{1\le j\le q}(f(x_j)-b)_+\right],\\\widehat{\mathrm{qEI}}(X)&=\frac1S\sum_{s=1}^S\max_{1\le j\le q}(f^{(s)}(x_j)-b)_+.\end{aligned}\]

使用 \(S\) 个固定联合样本的蒙特卡洛估计包含 \(1/S\)。若某一组样本没有任何候选超过 \(b\),正部与最大值会使样本层面梯度真的为零;这里不只是浮点下溢。论文与 BoTorch 的 qLogEI 实现因此还引入平滑近似。它们与单点解析 LogEI 的严格单调变换不同,温度、尾部近似、样本数和批量大小均需要记录。

\[\log\!\left(\frac1S\sum_{s=1}^S\widetilde U_s(X)\right)=\operatorname{logsumexp}_{s}\!\left(\log\widetilde U_s(X)\right)-\log S.\]

这里 \(\widetilde U_s(X)>0\) 是平滑后的样本改进效用,式子说明如何稳定计算样本平均的对数,不是全部 qLogEI 实现。不能将不同候选独立抽样后声称获得正确联合批量价值,也不能用“更大批量”掩盖更多真实实验预算。

有观测噪声时,最好的一次观测可能只是幸运噪声;将它直接当作确定的 \(b\) 会改变决策问题。应考虑潜在基线的不确定性、重复测量与 noisy EI 类方法,并核对模型输出与噪声约定。约束情形同样不能只检查箱形 bounds:已知硬约束应执行,未知可行性要建模;仅在相应条件独立假设成立时,EI 与可行概率的简单乘积才有依据。数值取对数不会自动满足实验安全、耗材或跨批量资源约束。

7. 怎么验收一个科学实验闭环?

计算预算和实验预算需要分别核算。对标准稠密 GP,\(n\) 条数据的一次 Cholesky 分解通常有 \(O(n^3)\) 时间与 \(O(n^2)\) 存储;已有分解后,单点方差的三角求解通常为 \(O(n^2)\)。稳定的解析 log-h 增加常数级标量运算,不改变这些阶数,但这不是墙钟加速保证。批量样本上的取正部与最大值为 \(O(Sq)\),联合采样及模型求值另算,不能把它写成整个算法的成本。

建议按三个层次比较。第一层冻结后验,核对值、导数、候选排序与数值边界;第二层在可核验的离线目标或模拟器上,固定初始数据、真实评价次数、候选可行域、模型拟合设置、重启和内层求值预算,观察最终最好值与失败率;第三层才是前瞻科学实验,把建议交给实验系统并独立验收结果。若改了模型、噪声假设或筛选规则,就不能把全部收益归给 LogEI。

科学数据评估还需检查设计泄漏:用完整实验表训练代理,再在同一个代理上搜索,只能说明对该代理的优化;若特征、核参数、标准化和候选筛选使用了后来才获得的结果,就不能称为可部署的历史回放。按时间或独立批次冻结可用信息,保留失败实验、测量批次和重复样本。前瞻比较应共享起始知识,随机分配或认真处理设备、批次与条件差异,并报告累计合格实验、耗材、时间和最终复测,而非只画最优曲线。

验收重点是链条是否成立:数值更准确,是否让内层选点更可靠;选点更可靠,是否在可信的后验下提高决策质量;决策质量提高,是否在相同资源下产生可复测的科学结果。每一步都有独立的失败可能。本文的实测只覆盖第一层的标量计算,另外两层是检验方案。

8. 稳定计算修复不了哪些问题?

如果后验把分布外候选错误地判为高置信低价值,LogEI 可以更忠实地优化这个错误判断,却不会凭空恢复科学知识。若目标代理与真实实验脱节、测量漂移未建模、可行性条件遗漏或内层优化落入局部驻点,数值稳定也不构成解答。增益接近零还可能是任务已无足够剩余价值,不能只因 LogEI 能表示极小数就持续消耗实验预算。

应预先设置停止或改模条件:稳定路径的参照误差是否合格,可信候选的预计增量是否仍值得成本,独立复测是否支持后验,固定预算下是否超过共同基线。一个候选 EI 极小,与整个可行域没有值得探索的候选,是两种不同判断。

LogEI 对 AI4S 的启发,是在评价“智能选点策略”之前,先确认计算机真正执行了所声称的策略。稳定的采集函数是一段可靠的决策实现;新的实验观测、可信的不确定性与可复测的结果,才让这个实现成为科学闭环。

引用元数据核验使用 citation-management 工具;其软件出处见 Scientific Agent Skills。该工具引用不作为 LogEI 技术或实验收益的证据。

参考资料

  1. Ament, Daulton, Eriksson, Balandat and Bakshy — Unexpected Improvements to Expected Improvement for Bayesian Optimization (NeurIPS 2023; first 2023-10-31; v3 2025-01-07) · 2023-10-31 · 查阅 2026-10-08
  2. Unexpected Improvements to Expected Improvement — NeurIPS 2023 proceedings, 36:20577–20612 · 查阅 2026-10-08
  3. Frazier — A Tutorial on Bayesian Optimization · 2018-07-08 · 查阅 2026-10-08
  4. BoTorch — analytic LogExpectedImprovement and stable log-h (pinned commit da00e04015c0118f1b9383f32cab17bdcc0944ff) · 查阅 2026-10-08
  5. BoTorch — qLogEI and qLogNEI implementation (same pinned commit) · 查阅 2026-10-08
  6. BoTorch — safe_math, log1mexp (same pinned commit) · 查阅 2026-10-08
  7. SciPy 1.16.2 — scipy.special.erfcx · 查阅 2026-10-08
  8. Kassis, Agarwal, He, Patel and Brueckner — Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents (reference-metadata tooling) · 2026-08-30 · 查阅 2026-10-08
利友诚

关于作者

利友诚 · Youcheng Li

北京大学智能学院人工智能专业博士研究生,导师为王立威教授;Isoplex Intelligence(壹索智能)联合创始人兼 CTO。

研究关注医疗人工智能、生成式基础模型、诊断推理与科学智能体。以第一作者或共同第一作者身份在 Nature Biomedical Engineering、Scientific Data、KDD 和 PLOS Computational Biology 发表研究。