Homogeneous Architecture Augmentation for Neural Predictor------ICCV2021

Homogeneous Architecture Augmentation for Neural Predictor

导论

深度神经网络( Deep Neural Networks,DNNs )的神经架构搜索( Neural Architecture Search,NAS )可以自动为当前任务设计性能良好的深度神经网络架构。然而,NAS的一个瓶颈是高昂的计算成本,很大程度上是由于昂贵的性能评估。神经预测器可以对未训练的DNN直接估计性能,因此受到越来越多研究者的关注。尽管它们广受欢迎,但它们也受到一个严重的限制:缺乏有注释的DNN架构来有效地训练神经预测因子。针对上述问题,本文提出了DNN架构的神经预测器同构架构增强来解决上述问题。具体来说,HAAP中提出了一种同构架构增强算法,利用同构表示生成足够的训练数据。进一步,将one - hot编码策略引入HAAP,使DNN架构的表示更加有效。在NAS - Benchmark - 101和NAS - Bench201数据集上进行了实验。实验结果表明,本文提出的HAAP算法在训练数据较少的情况下,性能优于当前的研究水平。此外,在两个基准数据集上的消融研究也表明了同质结构增强的普适性。

介绍

通常来说NAS分为三部分:搜索空间、搜索策略、性能评估。给定一个预定义的搜索空间,当搜索停止的时候搜索策略一般可以找到一个性能表现良好的架构。文献中主要有三种技术作为搜索策略:强化学习、基于梯度的算法和进化计算。然而,无论使用哪种技术,所有NAS算法都需要估计搜索到的DNN的性能,以便有效地进行搜索。在大多数NAS算法中,搜索策略都是对解进行单独评估,这不可避免地带来了巨大的计算开销。例如,在常用的CIFAR10基准数据集上,大规模进化NAS算法使用了250台GPU计算机,运行时间为11天。为了解决这个问题,我们已经设计了各种算法来加速估计过程,而不需要大量的计算资源,这些算法可以分为四类:权重继承,提前停止策略,缩减训练集和神经预测器。神经预测器需要一些经过良好训练的架构,然后训练一个回归模型来映射架构和相应的性能值。当生成一个新的DNN时,其性能直接通过回归模型进行预测。与上述其他加速算法相比,神经预测器可以提供令人满意的预测结果,因此受到了广泛的关注。他们试图从回归模型的角度实现更好的拟合。然而,神经预测器中的大问题实际上是在训练数据集中。在实际应用中,获取一个庞大的训练数据集是难以承受的。即使使用超高性能硬件,例如,在TPU v2加速器上训练一个神经网络,也需要大约32分钟,这意味着一天只能获得近45个有标注的训练数据。一般来说,神经预测器是用一个小的注释结构数据集来训练的,例如,Wen等人在实际中只使用了119个注释结构来构建神经预测器。导致神经预测器性能不佳的主要原因不是回归模型,而是有限的训练数据。因此,如何在不增加计算成本的情况下充分利用现有的有限数据是神经预测器中的一个重要问题。在本文中,我们通过探索神经架构的同质性,提出了一种新的神经架构空间中的数据增强策略。同质增强消除了层序的影响,使得神经预测器更加关注整体的层类型。具体来说,架构增强通过交换内部秩序来产生一组同质的表示。为了有效地表示体系结构的内在属性,还开发了独热编码策略。所提出的神经预测器的同构架构增强( HAAP )的流程图如图1所示。在NAS - Bench - 101 [ 38 ]和NAS - Bench - 201 [ 9 ]上的实验证明了所提出的架构增强方法的有效性,并显示了HAAP与现有技术相比的优越性。不仅如此,Homogeneous增广还可以与最先进的神经预测器相结合,以提高它们的预测能力。本文的提醒内容安排如下。相关工作在Sec . 2 . Sec . 3给出了所提方法的实现细节。实验和大量实验结果证明了HAAP在Sec中的有效性。4 .最后,Sec . 5为结论与展望。

相关工作

在这一部分,我们将首先介绍NAS算法的编码策略,这是本文提出算法的基础。紧接着,对先进的算法进行了回顾并总结了它们的局限性,以证明所提算法的必要性。

NAS算法的编码策略

NAS中的编码空间(即搜索空间)基于基本搜索单元可以分为四类:基于层的、基于块的、基于单元的和基于拓扑的。
基于层的编码空间中的基本单元是DNNs的原始层。基于图层的编码空间往往较大,在该空间中构建的建筑结构获取了更多的细节和信息,导致搜索策略付出了很多努力。EvoCNN [ 31 ]是基于层空间的一个典型例子。相比之下,基于块的编码空间中的基本单元是原始层的组合块,例如AE - CNN使用的ResNet块和DenseNet块[ 30 ]。在集成块的帮助下,从基于块的编码空间中搜索到的架构更有可能以更少的参数进行精心设计。基于块的编码空间中的一种特殊情况是所有的块都是相同的,这就产生了基于细胞的编码空间。在基于细胞的编码空间中发现的架构是由堆叠的细胞组成的。由于所有的细胞都是相同的,因此一个细胞的编码信息可以代表将相同的细胞进行多次堆叠的结构。众所周知的AmoebaNet - A [ 23 ]就是基于细胞的空间的一个例子。基于拓扑的编码空间主要集中在单元的连接关系上,而不是单元的内部结构。对于基于细胞的编码空间,有多种方式对细胞中各层的连接进行编码。邻接矩阵是表示连接关系的一种常用方法。其中,’ 1 ‘表示两层相连,’ 0 '表示两层相反。这种表示方法已经被现有的NAS算法广泛采用作为基本的编码策略。例如,Genetic CNN [ 36 ]使用了邻接矩阵的变体,其中矩阵中不重要的元素被剪枝,其余元素被压扁成二进制向量。

神经预测器

有5个代表性的最先进的神经预测因子:观测孔[ 7 ]、E2Epp [ 28 ]、神经结构半监督评估器( Ssana ) [ 33 ]、神经结构搜索神经预测器( Npnas ) [ 34 ]和Renas [ 37 ]。由于各种精心设计的架构和可用于分类图像的基准数据集,所有这些都已在图像分类任务上进行了研究。最近,我们也注意到一些公共建筑数据集已经发布了[ 38、9 ]。这将在提供更多训练数据的情况下,使预测更加高效,比较更加公平。如Sec . 1,大部分神经预测器主要针对回归模型的设计。例如,观测孔和NPNAS使用不同的高效回归模型以获得更好的预测效果,而ReNAS则专注于重新设计模型的训练损失。本文证明,在没有复杂的回归模型的情况下,经典回归模型(例如随机森林)也可以利用本文提出的架构增强方法进行准确预测。

方法

构建神经预测器在数学上可以表示为一个回归任务。假设预测器由一个回归模型R表示。利用训练数据[ X , y]对R进行训练,其中X = { X1,X2,…,XN }表示体系结构信息的编码,其中y = { y1,y2,…,yN }表示{ X1,X2,…,XN }对应的性能值。试验数据X检验的预测y可由R预测。特别地,R的训练过程可由式( 1 )描述:
在这里插入图片描述

其中Tp是回归模型R的可训练参数,L表示R的损失函数。我们选择L2范式作为损失函数。它在神经预测中有着广泛的应用。

架构编码

原则上,大多数神经结构都可以用一个标准的有向无环图( Directed Acyclic Graph,DAG )来表示。其中,顶点代表图层,边代表连线。因此,X中的每个Xn可以用层类型列表xtn = { xtn1,xtn2,…,xtnNl }和相应的邻接矩阵xnm表示,其中Nl表示层数。虽然其他编码空间中的一些架构没有用标准DAG表示,其中,顶点代表连接,边代表图层,我们可以通过变换将形式变为标准类型。
例如,对NAS - Bench - 201中的结构进行变换时,我们可以先给边一个固定的顺序,然后减少无用的层。在补充材料中给出了详细的转化方法。
传统的硬编码[ 37 ]使用一个整数向量直接编码层类型xtn。然后,将类型向量广播到邻接矩阵xnm中,邻接矩阵xnm可以用方程2表示:
在这里插入图片描述
其中,integer(·)将动词类型列表转化为整数向量,并且strech ( · )可以将一个向量拉伸成一个方阵。因此,编码Xn是一个包含大量冗余维度的稀疏矩阵。此外,层与层之间的关系和欧氏距离被错误地用整数表示。
本文采用的编码策略易于实现。方程3说明了如何将原始的xnm和xtn转化为二进制向量。
在这里插入图片描述
具体来说,将二维邻接矩阵xnm按行展开成一维向量( (随着扁平化( ·) )。同时,将图层类型列表转化为one - hot编码(带one - hot ( · ) )。最后将这两个一维向量拼接成Xn(用concat ( · ) )。图2提供了一个例子来解释在层类型列表上运行的独热编码策略,其中类型数Nt为3,TA,TB和TC分别表示列表中的三种类型的层。
在这里插入图片描述
要实现编码,首先要将字符串表达式转化为整数向量。第二种是使用独热编码来相应地替换整数。one - hot编码使用多维空间来表示图层类型,以保证不同图层类型之间的欧氏距离相同,这对回归模型是有利的。

同构架构增强

通常,一种常见的DNN架构以输入层为起点,以输出层为终点。在本文中,我们用In层和Out层分别表示这两层。值得注意的是,所提出的架构增强方法适用于神经网络具有唯一输入和唯一输出的情况。这也是DNNs最常见的情况。例如,图像分类任务只需要一幅图像作为输入,神经网络输出预测的类别。
如前所述,邻接矩阵和层类型列表构成了神经架构,其中邻接矩阵描述了层类型列表的拓扑关系。因此,图层类型列表中应该没有顺序。但是,靠近In层的层总是放在层类型列表的前面,而靠近Out层的层只能放在后面。
此外,空层一般放置在尾部。通过这种方式,本应没有顺序和位置的图层以广度优先遍历的方式进行排序。这种分配方式会误导神经预测器,使预测器关注层类型与指定位置之间的关系,而这是没有意义的。我们要做的是消除层位置的影响,使得神经预测器在神经架构的增强中更加关注整体的层类型和一些不变量,比如不同类型层的总数,而不是关注特定位置的层的类型。图3是一个例子.左边显示的是神经网络的一部分,包括两层A和B。如果神经预测器只用通常的结构进行训练,那么预测器将位置1绑定到A,位置2绑定到B。然而,如果将预测器用一般结构和增广表示一起训练,层顺序对预测器的影响将会减弱。
通过观察到的这一点,可以利用图层类型列表的"无序"特性对原始表示进行扩充。然而,并不是所有层类型列表中的层都是无序的。In和Out层属于占位符设置,在所有架构中都固定在层类型列表的首尾位置。因此,改变他们的位置是没有用的。层类型列表中间的其他层属于操作集,操作集主要决定了体系结构的性能。实际上,在层类型列表中,只有这些层是无序的。假设层类型列表为xt = { xt1,xt2,…,xt Nl },xt1为In层,xt Nl为Out层。由于对于∑xtj,j∈{ 2,3,…,Nl - 1 }可以在任意位置,因此存在( Nl - 2 ) !个可能的置换.我们使用这些不同的排列,以( Nl - 2) !的因子来增加训练数据集。
然而,如果层类型列表被改变,邻接矩阵就必须做出相应的改变,以确保表示的实际结构是相同的。这是因为邻接矩阵的行和列的顺序与图层类型列表中的顺序有关。具体地,邻接矩阵的第i行表示层类型列表中第i层的输出。第j列表示第j层的输入。图1的" Homogeneous Architectures "部分展示了一个例子来说明神经预测器的架构增强。在这个例子中,我们假设神经网络的层数Nl等于5,并且神经网络结构包含一个零层。架构的原始表示放在最上面,我们把架构在虚框中的这些不同表示称为同构表示,因为它们在本质上代表了相同的架构。具体来说,将图1中显示的第1个同质表示与原始表示进行比较,将第3层和第4层的顺序与原始表示进行交换。为了保持体系结构的表示,邻接矩阵中对应的行和列需要根据层类型列表的交换进行交换。无论是交换行或者列,该矩阵最终具有相同的效果。
在这里插入图片描述

使用所提出的架构增强方法构建更多训练数据的一般过程如图1所示。具体来说,输入可以是不同编码空间中的结构,例如遗传CNN [ 36 ]中使用的二进制向量或NAS - Bench - 201 [ 9 ]中用边表示的操作。第一步是将不同的编码策略转换成标准的DAG格式,如NAS - Bench - 101 [ 38 ]。由于回归模型的特点,编码后的结构信息必须是固定长度的。我们借鉴文献[ 37 ]中的填充方法,通过在邻接矩阵和图层类型列表中添加零来实现这一目标。起始垫零的位置是层类型列表中的倒数第二位元素,而邻接矩阵的起始位置是倒数第二位的行和列。为了方便起见,我们将层类型列表中的零定义为空层类型。下一步是同质化架构增强。包括原始的表示,增强最终以Nc架构增强结束,其中Nc = ( Nl - 2) !,除了In和Out层。其次,减少邻接矩阵和图层类型列表中不必要的维度。具体来说,层类型列表中的第一个元素( In层)和最后一个元素( Out层),以及邻接矩阵中的第一列和最后一行都会减少。最后,将图层类型列表转换为二进制向量,并与扁平化的邻接矩阵进行拼接。
训练数据集最终可以通过Nc的一个因子进行扩充。原则上,由于是同质的表示,生成的数据是可靠的。有意义的是,Xn的所有同质表示都对应相同的性能值yn。与图像增广(例如,翻转、旋转等。)类似,所提出的增广可以生成包含更多可能训练点的更全面的数据集,从而减小了训练数据与未知数据之间的分布差距[ 27 ]。因此,随着训练数据的增加,可以更好地训练回归模型R,即神经预测器

实验

我们选择NAS - Bench - 101 [ 38 ]和NASBench - 201 [ 9 ]作为实验数据集。NASBench - 101数据集是为NAS研究构建的,以缓解对密集计算资源的需求。NAS - Bench101使用卷积神经网络( CNNs )收集了在CIFAR10 [ 19 ]上测试的架构的准确性。NAS - Bench - 201是另一个具有不同搜索空间的基准数据集。简而言之,两个基准数据集都选择了基于细胞的搜索空间,整个架构是通过堆叠不同的细胞构建起来的,如图4所示。
在这里插入图片描述
NAS - Bench - 101中的细胞用顶点表示操作层,用边表示连接层。而在NAS - Bench - 201中,操作层由边表示,不能直接使用所提出的架构增强,需要额外的变换来得到邻接矩阵和层类型列表。
在这一部分中,我们将首先与最先进的神经预测器进行比较,以证明所提出的HAAP算法的有效性。其次,HAAP被嵌入到一个基于进化算法( EA ) [ 39 ]的NAS搜索策略中,以在两个基准数据集上搜索有前途的体系结构。第三,我们还将在不同的经典回归模型和两个数据集上进行广泛的消融实验,以显示所提出的架构增强方法的效果和独热编码策略的使用。

在Nas - Bench - 101上的预测性能比较

我们将提出的HAAP算法与前面介绍的最新算法,即观测孔[ 7 ],E2EPP [ 28 ],SSANA [ 33 ],ReNAS [ 37 ]和NPNAS [ 34 ]进行了比较。NAS - Bench - 101用于提供训练和测试架构。此外,还使用了两个指标来衡量预测的性能:Kendall ’ s Tau ( Ktau ) [ 26 ]和Mse 。特别地,KTau反映了两个有序变量的秩相关性,并且其值在[ - 1 , 1]上各不相同。这个值越接近1,两个有序变量的排序就越相似。MSE反映了预测精度值( y )与真实值( y )之间的误差。值得注意的是,这两个这两个指标被广泛使用在NAS算法的神经预测器上。我们在表1中报告了所提出的HAAP算法通过随机森林实现的微调后的比较结果。此外,表1中的符号’ - '暗示相应文献中没有公开报道的结果,且Not表示原始训练数据的数量。为便于观察,最佳值以粗体显示。为了公平的比较,我们报告了HAAP在两个不同的Not上的结果。从表1可以看出,当Not设置为424时,与Re NAS和NPNAS相比,HAAP可以获得最大的KTau。此外,如果将NPNAS与提出的均匀增强( Homogeneous Augmentation,HA )相结合,可以进一步提高预测性能。在Not增加到1K的情况下,与观测孔、E2EPP和SSANA相比,HAAP也取得了KTau和MSE的最佳值。
图5给出了定性比较结果,其中x轴表示5K随机采样结构的真实排名,y轴表示5K随机采样结构的预测排名。如果这些点更靠近对角线,则排序相关性更强,这与KTau表示的值相当。值得注意的是,图( a ),( b ),( c )是用1K个原始数据训练的,而我们的算法中的Not只有424个。从这些图中可以看出,图( d )所示的点显示了最好的结果,这是通过所提出的算法实现的。此外,与使用观测孔[ 7 ],SSANA [ 33 ]和ReNAS [ 37 ]算法的神经网络(如长短期记忆网络( LSTM )) [ 17 ],自编码器( AE ),图卷积网络( GCN )和LeNet - 5 [ 20 ]相比,所提出的HAAP算法所使用的随机森林需要很少的额外调整参数。
在这里插入图片描述

在Nas - Bench - 101和Nas - Bench - 201上搜索架构

我们参考了文献[ 33 ]中的NAS实验,也采取了基于EA的搜索策略在NAS - Bench - 101上搜索架构。为了证明所提出的HA的有效性,我们在搜索时不使用最先进的神经预测器。具体来说,实验重复20次,比较不同算法选出的前10个架构的准确率和排名,如表2所示。
在这里插入图片描述
第2列显示了CIFAR - 10上排名前1的分类精度,第3列显示了NAS - Bench - 101中整体架构的排名。表2的最后一行显示了Oracle,其中所有架构的性能都是已知的。
所提出的HAAP在神经预测器算法中获得了最高的准确性和排名。具体来说,HAAP搜索到的架构明显优于观测孔和E2EPP搜索到的架构。此外,HAAP略优于SSANA,并且非常接近于oracle。
我们在图6中可视化了不同算法搜索到的最佳架构,以给出直观的比较。在显示的所有架构中,In节点直接与Out节点相连。这种连接可以促进梯度传播[ 16、18 ]。观测孔和E2EPP搜索的架构共有5个操作层,SSANA和oracle搜索的架构共有4个操作层。而HAAP只有3个操作层,包括一个1×1卷积,可以减少大量的计算成本。
为了与其他先进的NAS算法进行比较,我们还在NAS - Bench - 201上进行了搜索架构的实验。在表3选取了NAS - Bench - 201中报告精度最高的4种算法和1个神经预测器进行对比。遵循NAS领域的传统,在搜索阶段使用验证集准确度来指导搜索,测试集准确度只对搜索到的架构进行查询。为了证明HAAP算法的高效性,当预测器的时间开销达到目前最好的NAS算法(即6000秒)的一半时,我们停止HAAP算法。
在一半的时间预算下,E2EPP不可能超过任何竞争对手。然而,HAAP优于所有最先进的NAS算法,且其搜索代价要小得多。

消融研究

本小节将对不同情形下的经典回归模型进行比较,以说明本文方法的有效性。它们是决策树( Dt ) [ 5 ],线性回归( Lr ),支持向量回归( Svr ) [ 6 ],K -最近邻( Knn ),rf [ 4 ],Adaboost [ 12 ],梯度提升回归树( Gbrt ) [ 13 ],Bagging [ 3 ]和Extratree [ 15 ]。值得注意的是,所有的模型都是由Scikit - learn [ 22 ]实现的,默认的设置通常会使相应的模型在现实中获得令人满意的性能。
结果如表4所示,其中所有实验使用相同的训练数据和测试数据。值得注意的是,表4分为两部分,其中第一部分使用424个训练数据来训练回归模型,而底层部分采用架构增广( (实际为424 × ( 7-2) ! = 50880训练数据),测试数据均为5K。我们只在表中报告单次运行的结果。为了说明HAAP的有效性,设计了4个案例:
Case1 (Baseline):仅使用扁平化的邻接矩阵与整数向量的拼接。
Case 2 ( one-hot ):在Case 1的基础上使用层类型列表xt的one - hot编码
Case3 (架构增广):使用增广数据,其他设置与情形1相同
Case4 (架构增强+one-hot):在情形3的基础上对xt进行Onehot编码
4种情况的对比如表4所示。
在这里插入图片描述

从比较结果可以看出,几乎所有的回归模型都可以从这两个设计的组件中受益。当one-shot被应用时,特别是架构增强和独热编码策略的联合使用,获得了很大的提升。此外,RF在表4中标记为*的KTau和MSE指标上都取得了最好的性能。综上所述,这组实验证明了本文提出的架构增强方法和独热编码策略的有效性。
此外,该消融研究也在NAS - Bench - 201上进行。如前所述,我们首先将架构转换为标准的DAG形式。表5给出了4种情形和不同Not下的KTau和MSE。Case1的KTau和MSE值明显优于NAS - Bench - 101时的实验结果,如表4所示。这表明所提出的转换方法是有效的,NAS - Bench - 201中的架构更具有可识别性。采用架构增强的案例仍然获得了最高的KTau和最低的MSE,以粗体表示,如表5所示。此外,在相同的Not设置下,其结果优于NAS - Bench - 101的结果,如表1所示。一个重要的原因是该数据集的N1为8,训练数据将扩大720倍,而不是NAS - Bench - 101的120倍。然而,使用one-shot策略没有明显的改善,这可能是由于邻接矩阵的规模越来越大造成的。
最后,为了确定至少需要多少个增广结构来训练预测器以获得最佳性能,我们在NAS - Bench - 101上进行了实验,Not设置为424。图7展示了三个独立的随机试验,其中架构从所有增广架构中随机采样。图7中的x轴是来自一个原始训练数据的增广数据的个数,x轴中的0表示没有使用增广。从图7可以观察到,当所有增广的结构用于训练预测器时,试验可以获得最高的KTau和最低的MSE。正因为如此,除了本实验之外的所有实验都使用增广后的架构来训练预测器。

在这里插入图片描述

结论

本文的目标是开发一个高效的神经预测器。通过两个核心组件实现了该目标。具体来说,我们提出了一种同构架构增强方法,该方法可以从有限的原始数据中构造更多的训练数据。此外,采用独热编码策略对DNN结构进行改造,提高了神经预测器的预测精度。实验在NAS - Bench - 101和NAS - Bench - 201数据集上进行,当使用架构增强时,在两个数据集上都可以观察到显著的改进。与5个最先进的同行神经预测器的比较结果表明,所提出的HAAP算法在KTau和MSE指标上均优于所有竞争者。此外,在NAS - Bench - 101和NAS - Bench - 201上,HAAP分别获得了94.09 %的准确度(前0.004 %在用整个搜索空间的算法中)和94.00 %的准确度。我们未来的工作将集中在对架构的额外特征进行编码,借助对架构更全面的描述来提高性能。

致谢

本工作得到了国家自然科学基金项目( 61803277 )和四川省科技创新人才项目( 2021JDRC0001 )的资助,并得到了CCF -百度开放基金的资助。

由于刚开始读文献不久,所以目前只做了翻译,后续会提升自身,开始总结论文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值