Meng Ziyao, Gu Xue, Liang Yanchun, Xu Dong, Wu Chunguo. Deep Neural Architecture Search: A Survey[J]. Journal of Computer Research and Development, 2021, 58(1): 22-33.
在预先设定的搜索空间中得到一个中间网络架构作为候选架构,通过性能评估策略对此候选架构进行性能度量,最后将测量的结果反馈给搜索策略,不断重复搜索—评估的过程直到发现最优的网络架构.
a) 链式结构
网络中的每一层仅与其前后相邻的2层连接,且网络中没有跨层连接的情况,网络的整个架构呈现为链条状,如:
b) 多分枝结构
,它允许网络中的层可以与其前面的任意层进行连接,如ResNet,
,浅层网络中的特征会通过跳跃连接直接传递到更深的功能层,从而克服了梯度消失对深层网络的影响。
c) 基于cell的结构
将多个操作组合成Cell,并将Cell作为组成神经网络的基本单元,以此设计了基于Cell的网络构.具体来说,构建基于Cell的网络结构分为两步,首先需要构建最优的Cell结构,之后将得到的Cell按照预先定义的规则进行堆叠, 是目前最为流行的方法。
与链式结构和多分支结构相比,基于Cell的方法更适用于迁移学习任务,即使用该方法在小规模数据集上得到的Cell迁移到同类大规模数据集时,仅需要重复叠加Cell,就可以得到适用于该大规模数据集上的深层神经网络。
神经网络的架构搜索可以看作是大规模的超参数优化问题, ,目前流行的搜索策略主要有:随机搜索、贝叶斯优化、强化学习、神经进化和基于梯度的方法.
Pham 等人于2018年提出了高效的NAS方法ENAS:将搜索过程中的各个子网络进行权值共享,避免了从头训练网络
下表为基于贝叶斯优化、强化学习、神经进化、梯度的方法进行神经架构搜索的算法在CIFARG10数据集上的性能比较.从搜索架构的性能和效率角度来看,基于梯度的神经架构搜索算法得到的网络性能更好,且搜索速度最快.
这篇论文总结了4种常见的性能评估策略,包括低保真度、早停、代理模型和权值共享等方法.
1) 低保真度
,为了加快架构搜索过程中网络的收敛过程,研究者提出了采用减少样本数量、降低图像分辨率、减少网络层数等方法.通过近似的数据集、近似的网络架构虽然加快了搜索过程,减少了计算成本,但是这不可避免地会引入偏差.不过可以通过控制近似网络与实际网络之间的差距阈值来提高训练效率.例如减少少量的训练样本、缩减部分网络.
2) 早停
在网络未收敛时就停止训练,其采用的具体方法主要有:1)固定训练代数.在网络的训练过程中,如果网络达到预先设定的这个阈值就会停止训练,此时的精度就代表了该网络的精度.
3) 代理模型
基于代理模型的方法采用简单的近似任务替代实际的训练任务,代理模型得到的结果即为网络的性能。
比如:目前的研究工作中,在对ImageNet数据集进行架构搜索时,大多数方法都会将CIFARG10数据集的架构搜索作为代理任务,之后将得到的代理任务上最优的网络架构迁移到ImageNet目标任务上.
4) 权值共享
两种主要方法:
Network Morphisms 方法:在保证网络功能不变的前提下,通过不断地扩展初始网络,提高训练效率,该方法不需要网络从头开始训练,但使用该方法得到的网络架构会越来越复杂
One-Shot方法仅需要训练一个超图,通过不断地搜索超图中的子图实现架构的搜索.虽然One-Shot的共享权值方法会减少搜索时间,但整个网络的架构被限制在超图中。