第4章 采集函数(Acquisition Function)入门:EI、PI、UCB 的原理
贝叶斯优化里,代理模型(比如高斯过程)负责猜——猜哪个点的效果可能好。但真正做决策的,是采集函数。它告诉算法:“嘿,下一个该试哪个参数组合了。”
我做质控参数调优时,最常打交道的三个采集函数,就是 EI、PI 和 UCB。这三者其实干的是同一件事:平衡“探索”和“利用”。
说白了,探索就是去那些我们还没怎么测过的地方看看,利用就是守着当前已知的最优参数附近使劲挖。每个采集函数对这两者的权衡方式不一样。
核心一句话:采集函数 = 在当前代理模型下,评估每个候选点“值得一试”的程度。
4.1 概率提升(PI — Probability of Improvement)
PI 的逻辑最简单。它只问一个问题:“这个参数组合,比我目前见过的最好结果更好的概率有多大?”
公式长这样:
PI(x) = Φ( (μ(x) - f* - ξ) / σ(x) )
其中 Φ 是标准正态分布的累积分布函数,μ(x) 是预测均值,σ(x) 是预测标准差,f* 是当前最优观测值,ξ 是一个很小的正数(我一般设 0.01)。
怎么理解?
如果某个点的预测均值 μ 远高于 f*,而且 σ 很小(模型对它很自信),那 PI 值就高。反过来,如果 σ 很大(不确定性高),即便 μ 比 f* 低,PI 也可能给个不错的分——因为它觉得“万一这地方的噪声往下拉了呢?”
PI 的特点:
- 计算极快,适合需要大量采样的场景。
- 对探索的鼓励相对较弱——除非你显式调大 ξ。
- 遇到过局部最优解时容易“自闭”。
4.2 期望提升(EI — Expected Improvement)
EI 比 PI 多算了一步。它不仅关心“能不能比当前好”,还关心“如果能,能好多少”。
公式:
EI(x) = (μ(x) - f* - ξ) * Φ(Z) + σ(x) * φ(Z)
其中 Z = (μ(x) - f* - ξ) / σ(x)
φ 是标准正态分布的概率密度函数。
你想想看:PI 只看概率,不看幅度。EI 则是“概率 × 提升量”的期望。这在实践中往往更合理。
EI 的优势:
- 自动平衡探索和利用,不需要手动调参。
- 对模型不确定性反应更细腻。
- 收敛性有理论保证——这在发论文或做严谨报告时很有说服力。
4.3 置信上界(UCB — Upper Confidence Bound)
UCB 的思路不太一样。它不直接算“提升”,而是给每个点算一个“乐观估计的上限”。
公式:
UCB(x) = μ(x) + κ * σ(x)
κ 是一个可调节的系数(通常 κ ≥ 0)。κ 越大,模型越倾向于探索不确定性高的区域。
为什么叫“置信上界”?因为 σ(x) 代表不确定性,μ(x) + κσ(x) 可以看作是预测值的“上限”。如果我们假设高斯过程给出的预测是合理的,那么真实值有大约 95% 的概率落在 μ ± 2σ 内。所以选 UCB 最大的点,相当于选“最乐观情况下表现最好”的点。
UCB 的调参关键:
- κ 就是你的探索欲望强度。κ = 0 时 UCB 退化为纯利用(只选均值最高的点)。
- κ 太大,容易乱跑,浪费很多实验次数在完全没意义的区域。
4.4 三者的横向对比
| 特性 | PI | EI | UCB |
|---|---|---|---|
| 核心思想 | 比当前最优好的概率 | 比当前最优好的期望幅度 | 预测值的乐观上限 |
| 探索倾向 | 低(默认) | 中(自动平衡) | 高(κ 控制) |
| 需调参数 | ξ(扰动项) | ξ(扰动项) | κ(探索系数) |
| 计算开销 | 极低 | 低 | 极低 |
| 适用阶段 | 精细调优期 | 全流程通用 | 早期探索期 |
| 风险 | 易局部过拟合 | 无明显短板 | κ 选错可能极差 |
4.5 实际项目中的选择策略
我不建议死守某一个采集函数。我自己在真实项目里,一般这样切换:
- 前 20% 的迭代:用 UCB,κ = 2~3。目的是快速覆盖参数空间的未知区域,建立全局代理模型。
- 中间 60% 的迭代:切到 EI。让模型自己平衡探索和利用,稳步逼近最优区域。
- 最后 20% 的迭代:转到 PI,加一个小 ξ(比如 0.01)。这时候最需要的是在最优区域附近精细挖掘,不需要再出去乱跑了。
4.6 采集函数的核心流程
为了让你更直观地理解这三者的关系,我画了一张流程图——它展示了贝叶斯优化中采集函数所处的位置和决策逻辑。
图中可以看得很清楚:代理模型构建完后,采集函数根据不同的公式策略(PI、EI、UCB),为每个候选点打一个分,然后算法挑出得分最高的那个点去做下一轮实验。
4.7 几个实用建议
- 不要只盯着一个采集函数用到底。我见过不少团队,选了一个采集函数就再也不换,结果优化效率一直上不去。
- 结合质控业务场景来选。如果你的测试成本极高(比如一次实验要烧掉几万块),UCB 的早期探索可能太浪费了,这时优先考虑 EI。
- κ 和 ξ 不是摆设。很多文献直接取固定值,但实际项目中我还是建议调一下——哪怕只是简单的网格搜索也会带来明显提升。
总结在实际项目中的体会:PI 适合最后冲刺,EI 适合稳扎稳打,UCB 适合开局撒网。把这三种武器配合好,贝叶斯优化在质控参数调优这件事上就能省下你至少 50% 的实验量。