论文:https://arxiv.org/abs/2010.00969v2
代码:https://github.com/guyuchao/DOTS
DOTS:可微体系结构搜索中的解耦操作和拓扑
可微结构搜索(DARTS)由于其搜索细胞结构的效率而受到广泛关注。DARTS主要关注操作搜索,并根据操作权重导出单元拓扑。然而,操作权重不能表示单元拓扑的重要性,导致拓扑评级的正确性较差。为了解决这个问题,我们提出将操作和拓扑搜索(DOTS)解耦,这将拓扑表示与操作权重解耦,并进行显式拓扑搜索。点是通过引入包含候选边组合的拓扑搜索空间来实现的。所提出的搜索空间直接反映了搜索目标,并且可以很容易地扩展以支持搜索单元中灵活数量的边。现有的基于梯度的NAS方法可以整合到DOTS中,通过拓扑搜索进一步改进。考虑到某些操作(如SkipConnection)可能会影响拓扑,我们提出了一种组操作搜索方案来保留拓扑相关的操作,以便更好地进行拓扑搜索。在CIFAR10/100和ImageNet上的实验表明,DOTS是可微NAS的有效解决方案。代码发布了athttps://github.com/guyuchao/DOTS。
神经结构搜索(NAS)因其在大搜索空间中自动寻找最优结构的潜力而受到广泛关注。以前的强化学习和基于进化学习的方法[34,41,58]需要一个完整的培训过程来验证体系结构性能,需要数百天的GPU搜索时间。为了降低搜索成本,一次性方法[8,10,18,40]采用了权重共享策略,该策略对超级网络进行一次训练并派生出子架构-直接从supernet获得真正的性能。基于可微结构搜索(DARTS)[35]的最新方法[4,6,50,51]也采用了权重共享策略,并通过统一超网训练和子结构搜索进一步降低了搜索成本。
在DART中,使用可学习的操作权重对操作选择进行参数化,并使用supernet训练进行更新。训练后,使用操作权重对操作和拓扑的重要性进行排序。省道中的边重要性表示为该边上的最大操作权重。省道保留每个中间节点的两条最重要的边,以导出搜索单元的拓扑。提出了一个问题:由操作权重表示的边缘重要性是否准确地对独立模型的性能进行排序。如图1所示,我们没有发现明显的等级相关性,这意味着省道比随机选择边没有优势(详见第3.2节)。此外,DART的边数手工策略限制了它们寻找更灵活细胞结构的潜力。
本文通过解耦运算和拓扑搜索(DOTS)来解决上述问题。脱钩的含义是双重的。一方面,我们将拓扑表示与操作权重解耦。详细介绍了一个包含边的成对组合的拓扑搜索空间。拓扑搜索空间是连续松弛的,松弛的拓扑权重模拟候选边的组合分布。所提出的拓扑搜索空间直接反映了搜索目标,并且易于扩展以支持灵活的边数。另一方面,我们将操作和拓扑搜索过程解耦。整个搜索过程分为操作搜索阶段和策略搜索阶段,其中分别更新操作权重和边缘组合权重。通过解耦这两个搜索过程,现有的基于梯度的NAS方法可以直接融入DOTS的操作搜索中,并通过拓扑搜索得到进一步的改进。此外,拓扑搜索是在缩小的超网中执行的,这使得它更加高效而且准确。考虑到某些操作(例如SkipConnection)会影响拓扑,我们在操作搜索中采用了组策略来保留这些拓扑相关的操作,以便更好地进行拓扑搜索。
我们将我们的贡献总结如下:•我们建议将操作和拓扑搜索解耦,这将拓扑表示和搜索过程解耦。这种解耦可以正确评估具有不同拓扑结构的独立模型建议的拓扑搜索空间可以扩展,以支持搜索单元中灵活数量的边,实现其搜索更复杂结构的潜力现有的基于梯度的方法可以合并到DOTS中,并通过拓扑搜索得到进一步的改进。DOTS只需0美元。26和1。3个GPU天从头开始搜索,并达到97。51%和76%。CIFAR10和ImageNet的准确率为0%。如果去除边数的约束,可以获得更好的性能。
图1:不同边缘重要性表示和独立模型性能之间的秩相关分析。边缘组合重要性由操作权重(省道)和边缘组合权重(点)表示。我们计算Kendall重言式[25]来测量秩相关性。
与以前手动设计特定任务的神经网络[14,17,36,46,47]不同,神经架构搜索(NAS)因其自动设计高效网络的潜力而受到广泛关注[15,16,30,32]。基于强化学习[57,58]和进化算法[41,48]的早期方法从头开始训练成千上万的候选体系结构,并使用其验证精度来学习元控制器,这需要高昂的搜索成本。最近的一次性NAS方法[2,3,8,18]和基于梯度的方法[9,19,35,50]采用了权重共享策略[40],该策略只训练超级网络一次,从而降低了搜索成本。最近基于梯度的方法试图克服不稳定性[5,7,9,19,31,50,53],并降低搜索成本[6,11,51]。以往基于梯度的方法主要针对改进操作搜索。而我们的工作通过拓扑搜索改进了基于梯度的方法,这是对以往研究的补充。
最近的研究[12,13,42,49]揭示了连接拓扑在神经网络中的重要性。随机连线网络[49]发现,由随机图算法生成的网络可以获得竞争结果。Shu等人[42]发现,与基于小区的NAS中的操作相比,小区拓扑对网络融合的影响更大。DenseNAS[12]提出了一个紧密连接的搜索空间,重点关注宏观结构的拓扑结构。我们的工作揭示了微单元的拓扑结构,并构建了一个拓扑搜索空间来支持灵活的边数。
最近的权重分配方法[22,26,27,29,52,55,56]试图提高体系结构等级的正确性。Y uet al.[52]指出,由于搜索空间受限和广泛使用的权重共享策略,最近的NAS具有与随机搜索相似的性能。PCNAS[29]识别并修复了权重共享方法中的后向衰落问题。块明智NAS[26]通过模块化大空间提高了架构级别的正确性分成几个block。尽管最近的一些工作注意到了一次性方法中的评级问题,但基于梯度的方法中的评级问题却很少受到关注。
图2:拟议DOT的总体管道。DOTS框架包括操作搜索和拓扑搜索。在操作搜索阶段,我们在每条边上搜索性能最佳的操作。在拓扑搜索阶段,我们搜索候选边的最佳组合。
我们首先回顾基准算法DART[35]。DARTS旨在搜索细胞,这是神经网络的一个重复构建块。单元表示为一个有向循环图,其中n节点{xi}Ni=1,包括两个输入、一个输出和几个中间节点。每个节点表示由图边变换的特征映射。第j个中间节点通过边缘(i,j)连接到其所有前置节点。每个边(i,j)包含由操作权重α(i,j)加权的候选操作,其可定义为
其中(x)∈ OANDO是包含八个操作的操作搜索空间,包括零、跳过连接、平均池、最大池、Sep3x3Conv、Sep5x5Conv、Dil3x3Conv和dil5x5conv。每个操作的重量使用softmax标准化:
其中α′是非标准化操作重量。操作权重随着supernet训练而更新,逐渐聚焦于最佳架构。一旦为边(i,j)定义了混合运算“o(i,j)”,中间节点xjis将根据其所有前置节点sxi计算:
LetlTraincl和Lvalcls分别是训练集和验证集上的交叉熵损失。然后,我们可以用操作权重α和网络权重Was来进行双层优化
在搜索之后,通过两个硬剪枝从操作权重α导出最终的架构:1。保留权重最大的操作,并修剪每个边的其他操作,即。Eo(i,j)=arg maxo∈O、 o6=零α(i,j)O。2.为每个中间节点保留两条具有最大边重要性的传入边,并修剪其他边。边缘重要性定义为每条边缘上的最大操作权重(i,j),i。E马克索∈O、 o6=零α(i,j)O。
以前的工作[5-7,11,20,28,31,38,50,51]基于省道,通过该边缘上的最大操作权重(不包括零操作)来表示边缘重要性。我们进行秩相关分析,以发现由操作权重表示的边缘重要性是否能够准确地对独立模型(由Kendall Taumetric[25]测量)进行排序。我们遵循DARTS的手工策略,将两条边的重要性相加,得到其边组合的重要性。但是,对于点,边组合权重可以直接表示边组合的重要性。在我们的实验中有五条边,形成了十种不同的边组合。单机模型的训练设置与Sec中的设置相同。5.1,除了我们将培训次数减少到300次。
图1和图1显示,独立模型精度与操作权重指示的边缘重要性没有明显的排名相关性。这意味着DART搜索的单元是次优的,因为它不能收敛到最佳单元拓扑,这与DART在某些情况下不能超过随机搜索的发现是一致的。直观地说,较大的操作权重只能表示一个操作对特定边的适用性,但并不意味着该边应保留在搜索的拓扑中。如图1b和图1d所示,所提议的边缘组合权重achieveT au=0。73和t au=0。71在CIFAR10和CIFAR100上,演示其边缘选择的有效性。
上述分析指出了操作与拓扑搜索耦合的局限性。在本节中,我们尝试通过解耦操作和拓扑搜索来解决这个问题。如图2所示,整体搜索分为操作搜索和拓扑搜索。在操作搜索阶段,我们在每条边上搜索最佳操作。在拓扑搜索阶段,我们搜索候选边的最佳组合。以秒计。4.1,我们介绍了如何构造拓扑搜索空间并支持灵活的边数。以秒计。4.2.我们描述了如何将现有的基于梯度的NAS方法整合到DOTS的操作搜索中,并提出了一种组操作搜索方案来保留拓扑相关的操作,以更好地进行拓扑搜索。
4.1.1 Handcraft Policy for the Number of Edges
以秒计。3.2、讨论了操作与拓扑搜索耦合的局限性。因此,我们需要将边缘重要性与操作权重解耦。为了实现这一点,我们在操作搜索空间之外定义了一个拓扑搜索空间。
从形式上讲,第j个中间节点通过边缘(i,j)连接到其所有前置节点。按照DARTS的手工策略限制中间节点的两条边,我们将拓扑搜索SPACEXJFORXJ作为其传入边的所有成对组合:
其中βcxjdenotes表示选择边组合c的归一化概率。虽然拓扑搜索空间是在边组合上定义的,但在实际应用中并不需要获得每个边组合特征。为了降低内存成本,我们从包含此边的组合中为EdgeEij聚合权重,其公式如下
式中,γ(i,j)是每条边的权重,n(c)是边组合c中的边数。我们将Xj1的所有传入边相加,并通过边重要性权重γ进行加权,以获得其特征:
式中,o(i,j)表示边缘(i,j)上的混合操作。由于我们将操作和拓扑搜索过程解耦,“o(i,j)”混合了操作搜索保留的候选操作,这将在第2节中讨论。4.2.
如ASAP[38]和SNAS[50]所述,超级网和派生子网之间的优化差距会导致性能下降。这两项工作都利用结构退火来弥补搜索过程中的优化差距。我们将退火思想推广到拓扑搜索中。在Equ。(6) ,Tβ是退火温度。我们采用指数计划进行退火:
它从初始温度0开始,随着训练步骤的增加而衰减。省道采用双层优化,以避免过度装配[35]。然而,[18,28]表明一级优化是稳定和准确的。在我们的拓扑搜索阶段,每个边上的操作都大大减少,消除了过度拟合的风险。因此,我们使用一级优化来更新网络权重和拓扑权重β,其可表示为
其中η和δ分别表示网络权重和拓扑权重的学习率。
4.1.2 Flexible Number of Edges
以秒计。4.1.1,我们按照DARTS手工策略构造一个拓扑搜索空间,以限制搜索单元中连接两条边的每个中间节点。这样的手工策略无法自动学习边的数量。因此,我们扩展了拓扑搜索空间以支持任意数量的边。具体来说,我们采用二进制代码来描述这种搜索空间。对于具有无边缘的中间节点Exjj,其边缘组合的二进制代码可以表示为
其中为有效边组合的数量。
我们排除了所有边不在边组合中的极端情况。总的来说,我们允许搜索灵活数量的边。这很容易实现,因为我们只替换Equ的搜索空间。(5) 与Equ。(12) 并保持体系结构松弛和优化的一致性。
在本节中,我们将介绍DOTS的操作搜索。操作搜索的目的是在每条边上保留最佳操作候选。我们介绍了如何将现有的基于梯度的NAS方法整合到DOTS的操作搜索中。4.2.1.现有的方法只保留每条边上的最佳操作,放弃了某些操作(例如,跳过连接)可能会影响拓扑。为了防止拓扑相关的操作在操作搜索中被剪枝,我们在Sec中提出了一个组操作搜索方案。4.2.2.
4.2.1 Incorporating Gradient-Based NAS Methods
以往基于省道的梯度方法可以很容易地融入到点的运算搜索中。
DART为每条边(i,j)上的候选操作引入一组权重α={α(i,j)}。我们按照他们自己的搜索策略得到训练后的操作权重α。然后,在每个边缘(i,j)上保留具有最大重量的操作:
最后一步是替换等式中的混合操作o(i,j)。(8) witho(i,j)。总体而言,现有的基于梯度的NAS方法可以很容易地插入DOTS的操作搜索中,并通过拓扑搜索得到进一步的改进。
4.2.2 Operation Search with Group Strategy
一般来说,操作可以分为拓扑相关(例如跳过连接)和拓扑无关(例如可分离卷积)。以秒计。4.2.1、我们将现有的基于梯度的方法结合到DOTS的操作搜索中,在每个边缘保留最佳操作。这种策略消除了潜在的拓扑选择,因为在拓扑搜索之前会删除一些与拓扑相关的操作。为此,我们采用集团战略[20,28]进行行动搜索。组策略可以确保在拓扑搜索中保留拓扑相关和拓扑分析操作。
形式上,在群运算搜索中,运算搜索空间OIS被划分为几个子空间SO={O1,O2,…Op},其中Pis是群的数目。每个操作子空间被独立地松弛为连续。搜索后,从每组中选择权重最大的操作,在每一条边(i,j)上构造一个新的操作搜索空间,其公式如下
我们评估了不同的小组策略,并在实验中进行了讨论。由于包含多个操作,我们需要在拓扑搜索阶段搜索它。同时更新操作和拓扑是不准确的,因为它增加了权重共享子模型[8,29]。为了解决这个问题,我们在拓扑搜索中使用较低的温度tα和tβ对操作权重进行退火。如图3所示,两个组中的操作在前几个时代中是固定的。一旦操作被修复,进一步的拓扑搜索将像在Sec中一样发展。4.2.1.
搜索设置。我们基于Pytorch[39]、Mindspore[1]和Jittor[23]框架实现DOTS。这个CIFAR10/100上的整个搜索过程需要70个时代,即。E操作搜索30个历元,拓扑搜索40个历元。该网络由8个用于操作搜索的单元和20个用于拓扑搜索的单元组成。初始温度设置为0=10,衰减为0。02在拓扑搜索中。搜索过程花费6美元。在一个NVIDIA Tesla V100 GPU上运行3小时(0.26 GPU天)。有关更详细的搜索设置,请参见补充文档。
表1:与CIFAR10/100上最先进模型的比较。CIFAR10评估结果取自其原始论文。†:Chu等人[7]报告了CIFAR100结果。∗: 我们的结果是在不同的随机种子下通过四次单独的搜索和评估得到的。
表2:通过拓扑搜索改进现有的基于梯度的NAS方法。TS表示拓扑搜索。
评估设置。评估网络由20个单元(18个正常单元和2个还原单元)组成,初始通道数为36。我们从无到有地培训了600个时代的网络,批量大小为96。网络通过SGD优化器进行优化,初始学习率为0。025(余弦退火为0),动量为0。9,3e-4的重量衰减和5的梯度剪裁。速率为0的剪切和放置路径。2用于防止过度装配。
主要结果。CIFAR10/100上的评估结果显示在选项卡中。1.DOTS只需0美元。26个GPU天,达到97。51%和83%。CIFAR10和CIFAR100的准确率分别为72%。由于操作和拓扑搜索的解耦,边缘上的候选操作数量大大减少,并且两个阶段都能快速收敛。圆点使省道增加0。CIFAR10的51%,搜索成本更低。以前在基于梯度的方法中所做的工作可以整合到DOTS框架中,并通过拓扑搜索得到进一步改进,如表2所示。2.
搜索设置。整个搜索过程需要70个阶段,操作搜索30个阶段,拓扑搜索40个阶段。该网络由两个搜索阶段的14个单元组成。初始温度t0设置为10,衰减为0。02在拓扑搜索中。整个搜索过程花费7美元。在四个NVIDIA Quadro RTX 8000 GPU上运行8小时(1.3 GPU天)。我们保留的其他搜索设置与PC-DART相同[51],可在补充资料中找到。
评估设置。评估遵循移动设置,其中输入图像大小设置为224×224,乘法和运算的数量限制为小于600M。该网络由14个细胞(12个正常细胞和2个还原细胞)组成,初始通道数为46。我们从无到有地对网络进行250次训练,批量大小为1024次。初始学习率为0的SGD优化器。5(前5个阶段的预热和余弦退火为0),动量为0。9,使用3e-5的重量衰减。PDARTS[6]和PC-DART[51]之后的其他增强功能,包括标签平滑-和一个辅助损耗塔。
主要结果。评估结果汇总在选项卡中。3.大多数基于梯度的方法都是在代理数据集上搜索,例如。GCIFAR10,并将搜索到的单元格转移到ImageNet,因为它们在ImageNet上的搜索成本过高。而DOTS可以在ImageNet上进行Proxyless搜索,并且需要最少的搜索成本(1.3 GPU天)。圆点使省道增加2。ImageNet顶级精度的7%。
表3:与ImageNet上最先进模型的比较。CIFAR10和ImageNet表示在CIFAR10或ImageNet上搜索单元架构。
表4:不同策略的消融研究。
改进基于梯度的NAS方法。我们将五种基于梯度的方法合并到DOTS中,并验证了拓扑搜索的有效性。基线是按DART策略导出搜索单元的拓扑。比较结果汇总在选项卡中。2.我们可以观察到,添加拓扑搜索结果与基线相比有一致的改进,从而验证了所提出的拓扑搜索的有效性。图4中示出了说明性示例。我们使用省道进行操作搜索,操作搜索结果如图4a所示。基于操作权重直接推导其拓扑结构,即。EDART的策略,在图4c中搜索的单元格中得到结果。我们可以发现它是以跳转连接为主,只达到80。CIFAR100的准确率为74%。图4B显示了基于相同搜索操作的拓扑搜索结果,其获得了2。33%的改善(83.07%对80.74%)。通过进一步选择边连接,可以发现拓扑搜索有助于弥补操作搜索结果的不稳定性。
拓扑参数化策略的影响。我们验证了所提出的边组合权重的有效性,并将其与其他拓扑参数化策略进行了比较。首先,我们将其与直接增加边缘可学习重量的PC-DART进行比较。由于PC-DARTS策略不容易在搜索单元中支持灵活的边数,因此我们限制这两种方法在拓扑搜索后每个节点保留两条边。从“中的结果”选项卡。4a,建议的点将PC-DART的边缘重量提高了0。CIFAR10的13%。这主要是因为PC-DART中边缘权重的最初目的是稳定训练,而不是用于拓扑搜索。相比之下,建议的边缘组合权重可以直接反映边缘选择的目的。
然后验证了点在任意边数设置下的有效性。通过删除边数约束,圆点的性能从83提高。72%对83%。CIFAR100的92%。在任意边数设置中,一种简单的方法是将softmax激活替换为边权重上的sigmoid激活,并使用阈值对选择进行二值化。我们将此策略命名为边缘级sigmoid。从选项卡。与边缘水平的S形策略相比,点具有明显的优势。
操作搜索策略的影响。我们研究了不同的操作搜索策略,并讨论了它们对拓扑搜索的影响。基线是DARTS-Top1,它在拓扑搜索的每条边上保留一个最强的操作。使用Group-V2策略的操作搜索(详情见补充)将DARTS-Top1提高了0。11%和0。CIFAR10和CIFAR100分别为65%。原因是DARTS-Top1忽略了某些操作与拓扑相关的情况。在操作搜索阶段修剪这些操作将消除潜在的拓扑选择,从而产生次优解决方案。图5中示出了组策略的说明性示例。从图5a中,拓扑相关和拓扑不可知组中的最佳操作被保留用于拓扑搜索。图5b示出了基于图5a中的操作搜索结果的拓扑搜索结果。直接保留更多操作,即。EDARTS-Top2没有明显的改进,因为它不能保证保留与地形相关的操作。在拓扑无关操作i中添加更多组。EGroup-V1策略没有改进,但增加了搜索成本。从这个实验中,我们可以发现保留两个操作(一个拓扑相关操作和一个拓扑不可知操作)对于拓扑搜索是足够的。
在本文中,我们研究了现有的基于DART的梯度方法的拓扑推导。省道的边缘重要性是基于操作权重的,不能正确地对不同拓扑结构的独立模型进行排序。因此,我们建议将拓扑表示与操作权重解耦,并进行显式拓扑搜索。提出的拓扑表示,即。E边组合权重,导致正确的拓扑等级,并支持灵活的边编号。除了解耦操作和拓扑表示之外,我们还建议解耦它们的搜索过程,以实现高效、准确的拓扑搜索。在CIFAR和ImageNet上的实验表明,DOTS是解决可区分NAS的有效方法。