深度学习流程(⼀)之数据预处理
⽂章⽬录
⼀. 数据增强的策略
数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限的数据产⽣等价于更多数据的价值,从⽽获得更好的多样性,这就是数据增强的本质。
数据增强可以分为,有监督的数据增强和⽆监督的数据增强⽅法。其中有监督的数据增强⼜可以分为单样本数据增强和多样本数据增强⽅法,⽆监督的数据增强分为⽣成新的数据和学习增强策略两个⽅向。
穿越火线刷火麒麟1.1 有监督的数据增强
有监督数据增强,即采⽤预设的数据变换规则,在已有数据的基础上进⾏数据的扩增,包含单样本数据增强和多样本数据增强,其中单样本⼜包括⼏何操作类,颜⾊变换类。
1.1.1 单样本数据增强
所谓单样本数据增强,即增强⼀个样本的时候,全部围绕着该样本本⾝进⾏操作,包括⼏何变换类,颜⾊变换类等。
(1)⼏何变换
⼏何变换类即对图像进⾏⼏何变换,包括翻转,旋转,裁剪,变形,缩放等各类操作。
翻转操作和旋转操作,对于那些对⽅向不敏感的任务,⽐如图像分类,都是很常见的操作,在caffe等框架中翻转对应的就是mirror操作。
翻转和旋转不改变图像的⼤⼩,⽽裁剪会改变图像的⼤⼩。通常在训练的时候会采⽤随机裁剪的⽅法,在测试的时候选择裁剪中间部分或者不裁剪。值得注意的是,在⼀些竞赛中进⾏模型测试时,⼀般都是裁剪输⼊的多个版本然后将结果进⾏融合,对预测的改进效果⾮常明显。
以上操作都不会产⽣失真,⽽缩放变形则是失真的。很多的时候,⽹络的训练输⼊⼤⼩是固定的,但是数据集中的图像却⼤⼩不⼀,此时就可以选择上⾯的裁剪成固定⼤⼩输⼊或者缩放到⽹络的输⼊⼤⼩的⽅案,后者就会产⽣失真,通常效果⽐前者差。
(2)颜⾊变换
上⾯的⼏何变换类操作,没有改变图像本⾝的内容,它可能是选择了图像的⼀部分或者对像素进⾏了重分布。如果要改变图像本⾝的内容,就属于颜⾊变换类的数据增强了,常见的包括噪声、模糊、颜⾊变换、擦除、填充等等。
基于噪声的数据增强就是在原来的图⽚的基础上,随机叠加⼀些噪声,最常见的做法就是⾼斯噪声。更复杂⼀点的就是在⾯积⼤⼩可选定、位置随机的矩形区域上丢弃像素产⽣⿊⾊矩形块,从⽽产⽣⼀些彩⾊噪声,以Coarse Dropout⽅法为代表,甚⾄还可以对图⽚上随机选取⼀块区域并擦除图像信息。
颜⾊变换的另⼀个重要变换是颜⾊扰动,就是在某⼀个颜⾊空间通过增加或减少某些颜⾊分量,或者更改颜⾊通道的顺序。
1.1.2 多样本数据增强
谷歌街景地图不同于单样本数据增强,多样本数据增强⽅法利⽤多个样本来产⽣新的样本,下⾯介绍⼏种⽅法。
(1)SMOTE
SMOTE 即 Synthetic Minority Over-sampling Technique ⽅法,它是通过⼈⼯合成新样本来处理样本不平衡问题,从⽽提升分类器性能。
SMOTE⽅法是基于插值的⽅法,它可以为⼩样本类合成新的样本,主要流程为:
1. 定义好特征空间,将每个样本对应到特征空间中的某⼀点,根据样本不平衡⽐例确定好⼀个采样倍率N
2. 对于每⼀个⼩样本类的样本 ,按照欧式距离出 个最近邻样本,从中随机选取⼀个样本点。假设选择的近邻点为 ,在特征空间中样本点与最近邻样本点的连线段上随机选取⼀点作为新的样本点。
3. 重复以上步骤,知道⼤⼩样本数量平衡。
(2) SamplePairing
SamplePairing ⽅法的原理⾮常简单,从训练集中随机抽取两张图⽚分别经过基础数据增强操作(如随机翻转等)处理后经像素以取平均值的形式叠加合成⼀个新的样本,标签为原样本标签中的⼀种。这两张图⽚甚⾄不限制为同⼀类别,这种⽅法对于医学图像⽐较有效。
经SamplePairing处理后可使训练集的规模从N扩增到N×N。实验结果表明,因SamplePairing数据增强操作可能引⼊不同标签的训练样本,导致在各数据集上使⽤SamplePairing训练的误差明显增加,⽽在验证集上误差则有较⼤幅度降低。
(3) MixUp
mixup是Facebook⼈⼯智能研究院和MIT在“Beyond Empirical Risk Minimization”中提出的基于邻域风险最⼩化原则的数据增强⽅法,它使⽤线性插值得到新样本数据。
令 是插值⽣成的新数据, 和 是训练集随机选取的两个数据,则数据⽣成⽅式如下
的取指范围介于0到1。提出mixup⽅法的作者们做了丰富的实验,实验结果表明可以改进深度学习模型在 ImageNet 数据集、CIFAR 数据集、语⾳数据集和表格数据集中的泛化误差,降低模型对已损坏标签的记忆,增强模型对对抗样本的鲁棒性和训练⽣成对抗⽹络的稳定性。
SMOTE,SamplePairing,mixup 三者思路上有相同之处,都是试图将离散样本点连续化来拟合真实样本分布,不过所增加的样本点在特征空间中仍位于已知⼩样本点所围成的区域内。如果能够在给定范围之外适当插值,也许能实现更好的数据增强效果。
1.2 ⽆监督的数据增强
⽆监督的数据增强⽅法包括两类:
(1) 通过模型学习数据的分布,随机⽣成与训练数据集分布⼀致的图⽚,代表⽅法GAN。
(2) 通过模型,学习出适合当前任务的数据增强⽅法,代表⽅法AutoAugment。七光串词
1.2.1 GAN
关于GAN(generative adversarial networks),它包含两个⽹络,⼀个是⽣成⽹络,⼀个是对抗⽹络,基本原理如下:(1) G是⼀个⽣成图⽚的⽹络,它接收随机的噪声z,通过噪声⽣成图⽚,记做G(z) 。(2) D是⼀个判别⽹络,判别⼀张图⽚是不是“真实的”,即是真实的图⽚,还是由G⽣成的图⽚。
1.2.2 Autoaugmentation老师在教师节朋友圈文案
AutoAugment是Google提出的⾃动选择最优数据增强⽅案的研究,这是⽆监督数据增强的重要研究⽅向。它的基本思路是使⽤增强学习从数据本⾝寻最佳图像变换策略,对于不同的任务学习不同的增强⽅法,流程如下:
(x ,y )K (x ,y )
n n (x ,y )=new new (x ,y )+rand (0,1)∗((x −n x ),(y −n y ))
(x ,y )n n (x ,y )i i (x ,y )j j (x ,y )=n n λ(x ,y )+i i (1−λ)(x ,y )
j j λ中国美女排行榜2013
1. 准备16个常⽤的数据增强操作。
2. 从16个中选择5个操作,随机产⽣使⽤该操作的概率和相应的幅度,将其称为⼀个sub-policy,⼀共产⽣5个sub-polices。
3. 对训练过程中每⼀个batch的图⽚,随机采⽤5个sub-polices操作中的⼀种。
4. 通过模型在验证集上的泛化能⼒来反馈,使⽤的优化⽅法是增强学习⽅法。
5. 经过80~100个epoch后⽹络开始学习到有效的sub-policies。
6. 之后串接这5个sub-policies,然后再进⾏最后的训练。
总的来说,就是学习已有数据增强的组合策略,对于门牌数字识别等任务,研究表明剪切和平移等⼏何变换能够获得最佳效果。
⼆、样本不均衡怎么办
类不平衡现象是很常见的,它指的是数据集中各类别数量不近似相等。如果样本类别之间相差很⼤,会影响分类器的分类效果。假设⼩样本数据数量极少,如仅占总体的1%,则即使⼩样本被错误地全部识别为⼤样本,在经验风险最⼩化策略下的分类器识别准确率仍能达到99%,但由于没有学习到⼩样本的特征,实际分类效果就会很差。
可以将解决样本不均衡的策略分为三种:
1. 数据重采样,包括过采样与⽋采样
2. 对模型进⾏惩罚。对于⼩样本数据错分时,额外增加错分代价,使得分类器更加关注⼩类样本。
3. 采⽤对于样本不均衡不敏感的评价标准,例如:混淆矩阵,F1得分。
2.1 ⽋采样
⽋采样(undersampling)法是去除训练集内⼀些多数样本,使得两类数据量级接近,然后在正常进⾏学习
这种⽅法的缺点是就是放弃了很多反例,这会导致平衡后的训练集⼩于初始训练集。⽽且如果采样随机丢弃反例,会损失已经收集的信息,往往还会丢失重要信息。
改进1: 可以更改抽样⽅法来改进⽋抽样⽅法,⽐如把多数样本分成核⼼样本和⾮核⼼样本,⾮核⼼样本为对预测⽬标较低概率达成的样本,可以考虑从⾮核⼼样本中删除⽽⾮随机⽋抽样,这样保证了需要机器学习判断的核⼼样本数据不会丢失。
改进2 另外⼀种⽋采样的改进⽅法是 EasyEnsemble 提出的继承学习制度,它将多数样本划分成若 N个集合,然后将划分过后的集合与少数样本组合,这样就形成了N个训练集合,⽽且每个训练结合都进⾏了⽋采样,但从全局来看却没有信息丢失。
2.2 过采样
过采样(oversampling)是对训练集内的少数样本进⾏扩充,既增加少数样本使得两类数据数⽬接近,然后再进⾏学习。
简单粗暴的⽅法是复制少数样本,缺点是虽然引⼊了额外的训练数据,但没有给少数类样本增加任何新的信息,⾮常容易造成过拟合。改进: 通过抽样⽅法在少数类样本中加⼊⽩噪声(⽐如⾼斯噪声)变成新样本⼀定程度上可以缓解这个问题。如年龄,原年龄=新年龄+random(0,1)
代表算法:SMOTE 具体内容见上⼀章数据增强
2.3 阈值移动
这类⽅法的中⼼思想不是对样本集和做再平衡设置,⽽是对算法的决策过程进⾏改进。举个简单的例⼦,通常我们对预测结果进⾏分类时,当预测 ( 代表正类可能性) 值>0.5时,判定预测结果为正,反之为负。规定决策规则
即 ,则预测为正例
不难发现,只有当样本中正反⽐例为1:1时,阈值设置为0.5才是合理的。如果样本不平衡决策规则需要进⾏变更
令 代表正例个数, 代表负例个数,改进决策规则:
y y >1−y y 1m +m −
若 ,则预测为正例
2.4 改变原数据权值
通过改变多数类样本和少数类样本数据在训练时的权重来解决样本不均衡的问题,是指在训练分类器时,为少数类样本赋予更⼤的权值,为多数类样本赋予较⼩的权值。例如scikit-learn中的SVM算法,也称作penalized-SVM,可以⼿动设置权重。若选择balanced,则算法会设定样本权重与其对应的样本数量成反⽐。
2.5 组合集成
通过训练多个模型的⽅式解决数据不均衡的问题,是指将多数类数据随机分成少数类数据的量N份,每⼀份与全部的少数类数据⼀起训练成为⼀个分类器,这样反复训练会⽣成很多的分类器。最后再⽤组合的⽅式(bagging或者boosting)对分类器进⾏组合,得到更好的预测效果。简单来说若是分类问题可采⽤投票法,预测问题可以采⽤平均值。这个解决⽅式需要很强的计算能⼒以及时间,但效果较好,相当于结合了组合分类器的优势。
2.6 特征选择
在样本数据较为不均衡,某⼀类别数据较少的情况下,通常会出现特征分布很不均衡的情况。例如⽂本分类中,有⼤量的特征可以选择。因此我们可以选择具有显著区分能⼒的特征进⾏训练,也能在⼀定程度上提⾼模型的泛化效果。
三、为什么对数据进⾏归⼀化
解决协⽅差偏移问题,能够提⾼收敛速度、避免梯度消失和爆炸、提⾼精确度。详见
1. 提升收敛速度。如果两个特征的取值范围差距⽐较⼤,进⾏优化时会得到⼀个窄长的椭圆形,在梯度下降的时候,梯度的⽅向为垂直
等⾼线的⽅向⾛之字型,迭代很慢。
2. 提⾼精度。在设计距离计算的时候,如果两个特征范围相差很⼤,那么特征取值⼤的会提供更好的贡献,造成精度损失。>1−y y m −m +
饮湖上初晴后雨诗意
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论