在学习与定制AI模型的过程中,开发者会面对各种各样的概念,在深度学习领域,有一个名词正在被越来越频繁地得到关注:迁移学习。它相比效果表现好的监督学习来说,可以减去大量的枯燥标注过程,简单来说就是在大数据集训练的预训练模型上进行小数据集的迁移,以获得对新数据较好的识别效果,因其能够大量节约新模型开发的成本,在实际应用中被更广泛地关注。EasyDL专业版在最新上线的版本中,就引入了百度超大规模视觉预训练模型,结合迁移学习工具,帮助开发者使用少量数据,快速定制高精度AI模型。
在训练一个深度学习模型时,通常需要大量的数据,但数据的采集、标注等数据准备过程会耗费大量的人力、金钱和时间成本。为解决此问题,我们可以使用预训练模型。以预训练模型A作为起点,在此基础上进行重新调优,利用预训练模型及它学习的知识来提高其执行另一项任务B的能力,简单来说就是在大数据集训练的预训练模型上进行小数据集的迁移,以获得对新数据较好的识别效果,这就是迁移学习(Transfer Learning)。迁移学习作为一种机器学习方法,广泛应用于各类深度学习任务中。在具体实现迁移学习时,有多种深度网络迁移方法,其中的Fine-tune(微调)是最简单的一种深度网络迁移方法,它主要是将已训练好的模型参数迁移到新的模型来帮助新模型训练。
在实际应用中,针对一个任务,我们通常不会从头开始训练一个模型,因为这非常耗时耗力,不仅需要大量的计算资源、丰富的经验去保证模型的效果,还需要ImageNet量级(千万级)的数据集保证模型的泛化性,需要支付高昂的成本。因此,一般我们会选择在公开的大数据集上训练收敛、且效果较好的模型,作为预训练权重,在此基础上使用业务数据对模型进行Fin-tune。在Fine-tune时,默认源域(预训练模型)、目标域数据集(用户业务数据集)需要具有较强相关性,即数据同分布,这样我们能利用预训练模型的大量知识储备,快速高效地训练出针对特定业务场景并具有优秀效果的模型。
但在应用预训练模型到实际场景时,很多用户会面临数据集与源数据集分布不同的问题。比如,预训练模型的数据都是自然风景,但用户的数据集都是动漫人物。类似这种源数据集和目标数据差别较大的问题,在具体应用中较易导致负向迁移,具体表现为训练收敛慢,模型效果差等。
因此,一个包含各类场景、覆盖用户各类需求的超大规模数据集就十分重要,通过这个包罗万象的超大规模数据集训练所得的模型,才能够更好地适应来自各行各业用户的需求,更好地Fine-tune用户的业务数据集,帮助用户在自己的数据集上得到效果更好的模型。
百度超大规模预训练模型便在此背景下产生,覆盖自然语言处理和视觉两大方向。在自然语言处理方向,百度自研了业界效果最好的预训练模型ERNIE,开创性地将大数据预训练与多源丰富知识相结合,持续学习海量数据中的知识,将机器语义理解水平提升到一个新的高度。ERNIE在中英文的16个任务上已经超越了业界最好模型,全面适用于各类NLP应用场景。目前,EasyDL专业版已预置了领先的预训练模型ERNIE2.0,并配套了多种NLP经典算法网络,支持了文本分类、短文本匹配和序列标注等典型文本处理任务。
视觉方向,百度自研超大规模视觉预训练模型覆盖图像分类与物体检测两个方向。图像分类的预训练模型,用海量互联网数据,包括10万+的物体类别,6500万的超大规模图像数量,进行大规模训练所得,适应于各类图像分类场景;物体检测的预训练模型,用800+的类别,170万张图片以及1000万+物体框的数据集,进行大规模训练所得,适应于各类物体检测应用场景。相对于普通使用公开数据集训练的预训练模型,在各类数据集上都有不同程度效果提升,模型效果和泛化性都有显著提升。
(以下实验数据集均来自不同行业)
- 图像分类
在图像分类模型中,使用百度超大规模预训练模型的Resnet50_vd相比普通模型在各类数据集上平均提升12.76%,使用百度超大规模预训练模型的Resnet101_vd,相比于普通预训练模型,平均提升13.03%,使用百度超大规模预训练模型的MobilenetV3_large_1x,相比于普通预训练模型,平均提升8.04%。
并且,在图像分类方向,还新增了11个模型,包括:EffcientNetB0_small,EfficientNetB4,MobileNetV3_large_x1_0,ResNet18_vd, ResNeXt101_32x16d_wsl, Res2Net101_vd_26w_4s, SE_ResNet18_vd, Xception71,还有基于百度超大规模预训练模型训练出来的ResNet50_vd,ResNet101_vd和MobileNetV3_large_x1_0,其中比较特殊的几个模型,EffcientNetB0_small是去掉SE模块的EffcientNetB0,在保证精度变化不大的同时,大幅提升训练和推理速度,ResNeXt101_32x16d_wsl 是基于超大量图片的弱监督预训练模型,准确率高,但预测时间相对增加,Res2Net101_vd_26w_4s则是在单个残差块内进一步构造了分层的残差类连接,比ResNet101准确度更高;
新增的分类模型的推理时间、效果,以及支持的部署方式如下表所示:
注:以上模型均基于ImageNet1k分类数据集训练和测试
更多预置模型,参见EasyDL官网:https://ai.baidu.com/ai-doc/EASYDL/0k38n3p16
更多模型效果,参见PaddleCls:https://paddleclas.readthedocs.io/zh_CN/latest/models/models_intro.html
并且,为了进一步提升图像分类模型的模型效果,在训练层面,图像分类新增了mix_up和label_smoothing功能,可以在单标签分类任务中,根据模型的训练情况选择开启或者关闭。mix_up是一种数据增强方式,它从训练样本中随机抽取了两个样本进行简单的随机加权求和,并保存这个权重,同时样本的标签也对应地用相同的权重加权求和,然后预测结果与加权求和之后的标签求损失,通过混合不同样本的特征,能够减少模型对错误标签的记忆力,增强模型的泛化能力。Label_smoothing是一种正则化的方法,增加了类间的距离,减少了类内的距离,避免模型对预测结果过于confident而导致对真实情况的预测偏移,一定程度上缓解由于label不够soft导致过拟合的问题。
- 物体检测
在物体检测模型中,使用百度超大规模预训练模型的YOLOv3_DarkNet相比普通模型在各类数据集上平均提升4.53 %,使用百度超大规模预训练模型的Faster_RCNN,相比于普通预训练模型,平均提升1.39%。
并且,在物体检测方向,新增了Cascade_Rcnn_ResNet50_FPN、YOLOv3_ResNet50vd_DCN、YOLOv3_MobileNetv1网络,以及基于百度超大规模预训练模型训练出来的YOLOv3_Darknet、Faster_R-CNN_ResNet50_FPN,其中,Cascade_Rcnn_ResNet50_FPN通过级联多个检测器以及设置不同IOU的重采样机制,使得检测器的精度、和定位的准确度进一步提升。此外,针对用户的需求,新增两种YOLOv3的变种模型,其中,YOLOv3_MobileNetv1,是将原来的YOLOv3骨架网络替换为MobileNetv1,相比YOLOv3_DarkNet, 新模型在GPU上的推理速度提升约73%。而YOLOv3_ResNet50vd_DCN是将骨架网络更换为ResNet50-VD,相比原生的DarkNet53网络在速度和精度上都有一定的优势,在保证GPU推理速度基本不变的情况下,提升了1%的模型效果,同时,因增加了可形变卷积,对不规则物体的检测效果也有一定的正向提升。
各检测模型的效果,以及支持的部署方式如下表所示:
注:以上模型均基于COCO17数据集训练和测试。
更多预置模型,参见EasyDL官网https://ai.baidu.com/ai-doc/EASYDL/0k38n3p16
更多模型效果,参见PaddleDetection: https://github.com/PaddlePaddle/PaddleDetection/blob/release/0.3/docs/MODEL_ZOO_cn.md
各模型的推理时间如下表所示:
注:以上模型均基于coco17训练所得。
更多模型速度详情,参见PaddleDetection:
https://github.com/PaddlePaddle/PaddleDetection/blob/release/0.3/docs/advanced_tutorials/deploy/BENCHMARK_INFER_cn.md
百度超大规模视觉预训练模型对比公开数据集训练的预训练模型,效果提升明显,目前这些模型已经预置在EasyDL专业版中正式发布。EasyDL专业版是飞桨企业版零门槛AI开发平台EasyDL,面向专业算法工程师群体,专门推出的AI模型开发与服务平台。支持视觉及自然语言处理两大技术方向,可灵活支持脚本调参及Notebook两类开发方式,预置了几十种经典网络和百度海量数据训练的预训练模型,模型效果在业界保持领先,同时支持公有云/私有化/设备端等灵活的部署方案,开发效率高、训练速度快,同时设备端轻量级部署和加速方案使得显存占用更少,预测速度更快。
开发者可以搜索进入EasyDL平台,选择专业版,选择【新建任务】-【配置任务】-【选择预训练模型】处选择【百度超大规模数据集 通用分类与训练模型】
EasyDL零门槛AI开发平台,面向AI开发全流程提供灵活易用的一站式平台方案。包含了AI开发过程中的三大流程:数据服务、训练与开发、模型部署。
在数据服务上,刚刚上线的EasyData智能数据服务平台覆盖了数据采集、管理、清洗、标注、安全,并支持接入EasyDL进行训练,在模型训练部署之后,在云服务授权的前提下完成数据回流,针对性地进行难例挖掘,获得更有助于模型效果提升的高质量数据。EasyData是业内首家推出了软硬一体、端云协同自动数据采集方案的平台,有离线视频数据采集的用户,可以下载EasyData的数据采集SDK,通过定时拍照、视频抽帧等方式,实时统计到云端进行处理。
在训练与开发上,除了刚刚提到的大规模预训练模型来提升模型性能,EasyDL还采用了AutoDL自动搜索最优网络及超参数,以及自动数据增强、自动超参搜索来增加数据量和多样性,分布式训练加速等丰富的训练机制提升模型的训练速度。
在模型部署上,EasyDL提供端云协同的多种灵活部署方式,包括公有云API、设备端SDK、本地服务器部署、软硬一体产品。值得关注的是,在EasyDL软硬一体产品矩阵方案中,提供了六款软硬一体方案,覆盖超高性能,高性能和低成本小功耗三种不同形态,满足开发者的各类业务需求,已经在几十个行业上百个场景中落地应用。更多软硬一体方案信息,可以查看:https://ai.baidu.com/easydl/solution
现在就进入EasyDL专业版,感受预训练模型的强大效果吧!https://ai.baidu.com/easydl/pro