在AI模型开发过程中,开发者常常面临训练数据不足的问题。一个表现优异的深度学习模型通常依赖于庞大的标注数据集。因此,提升模型效果的常见方法是增加数据的数量和多样性。然而,在实践中,收集大量高质量的数据并非易事,尤其在一些特定领域和应用场景中,获取大量数据几乎不可能。那么,如何在数据量有限的情况下提升模型效果呢?
随着深度学习的进步,数据增强技术为开发者提供了解决数据不足的方案。这项技术通过对原始数据进行一定程度的扰动,生成“新”数据,使得模型能够通过学习这些“新”数据来增强其泛化能力。
不同数据集的特性决定了适用的数据增强策略。然而,缺乏对数据特性的深入理解,使得用户很难构建与数据集特性紧密相关的增强策略。例如,在标准的ImageNet数据预处理流程中使用了Random Crop(随机剪裁)、Random Flip(随机翻转)等技术取得了良好的效果,但在某些特定场景(如零售场景中的SKU抠图)中,Random Crop可能会导致重要信息的丢失,而在数字识别场景中,Random Flip可能会造成特征混淆。因此,如何根据数据特征自动搜索合适的数据增强策略组合成为了一个热门研究方向。
在学术界,Google在2018年提出的AutoAugMent技术是自动数据增强领域的重要研究之一,随后相关的优化论文不断涌现。以下是一些现有方法的建模思路。

1)强化学习:AutoAugMent借鉴了基于强化学习的架构搜索算法,通过PPO(ProxiMal Policy Optimization)算法在离散搜索空间内训练policy generator。其奖励信号来自于所生成策略在子网络训练后的验证集准确率。然而,AutoAugMent的搜索成本非常高,难以满足工业界的需求。
2)密度匹配:FAst AutoAugMent采用密度匹配策略,力求通过数据增强生成的数据点与原始训练数据的分布尽量一致。虽然这种方法可以排除一些导致数据集畸变的增强策略,但依然未能解决“如何寻找最优策略”的问题。
3)遗传进化:PBA采用PBT的遗传进化策略,通过并发训练多个网络,持续“利用”和“扰动”网络的权重,以寻求最佳的数据增强调度策略。这种方法通过优胜劣汰的方式,有望找到最优策略。
4)网格搜索:RanDAUgMent通过统一的强度和概率参数来缩小搜索空间,期望使用网格搜索解决数据增强搜索的问题。然而,该技术缺乏策略的可解释性,实际上更像是对AutoAugMent的自我否定(注:RanDAUgMent也是Google的研究成果)。
5)对抗学习:Adversarial AutoAugMent在AutoAugMent的基础上引入了GAN的对抗思想,使得policy generator不断生成难样本,并与分类器并行训练,以降低搜索时长,但整体搜索成本依然较高。
6)可微分:DADA借鉴了DARTS的算法设计思路,将离散参数空间通过Gumbel-SoftMax重参数化为可微分的优化问题,显著降低了搜索成本。
在这些建模思路中,遗传进化和可微分的策略更适合用于模型开发,因为它们将自动数据增强搜索的成本降至可承受的范围内,并具备良好的策略可解释性。基于对这些思路的评估,百度工程师决定将遗传进化和可微分思路应用于零门槛AI开发平台EasyDL,以帮助开发者进一步优化模型效果。
EasyDL为企业开发者提供智能标注、模型训练、服务部署等全流程功能,解决AI模型开发中的繁杂工作,提供高效的解决方案,同时内置丰富的预训练模型和多种优化算法,用户能够在少量业务数据上实现高精度的模型效果。EasyDL提供经典版、专业版和行业版三种产品形态,适应不同人群的需求。
目前,遗传进化的PBA技术已在EasyDL平台上成功实现,而可微分技术的实践也在持续探索中。
PBA采用PBT的遗传进化策略,通过训练一组神经网络(种群,Trials)来寻找超参数调度。Trials之间会周期性地将高性能Trial的权重复制给低性能Trial(exploIT),同时应用一定的超参数扰动策略(exploRe),如图2所示的PBT流程图。

然而,将这些能力落地到平台并不容易,工程师们在复现开源代码的过程中发现了一些问题:
1)开源代码使用Ray的Population Based Training实现,但该接口无法确保并行的Trials一定能同步exploIT,尤其在资源受限的情况下,进化程度较高和较低的Trial之间可能出现不均衡的exploIT,这种错误的进化方式是不可接受的。
2)开源代码只实现了单机多卡版本的搜索能力,扩展到多机多卡能力需要基于Ray进行二次开发。
3)开源代码仅支持图像分类的自动数据增强搜索,未提供物体检测等其他任务的数据增强能力。
4)现有增强算子的实现方式效率较低。
基于以上考虑,百度工程师最终从零开始构建了基于PBA的自动数据增强搜索服务。
这一自研的自动数据增强搜索服务具备以下特点:
实现了标准的PBT算法,支持种群Trials的同步exploIT和exploRe,保障公平进化;支持分布式扩展,灵活调节并发种群数量;搜索服务与任务解耦,已支持飞桨深度学习平台的图像分类和物体检测任务,并可扩展到其他视觉任务和文本任务;数据增强算子基于C++高效实现。
自研的能力效果如何呢?在公开数据集上,百度工程师基于自研的自动数据增强搜索服务与现有的Benchmark进行了对比,其中表一的ImageNet Benchmark在PaddleClas框架上训练,表二的Coco Benchmark在PaddleDetection框架上训练。
结果显示,EasyDL的自动数据增强服务与AutoAugMent达到了同样高的精度,并在速度上有显著优势。目前,用于数据增强搜索的分类和检测算子已与AutoAugMent对齐,后续将不断扩充更多高效的算子,以进一步提升模型效果。

在物体检测任务中,通过随机挑选的12个线上任务进行了效果评测,结果显示,使用专业版自动数据增强服务后,11个任务的准确率平均提升了1.4%,最高一项任务实现了4.2%的效果提升。

EasyDL平台通过交互式界面,为用户提供了简单易上手的操作体验。使用EasyDL的数据增强服务也非常便捷。
在经典版中,已经上线了手动配置数据增强策略的功能。在训练模型页面,用户可以选择“手动配置”来使用数据增强算子。
在专业版中,因提供多种训练环境选择,目前已支持自动搜索策略。在新建任务页面的“数据增强策略”中选择“自动搜索”,并设置需要搜索的算子范围,即可实现自动数据增强。


为了帮助开发者更便捷高效地开发出优秀的模型,EasyDL在框架设计中内置了多个组件和能力。其底层基础组件是分布式智能搜索,具备多机多卡搜索、训练容错及支持多种搜索优化算法等特性。基于这一核心能力,产品构建了自动数据增强搜索、超参数搜索、NAS搜索等服务,使用户能够在无需关注技术细节的情况下,便捷使用EasyDL提供的多项搜索服务来优化模型效果。

在各行各业快速拥抱AI的当下,越来越多的企业开始智能化转型,借助AI技术实现降本增效。然而,在AI应用于产业的过程中,大规模的商业化落地相当复杂,需要企业投入大量精力。由于不同行业和场景的差异,对AI的需求也各不相同。因此,一个能够根据场景变化定制开发AI模型的平台显得尤为重要。EasyDL正是通过零算法门槛的平台能力来满足多变的场景需求,并提供灵活适应具体业务的多种部署方式。
EasyDL零门槛AI开发平台目前已在工业制造、智能安防、零售快消、交通运输、互联网、教育培训等行业得到广泛应用。
此外,百度还推出了全功能AI开发平台BML,专为企业数据科学家和算法工程师团队设计,提供全面的功能、灵活的定制和深度集成的机器学习开发平台。
