关于图像的数据增强
1. 哪些现象说明“数据量”成为了算法性能瓶颈
1.1 欠拟合的时候可以暂时不考虑增大数据量
如果模型欠拟合,可以尝试改用更复杂的模型,改用更先进的训练算法,增大训练epoch num。
1.2 过拟合的时候可以增大数据量或者使用数据增强
在深度学习中,更多的数据可以有效抑制过拟合,这主要得益于更多的数据可以提高训练集的丰富性,降低训练集和验证集之间的variance。
在数据有限的情况下,对数据进行扩充,可以极大提高算法准确率。
不只是 “数据数量”,好需要关注“数据质量”。例如:人脸识别项中,采集图像时人脸位置、大小、方向、图像质量等。
2. 数据量太少引起过拟合怎么办
2.1 选用简单的网络模型
2.2 使用正则化方法
权重衰减,dropout,stochastic depth等方法,是专门设计来限制模型的有效容量的,用于减少过拟合,这一类是显式的正则化方法。研究表明这一类方法可以提高泛化能力,但并非必要,且能力有限,而且参数高度依赖于网络结构等因素。
2.3 使用预训练网络
找个Imagenet数据集上训练好的的模型,冻结最后一层或者最后几层,然后迁移学习+fine tuning。
2.4 使用多任务学习
例如:行人分割 借鉴 行人骨架
2.5 有效利用其他规模较大的数据集
商汤智能视频团队在目标跟踪领域做了一系列经典工作,其中DaSiamRPN(ECCV 18)更好地利用了训练数据,增强了网络的判别能力。
与ImageNet相比,之前训练目标跟踪网络能用的训练集物体类别过少,限制了跟踪的性能。同时,在之前的训练方式中,负样本只有背景信息,一定程度上也限制了网络的判别能力。DaSiamRPN 针对这两个问题,设计了两种数据增强方式:
- 在 DaSiamRPN 中,COCO 和 ImageNet Det 也被引入了训练,极大地丰富了训练集中的类别信息。同时,数据量增大的本身也带来了性能上的提升。
- 在孪生网络的训练过程中,通过构造有语意的负样本对来增强跟踪器的判别能力。
参考:
目标跟踪最强算法开源:商汤SiamRPN系列解读
商汤SiamRPN系列项目地址
2.6 使用数据增强技术
3 图像数据增强的方法
3.1 初级方法
图像数据增强一般比较有效的有random crop, random mirror, random resize (scale augmentation)。以上三种实现简单而且有效,基本能复现resnet的结果。至于color augmentation, random rotation, aspect ratio augmentation感觉效果几乎没有,尤其是color augmentation,貌似还有一点点反作用 。
3.2 高级方法
使用对抗生成神经网络
使用风格迁移神经网络
3.3 参考资料
1、深度学习中常用的图像数据增强方法-纯干货
2、数据增强:数据有限时如何使用深度学习 ? (续)
3、深度学习图片分类增强数据集的方法汇总
4、数据增强
4. 数据增强的工具
4.1 imgaug(图像数据增强库)
imgaug是一个封装好的用来进行图像augmentation的python库,支持关键点(keypoint)和bounding box一起变换。
数据增强库imgaug使用
4.2 Augmentor(图像增强库)
Augmentor是一个Python包,旨在帮助机器学习任务的图像数据人工生成和数据增强。它主要是一种数据增强工具,但也将包含基本的图像预处理功能。使用说明详见数据增强利器–Augmentor。
4.3 Keras
Keras是以tensorflow/theano为后端的一个框架,可为tensorflow提供很多高级API。
5. 在机器学习过程中的什么位置进行数据增强?
答案相当明显:在向模型输入数据之前增强数据集,对吗?是的,但你有两个选项,一个是预先进行所有必要的变换,从根本上增加数据集的规模。另外一个是小批量执行变换,仅仅在输入机器学习模型之前。
第一项被称为离线增强。这个方法常被用于相对较小的数据集。因为你最终会通过一个与执行的转换数量相等的因子来增加数据集的大小(例如,通过翻转所有图像,数据集数量会增加2倍)。
第二个选项称为在线增强,或称为动态增强。主要应用于规模较大的数据集,因为你无法负担数据量爆炸性增长。反而,你可以通过对即将输入模型的小批量数据的执行相应的变化。很多机器学习架构已经支持在线增强,并可以利用GPU进行加速。深度学习中常
6. 代码示例
Augmentor和imgaug——python图像数据增强库
7. 实战经验介绍
【高手之道】海康威视研究院ImageNet2016竞赛经验分享
THE MNIST DATABASE官方网站列出了在这个数据集上性能领先的一些图像分类方法,其中很多方法用到了图像增强。
8. 相关的方法论
8.1 吴恩达《Machine Learning Yearning》
《Machine Learning Yearning》是吴恩达历时两年,根据自己多年实践经验整理出来的一本机器学习、深度学习实践经验宝典。作为一本 AI 实战圣经,本书主要教你如何在实践中使机器学习算法的实战经验。