3.5 贝叶斯优化搜索


文档摘要

3.5 贝叶斯优化搜索 本节摘要:贝叶斯优化是"评估最贵时最划算"的策略:用代理模型预测架构性能,用采集函数决定下一个评估谁。本节讲清"代理模型→采集函数→选点→评估→更新"五步循环,对比高斯过程与 TPE 两类代理模型、EI 与 UCB 两类采集函数,展开 NASBOT、Auto-Keras、BOHB 三个代表方法,并指出高维空间失效与核函数设计两大边界。 本节要回答的问题 阅读完本节,你应当能够: 复述贝叶斯优化的五步循环,并解释每步在 NAS 语境下的含义 对比高斯过程与 TPE 两种代理模型的差异 解释期望提升(EI)与置信区间上界(UCB)如何平衡探索与利用 说清 NASBOT 与 BOHB 各自解决什么问题,以及高维空间为什么是贝叶斯的死穴

3.5 贝叶斯优化搜索

本节摘要:贝叶斯优化是"评估最贵时最划算"的策略:用代理模型预测架构性能,用采集函数决定下一个评估谁。本节讲清"代理模型→采集函数→选点→评估→更新"五步循环,对比高斯过程与 TPE 两类代理模型、EI 与 UCB 两类采集函数,展开 NASBOT、Auto-Keras、BOHB 三个代表方法,并指出高维空间失效与核函数设计两大边界。

本节要回答的问题

阅读完本节,你应当能够:

  1. 复述贝叶斯优化的五步循环,并解释每步在 NAS 语境下的含义
  2. 对比高斯过程与 TPE 两种代理模型的差异
  3. 解释期望提升(EI)与置信区间上界(UCB)如何平衡探索与利用
  4. 说清 NASBOT 与 BOHB 各自解决什么问题,以及高维空间为什么是贝叶斯的死穴

一、问题与直觉:把预算花在"最值得"的评估上

假设一次架构评估要花掉 500 GPU 小时,你只有 100 次评估预算。你会怎么花?随机搜索会把预算均匀撒开——公平但浪费;进化算法会保留一群个体来回折腾——也很费。贝叶斯优化的思路完全不一样:它先"猜"一个性能地形图(代理模型),然后每次只评估"按当前地图最值得的地方"(采集函数),评估完立刻更新地图。评估次数少、每次都打在点上。

这个策略的适用条件很苛刻:评估必须足够贵,贵到"少评估一次"的收益超过"建代理模型"的成本。如果评估便宜(零成本代理那种),贝叶斯优化的那套代理模型反而成了负担。所以 SOURCE 对贝叶斯优化定位的第一条优点就是"能够高效利用少量评估样本"——它天生是为"评估贵"的场景设计的。

贝叶斯优化的另一面是"聪明反被聪明误":代理模型要对架构空间建模,而架构不是连续向量,怎么定义"两个架构之间的距离"本身就是难题。空间一旦高维,高斯过程的计算和精度都会崩。这些边界决定了贝叶斯优化在 NAS 里是"精兵路线",不是"主力舰队"。

二、核心原理:五步循环与关键组件

五步循环。构建代理模型——用已评估的架构性能数据,拟合一个能预测未知架构性能的模型。定义采集函数——综合代理模型的预测值和不确定性,算每个未评估架构的"价值分数"。选择下一个架构——挑采集函数分数最高的架构。评估架构性能——真金白银地训练评估。更新代理模型——把新样本并进数据,重拟合代理模型,回到第 2 步。

代理模型:高斯过程 vs TPE。高斯过程(GP)输出的是"均值±不确定性"——它既预测架构性能,也告诉你在哪些区域预测没底。不确定性正是采集函数做探索-利用平衡的燃料。但 GP 在高维、大规模数据下计算量大。TPE(树 Parzen 估计器)走另一条路:不直接建模性能函数,而是分别建模"表现好的架构的分布"和"表现差的架构的分布",用两者的比值指导采样。TPE 在高维和离散空间上比 GP 稳健,实现也便宜,是 Auto-Keras 等框架的默认选择。

采集函数:EI 与 UCB。期望提升(EI)算"这个架构的预期收益能超过当前最优多少",只评估预期提升大的点——它偏向利用,但不确定性大的区域 EI 也会高(有概率捡漏),所以自带探索。置信区间上界(UCB)把"预测均值 + k×不确定性"当分数,k 控制探索强度——k 大偏向探索,k 小偏向利用。调 k 就是调探索-利用旋钮。

代表方法。NASBOT:贝叶斯优化直接用于 NAS,GP 当代理模型、EI 当采集函数。它的技术难点在"架构之间的距离"——NASBOT 定义了一种基于架构编辑距离的核函数,让 GP 能在架构空间上工作。Auto-Keras:把贝叶斯优化封装进易用的 AutoML 框架,用 TPE 当代理模型,主打"几行代码出模型"。BOHB:贝叶斯优化与 HyperBand 结合——贝叶斯负责"选点",HyperBand 负责"省钱评估"(在训练中途早停明显不行的架构),专门治"评估贵"和"超参多"两个病。

方法 代理模型 采集函数 特色
NASBOT 高斯过程 期望提升 架构编辑距离核函数
Auto-Keras TPE TPE 派生 AutoML 封装,低门槛
BOHB TPE 多臂赌博机式 结合 HyperBand 早停

三、工程实践要点:贝叶斯优化的适用边界

高维是死穴,提前验空间。SOURCE 明确指出贝叶斯优化"对于高维搜索空间可能效果不佳"。架构空间动辄几十上百维,GP 直接建模容易失灵。对策:用 Cell 空间压缩维度(第 2 章)、用结构化的核函数(NASBOT 的编辑距离)、或者干脆用 TPE 这种对维度更宽容的模型。别把贝叶斯优化当万能钥匙。

代理模型的精度决定上限。贝叶斯优化做得再好,也不比它的代理模型聪明。代理模型预测不准,采集函数选的"最值得评估的点"就不可信。评估初期样本少,代理模型一团糟——这是贝叶斯优化的"冷启动"问题。对策:前 10-20 个点用随机搜索铺底,等代理模型有点样子再切回贝叶斯。

收益要跟评估成本对齐。判断"该不该用贝叶斯优化"看一个数:单次评估成本。评估一次架构如果低于几十 GPU 小时,贝叶斯优化的代理模型开销可能抵不过它省的评估次数。评估越贵,贝叶斯越香;评估便宜,随机搜索+并行反而更划算。

⚠️ 常见坑:在高维搜索空间里硬上高斯过程。GP 的计算复杂度随样本量立方增长,样本一多训练就慢,而且高维下 GP 的预测几乎退化成均值——探索利用平衡完全失效。

💡 关键直觉:贝叶斯优化的灵魂是"不确定性"——它不只告诉你"哪里预测好",还告诉你"哪里预测没底"。采集函数的价值正在于把这两条信息拧成一股绳,这正是它区别于"贪心搜索"的地方。

四、贝叶斯优化的机制细节与三个实践场景

架构空间的"距离"为什么是难点

贝叶斯优化的代理模型(尤其高斯过程)需要一个核函数,而核函数基于"两点之间的距离"。连续参数空间的距离好算(欧氏距离),架构空间的距离却不好定义——两个 Cell 结构怎么算"差多少"?NASBOT 的贡献正在于此:它定义了基于架构编辑距离的核函数——把架构变换成另一个架构所需的最小编辑步数(换操作、加边、删边)当作距离。这个设计给我们的启示是:贝叶斯优化能不能用于 NAS,一半取决于你能不能定义出一个合理的"架构距离"。工程上如果定义不出来,就退到 TPE(TPE 不直接需要距离,它只比较样本的优劣)。

高维空间为什么是贝叶斯的死穴

高斯过程在高维下有双重失效:计算失效——训练复杂度随样本量立方增长,维度一高、样本一多就扛不住;精度失效——高维空间里所有点之间的"距离"都趋于相等(维度灾难),核函数给出的相似度失去区分度。SOURCe 对贝叶斯优化的边界描述正是"对于高维搜索空间可能效果不佳"。工程上的三个应对:降维(用 Cell 空间、操作集合精简压缩有效维度);用 TPE 替代 GP(TPE 对高维稳健得多);把高维问题拆成低维问题的组合(分层贝叶斯优化)。

场景一:评估极贵时贝叶斯是唯一理性选择

当一次评估要花几百甚至上千 GPU 小时时,评估次数本身成了最稀缺的资源,贝叶斯优化的"样本高效"优势被放大到极致——它把每一次评估都用在"最值得"的点上。SOURCe 对贝叶斯优化的定位就是"能够高效地利用少量的评估样本,在计算资源有限的情况下也能取得较好的搜索结果"。这种场景下,随机搜索的"广撒网"和进化的"种群迭代"都付不起评估账单,贝叶斯是少数可行的选择之一。

场景二:配合 HyperBand 的 BOHB 组合

BOHB 的聪明之处在于分工:贝叶斯优化负责"选哪个架构值得评估",HyperBand 负责"评估到什么程度"。HyperBand 会对明显不行的候选中途早停(训练几十个 epoch 就看衰不衰),把预算留给有潜力的。这个组合正好呼应第 4 章的评估阶梯思想——"选点"和"评估预算分配"是两件事,可以分开优化。工程上用 BOHB 类方法时,早停的标准(看什么指标、看几个 epoch)要跟评估策略的配置对齐,否则两头打架。

场景三:冷启动的务实处理

贝叶斯优化初期代理模型几乎没数据,采集函数选的点跟随机搜索差不多,甚至更差。工程上别等代理模型"自己暖起来"——直接前 10-20 次评估用随机搜索铺底,拿到基础数据后再交给贝叶斯优化接管。这个"随机铺底 + 贝叶斯精搜"的两段式,是所有贝叶斯 NAS 实践的标准起步姿势。

五、FAQ:贝叶斯优化搜索的常见疑问

贝叶斯优化和代理任务评估是一回事吗?

不是,但容易混淆。代理任务评估(第 4.3 节)是"用便宜任务算真实性能"——它给出的分数是真实的,只是来自缩小版任务。贝叶斯优化的代理模型是"预测性能"——它给出的分数是模型猜测的,不是评估出来的。两者可以组合:贝叶斯优化的"评估环节"可以换成代理任务评估,让每次评估更便宜。组合后代理模型预测 + 代理任务评估,两处都在省成本,但两处都有误差,误差会叠加——这是组合时要留神的。

采集函数 EI 和 UCB 怎么选?

看你对"不确定性"的态度。EI(期望提升)偏保守:只有"可能超过当前最优"的点才值得评估,适合预算紧、想稳步提升的场景。UCB(置信区间上界)更激进:直接用"预测均值+置信"当分数,系数 k 调大就偏向探索未知区域,适合空间大、担心漏掉好解的场景。工程上从 EI 起步(它通常更稳健),遇到"搜索停滞在局部最优"再换大 k 的 UCB 冲一冲。

贝叶斯优化能处理离散的架构空间吗?

能,但要选对工具。离散空间里高斯过程的核函数定义困难(距离不好算),但 TPE 对离散空间天然友好——它只比较样本的"好/差"归属,不直接算距离。SOURCe 列 Auto-Keras 时明确写它"使用 TPE 作为代理模型",处理的就是带离散组件的结构空间。如果空间高度离散,优先 TPE 而非 GP。

什么时候明确别用贝叶斯优化?

三个场景:评估便宜(一次评估几分钟就完)——代理模型的维护成本反而拖慢节奏,随机搜索+并行更划算;空间巨大且不可分解——代理模型在高维下失效,贝叶斯的"样本高效"无从谈起;空间太小平缓——随机搜索几次就摸到底了,贝叶斯优化的"聪明"没有用武之地。判断标准始终回到那句:评估越贵、空间越适度,贝叶斯越值。

  • 五步循环:代理模型→采集函数→选点→评估→更新
  • GP vs TPE:GP 给均值±不确定性但高维会崩,TPE 稳健便宜
  • EI vs UCB:EI 算预期提升自带探索,UCB 用系数 k 调探索强度
  • NASBOT 的核函数:用架构编辑距离让 GP 能在架构空间工作
  • BOHB 组合拳:贝叶斯选点 + HyperBand 中途早停
  • 冷启动问题:初期代理模型不准,先随机铺底再切换
  • 评估越贵越香:单次评估成本是判断贝叶斯值不值得用的第一指标

下一节看随机搜索——最简单却最容易被低估的基线。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U