神经架构搜索(NAS)
AI TERM术语词条NAS
术语释义
让算法自动设计神经网络结构的技术,把层类型与连接方式纳入搜索空间自动评估取舍,减少人工试错并有机会发现新颖设计。
神经架构搜索(Neural Architecture Search,简称 NAS)是让算法自动设计神经网络结构的技术。它把层数、算子类型、连接方式、通道宽度等设计选择定义为搜索空间,用搜索策略不断生成候选结构并评估表现,最终保留效果最好的一批。这样既减少了人工反复试错,也有机会发现凭直觉不容易想到的设计。
三个组成部分
- 搜索空间:规定可以组合的算子与连接方式,决定解的上限与搜索难度
- 搜索策略:用强化学习、进化算法或可微松弛等方式在空间中挑选候选
- 性能评估:对候选结构做训练或低成本代理估计,判断优劣并反馈给策略
搜索策略的几种思路
强化学习把结构生成看作一串离散选择,用最终表现作为奖励反馈;进化算法维护一批候选,通过变异与交叉不断迭代;可微方法把离散的结构选择松弛成连续权重,让结构参数与网络权重一起用梯度下降优化,效率明显提升;还有基于性能预测的思路,先训练一个模型预测结构好坏,以此减少真实训练次数。不同思路的主要差别在于搜索成本,以及找到的结构能否迁移到别的任务。
代价与现状
最直接的做法是每个候选都完整训练一遍,算力开销极高,因此出现了权重共享、代理任务与早停等加速手段。搜索出的结构往往还带有很强的任务与硬件偏好,迁移到别的数据或设备上未必同样出色。实践中它更适合算力充足、且结构设计空间明确的场景;在数据与资源有限时,靠经验做结构设计往往更划算。
搜索出来的结构长什么样
实践中被搜到的结构往往是重复出现的小单元,由若干卷积或注意力算子加上特定的连接方式组成,整张网络再由这些单元按固定模式堆叠而成。这样设计的好处是搜索空间被大幅压缩,一旦找到好单元就能按需放大到不同规模,不必逐层重新搜索。也正因如此,这类成果通常表现为可复用的结构范式,而不是某个只能用在特定数据集上的完整网络。
实践要点
- 先收缩空间:把搜索范围限制在已被验证有效的算子与连接方式内
- 用代理指标:以少量训练步数或小规模数据上的表现做初筛
- 共享权重:让候选共用一份超网权重,把评估成本压到可接受的水平
- 写入硬件约束:把延迟、显存等实际限制纳入搜索目标,而不只看精度
- 复核最终结构:对搜到的少数候选做完整训练与多轮验证再定稿
常见误区
- 以为搜索必然胜过人工设计:在数据和算力有限时,人工经验常常更划算
- 只看搜到的精度:忽略推理成本,得到的结构可能根本无法上线
- 低估搜索代价:一次完整搜索的算力可能远超直接训练几个模型
- 直接迁移结果:换了数据集或硬件后,原结构未必仍然最优