一种提高卷积神经网络精确性和鲁棒性的增强数据增强方法
技术领域
本发明涉及卷积神经网络的数据增强方法,具体为一种提高卷积神经网络精确性和鲁棒性的增强数据增强方法。
背景技术
现代人工智能通常基于以下一个关键基本假设:训练数据和测试数据是独立且同分布(IID)。但是,IID假设并不总是成立。但是,数据集中有限的数据始终不足以覆盖现实世界中的所有可能性,这与假设相悖,并导致应用程序中部署的模型的精确度大幅下降。以图像为例,应用场景中的自然图像总是受例如亮度、天气、视角和摄像机等拍摄环境的影响,而这些环境又不能完全被有限的训练数据所覆盖。图1示出了在干净图像上训练模型,并且在通过各种角度旋转的图像上测试模型的情况。在旋转角度仅为10°的情况下,模型的精确度下降10.28%,这表明测试数据和训练数据之间的微小差异可能导致精确度的大幅度下降。
对该问题的有效且广泛使用的解决方案是增加训练数据,即通过现有数据生成新样本,增加数据集的多样性解决此问题。例如对原始图像添加噪声和使其模糊以模拟损坏相机拍摄的自然图像。以此方式,训练数据与测试数据之间的散度可能较小,从而减轻了所部署的模型所面临的精确度下降。
不幸的是,公共数据增强仍然存在缺陷,由数据增强导致的数据多样性增加降低了对于干净图像的预测精确度,并且需要对网络的额外训练,从而使得增加训练数据的多样性加剧了神经网络的训练困难。图2示出了在两种数据形式(干净图像和旋转图像)上训练和评估的ResNet 18的精确度。随着旋转角度的增加,两种数据形式之间的差异增加,并且两种数据形式的精确度都有显著下降。这种现象易于解释:要学习的内容(更多图像形式)的增加给网络带来更多的挑战,例如严重遗忘。
因此现有技术中急需一种能够同时提高卷积神经网络精确性和鲁棒性的方法。
发明内容
针对现有技术中存在的问题,本发明提供一种提高卷积神经网络精确性和鲁棒性的增强数据增强方法,使得神经网络仅需要学习干净数据以及其与其它形式的数据的关系,而不需要直接记忆所有数据形式,从而促进在复杂和不同数据集上的神经网络训练。
本发明是通过以下技术方案来实现:
一种提高卷积神经网络精确性和鲁棒性的增强数据增强方法,包括如下步骤,
步骤1,将干净图像和从其中生成的损坏图像作为一对图像,同批输入到神经网络中;
步骤2,以从干净数据和损坏数据中获得相同的全局特征以及预测为目的,将与该两个图像有关的四种损失应用于softmax层和特征的输出,完成增强数据增强;
具体的,
将标签和干净图像的softmax输出之间的交叉墒损失,应用到干净数据的softmax层和特征的输出;
将输入的两个图像的softmax输出之间的KL散度损失和关系角度损失,应用于干净数据和损坏数据的softmax输出之间;
将输入的两个图像的全局特征之间的L2损失,应用于干净数据和损坏数据的全局特征。
优选的,步骤1中,给定来自M个类别的N个样本
作为输入,我们定义对应的标签为
在训练阶段中,从X生成附加的损坏数
其中
F表示损坏变换;在T的批量大小处,一个批量中的样本可以写为
它们在最后的卷积层中的全局特征和在softmax层之后的预测被标记为
和
进一步,步骤2中,将标签和干净图像的softmax输出之间的交叉墒损失,应用到干净数据的softmax层和特征的输出,对干净数据进行训练的标签通过下式进行公共的标签监督;
其中,λ是超参数,CrossEntropy表示交叉熵损失。
再进一步,步骤2中,将KL散度损失应用于干净数据和损坏数据的softmax输出之间,通过该散度损失,我们期望两种图像都能给出相同的预测。该softmax输出上的KL散度损失函数可以公式化为等式(2),
其中,α是超参数,用来控制其在总损失中的比率。
再进一步,步骤2中,将关系角度损失应用于干净数据和损坏数据的softmax输出之间;其在softmax层的输出上的距离可以如下测量,
等式(3)中的关系角度函数
用于测量i
st、j
st和k
st样本之间的关系;然后,通过Huper损失函数L
δ最小化干净数据
和损坏数据
上的样本关系,如等式(4)所表达的;
再进一步,步骤2中,将L2损失应用于干净图像和损坏图像的神经网络中的全局特征,如等式(5)中所表达的;
通过最小化该损失函数,可以从两种图像中获得相似的代表性特征。
再进一步,步骤2中,总损失函数如下所示,
通过总损失函数将四种损失应用于神经网络的特征和softmax输出,从干净数据和损坏数据中获得相同的全局特征以及预测,完成增强数据增强。
与现有技术相比,本发明具有以下有益的技术效果:
本发明所述的增强数据增强是一种新的数据增强方法,称为ADA,能够促进神经网络在多样性较高的数据上进行学习。本发明所述的ADA不是直接在原始数据和增强数据的混合上训练神经网络,而是将增强数据视为原始数据的一个扩展集合,共享相同的标签,然后将原始数据和增强数据的特征,以及softmax层的输出之间的距离最小化,达到对神经网络精确性和鲁棒性的同时提升。实验证明了该方法在各种数据集和神经网络上的有效性和普遍性。
附图说明
图1为现有技术中没有鲁棒训练的模型精确度与图像旋转度之间的关系。
图2为现有技术中旋转数据增强训练的模型精确度与旋转度之间的关系。
图3为本发明实施例中所述增强数据增强方法的基本原理示意图。
图4为本发明实施例中所述增强数据增强方法在ResNet 18上对旋转损失后的ImageNet图像进行处理的流程示意图。
图5a为ResNet、SENet和DenseNet的三种神经网络在旋转的图像损坏的CIFAR100的结果。
图5b为ResNet、SENet和DenseNet的三种神经网络在模糊的图像损坏的CIFAR100的结果。
图5c为ResNet、SENet和DenseNet的三种神经网络在噪声的图像损坏的CIFAR100的结果。
图6a为本发明所述ADA方法与公共数据增强方法训练的CIFAR10数据集上的两个ResNet上车和鸟的特征可视化结果。
图6b为本发明所述ADA方法与公共数据增强方法训练的CIFAR10数据集上的两个ResNet上车和飞机的特征可视化结果。
图6c为本发明所述ADA方法与公共数据增强方法训练的CIFAR10数据集上的两个ResNet上鹿和飞机的特征可视化结果。
图6d为本发明所述ADA方法与公共数据增强方法训练的CIFAR10数据集上的两个ResNet上马和船的特征可视化结果。
具体实施方式
下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。
对于神经网络,现有技术中一直存在一个问题:神经网络能够同时学习两种数据形式而不损失精确度吗?答案可以在人类视觉系统中找到。当人需要记住不同的图像形式时,他们不仅学习不同的数据形式,而且还要学习它们之间的关系。结果,只有一种图像形式确实被记住了。其它数据形式可以与之相关联。
基于上述的观察,我们提出将增强数据增强ADA(Augment Data Augmentation)作为用于数据增强的更好的备选方案,以促进神经网络在多样性较高的数据上进行学习。在我们所提出的ADA中,神经网络仅需要学习干净数据以及其与其它形式的数据的关系,而不需要直接记忆所有数据形式。
本发明所述的增强数据增强方法如图3所示,在训练阶段中将不同的数据形式同时输入到神经网络中。神经网络训练有两个目标:(i)最小化干净数据和对应的标签的预测的差异;(ii)最小化干净数据和其它数据形式的预测损失。同时本发明所提出的ADA还可以被认为是一种领域自适应方法,其分别将对干净数据和损坏数据的研究视为目标领域和源领域,通过最小化它们之间的距离来提高两个领域的精确度。从而得到了一种具有领域自适应方法用于数据增强的新方案ADA。在ADA中,原始数据和增强数据的特征和softmax输出通过专门设计的损失函数对齐在一起。从领域自适应角度来看,ADA利用由增强-源领域生成的数据来促进原始数据-目标领域的训练。
首先介绍一些相关概念。
数据增强。通过增加训练数据的多样性,数据增强已经被广泛用于改善神经网络的性能。公共增强技术如图像平移和水平反射已经发展为计算机视觉任务中的默认预处理。混合和成对采样通过将不同的样本线性地相加来得到新的样本,从而在分类任务中实现显著的精确度增益。
AutoAug将强化学习应用于自动设计各种增强技术的顺序和强度,从而产生有效的和可传递的增强策略。它从输入图像的一部分中截取随机屏蔽的正方形区域,从而防止模型过拟合。此外,生成式对抗神经网络也被广泛用于生成新的样本作为增强。
领域自适应。领域自适应是迁移学习中一种有效的方法,它可以改善特定任务中数据的缺乏。利用源领域中的适当数据来促进目标领域中的神经网络的训练。DDC在神经网络的末端添加适配层,并且最小化源和目标领域之间的最大平均差异。DAN进一步扩展了具有更多适配层和多内核最大平均差异的DDC。提供最大分类器差异,以测量不同领域的相互独立的分类器的差异。最近,GAN也被用作领域自适应方法,其试图通过生成式对抗训练来最小化源领域和目标领域之间的散度。
在本发明中,我们所提出的ADA也可以被认为是一种领域自适应方法,其目标是最小化干净数据领域和像旋转的损坏数据领域之间的差异。
自监督学习。最近,自监督学习引发了表征学习,目的是在没有标签数据的情况下利用辅助任务获得信息化和可传递的表征。
在视频处理领域,基于LSTM的编解码器神经网络来重构或预测未来的无标签视频序列,从而提高人类动作识别任务的性能水平;通过预测视频中的帧是有序的还是无序的,可以捕获和传递例如身体姿势等时间变化,以促进监督学习的研究。
在图像处理领域,通过预测噪声和学习传递性不变性,利用自监督学习来提高模型的目标检测性能。因此出现了一种基于对抗学习的领域自适应方法,以充分利用多种信息源;通过预测图像的旋转度,自监督也被用来提高模型的鲁棒性。此外,还出现了一种将各种自监督任务组合在一起的多任务自监督学习算法。
本发明所提出的ADA中的监督来有两个来源。第一个是来自对干净数据进行训练的标签的公共监督。第二个来自原始图像和对应的损坏图像之间的关系,这表示一种自监督。
稳定性训练。通过最小化噪声图像和干净图像的softmax分布之间的距离,利用稳定性训练来提高模型的鲁棒性。现有技术中的稳定性训练和我们所提出的ADA之间的主要差异在于三个方面:
第一,稳定训练的目标仅是为了提高模型的鲁棒性。相反,我们所提出的ADA是为了促进模型在多样性较高数据集上进行学习。
第二,稳定性训练通过仅在softmax输出上的L2损失来最小化干净图像和脏图像之间的距离。相反,三种损失函数被应用于特征领域和softmax输出两者中,从而产生一致且显著的性能益处。
第三,稳定训练仅通过添加高斯噪声来生成损坏图像。相反,我们所提出的ADA将其扩展到空间损坏(旋转)、低频损坏(模糊)和高频损坏(噪声)。
通过上述四个概念的叙述、解释和对比,能够对本发明所述的增强数据增强的方法有一个明确的概念和把握,其是基于现有技术,又完全不同于现有技术,是对其的创造性改进。
本发明一种提高卷积神经网络精确性和鲁棒性的增强数据增强方法,包括其在输入数据中的修改和用于鲁棒性训练的附加损失函数。本发明包括如下步骤,首先,将干净图像和从其中生成的损坏图像的一对图像被输入到神经网络中。然后,将与该两个图像有关的四种损失应用于softmax层和特征的输出,目的是从干净数据和损坏数据中获得相同的全局特征以及预测。
如图4所示,如图4所示,三个损失源包括的四个损失的方向指示梯度对应在反向传播中流动。具体步骤如下。
步骤1,将成对干净图像和从干净图像中生成的损坏图像同批作为输入,输入到一个神经网络中。
给定来自M个类别的N个样本
作为输入,我们定义对应的标签为
在训练阶段中,从X生成附加的损坏数
其中
F表示损坏变换,例如添加噪声和旋转。在T的批量大小处,一个批量中的样本可以写为
它们在最后的卷积层中的全局特征和在softmax层之后的预测被标记为
和
步骤2,对干净数据进行训练的标签进行公共监督。
通过损失源1,仅将标签监督应用于干净图像上。所述的损失源1为标签和干净图像的softmax输出之间的交叉墒损失。
具体的,仅对干净数据X利用交叉熵(CrossEntropy)损失,进行标签监督如式1所示。在大多数情况下,超参数入被设置为1,这表示神经网络没有直接对损坏数据进行训练。
步骤3,通过损失源2和3,由原始图像和损坏图像的关系提供的自监督应用于特征和softmax输出。所述的损失源2为原始图像和损坏图像两个图像的softmax输出之间的KL散度损失和关系角度损失;所述的损失源3为两个图像的全局特征之间的L2损失;全局特征通过全局池化获得;
第一,两个图像的softmax输出之间的KL散度损失。将KL散度损失应用于干净数据和损坏数据的softmax输出之间,通过该散度损失,我们期望两种图像都能给出相同的预测。该softmax输出上的KL散度损失函数可以公式化为等式(2),
其中,α是超参数,用来控制其在总损失中的比率。
第二,两个图像的softmax输出之间的关系角度损失。以三个样本的关系为例,它们在softmax层的输出上的距离可以如下测量,
等式(3)中的关系角度函数
用于测量i
st、j
st和k
st样本之间的关系。然后,通过Huper损失函数L
δ最小化干净数据
和损坏数据
上的样本关系,如等式(4)所表达的。
第三,两个图像的全局特征之间的L2损失。将L2损失应用于干净图像和损坏图像之间的神经网络中的全局特征,如等式(5)中所表达的。通过最小化该损失函数,可以从两种图像中获得相似的代表性特征。
总而言之,总损失(overall)函数可以被公式化为:
从而通过总损失函数将上述四种损失应用于神经网络的特征和softmax输出,从干净数据和损坏数据中获得相同的全局特征以及预测。
尽管在我们所提出的ADA中引入了包括α、β和γ的三个新的超参数,但是它们的值对神经网络的精确度没有太大的影响。
以下通过实验来验证本发明的可行性和技术贡献。
本发明中的所有验证实验共享相同的超参数值,实验示出了ADA在各种神经网络、数据集和图像损坏上的有效性和通用性。例如,与传统的数据增强相比,在ResNet 18上的CIFAR100中的干净图像和高斯噪声图像分别具有10.24%和1.27%的平均精确度增益。此外,与增加模型的深度和宽度相比,我们所提出的ADA可以在不增加计算和存储的情况下实现更高的精确度。
具体的实验设置如下。
ADA的实验主要在四种数据集:CIFAR10、CIFAR100以及CIFAR-C;三种神经网络:DenseNet、ResNet以及SENet;三种损坏:旋转、高斯噪声、高斯模糊上进行。CIFAR-C是特定基准数据集,其被设计为测量包括CIFAR10-C和CIFAR100-C的模型的鲁棒性。其图像是通过添加19种损坏从干净的CIFAR10和CIFAR100数据集生成的。在本文中,损坏图像包括三种形式:噪声图像、模糊图像和旋转图像,分别对应于高频摄动、低频摄动和空间摄动。
在神经网络的训练中提供了包括L2正则化矩阵、学习速率调度、随机裁剪和图像水平翻转的常用技术。在批量大小为256的情况下,CIFAR10、CIFAR100、CIFAR-C上的模型训练了160次,在60st、120st和150st次时,将学习速率衰减除以10。
所有实验均由在8 X RFX2080 GPU服务器上运行的PyTorch 1.0和PillowPackage进行。
在CIFAR100上的结果如下。
图5a、图5b和图5c所示出了来自包括ResNet、SENet和DenseNet的三种神经网络以及包括噪声、模糊和旋转的图像损坏的CIFAR100的结果。在干净图像和损坏图像上评估通过公共数据增强和我们所提出的ADA训练的模型。图中的基线曲线表示在对损坏图像没有任何防御的情况下训练的模型的精确度。高斯噪声和高斯模糊实验上的X轴是高斯分布的方差,其表示噪声和模糊的强度。旋转实验上的X轴显示了图像的平均旋转角度。
如图a、图5b和图5c所示:(i)在基线模型上可以观察到精确度严重下降,这表明卷积神经网络对训练数据和测试数据中的偏向是敏感的。(ii)与基线相比,公共数据增强克服了损坏数据的精确度严重下降的问题。然而,其对于干净图像和损坏图像的精确度也会遭受下降。这种下降可能与严重遗忘不同,因为干净数据和损坏数据是同时训练的。我们可以认为困难来自于神经网络对体积的更高要求。(iii)与公共增强相比,由准备好的ADA训练的模型在干净图像和损坏图像的情况下都能产出一致的精确度增益,特别是在具有强损坏强度的情况下,这表明ADA在多样性数据训练中的有效性。
在CIFAR-C上的结果如下。
表1和2示出了CIFAR100-C和CIFAR10-C的噪声和模糊部分上的神经网络的精确度。在这些实验中,在ADA的训练中仅考虑高斯噪声和高斯模糊图像。
已经观察到:(i)在所有类型的损坏图像上,我们所提出的ADA始终实现比公共数据增强更高的精确度,分别在CIFAR10-C上达到0.44%和在CIFAR100-C上达到0.68%。(ii)尽管例如运动模糊和斑点噪声等一些模糊和噪声不参与ADA的增强训练,但是在这些损坏数据上也可以观察到明显的精确度增益,这表明ADA对于各种损坏具有良好的泛化能力。
表1:在CIFAR100-C和ResNet18上对九种图像损坏的实验结果。由数据增强和我们所提出的ADA模型训练中仅涉及高斯噪声和高斯模糊。
表2:在CIFAR10-C和ResNet18上对九种图像损坏的实验结果。由数据增强和我们所提出的ADA模型训练中仅涉及高斯噪声和高斯模糊。
我们通过对不同数据形式上的特征进行可视化来进一步说明我们所提出的ADA的原理:ADA可以促进模型学习更多的区别特征。
如图6a~6d所示,由公共数据增强和我们所提出的ADA训练的CIFAR10数据集上的两个ResNet上的特征可视化结果。在两个模型的训练阶段中都涉及到具有高斯噪声的损坏图像。
然后,在干净测试集和损坏测试集上评估两种模型:由我们所提出的ADA训练的ResNet在干净测试集上实现90.59%的精确度,在损坏测试集上实现85.86%的精确度。相反,由数据增强训练的ResNet在干净和损坏测试集上分别达到84.44%和85.14%的精确度。记录它们的最后卷积层的特征并通过PCA(主要成分分析)进行降维处理。在一个图中示出了两个类别的特征,每个类别具有两个形式数据:干净图像和损坏图像。为了方便,在本部分中,将通过数据增强训练的ResNet命名为DA-ResNet,以及将通过我们所提出的ADA训练的ResNet命名为ADA-ResNet。
如图6a~d所示:(i)来自ADA-ResNet的特征示出了更强的可分离性。具体地,在ADA-ResNet上,相同类别的样本比DA-ResNet的样本更密集地聚集,这表明使用线性分类器更容易对ADA-ResNet的特征进行分类。与DA-ResNet相比,测试集的精确度提高了6.15%,损坏集的精确度提高了0.72%,这也支持了上述观点。(ii)属于相同类别的损坏图像和干净图像的特征几乎分布在DA-ResNet中的简化R2空间的相同位置,这表明损坏图像和干净图像的预测结果非常相似。实验表明,DA-ResNet在净图像和损坏图像上的分类之间的精确度仅相差0.70%,这与观测结果一致。(iii)在ADA-Net上的两种形式数据中的特征之间存在较少的重叠。属于两个类别的干净样本的距离明显大于损坏类别的距离,这表明在ADA-Net中,干净样本比损坏样本更容易分类。实验表明,干净数据分类的精确度比损坏数据分类的精确度高4.76%,这与分析结果一致。
模型容量是深度神经网络最关注的主题之一。一般说来,在神经网络中添加参数可以导致更大的模型容量,这表明在多样性较高的数据上的更强的学习能力。该部分比较了通过改进参数和通过更好的训练技术-ADA来提高模型的精确度。
表3和4示出了在CIFAR100上具有不同深度或宽度(通道数量)的两种数据形式上的ResNet18的精确度。损坏数据指示同时具有高斯模糊、高斯噪声和旋转的损坏数据。可以观察到,(i)随着深度和宽度神经网络的增加,可以观察到精确度的显著增益。(ii)深度优于宽度。将宽度从1.00X增加到4.00X时,干净数据和损坏数据的精确度分别提高5.39%和3.44%,代价是增加41.94M参数和2082.89M FLOP;而将深度从18增加到152时,干净数据和损坏数据的精确度分别提高8.26%和7.52%,代价是增加11.86M参数和804.93M FLOP。(iii)ADA优于增加深度和宽度。例如,在相同的参数下,ADA对干净图像和损坏图像的精确度分别提高了10.51%和8.69%。
表3:在CIFAR100中具有不同深度的ResNet的两种图像形式(%)的精确度。
表4:在CIFAR100中具有不同宽度(通道数量)的ResNet的两种图像形式(%)的精确度。
在本发明中,我们首先对数据增强的价值进行了反思:数据增强可以提高训练数据的多样性,以解决测试集不独立且同分布于训练集的问题。然而,本文的大量实验表明,与仅对一种数据形式进行训练相比,直接对所有数据形式进行训练的神经网络存在精确度下降的问题。为了解决这个问题,提出了用于数据增强的更好的备选方案ADA,以促进在复杂和不同数据集上的神经网络训练。在各种神经网络、数据集、图像损坏等方面进行了充分的实验,以说明我们所提出的ADA的有效性和通用性。然后,我们可视化并分析了由我们所提出的ADA和公共数据增强获得的特征的差异,得出了ADA有助于模型获得更多的区别特征的结论。通过比较由ADA训练的小模型的精确度和由数据增强训练的大模型的精确度,进一步证明了我们所提出的ADA比增加神经网络的深度和宽度更好。