机器学习教程十五:数据增强的方式

数据增强

数据增强是指不增加数据的情况下,对原始数据进行操作,让有限的数据发挥更大的价值。

数据增强可以分为有监督和无监督两种数据增强的方式,有监督的数据增强可以分为单样本数据增强和多样本数据增强,无监督的数据增强分为生成新的数据和学习增强策略两个方向。

有监督的数据增强

有监督数据增强,即采用预设的数据变换规则,在已有数据的基础上进行数据的扩增,包含单样本数据增强和多样本数据增强,其中单样本又包括几何操作类,颜色变换类。

单样本数据增强

几何变换类

几何变换类即是对图像进行几何变换,包括翻转,旋转,裁剪,变形,缩放等各类操作。

原始图像

水平翻转和垂直翻转

随机旋转

随机裁剪

变形缩放

上面的操作中只有变形缩放会产生失真的效果,通常来说网络的训练输入大小是固定的,但是数据集中的图像却大小不一,此时就可以选择上面裁剪或者固定大小输入或者缩放到网络的输入大小的方案。

颜色变换类

上面的几何变换类操作,没有改变图像本身的内容。如果要改变图像本身的内容,就属于颜色变换类的数据增强了,常见的包括噪声、模糊、颜色变换、擦除、填充等。

基于噪声的数据增强就是在原来的图片的基础上,随机叠加一些噪声,最常见的做法就是高斯噪声。更复杂一点的就是在面积大小可选定、位置随机的矩形区域上丢弃像素产生黑色矩形块,从而产生一些彩色噪声,以Coarse Dropout方法为代表,甚至还可以对图片上随机选取一块区域并擦除图像信息。

Coarse Dropout噪声

颜色扰动

颜色扰动就是在某个颜色空间通过增加或者减少某些颜色分量,或者更改颜色通道的顺序。

多样本数据增强

多样本数据增强利用多个样本来生成新的样本。

SMOTE

SMOTE即Synthetic Minority Over-sampling Technique方法,它是通过人工合成新样本来处理样本不平衡问题,从而提升分类器性能。

类不平衡的现象是很常见的,它指的是数据集中各类别数量不近似相等。如果样本类别之间相差很大,会影响分类器的分类效果。假设小样本数据量极少,仅占样本中体的1%,则即使小样本被错误地全部识别为大样本,在经验风险最小化策略下的分类器识别准确率仍能达到99%,但是由于没有学习到小样本的特征,实际分类效果就会很差。

SMOTE方法是基于插值的方法,可以为小样本类合成新的样本,主要流程为:

第一步,定义好特征空间,将每个样本对应到特征空间的某一点,根据样本不平衡比例确定好一个采样倍率N。

第二步,对每一个小样本类样本(x,y),按照欧式距离找出K个最近邻样本,从中随机选取一个样本点,假设选择的近邻点为(x~n~,y~n~)。在特征空间中样本点和最近邻样本点的连线段上随机选取一个点作为新的样本点。

SamplePairing

SamplePairing方法的原理非常简单,从训练集中随机抽取两张图片分别经过基础数据增强操作(如随机翻转等)处理后经像素以取平均值的形式叠加合成一个新的样本,标签为原始样本标签中的一种,这两张图片甚至不限制为同一类别,这种方法对于医学图像比较有效。

经过SamplePairing处理后的训练集可以从N扩增到N*N,实验结果表明,因为SamplePairing数据增强可能引入不同标签的训练样本,导致在各数据集上误差则有较大幅度降低。

Mixup

mixup是Facebook人工智能研究院和MIT在”Beyond Empirical Risk Minimization”中提出的基于邻域风险最小化原则的数据增强方法,它使用线性插值得到新的样本数据。

数据生成方式如下。

λ的取指范围介于0到1。提出mixup方法的作者们做了丰富的实验,实验结果表明可以改进深度学习模型在ImageNet数据集、CIFAR数据集、语音数据集和表格数据集中的泛化误差,降低模型对已损坏标签的记忆,增强模型对对抗样本的鲁棒性和训练生成对抗网络的稳定性。

SMOTE,SamplePairing,mixup三者思路上有相同之处,都是试图将离散样本点连续化来拟合真实样本分布,不过所增加的样本点在特征空间中仍位于已知小样本点所围成的区域内。如果能够在给定范围之外适当插值,也许能实现更好的数据增强效果。

加适度的噪声?

无监督的数据增强

无监督的数据增强方法包括两类:

  1. 通过模型学习数据的分布,随机生成与训练数据集分布一致的图片,代表方法为GAN
  2. 通过模型,学习出适合当前任务的数据增强方式,代表方法AutoAugment

GAN

生成对抗网络包括生成网络和对抗网络:

  1. G是一个生成图片的网络,接受随机的噪声z,通过噪声生成图片,记作G(z)
  2. D是一个判别网络,判别一张图片是真实图片,还是G生成的图片。

AutoAugment

AutoAugment是Google提出的自动选择最有数据增强方案的研究,这是无监督数据增强的重要研究方向。它的基本思路是使用增强学习从数据本身选择最佳图像变换策略,对于不同的任务学习不同的增强方法。

流程如下:

  1. 准备16个常用的数据增强操作。
  2. 从16个中选择6个操作,随机产生使用该操作的概率和相应的幅度,将其称为一个subpolicy,一共产生5个subpolices。
  3. 队训练过程中每一个batch的图片,随即采用5个sub-polices操作中的一种。
  4. 通过模型在验证集上的泛化能力来反馈,使用的优化方法是增强学习方法。
  5. 经过80~100个epoch后网络开始学习到有效的sub-polices。
  6. 之后串接这5个sub-polices,然后再进行最后的训练。

总的来说,就是学习已有数据增强的组合策略,对于门牌数字识别等任务,研究表明剪切和平移等几何变换能够获得最佳效果。

思考

数据增强的本质增加模型的泛化能力,但是dropout和权重衰减有什么区别。

  1. 权重衰减,dropout和stochastic depth等方法,专门设计来限制模型的有效容量,用于减少过拟合,显式的正则化方法,可以提高模型的泛化能力,但是非必要,能力有限,而且参数高度依赖于网络结构等因素。
  2. 数据增强没有降低网络的容量,也不增加计算复杂度和调参工程量,是隐式的规整化方法。

本文参考于:【技术综述】深度学习中的数据增强方法都有哪些? – 知乎 (zhihu.com)

Share