基于改进DCGAN的数据增强方法

2021-07-02 00:35沈鸿飞张跃进
计算机应用 2021年5期
关键词:维数噪声损失

甘 岚,沈鸿飞,王 瑶,张跃进

(华东交通大学信息工程学院,南昌 330013)

(*通信作者电子邮箱15207112943@163.com)

0 引言

深度学习(Deep Learning,DL)[1]作为一种数据驱动技术,在样本充足的情况下能够取得很好的训练效果。而实际研究中更多的是小样本[2]数据,若直接将小样本数据代入深度学习训练,将会出现严重的过拟合问题。为了改善小样本数据在深度学习中的训练效果,需要对小样本数据进行处理,使其能够在深度学习中取得好的训练结果。

处理小样本的主要方法可以归为以下几点:1)统计学习理论(Statistic Learning Theory,SLT)[3],SLT 是一种专门研究小样本学习规律的机器学习方法,但是STL 在实际实现时有计算困难、泛化性差等问题;2)神经网络(Neural Network,NN)[4]模型,NN是近几年比较流行的一种研究小样本方法,但NN对于数据的依赖性较强,需要大数量的样本才能有较好的结果;3)数据增强(Data Augmentation,DA)[5],DA 的思想是通过对样本图像进行不同的变换,从而得到更多的样本,以此来提高样本的多样性。DA 相比前两种方法,拥有很好的泛化性,也被广泛用于小样本问题的研究,因此,本文采用DA 的方法对小样本数据进行处理。

DA 方法很多,如主成分分析(Principal Component Analysis,PCA)抖动[6]、随机裁剪[7-9]、翻转等。这些方法虽然能实现数据增强,但是其效果有限,因为这些方法局限于在原图的基础上进行变换,具有重复性,且数据分布单一。2014年Goodfellow 等[10]受博弈模型的启发提出生成对抗网络(Generative Adversarial Network,GAN)模型,随后其广泛应用在图像合成、超分辨率、DA等问题中。相比早期DA,GAN有了很大改进,主要表现在GAN脱离了原图的限制,通过一组随机噪声学习真实样本分布,生产新的样本数据,故GAN是解决小样本数据增强问题的有效方法。自GAN 提出以后,围绕其思想又衍生出很多改进型算法,其中2015年Radford等[11]提出的DCGAN(Deep Convolutional Generative Adversarial Network)是众多改进算法中较好的一种,其通过引入步长卷积,使其代替原有的感知机层,提高了训练的稳定性以及生成样本的质量,因此在DA方面得到了广泛应用。

2019 年王娟等[12]通过DCGAN 对帕金森声纹样本进行增强,有效提高了其识别率;Alyafi 等[13]通过DCGAN 实现对乳腺X 线摄影病变的质量分析;戚永军等[14]提出通过生成对抗网络实现肺结节图像数据增强,使用了DCGAN方法。上述文献表明了DCGAN 在DA 应用中的可行性和有效性,但是DCGAN 的应用也存在一些问题,诸如梯度消失、模式崩塌、训练不稳定、样本多样性不足等,这些问题使得DCGAN 模型在实际训练时难以稳定地进行,无法进行大规模的DA。

本文从以下几个方面进行改进:1)针对DCGAN中的梯度消失、模式崩溃问题,采用W(Wasserstein)距离[15]代替原模型中损失函数[16];2)针对模型中的卷积网络有参数振荡问题,提出在每层卷积网络中加入谱归一化(Spectral Normailization,SN)[17];3)DCGAN 的噪声输入维度会影响生成样本多样性,为此采用极大似然估计算法估算数据的最佳噪声输入。实验结果表明,使用上述改进方法,DCGAN 生成样本的多样性得到了明显提高,参数振荡、梯度消失、模式崩塌等问题有了较好的改善。

1 DCGAN原理

与GAN 一样,DCGAN 是一种无监督式深度学习模型。DCGAN主要由生成器G(Generator)和判别器D(Discriminator)构成,其核心思想是通过G和D相互竞争,最终达到纳什均衡[18]。其中G通过采集和学习真实样本数据的数学分布,最终将给定的噪声输入生成新的样本数据。判别器的作用是判别输入样本是真实样本还是生成样本,通过这样不断的学习,生成器提高了自身样本数据的生成能力,最佳的状态是,判别器无法判别样本来源于真实样本还是生成样本。相反判别器提高其判别能力,能判别出输入数据为生成样本而不是真实样本。基本结构如图1,z为输入的随机噪声、G为生成器、G(z)表示生成的图片、x为真实数据、D为判别器。

图1 DCGAN基本结构Fig.1 Basic structure of DCGAN

1.1 训练过程

在模型G和D对抗训练过程中,使D判别输入样本来源于真实数据还是生成样本的正确率最大化,同时使G生成的样本数据接近真实数据的程度最大化。训练开始后,随机噪声z输入到G中开始学习模型参数,此时希望G生成的样本数据G(z)经过D判别后的概率为1,数学模型为D(G(z))=1,也就是1-D(G(z))=0,即最小化模型G。而在训练模型D时,若输入样本数据为真实数据x时,期望目标是经过D判别后的概率为1,数学模型为D(x)=1;若输入样本数据为G(z)时,则希望经过D判别后的概率为0,即D(G(z))=0,所以1-D(G(z))=1,因此最大化模型D。故G和D的训练问题可以用值函数V(G,D)表示,从而变成V(G,D)的最大化最小化问题。可表示为式(1):

其中:Pdata为真实数据分布,Pg为噪声分布。实际训练中,模型G和D交替迭代更新,先固定G训练D,更新D模型中的参数,然后再更新迭代G模型的网络参数,不断重复这个过程,直到对抗网络稳定。根据文献[10]中可知,当且仅当Pdata=Pg时,V(G,D)的最大化最小化问题有全局最优解,即达到纳什均衡状态。此时可以停止训练,模型G学习了真实样本数据Pdata的分布,而此时模型D的准确率稳定在0.5。

1.2 损失函数

根据1.1节分析,DCGAN最终转化为值函数V(G,D)的极大化极小化问题,式(1)即为DCGAN 的优化目标。但由于DCGAN由生成器模型和判别器模型两部分组成,所以将式(1)拆成两个损失函数模型。在判别器模型中,损失函数如下:

在式(2)中,前项是真实样本的判别结果,后项是生成样本的判别结果,其中前项越趋近1 说明越好,后项则是越趋近0 越好。所以最终期望的结果是趋近1,故这里加上对数函数得到判别器损失函数原型。与判别器模型一样,通过处理得生成器损失函数如下:

同样地使用对数函数作为损失函数。与判别器相比,生成器只需要对生成数据的结果趋近1即可。

1.3 可行性证明

本节将从理论角度证明DCGAN方法是可行的,为后面改进提供理论依据。

首先从目标函数出发,由于值函数V(G,D)是连续的,故将式(1)写成微积分形式来表示数学期望。如式(4):

假设生成器G(z)生成的数据是x,分别求出噪声点z和微分dz的表达式:

将式(5)、(6)代入式(4)得:

定义噪声输入z的生成分布为Pg(x),则可得:

其中Pz表示z的生成分布,将式(8)代入式(7)得:

求值函数V(G,D)的最大值,固定G求D的偏导数得:

从D*(x)的表达式可以看出,当G生成的虚拟样本数据分布和真实数据分布一致时,即Pdata(x)=Pg(x)时,在这个条件下D*(x)=1/2,而此时D网络已经无法判断出G网络生成样本数据的真假性,即D已经取得最优解。

经过推导得到了D的最优解,此时只需证明在D取得最优解的同时G也能取得最优解,便说明在目标函数(1)的作用下,网络D和G经过不断的对抗训练能够达到纳什均衡状态。

将D*(x)代入式(9)得:

其中C(G)为G的积分表达式,对式(11)进行等效变换得:

对式(12)引入连续函数的Kullback-Leibler(KL)[19]散度,整理成散度表达式得:

根据散度定义可知,当虚拟样本Pg(x)的数学分布等于真实数据Pdata(x)的分布时,即Pdata(x)=Pg(x)时,KL=0,G网络的最小值是-lg 4。同理引入Jensen-Shannon(JS)[20]散度得:

可以发现,无论是KL散度还是JS散度G网络的最小值都是-lg 4。由此证明在D取得最优解[21]的同时,G网络也无限逼近其最小值,即取得最优解。证明了在目标函数的限制下,能达到纳什均衡状态,DCGAN可行。

2 DCGAN的改进方法

相比其他生成对抗网络算法,DCGAN 在稳定性和生成样本质量方面有一定的优势,但是梯度消失、多样性不高等问题依然存在。因此本文针对这些问题提出以下改进方法:损失函数替换、加入谱归一化和最佳噪声输入估算。

2.1 损失函数的改进

2.1.1 问题引出

KL 散度通常被用来衡量分布之间的距离,但KL 散度是不对称的。这意味着对于同一个距离,观察方式不同,获取的损失值也不同,那么整体loss[22]下降的方向就会趋于某个特定方向,这在DCGAN中非常容易造成模式崩塌。JS散度是另一种衡量分布之间距离的方法,是在KL散度的基础上修改而来,解决了不对称问题,但JS 散度存在一个严重的问题:两个分布没有重叠时,JS 散度为零,而在训练初期,JS 散度极大可能为0。所以如果D被训练的过强,损失值会经常收敛到-2 lg 2而没有梯度。

不难看出,无论是KL散度还是JS散度,DCGAN都不能稳定地训练出好的结果。

2.1.2 方案选择

根据上述问题,需要找到合理的损失模型替换KL/JS 散度。与KL/JS类似的有欧氏距离、马氏距离、W距离等。

欧氏距离计算的是同一分布中的两组测量,由定义可知,欧氏距离假设测量的不同维度之间是独立的,而在大多数样本生成时各测量之间有很强的关联性,因此欧氏距离替换损失模型有很大的局限性。马氏距离是在欧氏距离的基础上修改而来,考虑到了各种特性之间的联系,并且与尺度无关,表示数据的协方差距离,但是马氏距离受协方差矩阵不稳的影响,并不能有效、快速地计算距离,故马氏距离替换模型同样存在不稳定性问题。W距离能稳定并有效地计算两个分布之间的距离,规避了无相关性、不稳定的问题,这对于前面提出的问题是很好的解决方案,因此本文采用W距离作为DCGAN损失函数原型。

2.1.3 Wasserstein距离相关理论W距离又称Earth-Mover(EM)距离,其定义如下:

其中Π(Pdata,Pg)是Pdata和Pg组合后的所有可能的联合分布的集合。对于可能的联合分布γ,可以从(x,y)~γ中得到一个真实样本x和生成样本y,计算出样本的距离||x-y||,因此γ下样本对距离的期望值为E(x,y)~γ[||x-y||]。在联合分布中,对这个距离期望值能够取到的下界(式(15))就定义为W距离。

W 距离与KL 散度、JS 散度相比其优势性在于,即使两个分布没有重叠W 距离仍然能够反映它们的远近。通过一个简单的方法来验证这一点,在二维空间中的两个分布P1 和P2,P1 在线段MN上均匀分布,P2 在线段PQ上均匀分布,现在通过参数λ控制P1和P2的距离,如图2。

图2 P1、P2距离分布Fig.2 P1,P2 distance distribution

此时很容易得到如下关系式:

可以看到KL 散度和JS 散度是突变的,而W 距离是平滑的。当使用梯度下降法优化参数时,KL散度和JS散度无法提供合理的梯度信息,W距离却可以。同样的,在高维空间中如果两个分布不重叠或者重叠部分可忽略,那么KL 和JS 无法直观反映两个分布的远近关系,也不能提供可靠的梯度信息;而W 距离不仅可以反映出距离的远近,同时也能提供可靠的梯度信息,从理论层面解决了模式崩溃以及梯度消失问题。前期实验也表明,引入W 距离后模式崩溃问题得到了有效的解决。

2.1.4 改进策略

W 距离的定义中要求解式(15),通过推导给出式(15)的变换形式,如下:

式(16)需要满足Lipschitz 连续[23],即在一个连续的函数f(x)上面施加一个限制条件,要求存在一个常数K(K≥0)使得定义域内的任意两个元素x1和x2之间的距离‖f‖L=|f(x1)-f(x2) |都满足‖f‖L≤K|x1-x2|,此时称函数f(x)的Lipschitz常数为K。

在式(16)中要求函数f(x)的Lipschitz 常数‖f‖L在小于等于K的条件下,所有可能满足条件的f取的上界,然后再除以K。现在用参数β定义一组函数fβ,此时式(15)可近似变换成如下形式进行求解:

fβ虽然无法包含所有可能,但是也高度满足的要求。最后还要满足≤K这个条件,这里采用一个简单的方法,限制神经网络fβ的所有参数βi的值在范围[ -n,n],这里n可以根据实际训练情况取值,此时输入样本x的导数同样不会超出限定的范围,所以一定存在一个常数K使fβ的局部振幅不会超过它,至此Lipschitz 连续条件满足。下面即可根据W距离模型构建新的损失函数。

在算法实现时,构造一个含参数β、网络的最后一层不是非线性激活层的判别器fβ,并且限制β不超过限定范围的条件下使式(18)取得最大值,L就会近似真实分布与生成分布之间的W距离。

这里需要注意的是DCGAN的判别器是做的二分类任务,故最后一层加了sigmoid 函数,但是在改进DCGAN 中判别器的作用是近似拟合W 距离,属于回归任务,所以要去掉最后一层的sigmoid函数。对于生成器则需要近似最小化W距离,故最小化L。这样就得到了改进后DCGAN的两个损失函数:

式(19)为生成器的损失函数,式(20)为判别器的损失函数。这里将式(18)取反得到式(20),可以起到指示训练程度的作用,损失值越小训练得越好。

2.2 谱归一化

2.2.1 问题引出

在前期的实验中发现,尽管替换损失函数之后训练的稳定性有了很大的提高,但是训练中依然会有较大的波动现象。在2.1 节中为了满足Lipschitz 连续条件,直接对参数矩阵中的元素进行限制,不让其大于限定的值。这种方法简单有效,但是也存在问题,因为在满足Lipschitz 条件的同时,也使得整个参数矩阵的结构不稳定。通过研究发现谱归一化在满足Lipschitz 连续的同时,又可以维持参数矩阵的稳定性。为了更好地发挥W 距离优势,提出通过谱归一化改善训练波动的现象。

2.2.2 理论推导

为便于分析,将DCGAN看作多层网络。对于多层网络的第n层,输入输出关系可表示为:

其中:an(·)是所在网络层的非线性激活函数,可采用ReLU(Rectified Linear Unit)或者Leakey ReLU;Wn是网络的参数矩阵,bn是网络的偏置项,为了便于推导,省去偏置项bn。式(21)可写成:

其中:Dn表示对角矩阵,用于表示激活函数的作用,当输入为负数时对角值为0;相反输入为正数时对角值为1。这样多层网络的输入输出关系便可写成:

根据2.1 节可知,在满足Lipschitz 连续条件时对f(x)的梯度提出新的要求:

这里‖W‖表示矩阵W的谱范数,定义为:

σ(w)是矩阵W的最大奇异值,对于对角矩阵D,有σ(D)=max(d1,d2,…,dn)。由此式(24)可写成:

为了让f(x)满足Lipschitz 约束,现对式(24)进行归一化处理:

可见,只要使每层网络的参数除以该层参数矩阵的谱范数即可满足Lipschitz 连续的条件,因此谱归一化的引入很好地解决了因直接限制参数矩阵中的元素带来的问题。

2.2.3 实现步骤

在算法实现时,需要求解Wi的奇异值,这会耗费大量的计算资源,而这在计算资源有限的情况下是不允许的。为此采用幂迭代法来近似求取,减少计算资源的消耗。其迭代过程如下:

步骤2 以下归一化步骤循环K次:

结束循环。

步骤3 计算σl(W)=

其中μk是该矩阵的最大奇异值对应的特征矢量。得到谱范数后,每个参数矩阵上的参数都除以它,从而达到归一化的目的。实验表明在加入谱归一化后,改进的DCGAN训练更加稳定,并且生成的图像质量得到明显的提高。

2.3 最佳噪声输入估算

2.3.1 问题引出

噪声的存在是为了让网络具有随机性,能产生均匀分布,从而可以对此进行采样。使用一个简单噪声z,经过生成器训练可以产生复杂的分布Pdata,目标是让它接近真实数据分布。前期实验表明:若噪声输入维度低于某个值时,生成样本单一,多样性低;若噪声输入维度不断增加,模型生成样本多样性会逐渐变好,但是训练所需时间也越来越长。因此如何设置噪声输入维度是生成具有多样性样本的关键,对此本文采用极大似然估计算法估算最佳噪声输入维度。

2.3.2 相关理论

通常可以认为图像、文字、音频等数据是分布在低维流形空间上的[24]。对于DCGAN而言,噪声的维数至少要达到数据流形的内在维数,才能产生足够多样性的生成样本。下面给出内在维数的定义:欧氏空间(ℜn)的子集称为一个内在维数m=m(M),具有P-光滑结构的流形,如果存在常数cp(M),使对于任意给定的x∈M,存在一组m个向量v1(x),v2(x),…,vm(x) ∈ℜn,cp(M)‖x′-x|1+p对任意的x′∈M都成立。

如果对任意点,都能用m个附近的点进行逼近,那么流形的内在维数就是m。需要注意的是,与向量空间的维数定义不同,向量空间要求基底是固定的,而流形的基底是局部的,因点而异。隐空间维数不能太低,太低了容易丢失模式,也会产生模式崩溃。也就是说,隐空间的维数有个下界,高于这个下界才能避免模式丢失的问题。这个下界就是流形的内在维数。

2.3.3 极大似然估计

一个合适的噪声输入对生成样本的多样性以及质量有着很大的影响。本文采用极大似然估计的方法来找到最佳的噪声输入。2004 年Levina 等[25]提出通过极大似然估计内在维数的方法,而DCGAN 的噪声输入即为流形中的内在维数,为本方法提供了理论依据。设来自流形M的样本点,则内在维数mk可表示为:

其中Tk(x)表示xi的k近邻与xi之间的距离。实验表明,隐空间维数越高,会有更多的信息对内在维度做出贡献,即噪声输入的维数越高,生成样本的多样性会越好;但是隐空间维数太高占用的显存会更大,模型更强,搜索空间更大,存在更多的鞍点,学得越慢,因此不能无限地取大。

2.4 改进后模型可行性证明

根据上述三点改进方案对模型的可行性是否有影响进行论证说明。

1)损失函数替换。下面给出改进后模型的目标函数:

其中gθ为生成分布,记G=gθ,D=fw,则式(29)变为:

可以看到,改进后模型的目标函数和原模型的差别即是取对数与否,两者只相差一个常数。

为更进一步说明,现假设Pr 是任一分布,Pθ是gθ(z)的分布,其中生成分布z的概率密度为P(z),局部Lipschitz 常数为L(θ,z),且Ez~P(z)L(θ,z)<+∞,则对于式(17)存在解f:x→R(实数集),因此W 距离下的模型是有解的。证明了替换损失函数后模型是可行的。

2)谱归一化。谱归一化的作用是对模型中结构参数进行限制,属于过程参数的优化,因此在模型的可行性证明中对目标函数无影响。

3)噪声输入。噪声输入估算仅是对输入参数进行优化,即目标函数公式中参数z,而z的变化不影响模型的可行性。综上所述,改进后的DCGAN模型是有效可行的。

2.5 改进的DCGAN算法

根据上述损失函数的替换、卷积层引入谱归一化、噪声输入的估算等改进,给出改进后的DCGAN模型和算法。

2.5.1 模型

根据前面三节可知,对DCGAN的改进主要体现在损失函数、噪声输入维度大小以及网络中的归一化改变。噪声输入维度会因数据集的不同而改变,W 距离为反向传播提供梯度信息,如图3 的DCGAN 模型及训练结构所示。谱归一化引入细节见表1和表2,SN表示谱归一化。

图3 改进后模型及训练结构Fig.3 Improved model and training structure

表1 DCGAN生成网络细节Tab.1 Details of DCGAN generation network

表2 DCGAN判别网络细节Tab.2 Details of DCGAN discrimination network

2.5.2 改进后DCGAN算法

根据前面改进模型,给出改进后的DCGAN 算法伪代码如下:

参数说明:∇表示梯度算子。

其中set_steps和k_steps是提前设置好的超参数:set_steps是最大的迭代次数,以保证足够的训练次数来达到训练要求;k_steps是判别器的训练次数,一般是通过多次更新判别器的方法来保持两个网络训练平衡。

3 实验过程及分析

3.1 实验环境及参数设置

对所提算法的有效性进行验证,硬件平台在配置为Intel Core i7-9700k 3.60 GHz 处理器,运行内存16 GB,12 GB 的RTX2080TI(单个)显卡,Windows 10 操作系统下进行。代码实现在2018.3 x64 版本的pycharm,3.6.3 版本的python,1.14.0版本的TensorFlow下进行。

实验发现0.000 1 的学习率收敛效果更好。故将学习率设置为0.000 1、Batch Size 大小为128、迭代训练次数为15 000。使用随机梯度下降(Stochastic Gradient Descent,SGD),Adma 优化器。数据集选用的是公共数据集MNIST、CelebA以及动漫人脸Cartoon。

3.2 训练结果及分析

3.2.1 损失变化

对损失变化部分,本文取前15 000 轮实验数据作对比。根据实验绘制了生成器损失变化曲线,其中Or_DCGAN(Original DCGAN)为原DCGAN 模型,IM_DCGAN(Improved DCGAN)为改进后模型。Or_DCGAN2 曲线是实验中常出现的一种情况,在10 000轮之前损失值基本无变化,没有任何梯度信息,随后虽然有梯度信息,但是随着训练的不断进行,其参数振荡幅度越来越大,呈发散趋势无法收敛。Or_DCGAN1曲线是另一种训练中常出现的情况,3 000轮以前训练相对平稳,但随后振荡幅度开始加大,呈现发散没有收敛趋势,此种现象无法训练出理想的样本。而改进后模型IM_DCGAN 在训练到1 000轮的时候损失值快速下降,并且在后面的训练中整体呈稳定趋势,波动幅度较小,训练15 000轮以后生成的样本多样性、清晰度都比改进前有明显提高。变化曲线如图4训练损失对比所示,表明对DCGAN的改进方法有效。

图4 训练损失对比Fig.4 Comparison of training loss

3.2.2 谱归一化影响

为说明谱归一化产生的影响,采用单一变量原则,除卷积层中是否加入谱归一化外,其余变量、参数均保持一致,其中SN 表示加入谱归一化,N_SN 表示没有加入谱归一化。可见在没有加入谱归一化时,前期训练基本稳定,但是8 000 轮以后,波动逐渐加大,呈发散趋势,难以稳定训练出理想结果。而在加入谱归一化之后,可以明显看到整个训练过程比较稳定,无大幅度振荡现象,如图5 谱归一化对生成器损失影响。表明该方法能有效改善参数振荡问题。

图5 谱归一化对损失的影响Fig.5 Influence of spectral normalization on loss

3.2.3 噪声输入对样本的影响

为估算样本的内在维数,实验随机抽取3 000个样本通过极大似然算法进行计算。三种数据集的内在维数变化曲线如图6 所示,m为数据的维数变化,k为样本点。其中MNIST 的内在维数约为6.8、Cartoon 的内在维数约为8.3、CelebA 的内在维数最大约10.5。需要说明的是,实际样本的内在维数远不止所估算这么低,主要由于某些少见的特征样本很少,例如MNIST数据集每张样本的底色都是黑色,这些特征就被忽略,对内在维数没有贡献,从而导致实验的内在维数很低。

图6 数据内在维数变化曲线Fig.6 Chang curve of data intrinsic dimension

内在维数的确定是为了给噪声输入一个约定,即噪声输入必须大于内在维数才能生成高质量的样本。现将不同噪声输入生成样本代入卷积神经网络(Convolutional Neural Networks,CNN)训练,根据其识别率确定最佳噪声输入维度。随着噪声输入的逐渐增大,生成样本的识别率越来越高,但是增加的幅度越来越小,如图7 所示,噪声输入为均匀随机分布,大 小 为[batch_size,noise_size],其 中batch_size为固定值128,noise_size即横坐标值。MNIST 在较小的噪声输入时就能生成质量较高的样本,原因是MNIST 样本复杂程度低,没有冗余信息。而CelebA 和Cartoon 直到噪声输入到80 以后才能生成较高的样本,因为CelebA和Cartoon冗余信息多复杂程度高,如人物微表情、脸型、背景等,因此实际内在维数较大。

图7 噪声输入对生成样本识别率的影响Fig.7 Influence of noise input on recognition rate of generated samples

综上所述,为使DCGAN 生成具有多样性的样本,应该根据内在维数合理设置噪声输入。现根据实验给出噪声参数设置建议,若样本特征简单、信息复杂度低,则设置为100 即可生成高质量样本;若样本信息复杂、冗余信息多,则将噪声输入大小设置和样本身大小相同或者更高。例如MNIST 训练时噪声输入设置为100、CelebA 设置为150、Cartoon 设置为140。需要说明的是考虑到内存和训练速度的原因,在设置噪声输入时需要根据硬件条件作出相应的调整,不能无限增大。

3.2.4 生成样本对比

为直观展示模型改进前后生成样本质量,选取实验最终生成样本对比。改进后DCGAN生成的样本辨识度高,轮廓信息清晰、重复样本少。而改进前生成的样本都比较模糊,学习到的特征少,其中动漫人脸和CelebA 数据集出现了明显的模式崩塌现象,如图8 训练过程生成图像所示。表明改进后的DCGAN 有效地解决了模式崩塌、生成样本多样性不高等问题。

图8 训练过程中生成图像对比Fig.8 Comparison of images generated during training

3.3 增强效果分析

对于增强效果分析,本文通过生成样本在CNN 中的识别率和图像质量两个方面进行阐述。

3.3.1 样本量化评价

本文选取灰度方差(Sum of Modulus of gray Difference,SMD)函数、Laplacian 梯度函数[26]、Tenengrad 梯度[27]三种方法评价图像的清晰度,使用弗雷歇距离(Fréchet Inception Distance,FID)[28]评价样本间的相似度。清晰度方法从生成的样本中随机选取3 000张图像,然后计算其平均值作为量化评价指标,相似度计算15 000 轮实验FID 的均值作为评价指标。

三种方法均是量化后的数值越大,样本的清晰度越高。容易发现,在各评价方法中,其改进后的DCGAN 生成样本质量均得到了明显提高,如表3 所示。表明改进后的DCGAN 生成样本清晰度更高。

表3 样本质量评价指标对比Tab.3 Comparison of sample quality evaluation indices

为进一步展现改进后模型效果,因FID 更具有原则性和综合性,能准确反映生成样本和真实样本间的相似性,故采用FID 作为客观评价指标。FID 值越小表明样本间相似度越高。可见,改进后DCGAN 的FID 值较改进前有明显的降低,其中MNIST 数据集最为明显,降低了大约45%,如表4 所示。表明改进后DCGAN模型在提升样本质量上的有效性。

表4 在各数据集上的FID值比较Tab.4 Comparison of FID values on different datasets

3.3.2 样本在分类识别性能上的分析

前面通过实验验证了改进后的DCGAN 生成样本的多样性、清晰度都有所提高,但是DA 的最终目的是使小样本数据能够在深度学习算法上取得好的分类识别效果,所以对于改进后的DCGAN 的有效性还需要进一步的验证。在生成样本的识别实验中,各数据集的训练集和验证集通过训练好的模型生成样本,按9∶1 进行随机选取,最终训练集为18 000 张,验证集为2 000张,测试集从原数据集中随机选取4 500张;无生成样本的实验中,按同等比例在原数据集选取。

DCGAN 改进前后生成样本在CNN 下的训练识别率如表5所示,NO_DCGAN 表示不使用生成样本的识别率,选取的是GoogLeNet。可以发现,改进后DCGAN 的识别率较改进前有明显提高;相比没有使用生成样本数据,改进后的识别率有小幅度降低,但是依然有较高的识别率。表明改进方法有效,较好地提高了识别率,实现了小样本数据在深度学习网络中的稳定训练,并且有较高的识别率。

表5 生成样本识别率对比 单位:%Tab.5 Comparison of recognition rate of generated samples unit:%

4 结语

本文对小样本问题进行分析与研究。首先,讨论了处理小样本问题的方法,提出采用DA 方法对小样本数据进行增强;然后,对比传统DA 和生对抗网络的优缺点,提出使用DCGAN作为本文DA方法;最后,分析DCGAN存在的问题,提出一种改进的DCGAN对小样本数据进行增强。在理论上,证明了采用W 距离作为损失函数、在卷积层中加入谱归一化、通过极大似然估计噪声输入维度三种方法是可行的。在实验上,通过在不同数据集上对比实验,得出改进方法确实有效可行,提高了样本的识别率和DCGAN的稳定性。在未来的工作中,还需更进一步对小样本的分类识别进行研究,提高其识别率,实现小样本数据增强、分类识别一体化的功能。

猜你喜欢
维数噪声损失
洪涝造成孟加拉损失25.4万吨大米
一类一维齐次Moran集的维数结果
“白噪声”助眠,是科学还是忽悠?
线性变换的核空间在求若尔当矩阵上的一个研究结果
基于声类比的仿生圆柱壳流噪声特性研究
两败俱伤
探析几何学“维数”与空间“维”数的区别
要减少暴露在噪声中吗?
损失
那些损失上百万的演员