Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

陈鑫作者

同济和华为诺亚提出:渐进式可微网络结构搜索,显著提升可微式搜索的性能和稳定性,已开源


Progressive Differentiable ArchitectureSearch: Bridging the Depth Gap between Search and Evaluation

论文:https://arxiv.org/abs/1904.12760

github:https://github.com/chenxin061/pdarts

 1. 引言

最近,可微分的网络结构搜索方法[1]取得了很大的进步,极大地降低了搜索开销。然而,由这些方法搜索得到的网络结构在测试和转移到其他的数据集时,往往得到相对较低的准确率。这是因为搜索和测试情景下的网络深度存在较大的差异。传统的可微分网络结构搜索方法由于需要将搜索空间中的候选操作都放到搜索网络当中,受限于显存,只能搭建较浅的搜索网络。而在较浅的搜索网络上搜索得到的网络结构往往并不完全适用于较深的测试网络。本文提出一种有效的方法使得搜索网络的深度可以随着搜索过程的进行逐渐地增加,以最终缩小或消除搜索网络与测试网络的深度差异。这带来了两个问题,更高的搜索开销和更低的搜索稳定性。文章提出搜索空间近似和搜索空间正则来分别解决这两个问题。方法概览如图1所示。该方法在单个P100 GPU上只需要大约7个小时就可以搜索得到一个结构,在搜索开销和网络结构的测试准确率上全面超越现有可微分网络结构搜索方法,达到领先水平。

 

图1

2. 方法介绍

2.1 DARTS

文章的方法采用DARTS作为baseline框架。作者的目标是搜索cell的结构并用其来搭建测试网络。其中,cell被定义为一个拥有N个节点的有向无环图(Directed Acyclic Graph, DAG),每一个节点是网络中的一个层。节点之间由softmax加权的操作连接,各操作最终相加汇入目标节点。cell的输出节点由中间节点按channel方向连接而成。

2.2 渐进地增加搜索网络深度

 在DARTS中,网络结构搜索是在一个拥有8个 cell 的搜索网络上进行的,然而却是在一个拥有20个cell 的网络上测试的,在搜索网络和测试网络之间有一个很大的深度差异。然而,不同深度的网络之间存在较大的性能差异,使用较浅的网络搜索到的结构并不一定是测试网络所需要的。作者使用DARTS进行了多次搜索,结果显示搜索到的网络结构倾向于保留较浅的连接,而不是较深的。这是因为较浅的网络通常会在搜索过程中快速地收敛,然而这却和常识--较深的网络往往拥有更好的性能--相悖。因此,文章提出渐进地增加搜索网络的深度来解决深度差异的问题。采用渐进增加搜索网络深度的策略是因为可以用这种方式逐渐地缩小搜索空间,也就是候选操作的种类,从而保持显存消耗在一个合理的水平。

 这样做会带来两个方面的困难,第一是随着深度的增加,显存开销和搜索时间都将成为潜在问题。在DARTS中,显存是和搜索网络的深度成正比关系的,更深的搜索网络意味着更高的显存和时间消耗。最直接的做法是降低每个操作的channel数,事实上DARTS也这样做了,但是最终的性能略差于原始方案。文章提出搜索空间近似,根据每个阶段学习到的网络结构参数渐进地减少候选操作的种类,从而降低显存和时间消耗。

 另一方面,实验表明在较深的搜索网络中,可微分的方法倾向于选择skip-connect操作,因为其通常处在梯度下降的最速路径上,能够加速前向/反向传播。然而,skip-connect操作是无可训练参数的,数量过多会导致网络的表达能力降低。对此,作者提出搜索空间正则,在skip-connect操作添加操作层面的Dropout来防止其过拟合到skip-connect上,同时限制最终结构中的skip-connect操作数量来进一步提高稳定性。

 2.2.1 搜索空间近似

 图2是搜索空间近似的示意图。搜索过程被切分成了多个阶段,包括初始阶段,一个或多个中间阶段以及一个最终阶段。在每个阶段 Sk ,搜索网络包含 Lk 个cell,cell中每条边包括 Ok 个操作。

 在初始阶段,搜索网络相对较浅,但是cell中每条边上的候选操作最多(所有操作)。在阶段 Sk -1中,根据学习到的网络结构参数(权值)来排序并筛选出权值(重要性)较高的 Ok 个操作,并由此搭建一个拥有 Lk 个cell的搜索网络用于下一阶段的搜索,其中, Lk > Lk-1 , Ok < Ok-1 . 通过搜索空间的估计,减小了搜索空间,这部分腾出来的显存就可以用来搭建更深的搜索网络。通过这样的方式,可以在保持显存消耗在阈值范围内的情况下,在更深的搜索网络上进行网络结构搜索。文中随机统计了几次搜索过程中各阶段的显存使用量,发现显存均能稳定保持在阈值之下,如Table 3所示。值得注意的是,如果使用显存稍小的GPU如1080ti,需适当减小batch size。作者也进行了相关测试,在使用P100 GPU且显存限制为11G的情况下,搜索速度稍微变慢,搜索时间约为9小时。



这个过程可以渐进而持续地增加搜索网络的深度,直到足够接近测试网络深度。最终阶段的搜索(参数学习)结束之后,就可以根据学习到的网络结构参数生成最终的网络结构。和DARTS一样,文章也在每个中间节点保留两个权值最高的非空操作,并且规定每一条边至多保留一种操作。


图2

2.2.2 搜索空间正则

 在第 Sk  阶段,由于在上个阶段结尾一些操作从搜索空间中被删去,因此需要从头开始训练网络参数和结构参数。但是训练一个更深的网络往往比训练一个较浅的网络更难。实验结果表明在本文采用的框架下,信息往往倾向于通过skip-connect流动,而不是卷积。这是因为skip-connect通常处在梯度下降最速的路径上,尤其是在小而简单的数据集上,如文章采用的代理数据集CIFAR10. 在这种情况下,最终搜索得到的结构往往包含大量的skip-connect操作,可训练参数较少,从而使得性能下降。这从本质上来说是一种“过拟合”。

 作者采用搜索空间正则来解决这个问题。一方面,作者在skip-connect操作后添加操作层面的Dropout来部分切断skip-connect的连接,迫使算法去探索其他的操作。然而,持续地阻断这些路径的话会导致在最终生成结构的时候skip-connect操作仍然受到抑制,可能会影响最终性能。因此,作者在训练的过程中逐渐地衰减Dropout的概率,在训练初期施加较强的Dropout,在训练后期将其衰减到很轻微的程度,使其不影响最终的网络结构参数的学习。

 另一方面,尽管使用了操作层面的Dropout,作者依然观察到了skip-connect操作对实验性能的强烈影响。具体来说,搜索得到的结构中包含的skip-connect数量不一,导致了在测试的时候性能的波动。作者同时观察到测试时的识别准确率与搜索到的结构中的skip-connect操作数量与最终性能高度相关。因此,作者提出第二个搜索空间正则方法,即在最终生成的网络结构中,保留固定数量的skip-connect操作。具体的,作者根据最终阶段的结构参数,只保留权值最大的M个skip-connect操作,这一正则方法保证了搜索过程的稳定性。在本文中, M=2 .

 需要强调的是,第二种搜索空间正则是建立在第一种搜索空间正则的基础上的。在没有执行第一种正则的情况下,即使执行第二种正则,算法依旧会生成低质量的网络结构。

 3. 实验结果

3.1 网络结构搜索与测试

文章在CIFAR10和CIFAR100上做了网络结构搜索,并将搜索到的网络结构transfer到ImageNet数据集,在Mobile Setting下进行了性能测试,实验结果如Table 1(CIFAR10/100)和Table 2(ImageNet)所示。

 该算法使用单个P100 GPU仅需要约7小时搜索得到一个结构,相比DARTS在速度上有不小的提升,并且比以效率著称的ENAS[3]更快。在CIFAR10上,作者使用3.4M参数实现了2.50%的测试错误率,超越了DARTS的结果,同时也超过了同等参数量下最好的AmoebaNet-B[2],后者耗费了3150 GPU-days实现了2.55%的测试错误率。值得一提的是,该方法同时也可以在CIFAR100上进行网络结构搜索,在没有进行大面积调参的情况下,以3.6M参数实现了15.92%的测试错误率。作者同样尝试了使用DARTS在CIFAR100上进行网络结构搜索,然而搜索得到的结构里包含大量的skip-connect操作,测试性能不及其由CIFAR10上搜索到的结构transfer的性能。

 在ImageNet的实验中,文章实现了略微低于AmoebaNet-C的Top-1测试错误率(24.4% vs. 24.3%)和超过其他现有方法的Top-5测试错误率,在性能和搜索时间上全面超越了DARTS。值得一提的是,该方法在transfer的性能上超越了专门为ImageNet设计搜索空间并在ImageNet进行搜索和测试的两个方法--ProxylessNAS[4]和MnasNet-92[5].

 3.2 诊断试验

 同时,作者也进行了一些诊断性实验,其结果验证了文章提出的方案的有效性。首先作者测试了搜索过程中的不同阶段产生的网络结构的性能。为了对比,作者加入了DARTS代码中release的结构 (DARTS_V2, 使用8个cell的搜索网络)。如图3所示,其中第一、二和三阶段的搜索网络中分别包含5、11和17个cell。可以看出,第一阶段搜索得到的结构中都是从输入节点连接到中间节点的浅连接,而第二阶段和DARTS_V2中则开始出现一些中间节点之间的深连接,在第三阶段中,出现了多个中间节点之间的连接,并且连接层次较其他三个也更深。对这几个网络结构的测试结果表明最终阶段(第三阶段)生成的网络结构取得了最佳的性能。

图3

作者也设计实验验证了搜索空间正则的有效性。一方面,作者设计了使用和不使用操作层面Dropout的两组对比实验。使用Dropout的一组,保留2、3和4个skip-connect操作的网络结构在CIFAR10上的测试错误率分别为2.69%、2.84%和2.97%,相比之下,未使用Dropout的一组的测试错误率则分别为2.93%、3.28%和3.51%。

 另一方面,作者进行了限制最终生成网络结构中skip-connect数量的对比实验。作者在CIFAR10上进行了3次网络结构搜索,得到的结构中分别包含2、3和4个skip-connect操作,平均测试错误率为2.79±0.16%。在进行限制之后,最终网络的skip-connect操作数量被限制到2个,平均测试错误率为2.65±0.05%。降低的测试错误率和标准差显示搜索过程的稳定性得到了保证。

 4. 总结

本文中,作者提出了一个渐进的可微分网络结构搜索方法来连接搜索和测试情景之间的网络深度差异。本方法的核心思想是逐渐地增加搜索网络的深度。为了解决搜索开销过大和搜索过程不稳定的问题,作者设计了两个方法来估计和正则搜索空间。该方法实现了单个P100 GPU上约7小时的快速搜索,并且在代理数据集和目标数据集上均表现出了优异的性能。搜索空间正则方法在保证性能的同时,能够大幅度提高搜索过程的稳定性,有效减小性能波动。

 本文的研究表明了可微分网络结构搜索中网络深度的重要性,提出了一种牺牲操作数量的估计方法。期待在有着强大计算资源的未来,深度仍然是探索网络结构空间时的关键因素。

 参考文献:

[1] Liu, H., Simonyan, K., & Yang, Y.(2018). Darts: Differentiable architecture search.arXiv preprintarXiv:1806.09055.

[2] Real, E., Aggarwal, A., Huang, Y., &Le, Q. V. (2018). Regularized evolution for image classifier architecturesearch.arXiv preprint arXiv:1802.01548.

[3] Pham, H., Guan, M., Zoph, B., Le, Q.,& Dean, J. (2018, July). Efficient Neural Architecture Search via ParameterSharing. InInternational Conference on Machine Learning(pp. 4092-4101).

[4] Cai, H., Zhu, L., & Han, S. (2018).ProxylessNAS: Direct neural architecture search on target task andhardware.arXiv preprint arXiv:1812.00332.

[5] Tan, M., Chen, B., Pang, R., Vasudevan,V., & Le, Q. V. (2018). Mnasnet: Platform-aware neural architecture searchfor mobile.arXiv preprint arXiv:1807.11626.


论文:https://arxiv.org/abs/1904.12760github:https://github.com/chenxin061/pdarts
CVer
CVer

一个专注于计算机视觉方向的平台。涉及目标检测,图像分割,目标跟踪,人脸检测&识别,姿态估计,GAN和医疗影像等。

理论架构搜索
2
相关数据
Dropout技术

神经网络训练中防止过拟合的一种技术

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

有向无环图技术

在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。 因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

推荐文章
暂无评论
暂无评论~