摘要—深度神经网络的性能在很大程度上取决于其体系结构,并且已经针对自动化网络体系结构设计开发了各种神经体系结构搜索策略。最近,由于进化算法具有吸引人的全局优化功能,进化神经体系结构搜索(ENAS)受到了越来越多的关注。但是,由于进化优化中通常需要进行大量的性能评估,并且训练深度神经网络本身的计算量很大,因此ENAS承受着极高的计算成本。为了解决这个问题,本文提出了一种基于有向无环图的快速ENAS进化框架,在该框架中,对父母进行了随机抽样,并在每小批训练数据上进行了训练。此外,采用节点继承策略来生成后代个体,无需培训即可直接评估其适应性。为了增强进化神经网络的特征处理能力,我们还在搜索空间中对通道注意机制进行了编码。与26个最新的对等算法相比,我们在广泛使用的数据集上评估了该算法。我们的实验结果表明,该算法不仅计算效率更高,而且在学习性能方面也具有很高的竞争力。
索引词-进化优化,神经体系结构搜索,节点继承,适应性评估,卷积神经网络。
一 引言
深度学习在解决诸如图像分类[1],语音识别[2],自然语言处理[3]等各种任务方面取得了非凡的成功。由于深度神经网络的性能在很大程度上取决于其体系结构,因此深度学习社区中的大量研究工作都致力于设计新颖的体系结构,例如DenseNet [4],ResNet [5、6]和VGG [ 7]。通常,最强大的深度网络是由在深度学习和相关问题领域具有丰富专业知识的人类专家手动设计的。直到最近,自动化神经体系结构设计(即神经体系结构搜索(NAS))才显示出了巨大的机会,可以让没有足够领域知识的感兴趣的用户受益于深度神经网络的成功[8]。 NAS任务通常可以表述为复杂的优化问题[9,10]。在计算智能领域,进化算法(EA)[11]已广泛用于解决各种神经网络训练问题[12],例如权重训练[13],体系结构设计[14]和学习规则自适应[15] ]。最近,使用EA作为NAS优化器的进化神经体系结构搜索(ENAS)受到越来越多的关注[16-19]。尽管EA在各种优化任务中都表现出强大的搜索性能[20-23],但作为一类基于人群的搜索方法,它们通常会承受较高的计算成本。对于ENAS而言尤其如此,因为EA通常需要进行大量的适应性评估,并且NAS中的每种适应性评估都具有计算意图,因为它通常涉及从头开始对大量数据进行深度神经网络的训练。例如,使用AE-CNN的三个1080TI GPU需要22个GPU天[19],才能在CIFAR10数据集上获得优化的CNN架构。
因此,在ENAS中已经提出了各种技术来减少计算成本,而又不会严重降低优化性能。例如,通常使用低保真度的性能估计,不幸的是,这会严重降低搜索性能[9,24]。在[25]中,贝叶斯优化[26]被用来加速进化优化,这被称为冻融贝叶斯优化。主要思想是建立一个模型,以根据先前时期的训练表现来预测表现。不幸的是,该算法基于马尔可夫链蒙特卡洛采样,并且还具有很高的计算复杂度。最近,Sun等人。提出了一种称为E2EPP的替代辅助ENAS,它基于一类替代辅助的进化优化[18,27–29],旨在对昂贵的工程问题进行数据驱动的进化优化。具体来说,E2EPP建立了一个可以预测候选CNN性能的代理,从而避免了在ENAS期间训练大量神经网络。 与AE-CNN相比,由E2EPP辅助的AE-CNN变体(称为AE-CNN + E2EPP)可以分别在CIFAR10和CIFAR100上减少214%和230%的GPU天数。 但是,AE-CNN + E2EPP仍需要3个GPU,才能持续17天才能达到最佳效果,因为训练足够准确的替代品仍然需要大量的深度神经网络训练,因此在计算上仍然很昂贵。
除了代理辅助的ENAS,还提出了一些信息重用的想法,以减少计算成本,包括参数共享[30](强制所有子模型共享一组权重),知识继承[31](使子模型直接继承)。父模型的卷积核的权重[31],以及旨在促进权重共享的已知突变[16]。另一个相关的工作称为网络形态学[32],其目的是在更改神经网络的体系结构的同时保持其功能。
除了使用ENAS进行自动神经体系结构设计外,还研究了其他方法(例如注意力机制)[33],以改善诸如卷积神经网络(CNN)等深层神经网络的性能。受人类视觉系统的启发,注意力机制尝试通过选择对象的关键部分而不是整个对象来识别对象[34、35]。因此,在CNN中引入注意力机制可以带来更多的区分特征表示能力[36]。通常,基于注意力机制的方法可以分为两类。第一类包括关注渠道关注的方法,例如SE-Net [37],ECA-Net [38],而第二类涉及基于空间关注的方法,例如空间变换器网络[39]和深度递归专注作者(DRAW)神经网络[40]。与空间注意力相比,频道注意力可以更轻松地并入CNN中,以便对其进行端到端训练。具体而言,频道关注模块至少包含两个分支:掩码分支和主干分支。中继线分支执行特征传输或处理,而掩码中继线生成并学习输出通道的权重。通道注意机制的原理是重构通道特征,即为每个通道分配新的权重,以使关键通道的特征响应更强,从而可以学会选择性地强调重要的信息特征并惩罚过多的冗余特征[37]。但是,大多数以前的工作只是通过将多个注意模块手动堆叠到神经网络中来构建注意机制。这种幼稚的堆叠注意模块可能导致网络性能不佳[36]。为了提高ENAS的效率,本文提出了一种基于对父母个体的采样训练和节点继承以生成后代个体的快速ENAS框架,称为SI-ENAS,从而显着降低了计算成本。本文的主要贡献概述如下:
本文的其余部分安排如下。第二节介绍了这项工作的背景。第三节介绍了基于DAG的神经网络架构编码和通道注意机制,然后在第四节中详细介绍了所提出的算法。实验设置和实验结果分别在第五节和第六节中介绍。最后,第七节总结了论文。
二 前提条件
在本节中,我们简要回顾了卷积神经网络的基本背景,通道注意机制和进化优化。
A.卷积神经网络(卷积层和激活函数,迷你batch sgd)
卷积通过将图像分成小片来提取局部相关的特征,从而使其能够学习合适的特征[10]。卷积层使用被识别为方形块神经元阵列的卷积内核对输入数据执行卷积运算。例如,给定输入x = [x1,x2,...,xc],k = [k1,k2,...,ks]用于表示卷积核的集合,其中s表示卷积核的数量。过滤。令σ为激活函数,'*'为卷积运算,则输出yˆ = [ˆy1,yˆ2,···,yˆs]由非线性激活函数计算如下:yˆ =σ(k ∗ x), (1)合并层是非线性下采样操作,可以在几个卷积层之后添加到CNN中。通常,CNN中有两种类型的池化层:最大池化和平均池化。因此,滤波器的输出是该面积的最大值或平均值。随后,前馈传播经过几个卷积和合并层,并输出分类结果。通常,整流线性单位(ReLU)[41]在完全连接的分类层中用作激活函数,而softmax函数在输出层中用作激活函数:
这项工作采用了小批量随机梯度下降(mini-batch SGD),它随机选择训练数据的小批量大小以计算梯度。 此方法旨在在每次训练迭代中平衡计算效率和训练稳定性:
B.频道关注Channel attention
将频道关注机制整合到CNN中已显示出对改善性能非常有前途[37,38,42,43]。在这些机制中,挤压和激励网络(SENet)[37]是竞争结构之一,它学习卷积层的通道注意。尽管它们在性能增强方面有希望的能力,但是这些方法在计算上是密集的[44,45]。为了解决这个问题,王等人。 [38]提出了一种有效的信道注意(ECA)模块,该模块通过使用快速一维卷积层捕获跨信道交互来涉及少量参数。此外,王等。 [36]介绍了注意力残差学习的思想,以提高注意力机制的性能。尽管注意力模块可以用作增强良好通道或特征的特征选择器,但它可能会破坏原始特征图的有用属性。因此,注意力残差学习使用残差连接[5]将原始特征传递到更深的层,这可以增强特征选择,同时保持原始特征的良好属性。
C.进化神经体系结构搜索(ENAS)
图1显示了ENAS的通用框架[14,18,19],它由以下六个主要步骤组成:
1)根据相应的网络编码策略,为初始种群P0随机生成K个神经网络。
2)通过在一组给定数据上训练网络来评估Pt中每个人(神经网络)的适应性。适应度函数通常是要最小化的损失函数。
3)使用遗传算子(例如交叉和突变)从亲本个体生成后代(新的候选神经网络)。后代种群Qt的大小与亲代种群Pt的大小相同。
4)评估生成的后代Qt的适合度,并将其与父代种群Pt合并为一个合并的种群Rt,即Rt = Pt Qt的大小为2K。请注意,在ENAS中,有时还需要在选择环境之前对父母个体进行培训和评估,以避免偏爱后代个体。
5)通过使用环境选择方法从Rt中选择K个更好的解,可以获得下一代Pt 1的父体。
6)如果演进没有终止,请执行步骤3;否则,请选择父母群体中的最佳个体(神经网络)作为最终解决方案。
从上面我们可以看到,总的来说,ENAS遵循进化算法(EA)的基本步骤[11,46],即种群初始化,繁殖,适应性评估和环境选择[47]。为了在ENAS中进行适应性评估,在训练数据集上训练了神经网络,然后评估了验证数据集,以避免过拟合。因此,如果网络很大且训练数据集很大,则ENAS中的适应性评估可能要花费数小时。由于EA是一种基于人群的搜索方法,因此它们通常需要进行大量的适应性评估,从而使ENAS的计算成本非常高。例如,在CIFAR10和CIFAR100数据集上,CNN-GA [19]在3个GPU上分别消耗了35天和40天,遗传CNN [14]在10个GPU上花费了10天,而大规模进化算法[16]在250个GPU上消耗了22天。因此,在计算资源有限的情况下,加速ENAS中的适应性评估至关重要。
三 结构搜索空间
在本节中,我们描述了这项工作中使用的神经体系结构编码方法,该方法定义了体系结构搜索空间。 我们的编码方法是建立在[30]中提出的微搜索空间上的,它使用单个有向无环图(DAG)表示。 我们首先设计较小的卷积模块(称为块),然后将它们堆叠在一起以创建整体神经网络。
A.区块结构
块是完全卷积的网络。图2显示了由两个块(左图)和相应的神经体系结构(右图)组成的DAG拓扑计算示例。每个块由源节点和Nc个计算节点组成。源节点被视为块的输入,它是先前块的输出或整个网络的输入。每个计算节点由两个计算操作组成,并以逐元素加法运算结束。总的来说,我们可以用5个元组(I1,I2,O1,O2,M)在搜索空间中的块i中描述一个节点d,其中I1,I2∈Ix指定当前节点的输入,O1,O2∈Ox指定要应用于节点d的输入进程Ij的运算,M指定将每个节点的两个运算结果相加以生成与此输出对应的特征图的逐元素加法运算节点,由P di表示。可能的输入Ix的集合由该块内所有先前节点的集合(P 1 i,P 2 i,...,P d-1 i),先前块的输出Pi组成-1,前一个上一个块Pi-2的输出。显然,对于每个计算节点,输入搜索空间可能会更改。 Ox是由一组可能的操作组成的操作空间。最后,未用作块内任何其他节点输入的节点的所有输出将沿着深度尺寸连接起来,以形成块的输出。
B.从块到神经网络
在我们的工作中,可以通过提出的算法设计三种类型的块:第一个块,正常块和归约块。 每个块将一个h×w×c张量映射到另一个H×W×C张量。 第一块和其他块之间的唯一区别是,第一块仅具有一个源节点。 此外,普通块应用步幅为1的所有运算,因此H = h,W = w; 约简块应用所有步幅为2的运算,因此H = h/2, W= w/2. 因此,缩小块可以增加更深层的接收场并减小特征图的空间尺寸。如图3所示,网络体系结构从第一个块开始,然后是由正常块和归约块组成的两组块(具有相同的结构,但权重未绑定)。所有块均通过跳过连接进行连接。在网络的末端,我们利用softmax层作为神经网络的输出层,而不是大型的全连接层[19]。 C.编码策略编码策略定义了基因型-表型,这是采用EA来优化神经网络架构所必需的。在这里,表型是不同的神经网络架构,而基因型是遗传编码。所提出的编码策略旨在由EA中的个人初始化一组具有不同架构的神经网络。在我们的工作中,EA仅设计每个块中的计算节点。
每个块的染色体由节点字符串和操作字符串组成。节点字符串表示块内相应节点的输入,而操作字符串表示每个输入的操作类型。该染色体由元组((I1,I2,......),(O1,O2,......))完全描述。表I列出了这项工作中使用的所有基因型-表型映射。在表中,DW是深度方向上可分离且有效的卷积操作。深度可分离卷积能够减少网络参数而不会损失网络性能。在这里,我们使用两个DW操作,内核大小分别为3×3和5×5,简称SW3和SW5。另外,FR表示特征重构卷积运算,它由一个正常的卷积层和一个频道关注模块组成。在这项工作中,两个可用的运算符是FR3和FR5,它们分别具有正常的卷积层,其内核大小分别为3×3和5×5。有关FR操作的更多讨论将在第III.D节中讨论。图4提供了一个编码块和相应网络结构的示例,其中Nc = 3。
D.多尺度特征重建卷积运算(SEnet)
受有效通道注意机制[38]先前工作的启发,我们提出了一种特征重构卷积运算作为神经体系结构搜索(简称FR)的构件。 帧中继由一个正常的卷积层和一个频道关注模块组成。
图5画出了FR卷积运算的组成部分。具体而言,给定输入要素,FR首先使用常规卷积层提取要素。不同的卷积核大小可用于捕获不同尺度(细粒度和粗粒度)的空间信息[10]。法线卷积层将输入特征图从x∈R C×H×W扩展到特征图T(x)∈R C×H1×W1。然后,将全局平均池(GAP)层独立地用于每个通道。此后,利用大小为θ的一维卷积层,然后再加上σsigmoid函数层来生成每个通道的权重。大小为θ的一维卷积层设计为捕获每个信道及其θ个相邻信道的非线性跨信道交互,其中内核大小θ表示有多少个相邻信道参与该信道的注意力预测。参数θ由[38]中提出的指数函数自适应确定。频道注意力是由前馈过程产生的,并由反馈过程来学习的。整个结构可以端到端地训练。在前馈过程中,FR可以重建通道方向的特征响应,以减少通道的特征冗余。在反向传播过程中,FR可以防止不重要的梯度(来自不重要的通道)来更新参数[36]。
四 拟议算法
如上所述,建议的SIENAS的搜索空间是使用单个DAG表示的,其中神经网络体系结构可以通过获取DAG的子图来实现。 节点之间的不同连接关系将导致大量具有不同架构的神经网络。 我们使用SI-ENAS来学习节点之间的连接关系,并为深度神经网络找到更好的拓扑。 除源节点外,DAG中的每个节点都代表一些本地计算,由权重和偏差指定。 由于可以通过对父本个体进行遗传运算(父本种群中的现有神经网络模型)而生成的子孙个体(新的神经网络模型)被视为父模型的节点的重组,因此,子孙个体的参数可以直接从父网络继承。 我们称此方法为节点继承。
此外,由于每个节点在整个进化优化过程中都被重复使用,因此在进化搜索过程中训练并更新了节点的所有参数。因此,SI-ENAS能够避免在节点继承的帮助下从头训练后代个体,从而有效地降低了ENAS通常所需的高计算成本。
A.总体框架
算法1列出了SI-ENAS的主要组成部分。它从初始的P0种群开始,该种群由K个随机生成的个体组成(第1行)。然后,我们对G代重复以下步骤(第4-22行)。每一代都由对父母个体的培训和评估(第4-10行),对后代个体的生成和评估(第11-14行),父母与后代种群的组合(第15行)以及采用精英策略的环境选择组成(第16-21行)。 SI-ENAS与大多数现有的ENAS之间的主要区别在于种群初始化,父母种群训练和使用节点继承对后代的适应性评估,这些将在IV-B和IV-C小节中详细介绍。在SI-ENAS中,个体的适应度是在给定的验证数据集上从个体解码的神经网络的分类精度。在解码神经网络时,我们需要注意现代CNN的以下实践[5]。首先,将批处理归一化操作以及ReLU激活函数添加到深度可分离卷积层的输出中。第二,池化层从ReLU激活功能开始。第三,使用零填充操作使每个节点的输入特征图和输出特征图的大小相同。选择操作在提高SI-ENAS的性能方面起着关键作用,包括配对选择(选择繁殖的亲本)和环境选择(下一代父母的选择人)。在配偶选择中,采用二元锦标赛选择,即从父母群体中随机选择两个人,然后选择一个适应性更好的人。在环境选择中,从合并人口Rt中选择K大小的个体作为下一代的亲本。从理论上讲,为了防止搜索陷入局部最小值并避免过早收敛,应保持足够程度的种群多样性[11]。在我们的算法中,我们通过二元锦标赛选择来选择个体,以增强种群的多样性。但是,使用比赛选择可能会失去父母中最好的个人。因此,我们总是将最好的人传递给下一个人群,这在EA中称为精英策略。
整个SI-ENAS的框架如图6所示。请注意,在SI-ENAS中,父母群体中的每个个体都通过抽样方法进行训练。即,对于训练数据的每个小批量,将随机选择父级群体中的一个人并在Dtrain上对其进行训练。当完成对父代种群的训练后,搜索空间中所有计算节点的参数都会更新。之后,将在验证数据集上测试所有父母个人,以计算其适合度。
随后,通过结点继承生成后代种群,这将在第IV.C小节中详细介绍。然后,无需培训即可直接在验证数据集上测试后代个体。当进化循环终止时,SI-ENAS输出最佳个体并将其解码为相应的神经网络体系结构。应该指出的是,最好的个人在接受测试数据集进行最终性能评估之前,将接受完整的培训。
通过以上讨论,我们可以看到,建议的快速ENAS框架SI-ENAS与图1所示的常规ENAS有很大不同。主要区别在于,在SI-ENAS中,父母个体是随机抽样并经过训练的在小批量的训练数据上,而后代个体是使用节点继承策略生成的,不需要进行适合度评估的训练。这样,SI-ENAS可以显着减少培训时间,同时避免偏向父母或后代。
B.种群初始化
正如在第III.B节中介绍的那样,我们通过2元组[节点字符串,操作字符串]的染色体对神经网络进行编码,其中节点字符串表示每个相应节点的输入,而操作字符串表示应用于输入的操作。总体初始化的详细信息在算法2中进行了描述。对于块中的每个计算节点,EA首先从输入搜索空间节点空间中选择两个整数作为当前节点的输入。然后,从操作空间操作空间中选择两个整数作为相应的操作。重复此过程,直到配置了所有节点。之后,将节点链接并存储在P0中。最后,以相同的方式将K个个体随机初始化,并将它们存储在P0中。
C.节点继承
对于节点继承,我们的意思是在这项工作中使用交叉,交换突变和权重继承从父代生成新的神经网络架构(后代)。节点/操作交叉和变异都可以通过交换DAG中计算节点的访问顺序来实现。请注意,在节点继承中不会生成未经训练的新节点,因此,在评估验证数据集的适应性之前,无需对后代个体进行权重训练。算法3显示了SI-ENAS中节点继承运算符的详细信息。第一部分是单点交叉(第3-12行)。使用二元锦标赛选择从总体Pt中选择两个父代,以通过在节点和操作字符串上应用单点交叉来创建两个后代。重复该过程,直到产生K个后代个体。第二部分是节点/操作交换突变(第14-19行),可以将其视为一种突变,其中个体可以随机交换其染色体中两个计算节点或操作的顺序。图7提供了通过节点继承来产生后代的说明性示例。在该示例中,使用比赛选择来选择两个父项p1和p2进行再现。选择第二和第三基因之间的位置作为交叉点以应用单点交叉。然后,在q2处发生交换突变,在该处其第三基因和第五基因交换其位置。这样,后代中的所有节点(包括它们的权重)都是从父母那里继承的,因此,不需要培训就可以进行适应性评估。尽管单点交叉和交换突变很简单,但已证明它们可以显着提高NAS的性能,这将在第六节中通过实验证明。
V.实验设置
SI-ENAS的最终目标是有效地找到最佳的神经网络架构,该架构基于基准数据集实现有希望的分类准确性。为此,在这项工作中设计了一系列实验,以证明与最新技术相比,该方法的优势。首先,我们通过研究进化神经网络的分类性能来评估所提出算法的性能。其次,我们检查了所提出的节点继承和FR操作的有效性。最后,我们将在CIFAR10上演进的优化网络架构转移到CIFAR100和SVHN,以评估演进后的网络架构的可移植性。在本节中,第V.A小节介绍了与本算法比较的同行竞争对手。然后,将在第V.B小节中介绍使用的基准数据集。最后,在V.C小节中介绍了SI-ENAS的参数设置和最终测试(如果已进化的神经网络)。
A.同行竞争对手
为了证明所提出算法的优越性,选择了各种对等竞争者进行比较。选定的竞争对手可以分为三个不同的组。第一组包括由专家手工设计的最新CNN架构,包括DenseNet [4],ResNet [5],Pre-act-ResNet-110 [6],Maxout [48],VGG [7],网络中的网络[49],高速公路网络[50],全CNN [51],分形网络[52],DSN [53],残差注意[236] IGCV3-D(G1 = 4,G2 = 2)[54]。考虑到ResNet的出色性能,我们利用了56、101、1202三种不同的网络深度。第二组包括各种非进化的NAS方法,例如NAS [8],MetaQNN [55],EAS [8]和Block -QNN-S [56]。第三组代表用于CNN架构设计的最先进的进化NAS,包括遗传CNN [14],神经网络进化[31],大规模进化[16],分层进化[57]和AmoebaNet抠图[58],CGP-CNN [17],CoDeepNEAT [59],CNN-GA [19],AE-CNN [19]和AE-CNN E2EPP [18]。
B.基准数据集
在我们的实验中,基准数据集包括CIFAR10 [60],CIFAR100 [60]和SVHN数据集[61],它们都被最新的CNN和NAS算法广泛采用。 CIFAR10是一个10类分类数据集,由50,000个训练数据集和10,000个测试数据集组成,每个图像的尺寸为32×32。CIFAR100在训练数据集和测试数据集中具有与CIFAR10相同数量的图像。这是100类分类问题。 SVHN(街景门牌号码)数据集总共由630,420个32×32 RGB彩色图像组成,其中73,257个样本用于训练,26,032个用于验证,其余531,131个用于测试。该数据集的任务是对位于每个图像中心的数字进行分类。
在实验中,为了避免在进化过程中看到测试数据,将每个基准数据集的训练数据集分为两部分。第一部分占数据的80%,用作训练数据集。其余20%的图像用于计算适应度值时的验证。此外,数据集由相同的数据预处理和扩充例程处理,在训练过程中经常在同级竞争对手中使用[4,5]。
C.参数设定
在本小节中,将详细介绍SI-ENAS的参数设置。表II汇总了所有参数设置。参数设置适用于所有实验。我们的算法参数分为两个部分:进化搜索和最佳个体验证。对于进化搜索,参数设置遵循进化计算中的实践。尽管更大的人口规模和更大的世代数量将原则上带来更好的性能,但计算成本也将变得令人望而却步。因此,在第V-D小节中,我们调查了人口规模和最大代数对SI-ENAS性能和计算成本的影响。交叉和突变的概率分别设置为0.95和0.05。迷你批处理SGD用于训练两个个体的体重,这些个体的权重已通过He初始化进行了初始化[62]。同时,动量,涅斯捷罗夫(Nesterov),体重下降,辍学被广泛使用在深度学习社区中。在进化搜索过程中,我们进行了300代的进化过程,并将种群数量设置为25。从第一代到第149代的学习率设置为0.1,从第150代到224-的学习率设置为0.01。 th代,其余代为0.001。当进化过程终止时,将对最佳个体进行重新培训,并在验证数据集上评估其分类准确性。在此训练中,对最佳神经网络进行了500个纪元的训练,并将学习率初始化为0.05,并在第300个纪元和第450个纪元处将其除以10进行缩放。其他参数的设置与进化搜索相同。最后,在测试数据集上测试训练后的神经网络。遵循深度学习的实践,测试分类的准确性被报告为我们实验的最佳结果。请注意,这些实验设置受到我们可用的计算资源的限制。所有实验均在一台Nvidia GeForce RTX 2080Ti上进行。
D.对种群规模的敏感性
为了研究种群大小对所提出算法的性能和计算成本的影响,我们将种群大小设置为K = 15、20、25、30,并在CIFAR10和CIFAR100上进行了300代的进化搜索。图8绘制了不同人口规模的各代人口中最佳个体的分类准确性的变化。表III列出了具有不同人口规模的SI-ENAS的最终分类准确性和运行时间。是在GPU日内计算的,这是[18]中提出的一个单位,表示一天中可以完全利用单个GPU。根据这些结果,我们可以得出结论,当人口总数都设置为25时,将达到最佳性能(在CIFAR10上为93.7%,在CIFAR100上为75.2%)。当人口规模增加到30时,虽然运行时间会越来越高。因此,在其余实验中将种群大小设置为25。
VI。 比较研究
在这里,我们进行了一系列比较研究,以证明所提出算法的优势。 在分类准确性和计算成本方面,第VI.A小节将建议的算法SI-ENAS与29种最新的NAS方法进行了比较。 在第VI.B和VI.C小节中,分别检查了FR操作和节点继承的有效性。 最后,我们在第VI.D小节中测试了CIFAR100和SVHN这两个不同的数据集上CIFAR10上开发的最佳体系结构的准确性,以研究演化后的神经体系结构的可传递性。
A.总体结果
表IV中列出了所有比较算法的分类精度和GPU消耗天数方面的实验结果。 在表中,符号–表示相应结果尚未发布。 请注意,此表中竞争对手的所有结果均摘自发表方法的论文。
从表IV中的结果中,我们可以看到,SI-ENAS可以比所有最新的手动设计DNN取得更好的性能。 与Maxout,VGG,网络中的网络,公路网,AllCNN和DSN相比,CIFAR100上的SI-ENAS的性能增强大于10%,与DenseNet,ResNet(depth = 101)和ResNet( 深度= 1202)。
SI-ENAS的分类准确性优于本文中考虑的所有四种非进化NAS方法,包括CIFAR10和CIFAR100数据集上的NAS,MetaQNN,EAS,Block-QNN-S。 还要注意,NAS,MetaQNN,Block-QNN-S和EAS分别消耗了22400、100、90和10个GPU天,以达到其最佳分类精度,而SI-ENAS仅消耗了1.8 GPU天。
与11种ENAS方法相比,SI-ENAS的性能优于遗传CNN,EVO,大规模进化,CGPCNN,CoDeepNEAT,CNN-GA,AE-CNN,AE-CNN + E2EPP,尽管比分层进化稍差(0.44 %)和CIFAR10上的AmoebaNet +切口(0.73%)。 但是,在CIFAR100上,SI-ENAS在所有比较过的ENAS算法中都达到了最高的分类精度。 再次注意,分层演进和AmoebaNet + cutout分别消耗了300和3150 GPU天,而SI-ENAS仅消耗了1.8 GPU天。
B. FR运行的有效性
在深度学习社区中,渠道关注机制是手动整合到神经网络中的。在这项工作中,频道关注模块是编码搜索空间中搜索操作的一部分,如果有助于改善学习性能,它将被自适应地合并到网络中。为了检查FR操作的有效性,我们将SI-ENAS演化的神经网络与其他三个神经网络进行了比较。一种是由SI-ENAS通过关闭FR操作而进化的神经网络,这由没有FR的SI-ENAS表示。通过手动将通道注意模块(即SE块(SE)[37]和剩余通道注意模块(RCAM)[36])手动堆叠到没有FR作为连接结构的SI-ENAS中,从而获得了另外两个网络。在两个块之间,以SI-ENAS SE和SI-ENAS RCAM表示。为公平起见,所有其他设置均与第VI.A小节所述的实验所用的设置相同。
表V列出了在CIFAR10和CIFAR100上进行比较的四个神经网络的分类结果。 从表V中可以看出,不带FR的SI-ENAS,SI-ENAS + SE和SI-ENAS + RCAM的最佳分类精度分别为CIFAR10的93.72%,94.36%,94.85%和77.93%,79.13%, CIFAR100的最佳分类准确度分别为78.38%和CIFAR10的最佳分类准确度分别为95.93%和81.36%。 我们还注意到,SI-ENAS + RCAM的分类性能比SI-ENAS + SE更好,表明残余频道关注模块的性能优于频道关注机制。
C.节点继承的有效性
为了检查所提出的节点继承机制的有效性,我们将其与参数共享方法[30]进行了比较,该方法被证明可以将NAS的速度提高1000倍以上。 换句话说,我们通过强制所有后代网络从其父代复制权重,在进化过程中用参数共享方法替换了SI-ENAS中的节点继承策略。 回想一下,参数共享策略要求父母总体中的每个人都有单独的权重集。 因此,一旦通过对父母进行遗传操作产生了后代,所有后代模型将分担最佳父母个体的权重。 这样,就不会从头训练后代模型,并且还可以降低计算成本。 为了公平比较,所有其他设置保持不变。 培训过程如图9所示,最终精度列于表VI。
如表VI所示,具有节点继承性的SI-ENAS在CIFAR 10和CIFAR100上的分类精度分别达到95.93%和81.36%。相比之下,具有参数共享的SIENAS的分类准确率分别为94.82%和79.59%。这是由于以下事实:参数共享会强制所有后代模型从最佳父本个体共享一组权重,因此,后代模型不会继承其父本的参数。结果,后代网络的估计适应度值会出现较大的误差,这可能会使EA无法找到最佳的神经体系结构。
D.神经架构转移
在这里,我们检查在CIFAR10(相对较小的数据集)上优化的网络体系结构是否可以直接用于有效学习较大的数据集,例如CIFAR100和SVHN。为了观察优化过程中神经网络传递性能的变化,我们根据学习率的变化将演化过程分为三个阶段。具体来说,将初始人口表示为第0阶段,将第1到149代表示为第1阶段,将第150到224代表示为第2阶段,将第225到299代表示为第3阶段。然后,我们评估最佳个体的表现每个阶段分别处理SVHN和CIFAR100数据集中的所有数据。请注意,从阶段0的初始人口中随机挑选一个人。
实验结果列于表。 从表中可以看出,在CIFAR10上训练的最佳个人能够在CIFAR100和SVHN上分别达到98.31%和80.13%的分类准确率,这比在CIFAR100和SVHN上训练的网络略低 (81.36%)。 从这些结果中,我们可以得出结论,由提出的SI-ENAS优化的神经网络结构具有转移到不同数据集的有前途的功能。
七。结论与未来工作
这项工作提出了一种快速的ENAS框架,非常适合在计算资源有限的设备上实施。适应性评估的计算成本通过以下两种相关策略得以显着降低:父代个体的样本训练和后代个体的节点继承。为了进一步提高进化中大型神经网络的表达能力,将多尺度特征重建卷积运算编码到搜索空间中。我们的实验结果表明,SI-ENAS可以有效地加快进化架构的搜索速度,并实现非常有希望的分类精度。最后,我们将在较小的数据集CIFAR10上优化的神经体系结构转移到较大的CIFAR100和SVHN数据集上,并获得了令人鼓舞的实验结果。
尽管SI-ENAS在设计高性能神经网络体系结构方面具有竞争力,但其搜索功能仍需要在更大的数据集和实际问题上进行检验。除了分类准确性(例如鲁棒性和可解释性)之外,我们还将提议的方法扩展到NAS以优化属性。在这种情况下,多目标进化神经体系结构搜索可能会发挥重要作用。