在AI模型开发过程中,很多开发者因训练数据不足而无法提升模型效果。一个取得优异成绩的深度学习模型通常都有庞大的标注数据集作为支撑。因此,提高模型性能的一般方法是增加数据的数量和多样性。但在实践中,要收集到大量高质量的数据并不容易,在某些特定领域和应用场景中获取大量数据更是难上加难。那么如何在少量数据的情况下提高模型的效果呢?随着深度学习的发展,数据增强技术可以帮助开发者解决数据不足的问题。数据增强技术通过对数据本身进行一定程度的扰动产生“新”数据,模型通过不断学习大量“新”数据来提高泛化能力。不同数据集的数据特征决定了数据增强策略的适用组合。如果没有对数据特征的专业理解,用户很难构造出与数据集特征强相关的数据增强策略组合。例如,在标准的ImageNet数据预处理过程中,使用了RandomCrop(随机裁剪)和RandomFlip(随机翻转)等数据增强技术,取得了很好的效果增益。Graph场景)RandomCrop会在数据边缘有重要信息时导致信息丢失,而RandomFlip在某些特定用户场景(如数字识别)会造成特征混淆。因此,如何根据数据特征自动搜索数据增强策略组合成为研究热点。回顾学术界对自动数据增强的研究,影响最大的论文是谷歌在2018年提出的AutoAugment技术。随后,相关优化论文层出不穷,简单梳理了一些基于现有方法的建模思路,如图图1自动数据增强算法建模思路分类1)强化学习:AutoAugment[1]借鉴了基于强化学习的架构搜索算法,通过PPO(ProximalPolicyOptimization)算法在训练中训练出一个policygenerator一个离散化的搜索空间,策略生成器的奖励信号是其生成的策略在训练后应用于子网络后验证集的准确率。问题是AutoAugment的搜索成本非常高,不能满足行业的业务需求,很难在商业模型开发中应用。2)密度匹配:FastAutoAugment[2]采用密度匹配策略,希望数据增强后的验证数据的数据点能够尽可能匹配原始训练数据集的分布。这种思路可以直观地排除一些导致数据集失真的增强策略,但并没有解决“如何找到最优策略”的问题。3)遗传进化:PBA[3]采用PBT的遗传进化策略,在多个网络的并发训练中不断“利用”和“扰动”网络的权重,以获得最优的数据增强调度策略。直观上,这个思路就是通过适者生存来寻找最优策略。4)网格搜索:RandAugment[4]通过统一强度和概率参数极大地缩小了搜索空间,期望用网格搜索来解决数据增广搜索的问题。但是,该技术不具备策略的可解释性。不管实现手段如何,这篇论文更像是对AutoAugment的自我否定(注:RandAugment也是Google出品的论文)。5)Adversariallearning:AdversarialAutoAugment[5]在AutoAugment的基础上借鉴了GAN的对抗思想,让策略生成器不断生成困难样本,并使策略生成器和分类器并行训练,减少搜索时间。但是整体搜索成本还是很高的。6)可微分:DADA[6]借鉴了DARTS的算法设计思想,通过Gumbel-Softmax将离散的参数空间重新参数化为可微的参数优化问题,大大降低了搜索成本。在上述建模思想中,遗传进化和可微分建模思想更适合应用在模型开发中,因为这两种思想将自动数据增强搜索的成本降低到在线业务的资源范围内,并且具有更好的策略可解释性。基于对建模思路的评估和判断,百度工程师决定将遗传进化和可微的思想应用到零门槛的AI开发平台EasyDL中,让开发者进一步优化模型效果。EasyDL为企业开发者提供智能标注、模型训练、服务部署等全流程功能。为AI模型开发过程中的复杂任务提供便捷高效的平台化解决方案,内置丰富的预训练模型和优化的多种算法网络,让用户在一个平台上获得高精度的模型效果业务数据量小。EasyDL针对不同人群提供经典版、专业版和行业版三种产品形态。目前,遗传进化PBA技术已在EasyDL平台成功落地,可微分技术思想在EasyDL业务中的实践也在不断探索中。PBA采用PBT[7]的遗传进化策略,通过训练一组神经网络(population,Trials)来找出超参数调度。Trials会周期性的将高性能Trials的权重复制到低性能Trials(exploit),并且会有一定的超参数扰动策略(explore),如图2中的PBT流程图。图2PBTAlgorithmFlowchart然而,将这些功能实际实施到平台中并不容易。工程师们在复现论文开源代码的过程中发现了一些问题:1)开源代码是通过Ray的PopulationBasedTraining实现的,但是这个接口并不能保证并行Trials一定能够实现同步exploits,尤其是在资源有限的情况下,进化度较高的trial和进化度较低的trial之间很有可能会有exploit。这种错误的演变是不可接受的。2)开源代码只实现了单机多卡版的搜索功能。如果要扩展到多机多卡的能力,需要基于Ray进行二次开发。3)开源代码只实现了图像分类的自动数据增强搜索,没有为物体检测等其他任务提供数据增强搜索能力。4)现有的开源代码的增强算子实现方式,效率相对较低。基于以上考虑,百度工程师最终从无到有构建了一个基于PBA的自动数据增强搜索服务。该自主研发的自动数据增强搜索服务具有以下特点:实现标准的PBT算法,支持种群Trial的同步开发探索,保证公平进化。支持分布式扩展,可灵活调整并发数,不限制,支持。搜索服务与任务解耦,已支持Paddle深度学习平台的图像分类和目标检测任务,并可扩展到其他视觉任务和文本任务。基于C++高效实现了数据扩充算子。自主开发能力的作用是什么?在公共数据集上,百度工程师将他们自主开发的自动数据增强搜索服务与现有基准进行了对齐。表1中的ImageNetBenchmark在PaddleClas[8]框架上训练,表2中的CocoBenchmark在PaddleDetection[9]框架上训练。]培训框架。结果表明,EasyDL自动数据增强服务可以达到与AutoAugment相同的高准确率,并且具有明显的速度优势。目前,用于数据增强搜索的分类和检测算子已经与AutoAugment对齐,未来会不断扩展更多更高效的算子,进一步提升模型效果。Model数据变化策略TOP1Acc数据增广策略搜索时间(GPU小时)ResNet50标准变换0.7731\AutoAugment0.779515000[1](P100)EasyDL自动数据增广服务0.779645(V100)MobileNetV3_small_x1_0标准变换0.682\EasyDL自动数据增广服务0.6867928(V100)表1ImageNetBenchmark[8]模型数据变化策略BoxAP增强策略搜索时间(GPU小时)Faster_RCNN_R50_VD_FPN_3xAutoAugment39.948*400[10](TPU)EasyDL自动数据增强服务39.390(V100)Table2.CocoBenchmark[9]EasyDL在经典版推出手动数据增强服务,在专业版推出自动数据增强搜索服务。在图像分类单标签任务上,工程师随机抽取了11个在线任务进行效果评估。如下图所示,使用专业版自动数据增强服务后,11个任务的准确率平均提升了5.42%,最高的任务达到了18.13%的提升。图3图像分类单分类效果评估在目标检测任务上,随机选取12个在线任务进行效果评估。结果对比如下图所示。使用专业版自动数据增强服务后,11个任务的准确率平均提高了1.4。%,最高任务实现了4.2%的效果提升。图4目标检测效果评估EasyDL平台通过交互界面为用户提供简单易用的操作体验。同样,使用EasyDL的数据增强服务也非常容易操作。目前,由于训练环境的资源消耗不同,EasyDL经典版和专业版提供了两种数据增强策略。在经典版本中,手动配置数字增强策略已经上线。如图5所示,用户可以在训练模型页面选择“手动配置”,实现数据增强算子的使用。在专业版中,由于培训环境的选择范围广泛,现在支持自动搜索策略。如图6所示,在新建任务页面的“数据增强策略”中选择“自动搜索”,然后设置要搜索的算子范围,即可实现数据自动增强。图5经典版6手动数据扩充流程图专业版自动数据扩充流程为了让开发者更方便、高效地使用EasyDL开发出效果优异的模型,EasyDL在框架中内置了多个组件和能力设计。EasyDL智能搜索服务整体架构图(图7)所示,其底层基础组件为分布式智能搜索,具有多机多卡搜索、训练容错等特点,支持多种搜索优化算法。产品基于分布式智能搜索提供的核心能力,构建了自动数据增强搜索、超参数搜索、NAS搜索等服务,让用户无需关心技术细节,即可轻松使用EasyDL提供的多种搜索服务。,得到模型效果的优化。图7EasyDL智能搜索服务总体架构。如今,各行各业都在加速拥抱AI,越来越多的企业借助AI能力走上智能化转型之路,降本增效。然而,在AI赋能行业的过程中,大规模商业化非常复杂,需要企业投入大量精力。由于不同行业和场景的差异化和碎片化,对AI的需求也不同。因此,一个能够随场景变化定制开发AI模型的平台至关重要。通过零算法门槛的平台能力,覆盖千变万化的场景需求,提供多种部署方式,灵活适配特定业务。这是EasyDL。EasyDL零门槛AI开发平台已广泛应用于工业制造、智能安防、零售快消、交通、互联网、教育培训等行业。同时,除了零门槛AI开发平台EasyDL,百度还推出全功能AI开发平台BML,为企业数据科学家和算法工程师团队提供全面、灵活、深度集成的机器学习开发平台.百度搜索“EasyDL”或访问链接开发高精度AI模型。https://ai.baidu.com/easydl/[1]:CubukED,ZophB,ManeD,etal.Autoaugment:从数据中学习增强策略[J]。arXiv预印本arXiv:1805.09501,2018.[2]:LimS,KimI,KimT,etal.Fastautoaugment[C]//神经信息处理系统的进展。2019:6665-6675.[3]:HoD,LiangE,ChenX,etal.Populationbasedaugmentation:Efficientlearningofaugmentationpolicyschedules[C]//机器学习国际会议。2019:2731-2741.[4]:CubukED,ZophB,ShlensJ,etal.Randaugment:具有减少搜索空间的实用自动数据增强[C]//IEEE/CVF计算机视觉和模式识别研讨会会议论文集。2020:702-703.[5]:张旭,王琪,张杰,等。对抗性自增强[J].arXiv预印本arXiv:1912.11188,2019.[6]:LiY,HuG,WangY,etal.DADA:可区分的自动数据扩充[J]。arXiv预印本arXiv:2003.03780,2020.[7]:JaderbergM,DalibardV,OsinderoS,等人基于群体的神经网络训练[J].arXiv预印本arXiv:1711.09846,2017.[8]:https://paddleclas.readthedocs.io/zh_CN/latest/advanced_tutorials/image_augmentation/ImageAugment.html#id6[9]:https://github.com/PaddlePaddle/PaddleDetection/tree/master/configs/autoaugment[10]:ZophB、CubukED、GhiasiG等。学习目标检测的数据增强策略[J]。arXiv预印本arXiv:1906.11172,2019。
