1、如今,深度学习广泛地应用于生活、工作中的各个方面,给我们带来了极大的便利.在此背景下,需要设计针对不同任务的神经网络结构,满足不同的需求.但是,人工设计神经网络结构需要专业的知识,进行大量的实验.因此,神经网络结构搜索算法的研究显得极为重要.神经网络结构搜索(NAS)是自动深度学习(AutoDL)过程中的一个基本步骤,对深度学习的发展与应用有着重要的影响.早期,一些神经网络结构搜索算法虽然搜索到了性能优越的神经网络结构,但是需要大量的计算资源且搜索效率低下.因此,研究人员探索了多种设计神经网络结构的算法,也提出了许多减少计算资源、提高搜索效率的方法.本文首先简要介绍了神经网络结构的搜索空间,其
2、次对神经网络结构搜索算法进行了全面的分类汇总、分析,主要包括随机搜索算法、进化算法、强化学习、基于梯度下降的方法、基于顺序模型的优化算法,再其次探索并总结了提高神经网络结构搜索效率的方法,最后探讨了目前神经网络结构搜索工作中存在的问题以及未来的研究方向.关键词:神经网络结构搜索;搜索空间;搜索策略;性能评估策略引用格式:刘建伟,王新坦.神经网络结构搜索方法综述.控制理论与应用,2023,40(1):12 31DOI:10.7641/CTA.2022.10568A review of neural network structure search methodLIU Jian-wei,WANG
3、Xin-tan(Department of Automation,China University of Petroleum,Beijing 102249,China)Abstract:Nowadays,deep learning is widely used in all aspects of life and work,which brings us great convenience.In this context,we need to design neural network structure for different tasks to meet different needs.
4、However,manuallydesign of neural network structure needs professional knowledge and a lot of experiments.Therefore,the research ofneural network structure search algorithm is very important.Neural network structure search(NAS)is a basic step in theprocess of automatic deep learning(AutoDL),which has
5、 an important impact on the development and application of deeplearning.In the early stage,although some neural network structure search algorithms have found excellent neural networkstructure,they need a lot of computing resources and search efficiency is low.Therefore,researchers have explored ava
6、riety of neural network structure design algorithms,and also proposed many methods to reduce computing resources andimprove search efficiency.Firstly,we briefly introduce the search space of neural network structure.Secondly,we make acomprehensiveclassification,summaryandanalysisofneuralnetworkstruc
7、turesearchalgorithms,includingrandomsearchalgorithm,evolutionaryalgorithm,reinforcementlearning,gradientdescentbasedmethodandoptimizationalgorithmbasedon sequential model.Thirdly,we explore and summarize methods to improve the efficiency of neural network structuresearch.Finally,we discuss the probl
8、ems existing in the current neural network structure search work and the future researchdirection.Key words:neural network structure search;search space;search strategy;performance evaluation strategyCitation:LIU Jianwei,WANG Xintan.A review of neural network structure search method.Control Theory&a
9、mp;Appli-cations,22023,40(1):12 311引引引言言言1.1神神神经经经网网网络络络结结结构构构搜搜搜索索索的的的研研研究究究背背背景景景近年来,深度学习在图像分类、图像语义分割、物体识别、语音识别、机器翻译等方面取得了显著的进步,其中的神经网络模型结构大部分是由人工设计的,例如应用于图像分类的AlexNet1,VGGNet2,Goog-LeNet3,ResNet4,ResNeXt5等经典网络结构均由人工设计.然而,人工设计神经网络结构需要专业的收稿日期:20210630;录用日期:20220301.刘建伟.E-mail:;Tel.:+86 13699114280.
10、本文责任编委:徐昕.中国石油大学(北京)科研基金项目(2462020YXZZ023)资助.Supported by the Science Foundation of China University of Petroleum,Beijing(2462020YXZZ023).第 1 期刘建伟等:神经网络结构搜索方法综述13知识背景,这严重阻碍了深度学习的发展与应用.由此,凸显了研究神经网络结构搜索算法的重要性.1.2神神神经经经网网网络络络结结结构构构搜搜搜索索索的的的研研研究究究进进进展展展从上世纪80年代,人们就开始了对神经网络结构的探索.进化算法是早期搜索神经网络结构的主要方法,其优化目
11、标单一,均为模型的正确率.近期,伴随着人工智能的热潮,深度学习的研究日益成为热点,同时深度学习的应用领域更加广阔,深度学习在自然语言处理、计算机视觉、自动驾驶、推荐系统等方面均取得了显著的成果.在这些任务中,所使用的神经网络主要是卷积神经网络、循环神经网络.在此背景下,神经网络结构的设计变得更加重要.目前的研究工作主要集中于卷积神经网络结构的搜索.2016年,Zoph等人6提出基于强化学习的神经网络结构搜索算法,在CIFAR10数据集上的实验结果表明,该算法设计的结构在性能上超越了人工设计的ResNet4、FractalNet7等经典结构.但是,该算法需要消耗大量的计算资源.这引起了人们对神经
12、网络结构搜索工作的极大关注.因此,许多研究人员对之前的神经网络结构搜索算法进行了改进,探索并提出了多种新颖的神经网络结构搜索算法,以及减少计算资源、提高搜索效率的方法.神经网络结构搜索算法主要包括3个方面的工作8:搜索空间、搜索策略、性能评估策略.近几年,神经网络结构搜索在搜索空间、搜索策略、性能评估策略等方面均取得了创新性的成果,也具有十分重要的意义.搜索空间的形式与神经网络结构的形式密切相关,同时在一定程度上也决定了神经网络结构的性能.我们将搜索空间分为整体形式的神经网络结构空间、单元组合形式的神经网络结构空间、层次形式的神经网络结构空间.神经网络结构的搜索策略是本文的重点研究内容.我们对
13、目前主流的神经网络结构搜索策略进行了分类汇总,主要有随机搜索算法、进化算法、基于强化学习的方法、基于梯度下降的方法、基于顺序模型的优化算法.性能评估策略是神经网络结构搜索算法中必不可少的一部分.在所有的搜索算法中,都需要对搜索到的模型结构进行评估.最简单的性能评估策略是:首先,在训练集上重新训练候选的神经网络结构模型;其次,在测试集上评估训练后的模型.但是此方法的效率比较低.性能评估策略在一定程度上决定了神经网络结构的搜索效率.如何提高神经网络结构搜索效率也是本文的重点研究内容.目前主要有3种提高神经网络结构搜索效率的方法:改进神经网络结构搜索算法的搜索空间、间接评估模型的性能、减少模型的训练
14、代价.最简单的方法是改进神经网络结构搜索算法的搜索空间.在单元组合形式的搜索空间中首先搜索单元的结构,其次按照提前确定的方式堆叠起来.此方法简化了搜索空间,降低了搜索的复杂性,提高了搜索效率.后两种方法都是在性能评估阶段发挥作用.间接评估模型的性能:使用替代函数模型912预测神经网络模型的正确率,避免了评估模型性能时对模型的训练.减少模型的训练代价:使用权重共享10,1314、网络态射15等方法避免了重新训练模型,使用早期停止模型训练1618的方法减少了模型的训练次数.我们将本文与现有的一些关于神经网络结构搜索的综述进行了对比.Elsken等人8、Hu等人19、Wis-tuba等人20、He等
15、人21的工作虽然对现有的神经网络结构搜索算法进行了的分类总结,但是没有对类内、类间的不同算法进行对比分析.在Ren等人22的综述中以时间顺序为准线,总结了早期神经网络结构搜索工作中的问题,以及后来的解决方法.但是,在Ren等人22的综述中主要总结了基于梯度下降的方法,缺乏对其他搜索算法的总结.本文对神经网络结构搜索算法进行了全面的分类汇总,仔细分析了每类方法的特点、每类方法在研究过程中的改进之处.同时,我们不仅对比分析了同一类算法,而且也简要对比分析了不同类算法.另外,我们对提高神经网络搜索效率的方法进行了全面的汇总及分析.1.3本本本文文文的的的结结结构构构安安安排排排本文对神经网络结构搜索
16、算法中的搜索空间、搜索策略、提高神经网络结构搜索效率的方法(包含性能评估)进行了全面总结.第2节简要介绍了神经网络结构搜索算法中的搜索空间,主要包括整体形式的神经网络结构空间、单元(cell)组合形式的神经网络结构空间、层次形式的神经网络结构空间.第3节介绍了神经网络结构搜索算法中的搜索策略,主要包括随机搜索算法、基于梯度下降的方法、进化算法、强化学习、基于顺序模型的优化算法等.第4节总结了提高神经网络结构搜索效率的方法.第5节简要介绍了神经网络结构搜索算法现阶段中存在的问题以及将来的发展方向.第6节对本文的工作进行了总结.2搜搜搜索索索空空空间间间如表1所示,神经网络结构的搜索空间有3种常见
17、的形式.第1种为整体形式的神经网络结构空间,包括直连和多分支两种形式;第2 种为单元(cell)组合形式的神经网络结构空间;第3种为层次形式的神经网络结构空间.14控 制 理 论 与 应 用第 40 卷表 1 神经网络结构的搜索空间Table 1 Search space of neural network structure搜索空间形式神经网络结构整体形式NAS6,MetaQNN23,Genetic CNN24,NSGANET25,EvoNAS26等单元组合形式NASNet27,BlockQNN28,MnasNet29,DARTS30,NAONet31等层次形式Hierarchical re
18、presentation evolution32,AutoDeepLab33等2.1整整整体体体形形形式式式的的的神神神经经经网网网络络络结结结构构构空空空间间间2.1.1直直直连连连形形形式式式的的的神神神经经经网网网络络络结结结构构构如图1所示,直连形式的神经网络结构是较为简单的一种结构.图1 中第2层的输入为第1层输出,第2层的输出为第3层输入.当搜索直连形式的卷积神经网络结构时,需要确定神经网络的层数、神经网络每一层的操作类型(例如,池化、卷积操作等)、超参数(例如,池化大小及步幅等).在直连形式的神经网络结构搜索空间中,搜索到的典型结构有NAS6、Meta-QNN23等.图 1 直连
19、形式的神经网络结构Fig.1 Directly connected neural network architecture2.1.2多多多分分分支支支形形形式式式的的的神神神经经经网网网络络络结结结构构构如图2多分支形式的神经网络结构的示意图所示,第4层的输入为第2层和第3层的输出,第4层的输出为第5层的一个输入.在多分支形式的神经网络结构搜索空间中,搜索到的典型结构有Genetic CNN24、NSGANET25、Evo-NAS26等.可以看出,在多分支形式的神经网络结构中最明显的特点是使用了跳连,即不相邻的两个层直接相连,例如第2层与第4层之间的连接边.Sun等人34在理论和实验上证明了跳
20、连(skip connection)的优越性,使用跳连可以在一定程度上避免深度神经网络训练过程中存在的梯度消失问题.2.1.3小小小结结结与与与分分分析析析整体形式的神经网络结构空间包含直连、多分支两种形式的神经网络结构.整体形式的神经网络结构空间的一个显著特点是搜索范围大.因此,在整体形式的神经网络结构空间上可以搜索到更适合相应任务的神经网络结构.但是,大范围的搜索空间,会降低搜索效率.多分支形式的神经网络结构与直连形式的神经网络结构相比,多分支形式的神经网络结构更复杂,表达能力更强.图 2 多分支形式的神经网络结构Fig.2 Multi-branch neural network arch
21、itecture2.2单单单元元元组组组合合合形形形式式式的的的神神神经经经网网网络络络结结结构构构为了提高神经网络结构的搜索效率和迁移特性35(在某一数据集上搜索到的单元结构应用在其他数据集上),研究人员提出了单元组合形式神经网络结构.单元组合形式神经网络结构的显著特点是搜索空间的范围较小、单元结构也较小.这是单元组合形式的神经网络结构具备高搜索效率和迁移特性的根本原因.如图3所示,该单元组合形式的神经网络结构由两种单元组成.在单元组合形式的神经网络结构中,单元内部的网络结构依据搜索策略搜索得到,单元外部的连接方式根据经验和实验结果确定.例如,在NAS-NET27形式的网络结构中,按照一定的
22、连接方式将搜索到的标准单元和约简单元组合起来.在正则进化算法36、JASQ算法37等许多神经网络结构搜索算法中也使用了NASNET 形式的网络结构.在单元组合形式的神经网络结构搜索空间中,搜索到的典型结构有BlockQNN28、MnasNet29、DARTS30、NAONet31等.Shu等人38的工作表明现有的神经网络结构搜索算法倾向于选择较宽、较浅的单元结构.单元组合形式的神经网络结构不仅简化了搜索空间,降低了搜索的复杂性,而且具有一定的迁移特第 1 期刘建伟等:神经网络结构搜索方法综述15性35,提高了神经网络结构的搜索效率.但是,单元组合形式的神经网络结构有一个潜在的缺点:限制了搜索空
23、间的大小,从而在一定程度上限制了神经网络结构的探索.图 3 单元组合形式的神经网络结构Fig.3 Cell-based neural network architecture2.3层层层次次次形形形式式式的的的神神神经经经网网网络络络结结结构构构Liu等人32提出图4所示方法来构建不同层次的单元结构,在该基于层次表示的神经网络结构中,最低层次单元是一系列基本的操作,例如不同的卷积、池化操作,高层次单元用低层次单元来构建:O(2)1=assemble(G(2)1,O(1),(1)O(1)=O(1)1,O(1)2,O(1)3.(2)图 4 一个含有两层次的神经网络结构Fig.4 An exampl
24、e of a two-level hierarchical archi-tecture representation在图4中,如式(1)所示,依据连接矩阵G(2)1,用第1层次中的O(1)=O(1)1,O(1)2,O(1)3单元构成第2层次的第1个单元O(2)1.(G(2)1,O(l)是用层次表示法定义的图4所示的神经网络结构.一般的,用层次表示法定义的一个神经网络结构可以表示为(G(l)mMix=2Ll=2,O(1),其中:G(l)m表示l层次中第m个单元的连接矩阵,Ml表示l层次的网络结构中包含Ml个单元,L表示网络结构的最高层次.Liu等人32所提出的层次形式的神经网络结构,可以看做是单
25、元组合形式神经网络结构的一种特例.该层次形式的神经网络结构与单元组合形式神经网络结构不同之处在于,构建单元的过程.与单元组合形式神经网络结构相比,该层次形式神经网络结构的表达能力更强.与单元组合形式神经网络结构一样,该层次形式的神经网络结构可以提高搜索效率,但搜索空间有限.Liu等人33提出两层次形式结构的搜索空间:一个是单元层次的结构,一个是外部网络层次的结构.该两层次形式结构的搜索空间与单元组合形式结构的搜索空间不同点在于:单元组合形式结构的搜索空间中外部网络层次的结构是预先设定的,并没有对外部网络层次的结构进行搜索,而该两层次形式结构的搜索空间不仅搜索了单元层次的结构而且搜索了外部网络层
26、次的结构.与Liu等人33的工作类似,Fang等人39使用梯度下降算法,不仅搜索了基本连接层内的操作,也搜索了路径块之间的连接方式.与整体形式、单元组合形式的神经网络结构相比,两层次(单元、外部网络)形式的神经网络结构完全由搜索算法确定,减少了人为的干预.3搜搜搜索索索策策策略略略如图5所示,神经网络结构的搜索策略主要有随机搜索算法、进化算法、强化学习、基于梯度下降的方法、基于顺序模型的优化算法以及其他各种变体.3.1随随随机机机搜搜搜索索索相比于梯度下降、进化算法、强化学习、基于顺序模型的优化算法等其他神经网络结构搜索算法,随机搜索算法是最基本的搜索方法,在实践中也非常有效,常作为基准算法.
27、Liu等人30将DARTS算法和随机搜索算法做了对比实验,即两者均在NASNET搜索空间上搜索了卷积单元的结构.CIFAR10 任务数据集上的实验结果:随机搜索得到的模型的正确率为96.51%,DARTS算法搜索到的模型的正确率为97.06%.实验结果表明,虽然随机搜索算法比DARTS算法搜索到的神经网络结构的正确率低,但是随机搜索算法也可以搜索到性能较好的神经网络结构.一般情况下,随机搜索算法运行时间越长,越有可能搜索到好的神经网络结构模型.许多研究人员16,3031,40的工作表明:单纯的随机搜索算法可以搜索到性能较好的神经网络结构模型,但是效率比较低;将随机搜索算法与一些加速神经网络结构
28、搜索的方法(例如,权重共享、早停等方法)相结合起来,可以提高随机搜索算法的效率.16控 制 理 论 与 应 用第 40 卷图 5 神经网络结构搜索策略汇总Fig.5 Summary of neural network structure search strategies3.2进进进化化化算算算法法法3.2.1进进进化化化算算算法法法的的的简简简要要要介介介绍绍绍进化算法41是一类算法的统称,包括遗传算法4243、进化策略44、进化规划45、遗传规划46.进化算法是一种基于种群的启发式搜索算法,其主要思想是适者生存,即在种群中选择最优的一部分个体,来执行下一次进化操作.以进化算法中的遗传算法为
29、例,介绍遗传算法的第 1 期刘建伟等:神经网络结构搜索方法综述17流程.如图6所示,首先,确定遗传算法中的各个参数,例如种群大小、进化代数、选择方式、交叉方式及交叉率、变异方式及变异率等.其次,对个体进行编码,并且根据优化目标选取适应度函数,初始化群体.然后,对种群实施选择、交叉、变异等进化操作,更新种群.最后,判断是否停止进化,要是不符合条件(例如,进化代数、种群适应度的大小等)就重复执行以上进化过程.图 6 遗传算法流程Fig.6 The process of genetic algorithm早期的工作主要是通过进化算法优化前馈神经网络的结构和权值,并且进化算法的优化目标单一,均为模型的
30、正确率.1989年,Miller等人47提出了使用遗传算法演化神经网络结构的方法;1992 年,Schaf-fer48等人研究了如何用遗传算法改善神经网络的性能并对两者结合的方向进行了细致的分析;1994年,Angeline等人49提出了GNARL算法,使用进化规划算法同时优化了循环神经网络的结构和权值;1999年,Yao50总结了如何运用遗传算法优化神经网络;2002年,Stanley等人51提出NEAT算法,使用进化算法优化了神经元之间的连接方式及权重.近期的工作与早期的工作相比,不仅在所要搜索的神经网络结构方面发生了变化,而且在进化算法方面也发生了变化.近期,在神经网络结构方面,主要是使
31、用进化算法搜索卷积神经网络的结构;在进化算法方面,考虑到搜索神经网络结构需要消耗大量的计算资源,大多采用多目标的进化算法来减少所需的计算资源,同时对标准进化算法的进化操作(选择、交叉、变异)不断的进行修改以提高进化的速度和进化所得到的模型性能,此外,神经网络结构的编码方式也在不断创新.3.2.2基基基于于于进进进化化化算算算法法法的的的神神神经经经网网网络络络结结结构构构搜搜搜索索索过过过程程程本文依据神经网络结构的搜索目标,将基于进化算法的神经网络结构搜索算法分为单目标进化算法、多目标进化算法.基于单目标进化算法的神经网络结构搜索算法与基于多目标进化算法的神经网络结构搜索算法在搜索过程上一致
32、.接下来,我们详细介绍基于进化算法的神经网络结构算法的搜索过程,同时在算法结构上对比不同的神经网络结构搜索算法.编码:在不同的基于进化算法搜索神经网络结构的算法中,主要有两种编码个体(神经网络结构)的方式,其中一种为直接编码方式,另一种为间接编码方式.直接编码方式与间接编码方式的区别59在于:直接编码方式编码了神经网络结构的所有信息,间接编码方式编码了神经网络结构的重要信息.在两种编码方式下,均可以搜索整体形式的神经网络结构和单元组合形式的神经网络结构.直接编码方式包含二进制编码(如图7示)、有向无环图(如图8示)两种编码,明确表示了相应的神经网络结构,同时也在一定程度上决定了交叉和变异的方式
33、.GeneticCNN算法24、CNNGA算法52、NSGANET算法25、Dvolver算法53中使用了二进制编码方式.基于层次表示的进化算法32、正则进化算法36、JAS-Q算法37、RENAS算法54、Evo-NAS算法26、More-MNAS算法55、CARS算法56中使用了有向无环图编码方式.用神经网络模型的功能描述个体是一种间接的编码方式.该编码方式没有明确指定神经网络结构的具体连接方式,而是描述了个体的功能.LEMO-NADE算法15中使用了这种间接编码方式.选择:在不同的基于进化算法搜索神经网络结构的算法中,主要有5种选择个体(神经网络结构),作为父代的方式,分别为轮盘赌选择法
34、、锦标赛选择法、选择年轻个体、帕累托前沿、拥挤距离.在轮盘赌选择法中,个体被选择的概率与其适应度成正比.GeneticCNN算法24中使用了轮盘赌选择法.在锦标赛选择法57中,首先从种群中随机选取部分个体,其次根据个体的适应度,从中选择最好的个体作为父本.CNNGA算法52、AECNN算法58、基于层次表示的进化算法32、JASQ算法37、RENAS算法54、Evo-NAS算法26中使用了锦标赛选择法.在选择年轻个体的方法中,对个体赋予时间标志,每次进化中都会淘汰最老的个体,也就是选择了年轻的个体.正则进化算法36中使用了选择年轻个体的方法.在依据帕累托前沿(帕累托最优解的集合)、拥挤距离(衡
35、量一个解区域内个体所占空间的大小)选择个体的进化算法中,含有多个18控 制 理 论 与 应 用第 40 卷优化目标,例如,模型的正确率、模型的参数个数、Flops、推理时间等.LEMONADE算法15中依据拥挤距离选择个体.NSGANET算法25、Dvolver算法53中依据帕累托前沿和拥挤距离选择个体.MoreMNAS算法55、CARS算法56中依据帕累托前沿选择个体.图 7 NSGANET算法25中二进制编码的个体Fig.7 Binary encoded individuals in NSGANET25图 8 JASQ算法37中有向无环图编码的个体Fig.8 Directed acycli
36、c graphs encoded individuals inJASQ37交叉:在种群中选出个体之后,需要对个体进行交叉操作.个体的编码方式决定了交叉操作的形式.二进制编码的个体一般采用单点交叉、均匀交叉等交叉方式.例如,CNNGA算法52、AECNN算法58中个体的交叉方式为单点交叉,Dvolver算法53中个体的交叉方式为均匀交叉.有向无环图编码的个体在进化过程中一般不会通过交叉操作生成新的个体.尤其是MoreMNAS算法55中个体的交叉方式为基于单元的交叉.变异:变异操作是另外一种进化个体的方式.个体的编码方式决定了变异操作的形式.二进制编码的个体一般采用位翻转、均匀变异等变异方式.例如
37、Gene-tic CNN 算法24、CNNGA 算法52、NSGANET 算法25中采用了位翻转的变异方式,Dvolver算法53中采用了均匀变异的变异方式.有向无环图编码的个体一般通过添加、修改、删除边,完成变异.例如基于层次表示的进化算法32、正则进化算法36、JASQ 算法37中通过添加、修改、删除的边,完成变异.尤其是,在RENAS算法54、EvoNAS算法26、MoreMNAS算法55中使用强化变异的方式生成新个体.图9展示了RENAS算法54中的强化变异操作.强化变异与随机变异不同,强化变异控制器指导种群(神经网络结构模型)向合适的方向进化,避免了不可控的随机变异对种群进化的不利影
38、响,提高了进化的稳定性.图 9 RENAS算法54Fig.9 RENAS54LEMONADE算法15中,采用模型所具有的功能编码个体.在该编码方式下,采用近似网络态射(AN-M)和网络态射(NM)变异操作进化.更新种群:通过选择、交叉、变异,生成新的个体之后,需要更新种群.CNNGA算法52中,通过环境选择的方式,在原种群和子代中选择与原种群相同数量的个体,完成种群的更新.为了保持种群的多样性,基于层次表示的进化算法32在进化过程中不淘汰任何个体.正则进化算法36中,每个个体都有生存期限,每次进化都会淘汰最老的个体.LEMONADE算法15中,根据帕累托前沿,在原种群和子代中选择与原种群相同数
39、量的个体,完成种群的更新.JASQ算法37、RENAS算法54中,对选择的个体进行变异操作后,将父代和子代直接送入种群.如表2所示,我们对不同的基于进化算法的神经网络结构搜索算法进行了详细汇总.3.2.3小小小结结结与与与分分分析析析进化算法是一类较早的应用于神经网络结构搜索的方法.早期的工作主要搜索的是前馈神经网络的结构,现在的工作主要搜索的是卷积神经网络的结构.同时,也对进化算法中的编码方式、进化操作(选择、交叉、变异)不断改进、创新.接下来,分别简要介绍单目标进化算法、多目标进化算法的改进和创新之处.首先,介绍单目标进化算法的改进和创新之处.Genetic CNN算法24首次提出并使用固
40、定长度的二进制字符串编码整体的卷积神经网络结构.CNNGA算法52在神经网络结构设计中使用跳连减小了搜索空间,加速了神经网络结构的搜索.同时,CNNGA算第 1 期刘建伟等:神经网络结构搜索方法综述19表 2 基于进化算法的神经网络结构搜索算法汇总Table 2 Summary of neural network structure search algorithms based on evolutionary algorithm算法搜索空间编码方式选择方式交叉方式变异方式Genetic CNN24整体二进制编码轮盘赌选择法阶段交叉位翻转CNNGA52单元组合一种变长度的编码锦标赛选择法单点交
41、叉位翻转AECNN58单元组合一种变长度的编码锦标赛选择法单点交叉修改、删除单元Hier.repr-n,evolution32层次有向无环图锦标赛选择法无添加、修改、删除边RegularizedEvolution36单元组合有向无环图选择年轻个体无添加、修改、删除边LEMONADE15整体、单元组合神经模型的功能帕累托前沿、拥挤距离无网络态射、近似网络态射NSGANET25整体二进制编码帕累托前沿、拥挤距离继承、重组位翻转Dvolver53单元组合二进制编码帕累托前沿、拥挤距离均匀交叉均匀变异JASQ37单元组合有向无环图锦标赛选择法无修改连接CARS56单元组合有向无环图帕累托前沿基于节点基
42、于节点RENAS54单元组合有向无环图锦标赛选择法无强化变异Evo-NAS26整体有向无环图锦标赛选择法无强化变异MoreMNAS55单元组合有向无环图帕累托前沿基于单元强化变异法52使用变长度的编码方式以及相应的变异操作,表示任意长度的卷积神经网络结构,解除了神经网络结构深度上的限制.AECNN算法58使用基于ResNet和DenseNet块的编码方式,一定程度上加速了神经网络结构的设计.正则化进化算法采用选择年轻个体的方式,使种群保持在年轻的状态.基于层次表示的进化算法提出了层次表示法,有效的表示了神经网络结构.正确率是单目标进化算法中的唯一优化目标,即个体的适应度是模型在测试集上的正确率
43、.在单目标进化算法中,没有惩罚过度的资源消耗.实际上,计算设备经常受硬件资源的限制,例如,可用的显存、可用的FLOPS、延迟等.因此,许多研究人员提出了基于多目标进化算法的神经网络结构搜索算法.不同的多目标进化算法最明显的区别在于优化目标的不同,搜索神经网络结构的目标主要包括预测性能、模型的参数数量、计算复杂性(依据FLOPS评价)、推理时间等.LEMONADE算法15中,优化目标为预测性能、模型的参数数量、乘积求和运算的数量、推理时间.同时,LEMONADE算法15使用近似网络态射(ANM)和网络态射(NM)变异操作,避免了重新训练子代,一定程度加速了神经网络结构的搜索.NSGANET算法2
44、5的优化目标为误差指标、计算复杂性.同时,NSGANET算法25使用Pareto前沿和拥挤距离选择子代,并且通过历史信息构建了贝叶斯网络,探索了神经网络结构不同单元之间的联系,有效的探索和利用了搜索空间.Dvolver算法53的优化目标为预测正确率、FLOPS.Dvolver算法53与NSGANET算法25相似,也是依据Pareto前沿、拥挤距离选择子代.JASQ算法37的优化目标为量化后模型的大小、验证集上的正确率.JASQ算法37在优化目标中限制了模型大小,搜索神经网络结构的同时也压缩了神经网络结构.CARS算法56的优化目标为模型的参数数量、预测性能、乘积 求和运算的数量、延迟时间等.C
45、ARS算法56从经过训练的超网络中初始化个体,并且使用pNSGAIII算法选择子代,大幅度提高了神经网络结构的搜索效率.考虑到随机变异所带来的不稳定性,RENAS算法54、EvoNAS算法26、MoreMNAS算法55中使用了强化变异操作,提高了进化的稳定性.表3给出了CIFAR10数据集上不同进化算法搜索到的神经网络结构模型的性能.考虑到不同进化算法在进化代数、种群规模上存在较大差异,因此本文在基于进化算法的神经网络结构搜索算法中只对比了不同模型的性能,没有对比搜索结构所使用的GPU时间.接下来,我们根据表3,简要对比不同进化算法搜索到的神经网络结构模型的性能.首先,对单目标进化算法进行对比
46、分析.GeneticCNN算法24使用的是标准进化算法.同时,GeneticCNN算法是较早搜索卷积神经网络结构的一种进化算法.GeNet模型24的正确率为92.81%.与其他进化算法搜索到的神经网络结构模型相比,GeNet模型24的正确率最低.CNNGA模型52、AECNN模型58、Hier.repr-n,evolution模型32、AmoebaNet-A模型36的分类正确率均处于中等水平.RENASNet模型54的正确率为97.02%.与其他单目标进化算法相比,REN-ASNet模型54的分类正确率最高.20控 制 理 论 与 应 用第 40 卷表 3 CIFAR10数据集上基于进化算法搜
47、索的结构性能对比Table 3 Performance comparison of structures based on evolutionary algorithm search on CIFAR10 dataset神经网络结构测试误差/%参数量/M目标GPU时间/hGeNet 1(G-50)247.19正确率408CNNGA524.782.9正确率840AECNN584.710.4正确率1584Hier.repr-n,evolution323.75正确率7200AmoebaNetA363.343.2正确率75600LEMONADEA152.5813.1正确率、模型的参数个数等1920LE
48、MONADEB154.570.5正确率、模型的参数个数等1920NSGANET253.85正确率、FLOPS192DvolverA532.93.17正确率、FLOPS1200JASQNet372.93.3正确率、模型大小72CARSA5632.4正确率、模型的参数个数等9.6CARSI562.623.6正确率、模型的参数个数等9.6RENASNet542.983.5正确率144在多目标进化算法中,LEMONADEA模型15的分类正确率最高,参数量最多;LEMONADEB模型15的分类正确率最低,参数量最少.LEMONADEA模型15和LEMONADEB模型15均是位于帕累托前沿上的解.NSGA
49、NET模型25的分类正确率为96.15%.与其他多目标进化算法搜索到的神经网络结构模型相比,NSGANET 模型25的分类正确率较低.DvolverA 模型53、CARSA 模型56和 JASQNet 模型37的分类正确率均处于中等水平.CARSA56和CARSI56模型均是处在帕累托前沿上的解.CARSA56与CARSI56相比,正确率低,但参数量少.3.3强强强化化化学学学习习习3.3.1强强强化化化学学学习习习的的的简简简要要要介介介绍绍绍如图10所示,强化学习5960的基本流程:智能体感知所处的环境状态,然后采取一定的动作改变环境的状态,同时智能体获得一个奖励,智能体根据当前所处的状态和奖励决定下一次的动作.智能体学习的目标是:在不断的与环境交互的过程中,学习一个最优的策略使其获得最大的长期累积奖赏.图 10 智能体环境的交互过程Fig.10 Interaction process between agent and environmentZoph等人6将神经网络结构搜索作为强化学习