手工设计深度神经网络所涉及的时间和精力是巨大的。这促使了神经结构搜索(NAS)技术的发展,以使这种设计自动化。然而,NAS算法往往是非常缓慢和昂贵的;它们需要训练大量的候选网络来通知搜索过程。如果我们能从网络的初始状态推断出网络的训练精度,这是可以补救的。在这项工作中,我们研究了在NAS-Bench-201搜索空间中,由数据点产生的线性映射如何与未经训练的网络结构相关联,并激励如何使用这一点来衡量建模灵活性,这一点高度反映了网络的训练性能。我们将这一措施合并到一个简单的算法中,允许我们在一个GPU上搜索强大的网络,而无需任何训练。
Introduction
计算机视觉深度学习的成功在很大程度上归功于人类专家的洞察力和工程努力,从而为广泛应用创造了强大的体系结构(Krizhevsky等人,2012;Simonyan&Zisserman,2015;He等人,2016;Szegedy等人,2016;Huang等人,2017)。然而,这种手动设计成本很高,而且随着网络变得越来越大和越来越复杂,变得越来越困难。
由于这些挑战,神经网络社区已经从设计架构转向设计搜索候选架构的算法(Elsken et al.,2019;Wistuba et al.,2019)。这些神经架构搜索(NAS)算法能够自动发现有效架构(Zoph&Le,2017;Zoph et al.,2018;Pham et al.,2018;Tan et al.,2019;Wu et al.,2019;Liu et al.,2019)。
NAS算法广泛地基于Zoph&Le(2017)的开创性工作,其中控制器网络生成一个体系结构建议,然后对其进行训练以提供更新控制器的信号,然后生成新的建议,等等。必须为每一次控制器更新训练一个网络是极其昂贵的;在Zoph&Le(2017年)中使用800个GPU 28天。随后的工作试图通过(i)学习可堆叠单元而不是整个网络(Zoph等人,2018年)和(ii)纳入权重共享;允许候选网络共享权重,以便进行联合培训(Pham等人,2018年)。这些贡献加快了NAS算法的速度和成本,例如,在Pham等人的一个GPU上只需半天。(2018年)。
对于一些实践者来说,NAS仍然太慢;能够快速执行NAS(即在几秒钟内)在硬件感知环境中非常有用,在这种环境中,每个设备和任务通常需要单独搜索(Wu等人,2019年;Tan等人,2019年)。此外,最近的研究通过权重共享对NAS进行了仔细研究(Li&Talwalkar,2019;Yu等人,2020);是否明显优于简单的随机搜索,仍然存在争议
如果NAS算法不需要任何网络训练,则可以完全避免代价和时间以及权重共享的风险。在本文中,我们证明这是可以实现的。我们研究了最近发布的NAS-Bench-201(Dong&Yang,2020)——一个NAS搜索空间内网络架构的完整数据集,并研究了在每个输入点附近由未经训练的网络诱导的局部线性映射之间的关系(第3节)。这些地图之间的相关性(我们用∑J表示)对于在训练时表现良好的网络来说是不同的;这一点从视觉化本身就很明显(图1)。我们可以预期,具有高度相关映射的体系结构在经过训练时性能会很差。相反,具有不相关映射的体系结构将表现良好。
在CIFAR-10训练数据的小批量中,所有项目对的局部线性映射之间的相关性直方图。每个图是单个未经培训的NAS Bench-201体系结构的柱状图,这些柱状图根据培训后的最终CIFAR-10验证精度分为列。y轴单独缩放以获得可见性。请注意,对于在训练时获得更高性能的网络,这种分布会缩小到零相关。我们可以通过这个分布来预测未经训练的网络的最终性能。通过计算单个小批量的∑J,我们可以预测一个体系结构的性能,而不必对其进行训练。我们根据这种相关性的频谱建立一个分数;消融研究(第3.1节)进一步表明,该分数能够对NAS-Bench-201搜索空间之外的不同架构进行排名。
最后,我们将我们的分数合并到一个搜索算法中(第4节)。这使我们能够快速执行体系结构搜索,例如,在CIFAR-10(Krizhevsky,2009)上,我们能够在NAS-Bench-201搜索空间内搜索在1.7秒内达到91.53%准确率的网络;比传统的NAS方法快几个数量级,以获得类似的最终精度。我们认为,这是无需培训的NAS概念的重要证明,以及随之而来的巨大资源成本。复制结果的代码可以在https://github.com/BayesWatch/nas,无需培训。
我们的贡献如下:
(1)我们证明了未经训练的体系结构对不同数据点的线性映射具有不同的相关直方图,使得我们可以在不需要进行任何训练的情况下推断体系结构的最终性能。
(2) 我们根据相关谱建立了一个等级评分,并对该评分进行了消融研究。
(3) 我们将我们的发现合并到一个简单的搜索算法中,我们可以使用它来执行架构搜索,而不需要经过培训。
2 Background
2.1 Related Work
手工设计神经系统结构是一项挑战性和耗时的任务。它是极其困难的直觉在哪里放置连接,或使用哪种操作。这促使人们对神经结构搜索(NAS)进行了大量的研究,即网络设计过程的自动化。在Zoph&Le(2017)的开创性工作中,作者使用LSTM(Hochreiter&Schmidhuber,1997)控制器生成候选网络的描述。训练候选网络,利用强化学习来更新控制器,提高候选网络的质量。这种算法非常昂贵:搜索CIFAR-10分类的体系结构需要花费28天的800gpu。它也不灵活;最终获得的网络是固定的,不能扩展,例如用于移动设备或其他数据集。
佐夫等人的后续工作。(2018)处理这些限制。受成功的手工设计网络的模块化性质的启发(Simonyan&Zisserman,2015;He et al.,2016;Huang et al.,2017)的启发,他们建议搜索神经构建块,而不是搜索整个架构。这些构建块或单元构成固定的整体网络结构的一部分。具体来说,作者学习了一个标准单元和一个简化单元(包括池)用于CIFAR-10分类。然后将其用作ImageNet(Russakovsky等人,2015)分类的更大网络的构建块。虽然更灵活的细胞数量可以根据预算调整-和更便宜,由于更小的搜索空间,这项技术仍然使用500 gpu跨越4天。
ENAS(Pham等人,2018)通过允许多个候选架构共享权重,极大地降低了执行搜索的计算成本。这有助于同时对候选人进行培训,将CIFAR-10上的搜索时间缩短到单个GPU上的半天。权重分担在许多NAS算法中得到广泛采用(Liu等人,2019年;Luo等人,2018年;Cai等人,2019年;Xie等人,2019年;Brock等人,2018年)。然而,有证据表明,它抑制了对最佳架构的搜索(Yu等人,2020)。此外,随机搜索被证明是非常有效的NAS基线(Yu等人,2020;Li&Talwalkar,2019)。这暴露了另一个问题:搜索空间仍然很大,Pham等中有1.6×1029个可能的架构。(2018)例如,不可能分离出最佳网络并证明NAS算法是否成功地找到它们。
2.2 NAS-Bench-201
如上所述,评估NAS算法有效性的主要障碍之一是搜索空间(即可能的网络总数)太大,无法对每个网络进行详尽的评估。这导致创建了几个基准(Ying等人,2019年;Zela等人,2020年;Dong&Yang,2020年),这些基准包括可处理的NAS搜索空间,以及用于训练该搜索空间内网络的元数据。具体地说,这意味着现在可以确定一个算法是否能够搜索到一个好的网络。在这项工作中,我们使用NAS-Bench-201(Dong&Yang,2020),因为它为三个数据集(CIFAR-10、CIFAR-100和ImageNet-16-120)的整个搜索空间提供了经过训练的网络,具有计算友好性,并便于对许多NAS技术进行评估。
在NAS-Bench-201中,所有网络共享一个共同的骨架(图2b),该骨架由其独特的信元堆栈和固定的残差下采样块交错而成。每个单元(图2a)可以表示为4个有序节点(a、B、C、D)的密集连接有向无环图(DAG),其中节点a是输入,节点D是输出。在该图中,有一条边将每个节点连接到所有后续节点(A→B,A→C,A→D,B→C,B,B→D,C→D),共有6条边,每个边可以执行5种可能的运算(零、恒等、3×3卷积、1×1卷积、3×3平均池)。Zero, Identity, 3 × 3 convolution, 1 × 1convolution, 3 × 3 average pool
(a) :NAS-Bench-201(Dong&Yang,2020)的一个示例单元,表示为密集连接的有向无环图。该单元由一个输入节点(A)、两个中间节点(B、C)和一个输出节点(D)组成。一条边,例如A→B对A处的状态执行一个操作,并将其添加到B处的状态中。注意有6个边,每个边允许5个可能的操作。总共有15625个可能的单元。(b) :每个单元是固定网络骨架(其中N=5)中的组成构建块。因此,NAS-Bench-201包含15625个体系结构。搜索空间由每个可能的单元组成。由于有6个边,在这些边上可能有5个操作中的一个,这意味着有56=15625个可能的单元,这使得总共有15625个网络,因为每个网络只重复使用这些单元中的一个。作者将CIFAR-10、CIFAR-100和ImageNet-16-120(Chrabaszcz等人,2017)手动拆分为train/val/test,并提供所有网络的完整培训结果,用于(i) training on train, evaluation on val, and (ii) training on train/val, evaluation on test. CIFAR-10的拆分尺寸为25k/25k/10k,CIFAR-100的拆分尺寸为50k/5k/5k,ImageNet-16-120的拆分尺寸为151.7k/3k/3k。我们通过NAS-Bench-201存储库(Dong,2020)获得了这些数据集。
3.Scoring Networks at Initialisation
我们的目标是设计一种方法,在初始化时对网络体系结构进行评分,以表明其最终训练的准确性。这样,我们就可以用一种计算成本低廉的替代方案来代替NAS算法中昂贵的inner-loop训练步骤。
给定一个具有校正线性单元的神经网络,我们可以在每一层的每个单元处,确定一个关于该单元是未激活(该值是负值并因此乘以零)还是已激活(在这种情况下其值)的二进制指标 乘以一)。 固定这些指标变量后,众所周知,网络现在由线性算子本地定义(Hanin&Rolnick,2019); 通过将散布在每个层上的线性图与二进制整流单元相乘来获得该算符。 让我们用wi表示输入xi∈RD的线性映射,该映射将通过网络的输入映射到标量表示形式fi∈R1的最终选择。 使用Jacobian wi = = fi可以很容易地计算出该线性图。
通过比较相应的局部线性算子,可以总结出网络在每个数据点的不同行为。通过比较相应的局部线性算子,可以总结出网络在每个数据点的不同行为。 特别地,Frobenius内积Tr [(wi-μi)T(wj-μj)]为定义两个分别对应于不同数据点xi和xj的线性算子如何变迁(μ是平均雅可比元素,通常是闭合的)提供了自然基础。我们可以通过计算来检查小批量数据X={xn}Nn=1的对应关系。
观察协方差矩阵CJ=(J−MJ)(J−MJ)T,其中MJ是有元素的矩阵。事实上,由于每个点周围输入空间的适当缩放是任意的,因此更突出的是关注相关矩阵∑J。为了使未经训练的神经网络具有足够的灵活性来建模复杂的目标函数,将需要能够区分与每个数据点关联的局部线性算子:如果两个相同,则两个点将耦合。 理想地,网络将具有与每个数据点关联的低相关性本地地图,以便能够对每个本地区域进行建模。
我们通过初始化256个CIFAR-10图像的小批量初始化时为NAS-Bench-201网络的任意子集(Dong&Yang,2020)计算ΣJ来经验性地证明了这一点。为了形成J,我们将每个输入的Jacobian值展平(所以D = 3×32×32 = 3072),并调整最终的分类器层以输出标量。图1给出了针对不同网络的ΣJ直方图的图,根据训练时1的验证准确性进行了分类。请注意,直方图非常不同;对于仍表现不佳的未经训练的网络,我们看到了更广泛的相关性分布。相反,对于继续获得高性能的未经训练的网络,我们在0处看到一个尖锐的峰值:线性图在各个样本之间基本上是独立的。
由于这些直方图能够区分未经训练的网络的最终性能,因此我们可以使用它们来代替NAS中昂贵的训练步骤。具体来说,我们用给定的内核ΣJ在不相关的高斯和高斯之间具有(负)KL散度的网络得分。越不相关的内核将具有更高的分数。
其中k是用于数值稳定性的小值。We set k = 1 × 10−5.
我们从NAS-Bench-201随机抽样了1000种不同的架构,并在未经训练的网络上绘制了我们的分数与在CIFAR-10,CIFAR-100和ImageNet-16-120上进行训练时的验证准确性。 对于所有数据集,尽管ImageNet噪声较大,但我们的分数与最终准确性之间存在很强的相关性。 在第4节中,我们将演示如何在NAS算法中使用此分数进行极快的搜索。
我们在NAS-Bench-201中随机抽样的1000个未经训练的体系结构的分数与训练时验证准确性的对比图。计算每个曲线图的分数和验证精度时的输入来自(a)CIFAR-10(b)CIFAR-100和(c)ImageNet16-120。请注意,在所有情况下,分数和最终准确度之间都有很强的相关性。
3.1 Ablation Study
你的分数是参数数量的代表吗?我们发现我们的分数并不是网络中参数数量的代理,这使得我们能够对达到给定精度阈值的最小网络进行排名,这比使用参数数量要好得多。例如,达到CIFAR-10验证准确率超过90%的最小网络在我们的评分中排名第667位(15625位),在参数数量方面排名第8597位。这是积极的,因为在某些情况下,以性能换取网络规模是有利的。在这种情况下,我们的分数可能具有特殊的价值。
具体的小批量和初始化有多重要?我们发现分数的排序对于特定的小批量应用是相当可靠的。这可以在图4(a)中看到。图4(b)显示了网络的特定初始化对分数有较大的影响,但分数随着网络准确度的增加而增加的趋势仍然存在。最后,使用正态分布的随机输入来评估得分,似乎对总体趋势影响不大。这使我们相信分数比特定数据集更能反映网络体系结构的特性。
不同的小批量(a)、初始化(b)和随机输入数据(c)对8个随机选择的体系结构的影响。随机输入数据为正态分布。输入数据对分数的影响最小。对于初始化,分数越高的网络也具有更高的分数方差。哪些细胞类型得分高?我们无法在网络体系结构的类型中发现任何明显的模式我们的分数排名靠前。高分网络包含一系列操作和连接。我们将对此进行细致的分析,以供将来的工作使用。
是否有证据表明这在NAS-Bench-201之外有效?为了了解我们的分数是否只是NAS-Bench-201中特定架构搜索空间的人工制品,我们评估了pytorchcv库中初始化网络的分数(Sémery,2020)。该库有各种各样的网络,具有相关的预训练权重和可用的测试精度。我们计算了每个网络10个不同的初始值的得分,并取平均值。可以看出,图5中的分数和CIFAR-10测试精度之间的关联仍然存在(尽管噪声更大),即使在校正参数数量时,也发现了统计上显著的线性关联。考虑到这些体系结构之间的差异以及所有网络都能获得较高的最终测试精度,这是很有希望的。
pytorchcv库中网络初始化时的最终CIFAR-10测试精度与分数的关系图。为了避免太多的混乱,我们只标注了网络的一个子集。
4 NAS without Training
在第3节中,我们研究了由跨数据点的体系结构引起的线性映射之间的相关性。由此,我们根据网络的预期性能,得出了在初始化时廉价排名网络的得分(等式3)。作为概念证明,我们将此分数整合到一个简单的搜索算法中,并评估其缓解NAS培训需求的能力。复制结果的代码可以在https://github.com/BayesWatch/nas-without-training。
许多NAS算法都是基于Zoph&Le(2017)的算法,如算法1所示。它包括学习提出体系结构的生成器网络。生成器的权值是通过训练它生成的网络来学习的,无论是在代理任务上还是在数据集本身上,并使用它们的训练精度作为信号通过增强(Williams,1992)。这是重复的,直到生成器被训练;然后它产生一个最终的网络,这是该算法的输出。大部分的成本都是因为必须为每个控制器更新训练候选体系结构而产生的。注意,存在使用进化算法(Real等人,2019)或双层优化(Liu等人,2019)的替代方案,但都涉及到训练元素。
相反,我们提出了一个简单的替代方案,如算法2所示。我们没有用神经网络作为产生器,而是从搜索空间中随机提出一个候选者,然后我们不用训练它,而是在未训练状态下用等式3给它打分。我们做了N次,也就是说,我们有N个架构的样本,然后输出得分最高的网络。由于计分只需要实例化一个网络,并且计算单个小批量的梯度,所以这只需要很少的时间。
我们使用第2.2节中概述的NAS-Bench-201将我们的算法与其他NAS技术进行比较。NAS-Bench-201包括权重共享和非权重共享的NAS算法,我们使用它们作为我们的基线方法集。权重共享方法包括parameter
sharing (RSPS, Li & Talwalkar, 2019), first-order DARTS (DARTS-V1, Liu et al., 2019), second
order DARTS (DARTS-V2, Liu et al., 2019), GDAS (Dong & Yang, 2019b), SETN (Dong & Yang,
2019a), and ENAS (Pham et al., 2018). The non-weight sharing methods are random search with
training (RS), REA (Real et al., 2019), REINFORCE (Williams, 1992), and BOHB (Falkner et al.,
2018).有关实施细节,请读者参阅Dong&Yang(2020年)。需要注意的是,NAS-Bench-201中用于训练和搜索的超参数设置是固定的-可能这些结果对超参数选择不是不变的。
非权重共享方法的性能优于我们的方法,尽管它们也会产生很大的搜索时间开销。例如,REA还需要大量的内存预算,因为要维护大量的并行架构,随着模型和数据集大小的增加,这些并行架构可能会遇到可伸缩性问题。对于某些数据集,我们的方法能够找到性能接近最佳非权重共享算法的网络,这表明网络体系结构本身包含的有关初始化时和训练后的最终性能的信息几乎一样多。
在NAS-Bench-201上评估搜索算法,CIFAR-10、CIFAR-100和ImageNet-16-120的平均值±标准精确度。算法分为权重共享和非权重共享(各3次和500次),以及我们的无训练方法(每个500次)。我们报告了Dong&Yang(2020)的结果。提供了在单个1080Ti GPU上进行CIFAR-10搜索的搜索时间。搜索时间包括培训网络所花费的时间(如适用)。在所有情况下,搜索过程后所选网络的训练时间都被省略。给出了不同样本量N下的无训练方法的性能,并给出了随机选取网络的结果,并从样本中进行了优化。我们的方法优于大多数的权重分配方法,并且与非权重共享方法相比具有竞争力,同时速度快了几个数量级。我们在表1中报告了CIFAR-10、CIFAR-100和ImageNet-16-120的验证和测试集的结果。在单个GeForce GTX 1080 Ti GPU上报告CIFAR-10的搜索时间。根据NAS-Bench-201设置,权重共享的时间预算为12000秒。对于我们的方法和非权重共享方法,精度平均超过500次。对于权重共享方法,精度报告超过3次。除了GDAS(Dong&Yang,2019b)外,我们的方法能够在只需要一小部分搜索时间的情况下,优于所有的权重分担方法。例如,我们的方法执行的架构搜索比SETN快18000倍(Dong&Yang,2019a),并在每个数据集中找到更精确的网络。它在CIFAR-10和CIFAR-100上的性能特别好,但在ImageNet-16-120上性能略有下降,差异明显更大。由于ImageNet-16-120是一个具有挑战性的任务(120个类,16×16个图像),这可能是由于其训练结果的噪声增加。
表1还显示了样本量(N)的影响。我们展示了我们的方法为每个N选择的网络的精确度。我们列出了样本大小N=10和N=100的最佳精度,以及在整个基准测试中的随机选择,两者的平均值都超过500次。我们观察到样本大小对我们的方法的准确性没有太大的影响,但是注意到随着样本量的增加,我们的方法会受到少量噪声的影响,增加了我们的记分器和最佳结果之间的差距。
我们的方法的一个关键的实际好处是它的执行时间。为了探索这一点,我们将图6中每个方法的搜索时间和准确性之间的权衡进行可视化。在时间有限的情况下,我们的方法非常有吸引力。当多次重复NAS时,这可能很重要,例如对于多个硬件设备或数据集。这使我们能够在未来以低廉的价格专门为任务和资源环境专门设计神经结构,每次设置只需要几秒钟。
在CIFAR-10(测试)上可视化NAS-Bench-201上不同NAS算法的搜索时间和准确性之间的折衷。通过消除训练的需要,我们的方法能够在数秒内而不是数小时内找到精确的网络。
5 Conclusion
NAS此前一直遭受难以控制的搜索空间和沉重的搜索成本之苦。通过NAS-Bench-201等基准测试,最近在生成可跟踪搜索空间方面取得的进展,使我们能够研究是否可以避免这种搜索成本。在这项工作中,我们已经证明,依靠在初始化的神经网络上进行的简单、直观的观察,可以在几秒钟内运行一个搜索算法,这种方法挑战更复杂、更昂贵的黑盒方法。这项工作并非没有其局限性;我们的研究范围局限于用于图像分类的卷积体系结构,而且我们的方法并没有击败最佳的非权重共享方案。然而,我们希望这将是一个强有力的第一步,以消除培训从NAS,使架构搜索更便宜,更容易提供给从业人员。
网友评论