想象你是一位勘探经验丰富的老矿工,接手了一片从未探明的荒原。地下可能藏着丰富的金矿,但你无法从地表看出任何苗头。每打一个钻孔要花十万元,而你的预算只够打三十个孔。你要做的,就是在这片荒原上,用最少的钻孔次数,找到含金量最高的那个点。这片荒原的地质结构就是“黑盒函数”——你只知道某个坐标挖下去的结果,却看不到全貌。贝叶斯优化,正是这位老矿工脑中的决策方法论:它用已有钻孔数据画出一张“经验地图”(高斯过程代理模型),再用一把“下钻决策尺”(采集函数)决定下一个钻孔打在哪里。EI、PI、UCB 是三种风格不同的决策尺,分别代表“算期望收益”“算成功概率”和“乐观估值”三种勘探哲学。这篇文章,我们就跟着老矿工一起,把这三把尺子逐一拆解,并学会用代码实现自己的“找矿系统”。

岗位关联

掌握采集函数设计,你就掌握了贝叶斯优化的核心决策引擎。无论是调大模型超参、设计新材料配方,还是筛选候选药物分子,这套方法都能帮你在评估代价高昂的优化任务中,用最少的试错找到最好的答案——这是 AI 工程落地中极具实用价值的核心技能。

目录
  1. 可视化演示
  2. 优化问题本质:看不见的矿脉
  3. 高斯过程代理:会发光的经验地图
  4. 探索利用平衡:三台钻机的派兵布阵
  5. EI采集函数:算期望收益的老派稳健派
  6. PI与UCB采集:概率派与乐观派的对决
  7. 采集函数对比:三把尺子怎么选
  8. 并行优化实战:三台钻机同时开工
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示贝叶斯优化中采集函数如何平衡探索与利用,对比EI、PI和UCB三种策略的采样决策差异。

本节配有交互动效(进入视口后自动加载,约 3KB)。

期望改进 EI 综合考虑改进量和概率,平衡探索与利用 EI(x)=(μ-f*)Φ(z)+σφ(z) EI是最常用的采集函数,适合大多数优化场景

优化问题本质:看不见的矿脉

金叔站在荒原边缘,手里只有一张地形图,图上没有任何矿脉信息。他知道的是:这片荒原地下一定藏着含金量高的富矿,但位置未知。每打一个钻孔需要十万元,预算只够三十次。更麻烦的是,他没法从地表特征推断地下情况——这正是黑盒函数的写照:你输入一个坐标 x,得到该点的含金量 f(x),但函数内部机制完全不可见,没有梯度,没有解析式。

在机器学习里,很多调优问题同样如此。比如大语言模型的微调:一组超参数(学习率、批大小、层数)就是坐标 x,训练一次模型就是打一个钻孔,而验证集准确率就是含金量。一次训练动辄花费数万美元,相当于一个昂贵的钻孔。这类问题的共同特征是:评估一次 f(x) 代价极高,且函数形态未知,我们只能通过有限的采样来猜测全局最优在哪里。

于是,金叔的目标可以用一句数学语言表达:找到让含金量最高的那个坐标。

金叔的策略很朴素:先用几个钻孔摸清大致情况,再逐步加密。但问题来了——钻孔该打在哪儿?凭什么判断?这就引出了他的第二件装备:经验地图。

x∗=arg⁡max⁡x∈Xf(x)x^{*} = \arg\max_{x \in \mathcal{X}} f(x)
这个公式是说:在所有可选的坐标里,找出让目标函数 f 最大的那个位置 x*。
  1. x\*最优解,也就是荒原上矿脉最富的那个坐标点。
    x∗x^{*}
  2. arg max取最大值时的自变量,即“让后面这个函数值最大的那个 x”。
    arg⁡max⁡\arg\max
  3. f(x)目标函数,即地下含金量分布——黑盒,只能靠钻孔得知。
    f(x)f(x)
  4. 搜索空间 X可选坐标的范围,对应荒原的边界,所有钻孔必须落在这片区域内。
    X\mathcal{X}

高斯过程代理:会发光的经验地图

金叔请来一位地质统计学家,帮他画一张“经验地图”。这张地图上不仅有每个位置预测的含金量(均值),还会用不同深浅的灰色标注“拿不准的程度”(方差)。已经钻过的地方,灰色很浅;离钻孔很远的地方,灰色浓得像雾。这张会随数据更新的经验地图,就是贝叶斯优化里的高斯过程代理模型。

高斯过程(GP)不直接回答“函数是多少”,而是回答“函数在每个点可能服从什么分布”。它给出的是对目标函数整体的概率描述:任何一个点 x 处的函数值 f(x),在给定观测数据 D 后,都服从一个正态分布。钻孔越多,地图上的雾就越淡,预测就越有底气。

有了这张经验地图,金叔每次看到地图,都能立刻知道“哪里大概富、哪里说不准”。但地图只会描述现状,不会告诉他下一钻该打哪儿。真正做决定的是采集函数。

p(f(x)∣D)=N(μ(x),  σ2(x))p(f(x) \mid D) = \mathcal{N}\left(\mu(x),\; \sigma^2(x)\right)
这个式子是说:对于任意位置 x,高斯过程根据已有数据 D,给出该处函数值的概率分布——期望是 μ(x),波动大小是 σ²(x)。
  1. p(f(x) | D)给定钻孔数据 D 后,位置 x 处含金量的概率分布。
    p(f(x)∣D)p(f(x) \mid D)
  2. N(……)正态分布,即“钟形曲线”,表示预测值集中在均值附近、以方差刻画不确定程度。
    N(μ, σ2)\mathcal{N}(\mu,\ \sigma^2)
  3. μ(x)后验均值,经验地图上对位置 x 含金量的最佳猜测。
    μ(x)\mu(x)
  4. σ²(x)后验方差,表示这个猜测的不确定程度——地图上的灰色雾区。
    σ2(x)\sigma^2(x)

探索利用平衡:三台钻机的派兵布阵

金叔手里还有一张王牌:无论地图怎么画,最终决定钻孔位置的是一把“下钻决策尺”,也就是采集函数 α(x)。这把尺子给地图上每个候选位置打一个分数,分数最高的点就是下一个钻孔位。它必须回答一个两难问题:是去已知富矿附近加密钻孔(利用),还是去地图上灰雾最浓的未知区域碰运气(探索)?

如果纯利用,金叔会在第一个小富矿周围反复钻孔,永远错过远处可能更大的金矿——对应着陷入局部最优。如果纯探索,预算很快就会在毫无收获的荒地上耗尽——对应着评估次数浪费。采集函数的作用,就是把这两股力量拧成一股绳。

不同的采集函数,就是对“探索与利用怎么配比”给出了不同答案。接下来我们看金叔工具箱里最经典的三把尺子。

xnext=arg⁡max⁡x  α(x∣Dt)x_{\text{next}} = \arg\max_{x} \; \alpha(x \mid D_t)
这个公式是说:下一钻的位置,是让采集函数 α 在当前数据 D_t 下达最大值的那个点。
  1. x_next金叔下一个要打钻孔的坐标。
    xnextx_{\text{next}}
  2. α(x | D_t)采集函数值,即当前位置在当前经验地图下的“下钻优先级分数”。
    α(x∣Dt)\alpha(x \mid D_t)
  3. D_t到第 t 轮为止已经收集到的所有钻孔数据。
    DtD_t
  4. arg max在搜索空间内找到使分数最大的那个位置,这就是决策规则。
    arg⁡max⁡x\arg\max_x

EI采集函数:算期望收益的老派稳健派

金叔的第一把尺子叫 EI(Expected Improvement,期望提升)。它的思考方式很像一个精明的商人:对每个候选点,先问两件事——“这里比现在最富的矿脉能多出多少收益?”以及“多出这么多收益的概率有多大?”两者相乘,就是这个点的期望收益。

设当前已知的最优含金量为 f*。在某点 x 处,改进量 I(x) 定义为“超出 f* 的部分”,没超出就记 0。EI 就是对这个改进量求期望:考虑了均值 μ(x) 提供的收益预测,也考虑了方差 σ(x) 带来的翻盘可能——方差大的地方虽然均值不高,但万一挖到富矿呢?这正是探索性的来源。

EI 因此是风险中性的:它既奖励均值高的富矿带(利用),也奖励方差大的未知区(探索),但两者都要折算成“期望收益”。金叔用这把尺子时,心态最稳。

EI(x)=(μ(x)−f∗−ξ)Φ(z)+σ(x)ϕ(z),z=μ(x)−f∗−ξσ(x)EI(x) = \left(\mu(x) - f^{*} - \xi\right) \Phi(z) + \sigma(x) \phi(z), \quad z = \frac{\mu(x) - f^{*} - \xi}{\sigma(x)}
这个公式把“可能的收益”乘以“达到收益的概率”再求和,得到期望提升;ξ 是一个小的探索鼓励项。
  1. μ(x) − f\* − ξ位置 x 的预测均值相对当前最优值的“预期超出量”,ξ 是额外加的一点探索余量。
    μ(x)−f∗−ξ\mu(x) - f^{*} - \xi
  2. z将预期超出量除以标准差得到的标准化分数,表示“超出多少个 σ”。
    z=μ(x)−f∗−ξσ(x)z = \frac{\mu(x) - f^{*} - \xi}{\sigma(x)}
  3. Φ(z)标准正态分布的累积分布函数(CDF),即“改进量大于 0 的概率”。
    Φ(z)\Phi(z)
  4. φ(z)标准正态分布的概率密度函数(PDF),刻画改进量在临界点附近的密度,对应不确定性带来的潜在收益。
    ϕ(z)\phi(z)

PI与UCB采集:概率派与乐观派的对决

金叔的第二把尺子叫 PI(Probability of Improvement,提升概率)。它的逻辑简单粗暴:只问一个问题——“这个点比当前最优值更好的概率有多大?”它不看提升多少,只看有没有概率。设定一个最小可接受阈值 ε 后,凡是超过当前最优值的概率越高,分数就越高。

PI(x)=Φ(μ(x)−f∗−εσ(x))PI(x) = \Phi\left(\frac{\mu(x) - f^{*} - \varepsilon}{\sigma(x)}\right)

1. f\* + ε:设定的目标门槛,只有超过它才算“成功”。

f∗+εf^{*} + \varepsilon

2. ε:阈值参数,调大它等于提高目标,间接鼓励去更有可能大幅提升的点。

ε\varepsilon

3. Φ(……):正态累积分布函数,把标准化分数转换成概率值。

Φ(⋅)\Phi(\cdot)

第三把尺子叫 UCB(Upper Confidence Bound,置信上界)。金叔说,这尺子像队伍里的乐观小伙子:永远盯着“最乐观的情形”。每个点的分数 = 均值的估计 + κ 倍的方差。κ 越大,越相信方差大的灰雾区里藏着惊喜。

UCB(x)=μ(x)+κ⋅σ(x)UCB(x) = \mu(x) + \kappa \cdot \sigma(x)

1. μ(x):经验地图对该点含金量的预测值。

μ(x)\mu(x)

2. σ(x):该点的标准差,不确定性越大值越大。

σ(x)\sigma(x)

3. κ:探索系数,κ=0 时只看均值(纯利用),κ 越大越偏向不确定性高的区域(纯探索)。

κ\kappa

PI 简单、计算快,但对“提升幅度”不敏感——可能不断挑选只比当前好一点点但概率最高的点。UCB 则天生乐观,只需调节 κ 就能控制探索幅度。两位选手各有脾气,金叔把它们一起放进工具箱。

采集函数对比:三把尺子怎么选

金叔的箱子里现在有三把尺子:EI 稳重、PI 直接、UCB 乐观。面对一片新荒原,该用哪一把?其实三把尺子有一个统一的出身:它们都是在代理模型的后验分布上,对某个“效用函数”求期望。不同的效用函数,造就了不同的决策风格。

EI 用的效用是“改进量本身”,所以它权衡了概率和幅度,最均衡;PI 用的效用是“是否超过阈值”的 0/1 判断,所以它只关心概率、不关心幅度;UCB 用的效用是“均值加 κ 倍标准差”的乐观估计,所以它天然爱吃“不确定性红利”。

实操中,预算少且噪声大时,EI 最稳;想快速迭代且能接受偶尔“扑空”时,PI 够快;对探索需求强烈、且能调好 κ 时,UCB 很顺手。没有绝对的最好,只有匹配地形和预算的最佳选择。金叔的经验是:先用均匀的初始钻孔摸清地形,再选一把尺子持续用下去。

α(x∣Dt)=Ef∼p(f∣Dt)[ u(f(x)) ]\alpha(x \mid D_t) = \mathbb{E}_{f \sim p(f \mid D_t)}\left[\, u(f(x)) \,\right]
这个式子揭示了采集函数的本质:对后验分布取样,用效用函数 u 评价每一种可能,再取期望。
  1. α(x | D_t)采集函数得分,即决策尺子在 x 处的读数。
    α(x∣Dt)\alpha(x \mid D_t)
  2. E[·]期望运算,对所有可能情况按概率求平均。
    E[⋅]\mathbb{E}[\cdot]
  3. f ∼ p(f | D_t)从高斯过程后验中采样的函数。
    f∼p(f∣Dt)f \sim p(f \mid D_t)
  4. u(f(x))效用函数,核心差异所在——EI、PI、UCB 各自定义了不同的 u。
    u(f(x))u(f(x))

并行优化实战:三台钻机同时开工

荒原太大,时间紧迫,金叔不能每次只等一个钻孔结果再决定下一个。他有三台钻机,想同时打三个孔。但问题来了:采集函数是基于现有地图算出来的,如果三个孔都选分数最高的位置,它们会挤在同一个山头——这相当于三台钻机打同一个洞,白白浪费。

解决思路是什么?金叔的做法是“分批决策、用幻觉占位”:先选第一个点,然后假设它的结果已知(用地图均值当作临时结果填入),更新地图后再选第二个点,以此类推。同时,对已经选入本批的点施加“惩罚”,降低它们附近的采集分数,让三个孔自动分散到不同区域。

这种方法在贝叶斯优化库中叫 q-EI 或 q-UCB 的近似实现,配合核函数惩罚项,可以在一次并行评估中覆盖多个有潜力的区域。金叔有了三台钻机后,勘探速度直接翻倍,而每一钻依然花在刀刃上。

f~(x^j)=μ(x^j)\tilde{f}(\hat{x}_j) = \mu(\hat{x}_j)
这个式子表示:对已经推荐但尚未评估的点,用后验均值 μ 作为临时“幻觉观测值”。
  1. x̂_j当前批次中第 j 个已推荐但还没评估的点。
    x^j\hat{x}_j
  2. μ(x̂_j)高斯过程对它的均值预测,用来临时当真实值用。
    μ(x^j)\mu(\hat{x}_j)
  3. f̃(……)虚构的观测值(幻觉),用于更新中间过程的地图,防止下一个点重复选它。
    f~(⋅)\tilde{f}(\cdot)

AI 应用场景

大模型超参数调优

阶段:模型训练与调优阶段。

解决的问题:大模型微调时,学习率、批大小、LoRA 秩等超参数组合空间巨大,一次训练成本可能高达数万美元。传统网格搜索需要训练几十次,预算根本无法承受;贝叶斯优化用高斯过程建模“超参数 → 验证集指标”的黑盒关系,配合 EI 采集函数,通常十几轮就能逼近最优组合。

具体案例:某团队微调 70B 参数大模型,将贝叶斯优化应用于学习率与 LoRA 配置搜索,用 14 次训练替代了原本计划的 60 次网格搜索,节省约 70% 的训练成本,同时最终准确率反超人工调参结果。

材料配方设计

阶段:实验设计与快速迭代阶段。

解决的问题:新型电池电解液配方涉及多个组分比例,每做一次实验需要合成样品、装配电池、循环测试,耗时数周且材料昂贵。贝叶斯优化把配方参数当作荒原坐标,把电池寿命当作含金量,用 UCB 采集函数在探索新配方和利用已知优良配方之间动态调整,极大减少实验次数。

具体案例:某新材料实验室用贝叶斯优化搜索锂离子电池电解液添加剂配比,在 32 次实验内找到了比传统正交实验(需要 200+ 次实验)更优的循环寿命配方,研发周期缩短近三分之二。

药物分子候选筛选

阶段:湿实验验证前的候选排序阶段。

解决的问题:药物研发中,候选分子合成与生物活性测试成本极高。贝叶斯优化以分子描述符为输入、以预测活性或结合亲和力为输出,通过 EI 采集函数动态选择“最值得合成验证”的分子——既避免沉迷于已知活性分子的微小改进,又不盲目探索完全陌生的化学空间。

具体案例:一家 AI 制药公司对某靶点的候选分子库进行贝叶斯优化筛选,用 80 次湿实验验证从一万个分子中锁定了苗头化合物,相比随机筛选节省约 90% 的实验成本,且命中率提升 5 倍。

Python 演示

python34 行
import numpy as npfrom sklearn.gaussian_process import GaussianProcessRegressorfrom sklearn.gaussian_process.kernels import ConstantKernel, RBFfrom scipy.stats import norm def target(x):    return np.sin(3.0 * x) + 0.5 * x x_obs = np.array([-1.8, -0.9, 0.3, 1.2]).reshape(-1, 1)y_obs = target(x_obs)kernel = ConstantKernel(1.0) * RBF(length_scale=1.0)gp = GaussianProcessRegressor(kernel=kernel, alpha=1e-4, normalize_y=True) def acq_ei(x, xi=0.01):    mu, sigma = gp.predict(x, return_std=True)    y_best = np.max(y_obs)    diff = mu - y_best - xi    with np.errstate(divide='ignore'):        z = diff / sigma    return diff * norm.cdf(z) + sigma * norm.pdf(z) def acq_ucb(x, beta=1.5):    mu, sigma = gp.predict(x, return_std=True)    return mu + beta * sigma for step in range(8):    gp.fit(x_obs, y_obs)    x_cand = np.linspace(-2.0, 2.0, 401).reshape(-1, 1)    score = acq_ei(x_cand)   # 换成 acq_ucb(x_cand) 可对比 UCB 策略    x_next = x_cand[np.argmax(score)]    y_next = target(x_next)    print("step=%d | x_next=%.3f | y_next=%.3f | best=%.3f" % (step, x_next[0], y_next, np.max(y_obs)))    x_obs = np.vstack([x_obs, x_next])    y_obs = np.append(y_obs, y_next)
目的:用高斯过程作为代理模型,实现 EI 采集函数驱动的贝叶斯优化循环,在 8 轮迭代中逐步逼近一维黑盒函数的最优值。
  1. gp = GaussianProcessRegressor(kernel=kernel, alpha=1e-4, normalize_y=True)创建高斯过程代理模型,相当于金叔那张会更新的经验地图。
  2. def acq_ei(x, xi=0.01):定义 EI 采集函数,xi 控制探索余量。
  3. mu, sigma = gp.predict(x, return_std=True)从代理模型获取每个候选点的均值与标准差,同时读取地图上的预测和雾区浓度。
  4. diff = mu - y_best - xi计算相对当前最优的预期超出量。
  5. return diff * norm.cdf(z) + sigma * norm.pdf(z)完整的 EI 公式:概率与幅度的乘积之和。
  6. gp.fit(x_obs, y_obs)用全部钻孔数据更新经验地图。
  7. score = acq_ei(x_cand) # 换成 acq_ucb(x_cand) 可对比 UCB 策略对 401 个候选点逐一打分。把这一行替换成 acq_ucb,就能体验乐观派的勘探风格。
  8. x_next = x_cand[np.argmax(score)]取分数最高的坐标作为下一次评估点,即金叔的下一钻。
  9. x_obs = np.vstack([x_obs, x_next])把新钻孔加入历史数据,地图将在下一轮更新。

常见误区

误区“采集函数值大的点,说明目标函数在这里的值也大。我想知道最优值是多少,直接看采集函数最高的位置对应的预测均值不就行了吗?”

正解采集函数不是对目标函数值的估计,而是对“下一个评估点价值”的评分。它把均值收益和不确定性收益加在一起,专门回答“下一步该在哪里钻孔”,而不是“这里到底有多富”。就像金叔的决策尺量的是“该不该打”的优先级,而不是直接报出含金量。要估计含金量,应该看高斯过程的预测均值或方差。

为何常见:采集函数曲线和目标函数曲线形状有时相似(均值部分主导时),初学者容易把两者混为一谈;实际上当方差很大时,采集函数会指向均值并不高的区域。

误区“EI 每次都选期望提升最大的点,那这个点应该就是全局最优点吧?直接去那里猛挖就行,为什么还要迭代?”

正解EI 选出的点是“在当前信息下最值得评估的点”,它是基于不完全的地图做出的决策,结果可能离真正的最优很远。贝叶斯优化是一个逐步逼近的过程:每钻一个孔,地图就更新一次,EI 的推荐也会随之改变。早期钻孔往往落在不确定性大的区域,后期才收敛到最优附近。把 EI 当“预言机”是对它的最大误解——它是“决策尺”,不是“探宝仪”。

为何常见:目标函数的真实形态是未知的,初始数据极少,任何基于少量数据的判断都有巨大误差;但小白的直觉会下意识把“算法选出的点”等同于“算法认为的最优点”。

误区“UCB 是均值加 β 倍方差,那 β 设大一点,探索得多一点,不是更容易发现全局最优吗?干脆设成 100,把每个角落都探一遍。”

正解β 过大意味着采集函数几乎完全由方差主导,每个点都像是“值得探索的新大陆”,结果退化为纯随机探索,把宝贵的评估次数浪费在明显贫瘠的区域。β 过小则退化为贪心利用,容易陷入局部最优。UCB 的价值恰恰在“两者兼顾”,需要根据预算和地形权衡 β——金叔会提醒你:探索不是漫无目的地乱挖,而是有方向地向着“可能富”的灰雾区迈进。

为何常见:人们容易把“更激进”理解为“更努力”;但贝叶斯优化的核心是“用最少的评估次数”,盲目增大 β 与这个目标背道而驰。

误区“并行贝叶斯优化很简单,开三个进程,每个进程独立跑一个贝叶斯优化,最后合并结果不就行了?”

正解独立跑多个贝叶斯优化会导致重复评估同一片有希望的区域——三台钻机全挤在同一座小山上。真正的并行(批量)贝叶斯优化需要在一次决策中同时考虑 q 个点,使用 q-EI、幻觉占位或核惩罚等手段,让这批点在空间上分散又有针对性。金叔的三台钻机之所以效率高,是因为它们各自被派往不同山头,而不是都去挖同一个洞。

为何常见:独立运行多个优化进程是工程上最容易想到的做法,但忽略了采集函数重复推荐相同区域的问题;人们往往只考虑并行带来的计算加速,而忽略了样本多样性对信息增益的贡献。

面试题

Q1. 下列哪类问题最适合用贝叶斯优化解决?

单选题 · easy

  • A.梯度可求且评估极快的凸优化
  • B.评估代价高昂的黑盒函数优化← 正确答案
  • C.需要穷举所有组合的网格搜索
  • D.无噪声且存在解析解的线性问题

答案:B。贝叶斯优化的设计初衷就是“少量评估找最优”:黑盒、评估贵、无梯度,这三者缺一不可。A 用传统梯度法更快,C 是穷举思路,D 不需要黑盒优化。好比金叔面对的是没有地形图、钻探又贵的荒原,而不是地质资料齐全的矿区。

Q2. 高斯过程作为代理模型时,输出形式是什么?

单选题 · easy

  • A.目标函数在每个点的点估计值
  • B.每个点一个均值和一个方差← 正确答案
  • C.目标函数在离散网格上的排序
  • D.当前最优点的精确函数值

答案:B。高斯过程为每个点给出一个正态分布,即均值加方差,既预测又给不确定性。这正是“经验地图 + 灰雾区”的来源。只输出点估计是普通回归模型,无法支持采集函数计算探索收益。

Q3. 在贝叶斯优化中,采集函数的主要作用是什么?

单选题 · easy

  • A.平衡探索与利用的关系← 正确答案
  • B.提升单次评估的数值精度
  • C.减少目标函数的固有噪声
  • D.替代高斯过程完成拟合

答案:A。采集函数把“均值高(利用)”和“方差大(探索)”综合成一个分数,指导下一轮评估点选择。它不提升精度、不去噪,也不替代代理模型。它只是金叔手里那把下钻决策尺。

Q4. 在 EI 采集函数中,Φ(z) 和 φ(z) 分别代表什么?

单选题 · mid

  • A.正态分布的累积分布函数和概率密度函数← 正确答案
  • B.正态分布的概率密度和累积分布函数
  • C.目标函数的均值和标准差
  • D.改进量的期望和方差

答案:A。Φ(z) 是标准正态 CDF,对应“改进量大于 0 的概率”;φ(z) 是 PDF,对应不确定性带来的边际收益。两者结合才构成期望提升。B 把顺序记反了,C 和 D 都是干扰项。

Q5. 在 UCB 采集函数中增大 κ 会带来什么效果?

单选题 · mid

  • A.更偏向利用已知最优区域
  • B.更偏向探索不确定区域← 正确答案
  • C.完全忽略高斯过程输出
  • D.直接跳出搜索空间边界

答案:B。UCB = μ + κσ,κ 越大,方差项权重越高,采集函数越倾向于选择后验不确定性大的灰雾区,也就是更探索。κ=0 时只剩均值,变成纯利用。注意 C 的错误在于 UCB 仍依赖 GP 输出,只是权重变了。

Q6. PI(提升概率)采集函数的主要缺点是什么?

单选题 · mid

  • A.计算复杂度远高于其他采集函数
  • B.忽视提升幅度、只关注提升概率← 正确答案
  • C.无法利用高斯过程的预测结果
  • D.只适用于离散搜索空间

答案:B。PI 计算的是“超过当前最优的概率”,如果某个点有 90% 概率只提升 0.001,而另一个点有 50% 概率提升 10,PI 会选前者,因为它不管幅度。这正是它容易被局部区域“高频小幅提升”困住的原因。

Q7. 下列哪些属于贝叶斯优化中常见的采集函数?

多选题 · mid

  • A.EI(期望提升)← 正确答案
  • B.PI(提升概率)← 正确答案
  • C.UCB(置信上界)← 正确答案
  • D.RBF(径向基函数)

答案:ABC。EI、PI、UCB 是三种经典采集函数,分别代表期望收益、成功概率和乐观上界三种策略。RBF 是核函数,属于高斯过程代理模型的组件,不是采集函数。好比金叔工具箱里的尺子只有三把,RBF 是画地图用的画笔之一。

Q8. 贝叶斯优化单轮迭代的正确顺序是什么?

单选题 · hard

  • A.拟合代理模型、最大化采集函数、评估目标函数← 正确答案
  • B.评估目标函数、最大化采集函数、拟合代理模型
  • C.随机采样多个点并行评估、取平均作为结果
  • D.先微分目标函数、再做梯度下降更新参数

答案:A。标准流程是:先用历史数据拟合/更新 GP,然后在搜索空间上最大化采集函数得到下一个评估点,再调用真实目标函数评估。B 顺序颠倒,C 是随机搜索思路,D 是梯度优化思路,都不属于贝叶斯优化的迭代逻辑。

Q9. 在并行贝叶斯优化中,批量评估点需要处理哪些挑战?

多选题 · hard

  • A.阻止多个点选到重复位置← 正确答案
  • B.对未完成点做占位修正← 正确答案
  • C.保证批量点空间上分散← 正确答案
  • D.不再需要代理模型参与

答案:ABC。并行批量评估的核心挑战是“避免重复选址”和“在未知结果时继续决策”。常用手段包括幻觉占位(用均值代替未完成结果)、核惩罚、q-EI 等方法,让批量点分散到不同有潜力的区域。D 错误,代理模型不但需要,而且是并行决策的基础。

Q10. 贝叶斯优化相比随机搜索或网格搜索的主要优势是什么?

单选题 · mid

  • A.用代理模型记忆历史并智能选点← 正确答案
  • B.代理模型的计算速度必然更快
  • C.它不需要任何先验或假设
  • D.它能严格证明找到全局最优

答案:A。贝叶斯优化的核心优势是“越搜越聪明”:代理模型从历史评估中学习函数形态,采集函数据此选择最有价值的点,大幅减少评估次数。B 不一定成立(GP 拟合也有开销),C 错误(核函数等先验是必需的),D 错误(它只是逼近全局最优,不保证证明)。