特征数据增广探究

2021-11-20 04:26张伦刘大鹏
现代计算机 2021年10期
关键词:集上样本图像

张伦,刘大鹏

(贵州师范大学数学科学学院,贵阳550025)

1 研究背景及意义

数据增广是深度学习分类任务中常用的方法之一,主要用于增加训练数据集的样本,让数据集的样本尽可能的多样化,使得训练的模型具有更强的泛化能力。

机器学习需要数据增广。大量机器学习任务,如无人驾驶汽车的目标预测、人脸识别、行人检测、医学图像的分类与识别等,都需要大量的训练数据。数据增广是解决训练样本不足的主流方法之一。数据增广技术通过对训练数据集做一系列的随机改变,用来产生和原数据相似但又不相同的训练数据,从而扩大训练数据集的规模,增加数据集的多样性。有研究表明[27],分类任务中数据增广提高了模型分类的准确率和泛化性。

现在深度学习更需要数据增广。深度学习是近十年来人工智能领域取得的重要突破。2012年,Krizhevsky等人[1]设计的AlexNet(8层)卷积神经网络在ImageNet图像竞赛中取得冠军[2]。GoogLeNet(22层)[3]和VGG-Net(19层)是2014年ImageNet竞赛的双雄,两类模型的共同特点是网络结构比以往的模型层数更多。在2015年ImageNet竞赛上,MSRT何凯明团队的深度残差网络(Residual Networks,ResNet)[4]大方异彩,残差网络结构更深(达50层),分类正确率更高。随着卷积神经网络的结构不断加深,网络的参数越来越多,在有限的训练数据集下,容易发生过拟合现象,使图像分类的正确率下降。除通过标注增加训练数据外,提高图像分类正确率的方法可主要分为两种:一种是调整网络的结构或者改进网络对各层特征的处理能力,例如通过改变网络中的激活数(ReLU)[5]、引入dropout层[6]等方法来提高模型的学习能力;另外一种是通过增广方法产生大量新的训练样本。

本文将从模型的第一层数据增广和模型的中间层数据增广两方面对现有工作进行综述,提出开放问题、有价值的研究方向,并展望未来通过特征数据增广更好地提升模型能力。

2 研究现状

本文将神经网络模型的输入层数据(图像、视频、音频、文本,等等)看作模型第一层特征,模型中间层数据(中间各层的输出)看做模型中间层特征。

现有的主要研究集中在对模型的第一层特征进行增广[7-14,26],少量的工作对模型的中间层特征进行增广[18-21]。接下来将从模型第一层特征数据增广和模型中间层特征数据增广两方面分别总结。

2.1 模型第一层特征数据增广

现有工作可以主要分为人工设计和主动学习两类增广方法。不同数据集有着不一样的属性,需要人工进行设计数据增广方法。如:在训练阶段水平翻转图像是CIFAR-10上的有效数据增强方法,但不是MNIST上的有效增强方法。因而,研究人员为了减少数据增广依赖于人工的部分,设计出网络自主学习数据增广方法成为一种不可缺少的需求。

下面从人工设计的增广方法和自动学习的增广方法两方面介绍。

(1)人工设计的增广方法

模型输入层的增广方法有很多,如基于颜色变换的增广方法,即图像亮度、饱和度、对比度变化等的增广;基于随机差值增广方法,对图像进行裁剪、缩放;基于仿射变换的增广方法,尺度和长宽比增强变换,对图像进行水平、垂直翻转或者平移变换;基于高斯噪声的增广方法,对图像引入高斯噪声或者对图片进行模糊处理;类别不平衡数据的增广[7]。图像识别的常用数据增广方法是人工手动设计的,在不同数据集上应用的数据增广技术是不一样的,最佳的数据增广策略是不同数据集特有的。例如在MNIST上大多数顶级模型使用弹性扭曲[8]、缩放[9]、平移[10]和旋转[11]。在自然图像数据集上,如CIFAR-10和ImageNet,随机裁剪、图像镜像和色彩漂移、白化更为常见[12]。文献[26]介绍了一种新的训练卷积神经网络(CNN)的数据增强方法——随机消除。在训练中,随机消除随机选择图像中的一个矩形区域,并用随机值覆盖其像素。在此过程中,生成了不同遮挡水平的训练图像,从而降低了过度拟合的风险,使模型对遮挡具有鲁棒性,随机消除参数是学习得到的,易于实现,并可以与大多数基于CNN的识别模型集成。虽然简单,随机消除是常用的数据处理技术(如随机裁剪和翻转)组合而成,提高了在目标检测,图像识别的准确性。随机消除结合一般的操作方法对性能有所提高(如:翻转、变换等)。由于这些方法需要人工经验,不同数据集的数据增广方法需要专业的研究人员进行判断,增加了工作量,增加了成本,而且比较耗时,并且模型的性能提升的比较有限。

(2)自动学习的增广方法

代替人工操作数据增广,降低人工成本,研究人员寻找最佳数据自动增广策略。谷歌大脑的研究者在arXiv上发表论文,提出一种自动搜索合适数据增强策略的方法AutoAugment[13],该方法创建一个数据增强策略的搜索空间,利用搜索算法选取适合的数据增强策略。此外,从一个数据集中学到的策略能够很好地迁移到其他相似的数据集上。AutoAugment对性能提高贡献是很大的,但是由于选择参数多,造成的运算量大,且比较耗时,自动化搜索是对每一个小的代理任务进行单独搜索,它的结果可能被转移到一个更大的目标任务中,这个方法不是最优的。所以AutoAugment有两大缺点:一是大规模的采用这样的方法会增加训练复杂度、加大计算成本;二是无法根据模型或数据集大小调整正则化强度。于是谷歌大脑团队又提出了一种数据增强的方法——RandAugment,主要思想是随机选择变换,调整它们的大小。改进的关键问题是单独搜索,所以研究人员的目标就是消除AutoAugment数据增强过程中对单独搜索的需求。由于AutoAugment的参数多,研究团队要大幅度减少数据增强的参数空间,为了减少参数空间和同时保持数据(图像)的多样性,故采用无参数过程替代了学习的策略和概率。RandAugment[14]更好完善了AutoAugment的耗时,单独搜索的缺点,正确率也提升了。自动数据增广方法代替了人工工作,而且提高了模型性能,具有很大的贡献。但是由于AutoAugment、RandAugment对数据增广方法的随机性,所构成的增广策略很多,比较耗时,这些工作是在数据空间中进行的研究。

2.2 模型中间层特征数据增广

有研究表明[15-16],在训练的过程中数据流沿着网络逐层传播时,对模型的中层特征进行增广比对输入层特征增广更有效。

部分研究工作[17-19]在特征空间中采用生成模型(通过算法找到样本数据的概率分布)生成数据。这类方法优点是收敛速度快速,如当样本数量较多时,能更快地收敛于真实模型,缺点是复杂,计算量大,在训练过程中耗时,有时候原数据与生成的数据有较大差异,可信度并不是很高。

在实际应用中,适用于一个数据集上的增广方法,换到另外一个数据集上,效果并不是很好[20-21,30-31],需要有专家必须参与。因此有研究工作[22,25,29]对具有通用性的增广方法(有的作者并没有意识到其工作也是一种增广方法)进行了研究。

接下来从基于GAN的增广方法、非通用性的一般增广方法和有通用性的一般增广方法三个方面介绍。

(1)基于GAN的增广方法

很多时候研究人员在处理数据时,会遇到数据不足的情况,这时研究人员会考虑使用生成模型(通过算法找到样本数据的概率分布)生成数据。GAN[17]提出了一个通过对抗过程估计生成模型的新框架,在新的框架中同时训练两个模型:一个用来捕获数据分布的生成模型G,和一个用来估计样本来自训练数据而不是G概率的判别模型D,G的训练过程是最大化D产生错误的概率。但是GAN不适合处理离散形式的数据,而且存在训练不稳定、梯度消失、模式奔溃的问题。最终会导致结果缺少一些信息特征。VAE[18]原来生成模型的下界,难用传统的梯度下降方法计算,所以选用了随机梯度下降,提出了生成模型可以解决复杂的后验分布计算难的问题。论文通过重参数技巧构建了随机梯度的优化方式,将神经网络与概率图模型相结合,利用高斯分布让后验估计能够产生有效的数据。生成随机网络(GSN)[19]由两个条件概率分布参数化,是去躁自编码器的推广,除可见变量(通常表示为x)之外,在生成马尔科夫链中还包括潜变量h。它提出之初被用于对观察数据x的概率分布P(x)进行隐式建模。以上这几种网络都可以看着是特征空间的数据增广,通过模型参数进行调整获得新数据,但增加了计算量。

(2)非通用性的一般增广方法

2016年在arXiv发表的论文[20]采用SMOTE:合成少数类过采样技术,对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中;DBSMOTE:在SMOTE基础上通过种子样本与少数类样本的中心距离,构造新样本分布函数。在模型中间层对特征进行增广,最后结果不是很理想,论文不好的原因是没有考虑到增加特征空间的多样性,用在不同数据集上的效果不佳。数据增广是通过对训练数据的变换来生成样本的过程,文献[30]提出在模型中间层用一种新的自动适应算法来挑选用于数据增广的样本变换。自动适应算法也只是在两个数据集上做了实验,只比随机变换的方法好一点。为了更好地识别被遮挡和变形的物体,文献[31]采用生成对抗网络进行数据增广的训练方法,直接在特征空间对数据集进行遮挡和变形。卷积神经网络下采样操作过程不能保留输入的全部特征,文献[32]提出并行网格池(PGP)替代下采样操作,PGP不丢弃任何特征,可以看着是特征空间数据增广的补充。在研究特征空间中的数据增广问题[21],提出了一种新的结构,即特征迁移网络(FATTEN)。FATTEN中外观参数和位姿参数是为了生成新的特征,两个参数平衡训练,对生成的特征是有益的。以上工作都是模型中间层的数据集增广,一种增广技术在不能在多个数据集上表现良好的性能,没有考虑到数据集自身的特性(如:文献[30]只是考虑遮挡和变形的情况,如果数据集没有遮挡或者形变,这样会降低模型分类正确率)。

(3)有通用性的一般增广方法

增加数据集的多样性,离不开数据增广方法,而数据增广方法的通用性具有重要的意义。考虑在数据中同一类别做数据增广,文献[28]提出了在特征空间中两个同类数据集做内插的数据增广技术(内插:在两个类样本之间生成新的样本)。文献[29]进一步在文献[28]上提出了在特征空间中两个同类数据集做外插的数据增广技术(外插:在两个类样本之外生成新样本)。在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。如果模型过拟合,那么得到的模型几乎不能用。训练样本少的问题可以使用数据增广方法解决。Dropout[22-24]可以在模型训练中防止过拟合,Dropout是指:在向前传播的时候,让某个神经元的激活值以一定的概率停止工作,这样可以使模型的泛化增强。Dropout的工作可以看做是数据增广,而且可以用在不同数据集上,具有通用性。但是Dropout一定概率丢弃特征,如果丢弃的是数据集主要特征,对于模型的贡献将会降低。Disout[25]是一种通过研究特征图扰动来增强深度神经网络的泛化能力的方法,根据网络中间层的Rademacher复杂度(ERC),确定给定深度神经网络的泛化误差上界,并将扰动引入特征图,来降低网络的Rademacher复杂度,从而提高其泛化能力。Disout保留了原有的主要特征进行训练,在模型训练过程中,这是一种数据增广技术。在各种数据集上的性能取得了不错的效果。数据增广方法的局限性,一种增广技术往往适合一种数据集的增广,不能在多个数据集上通用。需要人工分析,人工操作,增加了人工成本。研究人员在寻找数据增广技术的通用性而努力。

3 结语

在神经网络训练的过程中,对数据量的需求很大,所以考虑对数据进行增广,传统的数据增广需要人工经验,这样就增加了时间和成本,目前有相关工作选择最佳的增广方法应用于不同数据集。但是还有很多地方需要继续研究:①在模型中间层寻找应用于不同数据集的最佳数据增广方法,目前是研究的热点;②对于模型中间层数据增广,主要是增加特征空间的多样性,增加的特征对于模型性能提升还需要进一步研究;③在模型中间层增广方法结合强化学习,目前没有人去做相关的工作,模型中间层数据增广方法结合强化学习会对模型的分类有益。

猜你喜欢
集上样本图像
A、B两点漂流记
随机微分方程的样本Lyapunov二次型估计
师如明灯,清凉温润
名人语录的极简图像表达
基于支持向量机的测厚仪CS值电压漂移故障判定及处理
一次函数图像与性质的重难点讲析
几道导数题引发的解题思考
趣味数独等4则
2008年高考考前模拟试题(二)及略解