3、神经网络架构搜索(NAS)入门:NAS定义、发展历史、主流方法分类(基于RL、进化、梯度、one-shot)

神经网络架构搜索(Neural Architecture Search,NAS)是自动化机器学习(AutoML)的核心子领域,其目标是在无需人工干预的条件下,自动发现高性能的神经网络拓扑结构。在Edge AI NAS模型搜索的语境下,NAS不仅是精度优化工具,更是硬件感知的架构生成器——它需要在FLOPs、延迟、内存占用与精度之间寻找帕累托最优解。理解NAS的底层逻辑,是掌握硬件感知搜索的前提。

NAS方法演进与硬件感知搜索定位 基于RL / 进化 搜索策略:策略梯度 / 变异选择 评估方式:完整训练从头评估 搜索空间:链式 / 单元 / 多分支 硬件感知:可加延迟/能耗奖励 代表:NASNet-RL、AmoebaNet 基于梯度(可微) 搜索策略:Gumbel-Softmax / 架构参数 评估方式:代理梯度联合优化 搜索空间:单元内连续松弛 硬件感知:可微延迟估计器 代表:DARTS、ProxylessNAS One-Shot / 权重共享 搜索策略:从超网采样子网 评估方式:共享权重快速评估 搜索空间:大规模混合操作 硬件感知:延迟查找表 + 进化 代表:SPOS、FairNAS、Once-for-All 搜索策略 + 评估策略 + 搜索空间 三者共同决定搜索效率与最终架构质量 Edge AI NAS:硬件感知的架构搜索 目标:精度 + 延迟 + 能耗 + 内存 多目标联合优化

3.1 NAS的核心定义与问题形式化

NAS的本质是一个双层优化问题:外层优化架构参数(如操作类型、连接方式、通道数),内层优化网络权重。形式化地,给定搜索空间 \(\mathcal{A}\),NAS寻找架构 \(a \in \mathcal{A}\) 使得在验证集上的损失 \(\mathcal{L}_{val}(a, w^*(a))\) 最小,其中 \(w^*(a)\) 是在训练集上训练得到的最优权重。这个定义看似简洁,但实际求解面临三大挑战:搜索空间巨大(常见空间可达 \(10^{20}\) 量级)、单次评估成本高(训练一个模型需要数GPU天)、以及架构与硬件性能之间的复杂映射关系。

在Edge AI场景中,NAS的定义需要扩展。除了精度指标外,还必须引入硬件约束:推理延迟(Latency)、峰值内存(Peak Memory)、能耗(Energy)、模型参数量(Params)和计算量(FLOPs)。因此,Edge NAS的优化目标通常写成多目标形式:

minimize: Loss(a) + λ1 * Latency(a, hw) + λ2 * Energy(a, hw) + λ3 * Memory(a, hw)
subject to: Params(a) <= P_max, FLOPs(a) <= F_max

其中 \(hw\) 表示目标硬件平台(如树莓派、Jetson Nano、手机NPU)。这种形式化使得NAS从纯精度驱动转向硬件约束下的多目标优化。

3.2 NAS的发展历史:从手工到自动化

NAS的发展可以划分为四个阶段,每个阶段都对应着搜索效率和硬件感知能力的跃升。

阶段时间代表工作核心突破硬件感知程度
萌芽期2016-2017NAS-RL (Zoph & Le)首次用LSTM控制器生成架构无
进化与加速期2017-2018AmoebaNet、ENAS进化算法 + 权重共享开始考虑延迟(MnasNet)
可微与高效期2018-2019DARTS、ProxylessNAS梯度下降搜索,大幅降低算力ProxylessNAS引入延迟正则
One-Shot与硬件感知期2019-至今SPOS、Once-for-All、FBNet超网训练 + 子网采样,面向多硬件延迟查找表、硬件感知进化

值得注意的是,2018年MnasNet首次将延迟直接纳入NAS的奖励函数,标志着硬件感知NAS的正式开端。此后,FBNet使用可微延迟估计器,Once-for-All通过渐进式收缩训练实现一次训练多硬件部署,这些工作为Edge AI NAS奠定了方法论基础。

3.3 主流NAS方法分类与原理

当前NAS方法主要分为四大流派,它们在搜索策略、评估策略和硬件感知方式上各有优劣。

3.3.1 基于强化学习(RL)的NAS

RL方法将架构生成视为序列决策问题。控制器(通常是一个LSTM或Transformer)逐步生成架构描述(如卷积核大小、通道数、连接方式),生成的架构经过训练后,其验证精度作为奖励信号,通过策略梯度(如REINFORCE)更新控制器参数。NASNet-RL是这一流派的代表作,它搜索到了超越人工设计的NASNet-A架构,但代价是惊人的算力消耗——使用450块GPU训练了3-4天。

在硬件感知方面,RL方法可以自然地将延迟、能耗作为奖励的惩罚项。MnasNet的奖励函数设计为:

Reward = ACC(a) * (Latency(a) / T)^β

其中 \(T\) 是目标延迟,\(\beta\) 是平衡系数。这种设计使得控制器在精度和延迟之间自动权衡。然而,RL方法的缺点是样本效率低,每次采样都需要从头训练子网络,在Edge场景中往往难以承受。

3.3.2 基于进化算法的NAS

进化NAS模拟自然选择过程:维护一个架构种群,通过变异(修改操作类型、添加/删除连接)和交叉产生后代,根据适应度(如精度、延迟加权得分)选择优秀个体进入下一代。AmoebaNet使用进化算法,在同等计算资源下取得了优于RL方法的精度。进化方法的优势在于无需梯度信息,可以灵活处理非可微的硬件指标(如实际板端延迟、内存峰值),且天然支持多目标优化(如NSGA-II算法)。

但进化NAS的瓶颈在于评估成本——每一代都需要训练多个候选架构。为了缓解这一问题,后来的工作(如CARS)将进化与权重共享结合,利用超网的共享权重快速评估个体,大幅提升了搜索效率。

3.3.3 基于梯度的可微NAS

DARTS(Differentiable Architecture Search)开创了可微NAS范式。其核心思想是将离散的架构选择松弛为连续变量:每个操作(如3x3卷积、5x5卷积、池化)赋予一个架构权重 \(\alpha\),通过Softmax将混合操作表示为所有候选操作的加权和。这样,架构搜索就转化为对 \(\alpha\) 和网络权重 \(w\) 的联合优化,可以使用标准的梯度下降法。

DARTS的搜索效率极高,在单块V100上仅需1-2天即可完成CIFAR-10上的搜索。然而,DARTS存在离散化误差——搜索时是连续松弛,最终部署时需要取argmax离散化,这可能导致性能崩塌。此外,DARTS的搜索空间局限于单元(Cell)内部,难以覆盖全局连接模式。ProxylessNAS针对硬件感知进行了改进,它使用二值化路径采样,并引入延迟损失:

L = L_CE + λ * log(Latency(a))

通过这种方式,ProxylessNAS在ImageNet上搜索出了适合移动端的架构,且搜索成本仅为200 GPU小时。

3.3.4 One-Shot / 权重共享NAS

One-Shot方法的核心思想是训练一个包含所有候选架构的超网(SuperNet),超网中的每条路径(即子网)共享权重。搜索时,从超网中采样子网,直接使用共享权重评估其性能,无需重新训练。SPOS(Single Path One-Shot)简化了这一过程:每次只激活一条路径,避免了不同路径间的干扰。FairNAS进一步提出公平采样策略,确保每个子网被均匀训练。

One-Shot方法在硬件感知方面具有天然优势:可以预先构建硬件延迟查找表(Lookup Table),将每个操作的延迟、能耗记录在案,搜索时通过查表快速估算整个网络的硬件指标。Once-for-All(OFA)是这一流派的集大成者,它通过渐进式收缩训练(Progressive Shrinking)训练超网,支持弹性深度、宽度、核大小和分辨率,一次训练即可适配多种硬件平台。OFA在搜索阶段使用进化算法,以延迟和精度为多目标,在20个不同硬件平台上均取得了优于SOTA的结果。

3.4 方法对比与选型指南

面对四种方法,Edge AI工程师需要根据实际约束选择合适的技术路线。下表从多个维度进行了对比:

维度RL进化梯度One-Shot
搜索效率低(数千GPU天)中(数百GPU天)高(数十GPU天)极高(超网训练后秒级搜索)
硬件指标适配可加奖励项天然支持多目标需可微估计器查找表 + 进化
搜索空间灵活性高高受限(需连续松弛)高(但需超网设计)
实现复杂度中中低高(超网训练难)
适用场景小空间、追求极致精度多硬件目标、非可微指标快速原型验证大规模部署、多硬件适配
选型建议:对于Edge AI项目,如果目标硬件单一且搜索时间充裕,可选用进化+延迟奖励;如果需要在多种硬件上快速部署,One-Shot(如OFA)是最佳选择;如果团队算力有限且希望快速验证NAS流程,可微方法(如ProxylessNAS)是务实起点。

3.5 实战案例:面向Jetson Nano的One-Shot搜索

我们以一个实际项目为例,说明如何选择和应用NAS方法。某智能摄像头产品需要部署在NVIDIA Jetson Nano上,目标是在实时性(延迟≤30ms)前提下最大化检测精度。

初始约束与现象:团队最初使用MobileNetV2作为骨干网络,实测延迟为22ms,精度mAP为68.5%。但产品要求mAP≥72%,直接更换更大的ResNet50虽然精度提升至74.2%,但延迟飙升至58ms,无法满足实时性。

方法选型与实施:团队采用One-Shot路线,具体步骤如下:

  1. 超网设计:基于MobileNetV3结构,构建包含弹性通道(0.5x-1.5x)、弹性核大小(3x3、5x5)、弹性深度(2-4层/块)的超网。
  2. 延迟查找表构建:在Jetson Nano上逐一测量每个候选操作的延迟(使用TensorRT FP16推理),记录为查找表。关键数据:3x3卷积(通道64)延迟0.35ms,5x5卷积(通道64)延迟0.52ms。
  3. 超网训练:使用渐进式收缩策略,先训练最大子网,再逐步训练较小子网,共训练120个epoch,使用ImageNet子集(10万张)。
  4. 进化搜索:以延迟≤30ms为硬约束,以mAP为优化目标,使用NSGA-II进化算法搜索100代,每代评估200个子网。

结果对比:搜索出的最优架构在Jetson Nano上实测延迟28.5ms,mAP达到73.1%,满足产品需求。相比手工调参,搜索过程仅耗时3天(超网训练2.5天+搜索0.5天),而人工尝试ResNet50等方案已耗费2周。

风险与复盘:过程中遇到的主要问题是超网训练不稳定——早期子网间精度差异过大。通过引入FairNAS的公平采样策略,确保每个子网被均匀训练,问题得以解决。此外,延迟查找表在FP16和INT8下差异显著,团队最终统一使用FP16部署,避免了量化误差对延迟估计的影响。

常见误区提醒:① 不要盲目追求搜索空间大,过大的空间会导致超网训练不充分,搜索出的架构性能不可靠;② 延迟查找表必须在目标硬件、目标精度(FP16/INT8)下实测,不能直接使用FLOPs估算;③ One-Shot搜索出的架构需要重新训练(从零开始),不能直接使用超网权重部署。

3.6 总结与关键要点

NAS作为Edge AI模型搜索的基础,其方法选择直接影响搜索效率和最终部署效果。核心要点归纳如下:

  • 问题本质:NAS是双层优化,Edge场景下必须引入硬件约束,形成多目标优化问题。
  • 方法演进:从RL到进化、梯度、One-Shot,搜索效率提升超过100倍,硬件感知能力逐步增强。
  • One-Shot是当前Edge NAS的主流范式:超网训练一次,可支持多硬件、多约束的快速搜索。
  • 硬件指标必须实测:延迟、能耗等指标与硬件平台、推理引擎、精度设置强相关,不能仅依赖理论计算。
  • 搜索空间设计是关键:合理的搜索空间(如基于MobileNet的弹性设计)比搜索算法本身更重要。