3.1 搜索策略分类与概述 本节摘要:搜索策略是 NAS 的"导航系统",决定算法如何在搜索空间里移动。本节先把搜索策略分成进化算法、强化学习、梯度优化、贝叶斯优化、随机搜索五大类,再用"探索-利用"、"效率-性能"、"计算成本"三条权衡线解释它们的本质差异,为后续各节的展开建立统一的分析框架。 学习目标 阅读完本节,你应当能够: 说出搜索策略五大分类及各自的代表算法 解释"探索-利用"权衡如何把五类策略分成两个阵营 分析"搜索效率"与"最终性能"这对矛盾的成因 用三条权衡线评估一个陌生搜索策略的定位 一、问题与直觉:搜索策略是 NAS 的"导航" 上一章我们画好了搜索空间——一张可能的架构地图。但地图本身不会走路。
本节摘要:搜索策略是 NAS 的"导航系统",决定算法如何在搜索空间里移动。本节先把搜索策略分成进化算法、强化学习、梯度优化、贝叶斯优化、随机搜索五大类,再用"探索-利用"、"效率-性能"、"计算成本"三条权衡线解释它们的本质差异,为后续各节的展开建立统一的分析框架。
阅读完本节,你应当能够:
上一章我们画好了搜索空间——一张可能的架构地图。但地图本身不会走路。搜索策略就是你的导航系统:它决定你从哪出发、往哪个方向探、走多远、什么时候回头。同一个空间,用随机搜索可能像无头苍蝇乱撞,用梯度优化可能顺着山坡一路滑到坑里,用进化算法可能带着整个种群一起进化。
SOURCE 给了一个恰当的比喻:搜索策略是 NAS 的心脏。空间决定了可能性,策略决定了现实——再好的空间,没有像样的策略也搜不出东西。
先想清楚一个底层矛盾。NAS 面对的空间是离散的、非凸的、巨大的。离散意味着梯度不能直接用(操作选择是"要么这个要么那个",没有导数可言);非凸意味着到处都是局部最优坑;巨大意味着不可能穷举。搜索策略的全部艺术,就是在这样一个空间里,用有限的评估预算,尽量逼近好解。它必须在两个方向之间走钢丝:探索——多试没去过的地方,防止漏掉隐藏的好解;利用——在已知的好区域深挖,把预算花在刀刃上。
五大分类。基于进化算法:把架构当种群个体,用选择、交叉、变异模拟自然进化,强调种群多样性与迭代优化,代表是 AmoebaNet。基于强化学习:把架构生成建模成序列决策,RNN 控制器一步步生成架构,验证集精度当奖励,代表是 NASNet。基于梯度优化:把离散空间连续松弛成可微空间,直接梯度下降优化架构参数,代表是 DARTS、SNAS。基于贝叶斯优化:构建代理模型预测性能,用采集函数决定下一个评估谁,代表是 NASBOT、Auto-Keras。基于随机搜索:随机采样架构评估,看似笨拙,却是不可替代的基线。
权衡线一:探索 vs 利用。进化算法和强化学习偏探索——它们愿意把预算撒向未知区域,因此更能发现全局好解,但代价是评估量大。梯度优化和贝叶斯优化偏利用——它们快速锁定当前最看好区域深入挖掘,收敛快,但可能错过空间另一头更好的解。随机搜索是极端探索——不利用任何历史信息,纯靠均匀撒网。
权衡线二:搜索效率 vs 最终性能。梯度优化效率最高——一次训练循环里顺带把架构参数也优化了,搜索成本低,但牺牲了灵活性,空间必须可微、结构受限,最终性能可能被限制。进化算法性能潜力大——全局搜索能力强,但每个个体都要评估,效率低。这里的教训是:高效率和强性能往往是反比关系,选策略就是选"用效率换多少性能"。
权衡线三:计算成本。随机搜索成本最低,进化/强化学习成本最高(尤其是评估耗时的时候),梯度优化居中但依赖可微前提。成本不是独立的——评估策略贵(第 4 章内容)时,搜索策略的选择会被评估成本绑架:评估一次上万 GPU 小时,你根本玩不起要评估几万次的进化搜索。
| 权衡维度 | 探索端 | 利用端 |
|---|---|---|
| 探索-利用 | 进化、强化学习、随机 | 梯度、贝叶斯 |
| 效率-性能 | 梯度(效率高、性能受限) | 进化(效率低、潜力大) |
| 计算成本 | 随机(最低) | 进化/强化学习(最高) |
先量评估成本,再谈策略。这是最容易犯的次序错误。评估一次候选架构的成本,决定了搜索策略的可行域:评估便宜(零成本代理),随机搜索都能有竞争力;评估昂贵(完全训练),必须上贝叶斯优化这种样本高效策略。策略选型的真正约束是"评估预算 × 期望评估次数"。
别迷信"聪明"策略。梯度优化听着高级,但它的前提(可微空间、超网络、双层优化)每个都是坑;贝叶斯优化听着高效,但高维空间里代理模型会失效。SOURCE 在 3.7 节的总结里反复强调:选择要综合空间特性、评估效率、资源限制。策略的"聪明"程度必须跟问题的"难度"匹配,杀鸡用牛刀只会增加实现成本。
随机搜索是免费的天花板参照。永远先跑一遍随机搜索拿基线,再用复杂策略对比。很多研究证明,在特定空间和评估预算下,随机搜索与精心设计的策略差距并不大——这个基线能帮你判断策略的投入值不值。
⚠️ 常见坑:在离散空间里硬套梯度优化。空间必须连续松弛后梯度才存在,否则"梯度"方向全是噪声,优化变成随机漫步。
💡 关键直觉:五类策略不是五个孤立工具箱,而是"探索-利用"连续谱上的五个采样点。理解每类策略在谱上的位置,比背下它的算法细节更能指导选型。
每类策略都有它"下注"的地方,想清楚这笔钱花在哪,就抓住了策略的本质。随机搜索不花一分钱在智能上,预算全用来采样——它赌"空间里好架构密度够高"。进化算法把钱花在"种群管理"上——选择谁、淘汰谁、怎么变异,赌"好基因能遗传"。强化学习把钱花在"控制器训练"上——让 RNN 学会生成模式,赌"架构生成是可学习的序列决策"。梯度优化把钱花在"连续松弛"上——把离散空间变连续,赌"架构参数可微可优化"。贝叶斯优化把钱花在"代理模型"上——拟合性能地形,赌"评估可以建模"。五笔钱五个赌注,没有哪个赌注天然更聪明,只有哪个赌注更贴合你的问题。
这个框架会在第 4 章反复用到,先在这里建立直觉。评估一个架构的成本,决定了策略的可行域:随机搜索对评估"没胃口"——它有多少预算就评估多少次,评估便宜时它最划算。贝叶斯优化对评估"很挑剔"——评估贵时它的代理模型才回本。梯度优化和强化学习对评估"胃口复杂"——DARTS 需要权重共享评估配合,强化学习需要评估信号当奖励。读后续章节时,遇到"某策略配某评估"的说法,回看这个框架——策略与评估是配对设计的。
第 3.1 节已经画了这条谱,这里再深化一步:谱的位置不是固定的,而是可以调出来的。进化算法的变异率调大,就向探索端移动;贝叶斯优化的 UCB 系数 k 调小,就向利用端移动;强化学习的熵正则强度,直接控制控制器是"广撒网"还是"深挖坑"。所以"探索-利用"不是策略的固定属性,而是策略的可调旋钮。理解了这个,读每种策略时都会自动关注它的"旋钮在哪、怎么拧"。
一,能不能说出五类策略各自"把钱花在哪、赌什么"?二,能不能指出随机搜索和贝叶斯优化在"评估成本"上的分歧?三,能不能给一个具体场景(比如评估很贵、空间不可微),说出哪类策略出局、哪类留下?四,能不能说明"探索-利用"在每种策略里对应哪个可调参数?四个问题都能答,说明你不只是记住了五类策略的名字,而是理解了它们在做什么样的权衡——这正是本章的目的。
SOURCe 在 3.1 节把网格搜索归在"常见的搜索策略"里提过(在描述搜索策略类型时),但它在 NAS 里几乎不单独使用——网格搜索把空间离散化后穷举所有组合,维度稍高就指数爆炸。它更像是"空间离散化的思想",而不是实用的 NAS 策略。随机搜索作为它的便宜替代品,在第 3.6 节有专节。如果你在文献里看到"网格搜索",多半是拿它当基线或对照,不是当主策略。
SOURCe 在 3.1 节提过"基于性能预测的搜索策略"——先训练一个性能预测器,用预测分数指导搜索,避免每个候选都真评估。严格说,这不是和五类策略并列的第六类,而是"评估加速"的一种形式,跟第 4 章的性能预测器、代理评估是同一家族。分类的意义是帮助理解,不是考试划界——五类主策略 + 各种评估加速手段,组合起来才是完整工具箱。
在本教程里,"搜索策略"指大类(进化、强化学习、梯度……),"算法"指大类下的具体方法(AmoebaNet 是进化类的一个算法,DARTS 是梯度类的一个算法)。文献里两者混用很常见,但不影响理解——重要的是你在讨论哪个粒度的东西。读论文时先归类再细看,比一头扎进算法细节更能抓住位置。
不算。SOURCe 在 3.1 节展望里明确提出"结合多种搜索策略的优点,设计混合搜索策略"。第 3.7 节的评估阶梯、第 4.6 节的漏斗方案本质上都是混合——先用便宜策略粗筛,再用贵策略精搜。混合策略不是取巧,而是把每种策略用在它最擅长的环节,这是工程上的主流做法。
下一节看进化算法——最"古老"也最有全局探索力的搜索策略。
