摘要:VEGA是华为诺亚方舟实验室自研的全流程AutoML算法汇合,提供架构搜寻、超参优化、数据加强、模型压缩等全流程机器学习自动化根底能力。

本文分享自华为云社区《VEGA:诺亚AutoML高性能开源算法集简介》,作者: kourei。

概述

VEGA是华为诺亚方舟实验室自研的全流程AutoML算法汇合,提供架构搜寻、超参优化、数据加强、模型压缩等全流程机器学习自动化根底能力。目前集成的算法大多数曾经合入了华为 DaVinci 全栈AI解决方案CANN + MindSpore中,一些简略的测试表明相比GPU具备相当大的劣势,预计下个版本Vega会提供对 DaVinci 的反对。

作为针对钻研人员和算法工程师量身定制的主动机器学习工具,VEGA在2019年12月在华为内源公布,撑持起了诺亚外部多个团队(计算视觉、举荐搜寻和AI根底钻研)的自动化机器学习算法的钻研,在相干的AI顶会上(CVPR/ICCV/ECCV/AAAI/ICLR/NIPS)产出20+算法。以下是本次开源的代表性AutoML算法简介:

自动化网络架构搜寻(NAS)

基于硬件束缚的高效分类网络搜寻计划(CARS)

在不同的利用场景中,计算资源约束条件有所不同,因而对于搜寻的后果天然的有着差异化的后果需要。此外,只管基于进化算法的NAS办法获得了不错的性能,然而每代样本须要重头训练来进行评估,极大影响了搜寻效率。本文思考了现有办法的有余,提出一种基于间断进化的多指标高效神经网络构造搜寻办法(CARS)。CARS保护一个最优模型解集,并用解集中的模型来更新超网络中的参数。在每次进化算法产生下一代种群的过程中,网络的参数能够间接从超网络中继承,无效进步了进化效率。CARS一次搜寻即可取得一系列不同大小和精度的模型,供用户依据理论利用中的资源束缚来筛选相应的模型。相干工作发表在CVPR2020: https://arxiv.org/abs/1909.04977 。

轻量级超分网络结构搜寻(ESR-EA)

诺亚提出了一种轻量级超分网络结构搜索算法,从通道、卷积和特色尺度三个角度登程构建高效的超分网络根本模块。该算法以高效模块为根底,以模型的参数量、计算量和模型精度为指标,应用多指标优化进化算法搜寻轻量级超分网络结构。该算法能够从通道、卷积和特色尺度三个角度对超分网络的冗余进行全面压缩。试验表明,在等同参数量或者计算量的状况下,该算法搜寻到的轻量级超分网络(ESRN)在规范测试集(Set5,Set14,B100,Urban100)上获得了比手工设计的网络结构(CARN等)更好的成果。除此之外,该算法也能够在确保算法精度的前提下升高计算量,满足挪动设施的时延和功耗束缚。相干论文发表在AAAI 2020: https://www.aaai.org/Papers/A... 。

端到端的检测网络架构搜寻计划(SM-NAS)

现有的指标检测模型能够被解耦成几个次要局部:骨干(Backbone),特色交融网络(Neck),RPN和以及RCNN头部。每个局部可能有不同的模块与结构设计,如何衡量不同组合的计算成本和精确度是一个重要问题。现有的指标检测 NAS办法(NAS-FPN, DetNas等)仅专一于搜寻单个模块的更好设计,如骨干网络或特色交融网络,而疏忽了对系统整体的考量。为了解决这个问题,在本文中咱们提出了一种两阶段从结构化到模块化的神经网络搜寻策略,名为Structural-to-Modular NAS(SM-NAS)。具体而言,结构化阶段进行模型架构的粗搜寻,确定针对当前任务的最优模型架构 (如应用单阶段检测器还是双阶段检测器,应用何种类型的backbone等),以及与之匹配的输出图像尺寸大小;模块化搜寻阶段则对backbone模块进行粗疏的构造调优,进一步提高模型性能。。在搜寻策略上,咱们采纳了演变算法,并同时思考了模型效率与模型性能双重最优,应用non-dominate sorting构建Pareto front,来取得一系列在多指标上同时达到最优的网络结构。此外,咱们摸索了一种无效的训练策略,使得网络在没有imagenet pretrain的状况下可能达到比有pretrain更快的收敛速度,从而更加疾速、精确地评估任意backbone的性能。在COCO数据集上,咱们搜寻失去的模型在速度与精度上均大幅度当先传统的指标检测架构,例如咱们的E2模型比Faster-RCNN速度进步一倍,mAP达到40%(晋升1%);咱们的E5模型与MaskRCNN的速度类似,mAP可能达到46%(晋升6%)。相干工作发表在AAAI2020: https://arxiv.org/abs/1911.09929 。

高效的检测网络骨干架构搜寻计划(SP-NAS)

咱们应用神经网络构造搜寻(NAS)技术主动设计针对特定于工作的骨干网络,以弥合分类工作和检测工作之间的差距(domain gap)。常见的深度学习物体检测器通常会应用一个针对ImageNet分类工作设计和训练的骨干网络。现有算法DetNAS将搜寻检测骨干网络的问题变为事后训练一个权重共享的超级网络,以此来抉择最佳的子网络结构。然而,此事后定好的超级网络无奈反映所采样子构造的理论性能等级,并且搜寻空间很小。咱们心愿通过NAS算法设计一个灵便且面向工作的检测主干网:提出了一个名为SP-NAS的两阶段搜索算法(串行到并行的搜寻)。具体来说,串行搜寻阶段旨在通过“替换,扩大,重点火”的搜索算法在特色层次结构中高效找到具备最佳感触野比例和输入通道的串行序列;而后,并行搜寻阶段会主动搜寻并将几个子结构以及先前生成的骨干网络组装到一个更弱小的并行构造的骨干网络中。咱们在多个检测数据集上验证了SP-NAS的成果,搜寻失去的架构可达到SOTA后果,即在EuroCityPersons的公开的行人检测排行榜上达到第一名的顶级性能(LAMR:0.042);在准确度和速度方面都优于DetNAS和AutoFPN。相干工作发表在CVPR2020: https://openaccess.thecvf.com... 。

自动化训练(AutoTrain)

超过谷歌的训练正则化办法(Disout)

为了从给定的数据集中提取重要的特色,深度神经网络通常蕴含大量可训练的参数。一方面,大量的可训练参数加强了深度网络的性能。另一方面,它们带来了过拟合的问题。为此,基于Dropout的办法在训练阶段会禁用输入特色图中的某些元素,以缩小神经元间的共适应。只管这些办法能够加强所得模型的泛化能力,然而基于是否抛弃元素的Dropout并不是最佳的解。因而,咱们钻研了与深度神经网络的中间层无关的教训Rademacher复杂度,并提出了一种用于解决上述问题的特色扰动办法(Disout)。在训练时,通过摸索泛化误差上界将特色图中随机抉择的元素替换为特定值。试验证实,在多个图像数据集,咱们提出的特色图扰动办法具备更高的测试准确率。相干工作发表在AAAI 2020: https://arxiv.org/abs/2002.11022 。

利用常识蒸馏克制主动数据扩增的噪声(KD+AA)

本算法心思维是心愿解决主动数据扩增(AA)办法本身的一些劣势。AA是对整个数据集去搜寻最佳数据加强策略的,只管从全局来看AA可能让数据变得更加差异化,让最终模型性能变得更好;然而AA是绝对毛糙的,并不是对单张图像做优化的,因而相对而言会有肯定的防线。在数据加强强度比拟大的时候,容易对某些图像带来语义混同的问题(即因为适度消去具备判断力的信息而导致图像语义发生变化。这就是咱们说的语义混同。显然在模型训练的时候,咱们再拿之前的狐狸标签来做束缚领导是不适合。为了解决这个问题,咱们应用常识蒸馏(KD)办法,通过一个预训练好的模型来生成软标签,该标签就能够领导通过AA的图像他的标签最好应该是什么。这个算法简略而无效,在与大模型联合后,在ImageNet上获得了以后最优性能85.8%。相干论文发表于ECCV 2020: https://arxiv.org/abs/2003.11... 。

自动化数据生成(AutoData)

基于生成模型的低成本图像增强数据获取计划(CylceSR)

在特定的图像增强工作(以超分为例)中,因为很难在事实场景里获取到成对的数据,因而学术界大多采纳合成的成对数据进行算法钻研,然而通过合成数据取得到的算法模型往往在事实场景中体现并不好,为了解决上述问题,咱们提出了一种新鲜的算法:该算法以合成低质图像为桥梁,通过无监督图像转换实现合成图像域到实在场景图像域的转换,同时转换后的图像被用于监督训练图像增强网络。该算法足够灵便,能够集成任何无监督转换模型和图像模型。本办法通过联结训练图像转换网络和监督网络,相互协作来实现更好的降质学习和超分性能。所提出的办法在NTIRE 2017和NTIRE 2018的数据集上实现了很好的性能,甚至能够与监督办法相媲美;该办法在NTIRE2020 Real-World Super-Resolution较量中被AITA-Noah团队采纳并在track1中获得IPIPS第一、MOS指标第二的问题。相干论文发表于CVPR 2020 Workshop on NTIRE: https://openaccess.thecvf.com... 。

自动化网络压缩(AutoCompress)

基于进化策略神经网络主动压缩

该技术针对神经网络主动压缩,从压缩模型的辨认精度、计算量、存储量、运行速度等多个指标登程,应用多指标优化进化算法,对神经网络进行混合比特量化、稠密剪枝等压缩,搜寻出每一层最优压缩超参数,失去一个蕴含若干性能优良的压缩模型的非摆布解集,能够满足使用者对不同指标的不同需要。该技术实用于高性能云服务器和弱计算性能的挪动设施,对于高性能云服务器能够提供算法精度高且计算和内存耗费在肯定范畴内的模型,对于挪动设施,能够在确保算法精度的前提下升高计算和内存耗费,满足挪动设施的时延和功耗束缚。相干论文发表在KDD 2018: https://www.kdd.org/kdd2018/a... 。

本次开源公布初步稳固版本,将来一直将最前沿的算法退出其中,减少对新算法和DaVinci的反对。开源地址为: https://github.com/huawei-noa... ,请大家试用和反馈。

Vega具备以下劣势:

高性能Model Zoo: 预置了诺亚大量性能当先的深度学习模型,提供在ImageNet/MSCOCO/NuScenes /NITRE等数据集上的最优性能模型。这些模型代表了诺亚在AutoML钻研上的最新研究成果,能够间接应用: https://github.com/huawei-noa... 。
硬件亲和的模型优化:为了实现硬件的亲和性,Vege定义了Evaluator模块,能够间接部署到设施上进行推理,反对手机、Davinci芯片等多种设施的同时运行。
Benchmark的复现:提供了benchmark 工具来帮助大家复现 Vega 提供的算法。
反对深度学习生命周期中的多环节,并基于pipeline编排进行灵便调用:内置了架构搜寻、超参优化、损失函数设计、数据裁减、全量训练等组件,每个组件称之为一个Step,能够将多个Step串联起来模式端到端的计划,不便大家试验不同的想法,进步可搜寻范畴,找到更好的模型。

最初,VEGA提供大量的示例文档,帮忙开发者疾速上手。残缺中英文文档请参考: https://github.com/huawei-noa... 。

点击关注,第一工夫理解华为云陈腐技术~