基于BML平台实现数据集自动增强
- 一、新建图像分类数据集
- 二、新建计算机视觉模型
- 三、数据集自动增强对比实验
- 1.不使用数据自动增强
- 导入数据集
- 配置数据增强策略
- X轴剪切
- Y轴剪切
- X轴平移
- Y轴平移
- 旋转角度
- 配置网络
- 配置超参数
- 配置资源
- 2.使用数据自动增强
- 3.实验结果对比分析
- 四、总结
最近发现了一个用于开发人工智能模型的宝藏平台——全功能AI开发平台BML(Baidu Machine Learning),这是一个面向企业和个人开发者的机器学习集成开发环境,为经典机器学习和深度学习提供了从数据处理、模型训练、模型管理到模型推理的全生命周期管理服务。
我们在开发深度学习模型的过程中常常会遇到数据不足的情况,目前已经有很多的数据增强策略可以用于模型开发,但是对于不同的场景而言,有一些数据增强策略是无效的,因此,如何找到这些有效的数据增强策略往往是模型调优的过程中十分关键的一步。
而BML平台完全可以解决上述问题,BML平台会根据训练集的特征,自动在指定的范围内搜索有效的数据增强策略,并在模型训练时应用,从而实现低成本模型调优。
一、新建图像分类数据集
进入BML平台:https://ai.baidu.com/bml/
点击“立即使用”,在出现的界面中点击“数据总览”,在我的数据总览里点击“创建数据集”:
本项目中使用的数据集是AI Studio上开源的化妆品分类数据集,该数据集内一共有8类化妆品。
数据集创建完成后,可以在数据总览处看到刚刚新建的数据集:
点击“导入”,将下载好的数据集导入BML平台:
点击“查看与标注”,可查看数据集的基本概况:
点击右上角的“质检报告”,可查看数据集的基本情况:
有了数据,我们就可以愉快地开发模型了。
二、新建计算机视觉模型
在左侧总览找到“模型训练”,点击“预置模型调参”下的“计算机视觉模型”,创建一个“图像分类-单图单标签任务”:
点击“立即创建”:
点击“新建”后,会在下方显示刚刚新建的项目:
三、数据集自动增强对比实验
1.不使用数据自动增强
导入数据集
在刚刚的项目中点击“新建任务”:
将刚刚导入的数据集加载到任务中。
配置数据增强策略
深度学习模型的成功很大程度上要归功于大量的标注数据集。通常来说,通过增加数据的数量和多样性往往能提升模型的效果。当在实践中无法收集到数目庞大的高质量数据时,可以通过配置数据增强策略,对数据本身进行一定程度的扰动从而产生"新"数据。模型会通过学习大量的"新"数据,提高泛化能力。
在本项目中,化妆品数据集存在数据不均衡的问题,因此可能会对模型效果产生一定的影响,因此,这里手动配置一些数据增强策略,以提高模型的泛化能力:
这里配置了前5个数据增强策略,这5种策略也是我们平时最经常用的策略。
X轴剪切
X轴剪切即剪切图像的水平边,如下图所示:
Y轴剪切
Y轴剪切即剪切图像的垂直边,如下图所示:
X轴平移
X轴平移即按指定距离(像素点个数)水平移动图像,如下图所示:
Y轴平移
Y轴平移即按指定距离(像素点个数)垂直移动图像,如下图所示:
旋转角度
旋转角度即按指定角度旋转图像,如下图所示:
配置网络
配置网络处根据自己的需要配置预训练模型和网络即可:
这里我选择使用ResNet50_vd训练模型。有能力的开发者还可以通过“脚本编辑”的方式修改参数:
配置超参数
在深度学习建模过程中,除了大规模的数据集,超参数调节也显著影响模型效果。即使对于有经验的算法工程师,有时候也很难把握调节超参数的规律,而对于初学者来说,要花更多的时间和精力。
自动超参搜索应用超参搜索策略,对模型的超参数进行自动调优,在配置训练任务的页面,完成数据集的配置后,可以选择使用自动超参搜索进行配置。
可以选择「随机搜索」,「贝叶斯搜索」,「进化算法」作为搜索策略进行超参搜索,所有默认值都是基于试验得出的效果较好的取值:
这里选择贝叶斯搜索。
配置资源
这里选择比较便宜的GPU资源:
完成后点击“提交训练任务”即可开始训练模型:
训练结束后的评估报告如下:
2.使用数据自动增强
在这一步中,除了“配置数据增强策略”不太一样之外,其它配置方法同上,因此这里就不过多赘述了,只展示最重要的数据自动增强部分,选择“自动搜索”:
训练结束后的评估报告如下:
3.实验结果对比分析
在项目中点击“任务对比”:
可查看多个任务的“脚本参数对比”与“效果对比”:
通过对比,我们能很直观地发现使用了数据集自动增强的任务效果明显要比手动数据增强的效果要好,但其代价是消耗了一些时间成本,只能说有利也有弊吧。
- 如果对模型精度要求高的话,可以使用数据集自动增强的方案实现模型调优;
- 如果对模型精度没有很高的要求,但对开发时间要求比较高的话,可以使用传统的手动数据增强方法,开发出来的模型效果虽然没有用数据集自动增强的好,但是也足够用的了。
四、总结
通过一个对比实验以后,不难发现数据集自动增强这个功能真的是一个低成本地模型调优工具,我现在感受到地低成本,低在学习成本和时间成本。
传统的模型调优需要开发者花费大量的时间学习调优方法,并且一点点地试错,有时候一天都调不出一个好模型。但是BML平台做到了,用起来也非常简单!
这次体验总的来说还是很棒的,BML平台对于深度学习零基础的小白非常地友好,把深度学习模型开发中最让小白头疼的代码用各种可视化的操作代替了,能很快速地上手。