搜索CIFAR10只需1个半小时:华为诺亚&上交大ICLR 2020提出更快、更稳定、性能更好的可微分架构搜索

本文涉及的产品
文件存储 NAS,50GB 3个月
简介: 人工智能顶会 ICLR 2020 将于明年 4 月 26 日于埃塞俄比亚首都亚的斯亚贝巴举行,不久之前,大会官方公布论文接收结果:在最终提交的 2594 篇论文中,有 687 篇被接收,接收率为 26.5%。华为诺亚方舟及其合作实验室有多篇论文被 ICLR 2020 接收,本文介绍了其中一篇 Spotlight 文章。

微信图片_20211202204356.jpg


在此论文中,来自上海交通大学和华为诺亚方舟实验室的研究人员提出了一种基于部分通道采样的内存高效的可微网络结构搜索方法方法,能够显著提升可微式搜索的速度和性能。


该方法在 CIFAR10 数据集上,只需要 0.1 个 GPU 天(单卡 1.5 小时)就可以完成一次搜索过程,并且达到 2.57% 的测试错误率;即使在 ImageNet 数据集上直接搜索,该方法也只需要 3.8 个 GPU 天(8 卡 11.5 小时),并且在 ImageNet 的移动设定(600M 运算)中达到 24.2%/7.3% 的 top-1/top-5 测试错误率。难得的是,该方法展示出了在不同参数设定下的搜索稳定性,能够很容易地应用于不同的实际场景。


论文地址 https://arxiv.org/abs/1907.05737代码地址 https://github.com/yuhuixu1993/PC-DARTS


1. 摘要


最近,可微分的网络结构搜索方法 [1] 取得了很大的进步,极大地降低了搜索开销。然而,可微分的结构搜索方法需要联合训练一个超网络,因此面临两个棘手的难题:巨大的内存消耗,以及超网络到子网络的迁移稳定性。本文提出一种有效的通道采样方法,即在超网络训练中,只采样部分通道进入核心的多选一运算。通道采样不仅能够缓解超网络的「过拟合」现象,还大大降低了其显存消耗,使得在训练过程中可以通过增加 batch-size 来提升结构搜索的速度和稳定性。


然而,通道采样会导致超网络的选边出现不一致性,从而增加了随机近似给超网络带来的扰动。为了解决这一问题,文章又进一步提出边正则化方法,即利用一组额外的边权参数来减少搜索中的不确定性。经过这两项改进,该方法的搜索速度更快,性能更稳定,精度也更高。


在 CIFAR10 数据集上,利用单块 V100 型 GPU 只需大约 1.5 小时就可以完成整个搜索过程;即使直接在 ImageNet 上搜索,利用 8 块 V100 型 GPU 也只需要 11.5 小时。同时,该方法在网络结构的测试准确率上全面超越现有可微分网络结构搜索方法。


2. 引言和基础


网络结构搜索(NAS)是目前 AutoML 的重要方向,吸引了越来越多工业界和学术界研究者的兴趣。


NAS 的主要方法是构建一个大的结构空间,并且开发一个高效的算法来探索这个空间,并在不同约束(网络大小,延迟,等)下找到较优的网络结构。


和之前强化学习和进化算法这些需要超大规模运算消耗的方法不同,one-shot 网络结构搜索大大降低了搜索消耗,让网络结构搜素更方便地在更多现实问题中应用。DARTS[1] 把操作选择转化为权衡一系列操作的重要性。这使得整个框架中结构参数是可微分的,从而网络结构搜索算法可以以端到端的形式高效地进行。尽管 DARTS 已经是时下最流行的网络结构搜索方法之一,它依然存在显存消耗大和超网络到子网络迁移性质不稳定等问题。本文我们提出一种简单高效的方法,即部分连接 DARTS(Partially-Connected DARTS,PC-DARTS),来降低原始算法中的显存消耗,同时提升其搜索稳定性。我们的核心思想非常直观:不同于之前将超网络中所有的通道都输入待选操作,我们随机采样通道中的一部分进入待选操作,而将剩余部分跳过待选操作,直接与前一部分的输出并联。这样,我们就通过随机采样的方式,得到了超网络的一个近似。这种近似方法,除了大大减少内存和运算的消耗,还能够使得操作搜索的精度得到某种形式的抑制,从而减少了超网络本身被过拟合的风险,提升了子网络的性能。然而,部分通道连接也带来一个负面效果:由于每次超网络训练迭代时采样的不同的通道,超网络连接的选择会变得不稳定。为此,我们提出边正则化方法,通过引入一组额外的边权参数,显式地在边的层面上进行选择,从而使网络搜索过程更加稳定。微信图片_20211202204352.jpg


图 1:PC-DARTS 整体框架图,其中上半部分为部分通道连接,下半部分为边正则化。


3. 方法


3.1 基线方法:DARTS


文章的方法采用 DARTS 作为基础框架。按照 DARTS 的设定,本文通过搜索 normal cell 和 reduction cell 的结构并用其来搭建测试网络。其中,每个 cell 被定义为一个拥有 N 个节点的有向无环图(Directed Acyclic Graph,DAG),每一个节点都可以被用于下一个节点的输入。节点之间由 softmax 加权的操作连接,以节点 i 与节点 j 之间为例可表示为:微信图片_20211202204349.jpg


 各前导边最终相加,汇入目标节点,即:

微信图片_20211202204347.jpg

 而 cell 的输出节点由中间节点按 channel 方向拼接而成。


3.2 部分通道连接(Partial Channel Connections)


DARTS 的一个明显的缺点在于其内存开销大。如果 表示搜索空间的大小,那么训练一个超网络所需要的内存消耗大约是一个正常网络的 倍。为了解决这个问题,本文提出一种通道采样策略,只随机采样部分通道输入待选操作。以超网络中节点 i 输入节点 j 为例,被选择的通道如正常搜索算法一样被输入 个操作的选择过程,而未被选择的通道直接与操作的输出并联作为下一个节点的输入。可表示为:

微信图片_20211202204344.jpg

 实际应用中,我们设置采样通道的比例为 1/K。其中,K 是一个超参数,用于调节超网络的近似精度和搜索速度之间的平衡。其作用将在消融实验部分进行分析。
通道采样策略,使得超网络的显存消耗降低为原先的 1/K。因此,在相同的硬件上,我们就能够使用原先 K 倍的 batchsize 来进行网络结构搜索。这带来了两个好处:结构搜索的速度大约变为原先的 K 倍;同时,更大的 batchsize 意味着每次的迭代中可以采样更多的数据,可以提升结构搜索的稳定性。


3.3 边正则化(Edge Normalizetion)


通过 DARTS 搜索最终确定的结构,每个节点只有两个输入。从实际操作上看,在搜索过程结束后,DARTS 在每条边上只保留结构参数最大的操作,而每个节点的输入只保留最大的两个结构参数对应的边。然而,部分通道连接使得每次结构参数优化时,采样的是不同的通道。如果依然通过同样的方式来确定最优边,就可能增大超网络和子网络直接的误差,带来不稳定的搜索结果。为了解决这个问题,我们提出边正则化方法,即引入额外一组边参数β_{i,j} 来显式地加权边:

微信图片_20211202204341.jpg


通过在训练超网络的过程中共享β_{i,j},网络搜索对通道采样操作不再敏感,整个搜索过程也更加稳定。在后面的消融实验中我们看到,即使在原始的 DARTS 上,边正则化也会带来精度和稳定性的增益。同时,边正则化带来的额外运算消耗可以几乎忽略不计。


4. 实验结果


4.1 网络搜索与测试


我们在 CIFAR10 和 ImageNet 上做了网络结构搜索,并将搜索到的网络结构在 ImageNet 数据集的移动设定下进行了验证,实验结果如表 1(CIFAR10)和表 2(ImageNet)所示。


搜索出的结构如图 2 所示。PC-DARTS 在 CIFAR10 上仅仅利用 0.1GPU 天就搜索到 2.57% 测试错误率的结构,在搜索速度和准确率上都远超 DARTS。据我们所知,这是目前错误率低于 3% 的最快搜索算法。P-DARTS[2] 通过更深的结构去搜索达到比我们方法更好的结构,我们的方法也可以与 P-DARTS 进行结合达到更好的性能。 

微信图片_20211202204336.jpg

表 1:CIFAR10 数据集上的结果对比。 


微信图片_20211202204334.jpg


表 2:ImageNet 数据集上的结果对比。


如表 2 所示,我们将 PC-DARTS 在 CIFAR10 上和 ImageNet 上搜索到的结构在 ImageNet 上进行了验证。在 CIFAR10 上搜索出的结构的 top-1/top-5 错误率为 25.1%/7.8%,显著地低于 DARTS 的 26.7%/8.7%。考虑到搜索时间只有 0.1GPU 天,该性能已经非常可观。另外,在 ImageNet 直接搜索出的结构的 top-1/top-5 错误率降低至 24.2%/7.3%,超过了 P-DARTS[2],也超过了另一个直接在 ImageNet 上直接搜索的方法,ProxylessNAS[3]。 

微信图片_20211202204330.jpg

图 2:在 CIFAR10(左)和 ImageNet(右)上搜索到的网络结构(以 normal cell 和 reduction cell 的形式分开展示)。网络中的所有同类型 cell 共享一个结构。


4.2 消融实验

微信图片_20211202204327.jpg

图 3/表 3:消融实验结果示意。左图为不同采样比例 K 对搜索结果的影响,右表为 PC 和 EN 对于原始算法分别产生的有益效果。


首先我们研究了通道采样比例 K 对搜索性能以及速度的影响。这个实验是在 CIFAR10 上进行的。可以看到当综合考虑搜索的时间和性能时,K=4 为最佳。K=8 时,虽然搜索时间更低,但是由于采样的通道数太少,超网络的性能有了显著下降。这个实验不仅展示了 PC-DARTS 允许在搜索时间和精度之间进行权衡,同时也反映了 NAS 中超网络优化具有一定的冗余性。更重要的是,它清晰地展示了 DARTS 算法下,搜索和验证之间的差异:一个优化得更好的超网络不一定会产生最终性能更好的子网络。基于超网络训练的 NAS 方法很容易产生过拟合现象——从这个角度讲,通道采样起了正则化的作用,缩小了搜索与验证之间的差异性。另一种减少差异性的方法,见 [2]。


此外,为了显示部分通道连接与边正则化的有效性,我们进行了消融实验。可以看到,虽然部分通道连接使得搜索速度更快、性能也有所提升,然而边正则化的加入使得整个搜索算法的稳定性更强。同时注意到,即使直接在 DARTS 上加入边正则化,对于其搜索的精度和稳定性也有显著的提升。因此我们判断,边正则化方法能够扩展到更一般的基于超网络优化的搜索算法。


4.3 迁移到目标检测


为了进一步验证搜索出结构的性能,我们将网络迁移到目标检测任务中进行比较。我们选择 SSD[4] 作为基础框架,并将在 ImageNet 上搜索和预训练的网络结构好作为后端网络。我们在 MS-COCO 数据集下测试了一系列模型的性能。在更低的 FLOPs 下,PC-DARTS 比 SSD300 在 AP 指标上高出 5.7%。在类似的 FLOPs 下,PC-DARTS 相较于 MobileNet 系列的性能优势也十分明显。实验证实,PC-DARTS 在图像分类任务上搜索出的结构,能够很好地迁移到更具挑战性的目标检测任务中。这也在一定程度上得益于 PC-DARTS 减轻了超网络的过拟合,从而提升了迁移性能。

微信图片_20211202204324.jpg

表 5:将搜索到的网络结构迁移到 MS-COCO 检测任务上的对比结果。


5. 总结


本文提出部分通道连接的可微分网络结构搜索方法 PC-DARTS,使得可微分搜索更快、更稳定,也在多个数据集上取得了更好的性能。其中的边正则化方法也能够用于其他超网络搜索算法,增加训练的稳定性。经过细致的优化,PC-DARTS 将网络结构搜索的时间开销降低到小时级,特别便于资源受限的研究工作者使用。

然而我们也注意到,可微分网络结构搜索已然存在一些未解难题,如超网络到子网络的近似所带来的巨大量化误差。在今后的研究工作中,我们会在这些方面进行持续探索,进一步提升可微分框架的竞争力。


参考文献

[1] Hanxiao Liu, Karen Simonyan, and Yiming Yang. DARTS: Differentiable architecture search. In ICLR, 2019.[2] Xin Chen, Lingxi Xie, Jun Wu, and Qi Tian. Progressive differentiable architecture search: Bridging the depth gap between search and evaluation. In ICCV, 2019.[3] Han Cai, Ligeng Zhu, and Song Han. ProxylessNAS: Direct neural architecture search on target task and hardware. In ICLR, 2019.[4] Weiwei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott E. Reed, Cheng-Yang Fu, and Alexander C. Berg. Ssd: Single shot multibox detector. In ECCV, 2016.

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
1月前
|
存储 调度 C++
16 倍性能提升,成本降低 98%! 解读 SLS 向量索引架构升级改造
大规模数据如何进行语义检索? 当前 SLS 已经支持一站式的语义检索功能,能够用于 RAG、Memory、语义聚类、多模态数据等各种场景的应用。本文分享了 SLS 在语义检索功能上,对模型推理和部署、构建流水线等流程的优化,最终带给用户更高性能和更低成本的针对大规模数据的语义索引功能。
235 12
|
3月前
|
存储 数据挖掘 BI
2-5 倍性能提升,30% 成本降低,阿里云 SelectDB 存算分离架构助力波司登集团实现降本增效
波司登集团升级大数据架构,采用阿里云数据库 SelectDB 版,实现资源隔离与弹性扩缩容,查询性能提升 2-5 倍,总体成本降低 30% 以上,效率提升 30%,助力销售旺季高效运营。
293 9
|
2月前
|
算法 关系型数据库 文件存储
ProxylessNAS:直接在目标任务和硬件上进行神经架构搜索——论文解读
ProxylessNAS是一种直接在目标任务和硬件上进行神经架构搜索的方法,有效降低了传统NAS的计算成本。通过路径二值化和两路径采样策略,减少内存占用并提升搜索效率。相比代理任务方法,ProxylessNAS在ImageNet等大规模任务中展现出更优性能,兼顾准确率与延迟,支持针对不同硬件(如GPU、CPU、移动端)定制高效网络架构。
295 126
ProxylessNAS:直接在目标任务和硬件上进行神经架构搜索——论文解读
|
2月前
|
机器学习/深度学习 算法 物联网
μNAS:面向微控制器的约束神经架构搜索——论文解读
μNAS是一种专为微控制器设计的神经架构搜索方法,旨在解决物联网设备中资源受限的挑战。通过多目标优化框架,μNAS能够在有限的内存和计算能力下,自动搜索出高效的神经网络结构。该方法结合了老化进化算法与贝叶斯优化,并引入结构化剪枝技术,实现模型压缩。实验表明,μNAS在多个数据集上均取得了优异的精度与资源使用平衡,显著优于现有方法,为边缘计算设备的智能化提供了可行路径。
343 129
|
2月前
|
机器学习/深度学习 人工智能 资源调度
MicroNAS:面向MCU的零样本神经架构搜索——论文阅读
MicroNAS是一种专为微控制器单元(MCU)设计的零样本神经架构搜索(NAS)框架,无需训练即可通过理论驱动的性能指标评估网络架构。相比传统NAS方法,其搜索效率提升高达1104倍,同时兼顾精度与硬件效率,适用于边缘计算场景。该框架结合神经切线核(NTK)条件数、线性区域计数及硬件感知延迟模型,实现快速、高效的架构搜索,为资源受限设备上的AI部署提供了新思路。
197 2
MicroNAS:面向MCU的零样本神经架构搜索——论文阅读
|
3月前
|
机器学习/深度学习 算法 文件存储
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
神经架构搜索(NAS)正被广泛应用于大模型及语言/视觉模型设计,如LangVision-LoRA-NAS、Jet-Nemotron等。本文回顾NAS核心技术,解析其自动化设计原理,探讨强化学习、进化算法与梯度方法的应用与差异,揭示NAS在大模型时代的潜力与挑战。
803 6
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
|
2月前
|
存储 JSON 数据处理
ClkLog埋点与用户行为分析系统:架构升级与性能全面提升
随着越来越多企业在实际业务中使用 ClkLog,数据规模和分析需求也不断提升,部分用户日活已经超过10万,为了顺应这一趋势,ClkLog 秉持 “开放透明、持续演进”的理念,推出了迄今为止最重要的一次性能优化升级。新版本在大规模数据处理与复杂查询场景中,性能表现实现了跨越式提升。经过多轮研发与严格测试,新版本现已正式上线:在原有付费版 1.0 的基础上架构全面升级,并同步发布全新的 2.0 版本。为用户带来更强的性能与更广的适用场景。
|
2月前
|
机器学习/深度学习 人工智能 vr&ar
H4H:面向AR/VR应用的NPU-CIM异构系统混合卷积-Transformer架构搜索——论文阅读
H4H是一种面向AR/VR应用的混合卷积-Transformer架构,基于NPU-CIM异构系统,通过神经架构搜索实现高效模型设计。该架构结合卷积神经网络(CNN)的局部特征提取与视觉Transformer(ViT)的全局信息处理能力,提升模型性能与效率。通过两阶段增量训练策略,缓解混合模型训练中的梯度冲突问题,并利用异构计算资源优化推理延迟与能耗。实验表明,H4H在相同准确率下显著降低延迟和功耗,为AR/VR设备上的边缘AI推理提供了高效解决方案。
391 0
|
5月前
|
存储 缓存 分布式计算
高内存场景必读!阿里云r7/r9i/r8y/r8i实例架构、性能、价格多维度对比
阿里云针对高性能需求场景,一般会在活动中推出内存型r7、内存型r9i、内存型r8y和内存型r8i这几款内存型实例规格的云服务器。相比于活动内的经济型e和通用算力型u1等实例规格,这些内存型实例在性能上更为强劲,尤其适合对内存和计算能力有较高要求的应用场景。这些实例规格的云服务器在处理器与内存的配比上大多为1:8,但它们在处理器架构、存储性能、网络能力以及安全特性等方面各有千秋,因此适用场景也各不相同。本文将为大家详细介绍内存型r7、r9i、r8y、r8i实例的性能、适用场景的区别以及选择参考。