加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

百度EasyDL自研数据增强能力让AI模型效果一键优化

发布时间:2020-08-18 14:16:02 所属栏目:动态 来源:站长网
导读:在AI模型开发的过程中,许多开发者被不够充足的训练数据挡住了提升模型效果的脚步,一个拥有出色效果的深度学习模型,支撑它的通常是一个庞大的标注数据集。因此,提升模型效果的通用方法是增加数据的数量和多样性。但在实践中,收集数目庞大的高质量数据

在AI模型开发的过程中,许多开发者被不够充足的训练数据挡住了提升模型效果的脚步,一个拥有出色效果的深度学习模型,支撑它的通常是一个庞大的标注数据集。因此,提升模型效果的通用方法是增加数据的数量和多样性。但在实践中,收集数目庞大的高质量数据并不容易,在某些特定领域与应用场景甚至难以获取大量数据。那么如何能在有限数据的情况下提升模型的效果呢?

随着深度学习的发展,数据增强技术可以协助开发者解决这一问题。数据增强技术通过对数据本身进行一定程度的扰动从而产生“新”数据,模型通过不断学习大量的“新”数据来提升泛化能力。

不同数据集的数据特性决定了其所适用的数据增强策略组合,在没有对数据特性有专业理解能力的情况下,用户很难构建出能与数据集特性强相关的数据增强策略组合。比如在标准的ImageNet数据预处理流程中有使用Random Crop (随机剪裁)、Random Flip (随机翻转)等数据增强技术,取得了不错的效果增益,但在某些特定用户场景(如零售场景SKU抠图场景)数据边缘存在重要信息时Random Crop会导致信息的损失、在某些特定用户场景(如数字识别)时Random Flip会导致特征的混淆。因此如何根据数据特征来自动化搜索数据增强策略组合成为了一个热门的研究方向。

追溯学术界对自动数据增强领域的研究,最具影响力的一篇论文是Google在2018年提出的AutoAugment技术。随后,相关的优化论文层出不穷,简单梳理依据现有方法的一些建模思想,如图1。

image.png

图1自动数据增强算法建模思路归类

1)强化学习: AutoAugment(Autoaugment: Learning augmentation policies from data)借鉴了基于强化学习的架构搜索算法,在离散化的搜索空间内通过PPO (Proximal Policy Optimization)算法来训练一个policy generator, policy generator的奖励信号是其生成的policy应用于子网络训练完毕后的验证集准确率。其问题在于AutoAugment的搜索成本非常高,还无法满足工业界的业务需求,难以应用在业务模型开发中。

2)密度匹配:Fast AutoAugment(Fast autoaugment)采用了密度匹配的策略,希望验证数据通过数据增强后的数据点能与原始训练数据集的分布尽量匹配。这个思路直觉上可以排除一些导致数据集畸变的增强策略,但没有解决“如何寻找最优策略”这一问题。

3)遗传进化: PBA(Population based augmentation: Efficient learning of augmentation policy schedules)采用了PBT的遗传进化策略,在多个网络的并发训练中不断“利用”和“扰动”网络的权重,以期获得最优的数据增强调度策略。这个思路直觉上是可以通过优胜劣汰来搜索到最优策略。

4)网格搜索: RandAugment(Randaugment: Practical automated data augmentation with a reduced search space)通过统一的强度和概率参数来大幅减小搜索空间,期望能用网格搜索就解决数据增强搜索的问题。但这一技术并不具备策略的可解释性,抛开实现手段不谈,这篇论文更像是对AutoAugment的自我否定(注: RandAugment也是Google出品的论文)。

5)对抗学习: Adversarial AutoAugment(Adversarial autoaugment)在AutoAugment的基础上借鉴了GAN的对抗思想,让policy generator不断产生难样本,并且使policy generator和分类器能并行训练,降低了搜索时长。但整体搜索成本还是非常高。

6)可微分: DADA(DADA: Differentiable Automatic Data Augmentation)借鉴了DARTS的算法设计思路,将离散的参数空间通过Gumbel-Softmax重参数化成了可微分的参数优化问题,大大降低了搜索成本。

在上述的建模思路中,遗传进化和可微分的建模思路更适合应用到模型开发中,因为这两种思路将自动数据增强搜索的成本降低到了线上业务承受的资源范围内,并且具备较好的策略可解释性。基于对建模思路的评估和判断,百度工程师决定将遗传进化和可微分思路应用到零门槛AI开发平台EasyDL中,便于开发者进一步优化模型效果。

EasyDL面向企业开发者提供智能标注、模型训练、服务部署等全流程功能,针对AI模型开发过程中繁杂的工作,提供便捷高效的平台化解决方案,并且内置了丰富的预训练模型与优化的多种算法网络,用户可在少量业务数据上获得高精度的模型效果。EasyDL面向不同人群提供了经典版、专业版、行业版三种产品形态。

目前,遗传进化PBA技术已经在EasyDL平台中的成功实现,可微分的技术思路在EasyDL业务中的实践也在持续探索中。

PBA采用了PBT(Population based training of neural networks)的遗传进化策略,通过训练一群神经网络(种群, Trials)来找出超参数调度。Trials之间会周期性地将高性能Trial的权重复制给低性能的Trial(exploit),并且会有一定的超参扰乱策略(explore),如图2的PBT流程图。

image.png

图2 PBT算法流程图

然而实际将能力落地到平台中并不容易,工程师们在复现论文开源代码的过程中发现了一些问题:

1)开源代码采用了Ray的Population Based Training实现,但这个接口并不能保证并行的Trials一定能实现同步的exploit,尤其在资源受限的情况下,很大概率会出现进化程度较高的Trial和进化程度较低的Trial之间的exploit,这样的错误进化是不可接受的。

2)开源代码仅实现了单机多卡版本的搜索能力,想扩展到多机多卡能力,需要基于Ray做二次开发。

3)开源代码仅实现了图像分类的自动数据增强搜索,并未提供物体检测等其他任务的数据增强搜索能力。

4)开源代码现有增强算子实现方式比较低效。

综合以上考虑,最终百度工程师从零开始构建了基于PBA的自动数据增强搜索服务。

这一自研自动数据增强搜索服务有以下几个特点:

实现了标准的PBT算法,支持种群Trials的同步exploit、explore,保证公平进化。

支持分布式拓展,可不受限的灵活调节并发种群数,支持。

搜索服务与任务解耦,已支持飞桨深度学习平台的图像分类、物体检测任务,并且可扩展到其他的视觉任务与文本任务。

数据增强算子基于C++高效实现。

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!