深度学习中的数据增强技术
1. 数据增强Data Augmentation
- 数据增强让有限的数据产生更多的数据,增加训练样本的数量以及多样性(噪声数据),提升模型鲁棒性。神经网络需要大量的参数,许许多多的神经网路的参数都是数以百万计,而使得这些参数可以正确工作则需要大量的数据进行训练,但在很多实际的项目中,我们难以找到充足的数据来完成任务。
- 随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力。
- 例如,我们可以对图像进行不同方式的裁剪,让物体以不同的实例出现在图像的不同位置,这同样能够降低模型对目标位置的敏感性。
- 例如,我们也可以调整亮度、对比度、饱和度和色调 等因素来降低模型对 色彩的敏感度。
2. 数据增强的分类
数据增强可以分为两类,一类是离线增强,一类是在线增强。
离线增强 : 直接对数据集进行处理,数据的数目会变成增强因子乘以原数据集的数目,这种方法常常用于数据集很小的时候。
在线增强 : 这种增强的方法用于,获得 batch 数据之后,然后对这个 batch 的数据进行增强,如旋转、平移、翻折等相应的变化,由于有些数据集不能接受线性级别的增长,这种方法长用于大的数据集,很多机器学习框架已经支持了这种数据增强方式,并且可以使用 GPU 优化计算。
3. 数据增强实现
数据增强一般是图像用的多,都是一些常用的方法,比如random crop,随机反转,随机对比度增强,颜色变化等等,一般来讲随机反转和一个小比例的random resize,再接random crop比较常用。NLP中将字和词连接起来就形成了一个新样本,也属于数据增强。
图片数据增强通常只是针对训练数据,对于测试数据则用得较少。
4. 总结
数据增强主要对训练数据进行操作的一种正则化技术。顾名思义,数据增强通过应用一系列方法随机地改变训练数据,比如平移,旋转,剪切和翻转等。数据增强的详细变换幅度需要根据具体的应用数据而设计,只要注意一点:应用这些简单的转换不能改变输入图像的标签。每个通过增强得到的图像都可以被认为是一个“新”图像。这样我们可以不断的给模型提供新的训练样本,使模型能够学习到更加具有辨别力,更具泛化性的特征。
应用数据增强技术可以提高模型的准确率,同时有助于减轻过拟合。此外,数据增强也可以增加数据量,降低深度学习需要的人工标记的大量数据集。尽管收集“自然”的训练样本越多越好,但是在无法增加真实的训练样本时,数据增强可以用来克服小数据集的局限性。
原文:https://www.jianshu.com/p/3e9f4812abbc
数据增强的原理
在深度学习中,一般要求样本的数量要充足,样本数量越多,训练出来的模型效果越好,模型的泛化能力越强。但是实际中,样本数量不足或者样本质量不够好,这就要对样本做数据增强,来提高样本质量。
在图像分类任务中,对于输入的图像进行一些简单的平移、缩放、颜色变换等,不会影响图像的类别。
如下两图,虽然做了变换,但不影响被识别成狗狗。
原始图片:
转换后图
对于图像类型的训练、数据,所谓的数据增强( Data Augmentation )方法是指利用平移 、 缩放、颜色等变躁,人工增大训练、集样本的个数 ,从而获得充足的训练数据,使模型训练的效果更好。
对于图像类型的训练、数据,所谓的数据增强( Data Augmentation )方法是指利用平移 、 缩放、颜色等变躁,人工增大训练、集样本的个数 ,从而获得充足的训练数据,使模型训练的效果更好。