陳泓佑 和紅杰 陳帆 朱翌明
生成式對抗網(wǎng)絡(luò)(Generative adversarial networks,GANs)[1]是2014年Goodfellow等依據(jù)零和博弈思想和納什均衡原理提出的一種數(shù)據(jù)生成模型,該模型[1?4]由生成器網(wǎng)絡(luò)(Generative net)和判別器網(wǎng)絡(luò)(Discriminative net)組成.生成器G網(wǎng)絡(luò)通過輸入隨機向量z使得輸出值G(z)盡可能符合訓(xùn)練圖像分布,判別器D網(wǎng)絡(luò)對輸入的測試樣本盡可能判別出測試樣本的來源(即訓(xùn)練圖像樣本集或生成圖像樣本集).GANs的最終目的是通過充分訓(xùn)練,使得G網(wǎng)絡(luò)和D網(wǎng)絡(luò)達(dá)到納什均衡狀態(tài),從而使得D網(wǎng)絡(luò)難以判別出輸入的采樣樣本的來源,G網(wǎng)絡(luò)生成的樣本分布逼近或相同于訓(xùn)練樣本集分布.
GANs是一種經(jīng)典有效的新型數(shù)據(jù)生成模型,但為使得生成樣本集分布與訓(xùn)練樣本集分布相近或相同,在模型的優(yōu)化與訓(xùn)練上依然比較困難[1].主要原因在于G、D網(wǎng)絡(luò)通常使用深度神經(jīng)網(wǎng)絡(luò),因此會體現(xiàn)出深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的問題,如難以訓(xùn)練、學(xué)習(xí)時間長、收斂較慢、訓(xùn)練最終效果難以控制等;在優(yōu)化器優(yōu)化損失函數(shù)的時候可能出現(xiàn)梯度消失的問題[1?2],從而導(dǎo)致G和D網(wǎng)絡(luò)未達(dá)到訓(xùn)練要求前過早進入平穩(wěn)狀態(tài),使得訓(xùn)練失效;GANs在優(yōu)化器優(yōu)化損失函數(shù)時只會找低損失點,不會找真正意義上的納什均衡點[5],可能導(dǎo)致對抗學(xué)習(xí)偏離納什均衡點,增大生成圖像分布與訓(xùn)練圖像分布的差距.
為使得GANs圖像生成效果更好,學(xué)者做出了一些改進工作,通常改進的是網(wǎng)絡(luò)結(jié)構(gòu)、目標(biāo)優(yōu)化函數(shù)或網(wǎng)絡(luò)的訓(xùn)練方式.Mirza 等[6]提出一種CGANs模型,它的損失函數(shù)帶有條件約束,在G網(wǎng)絡(luò)和D網(wǎng)絡(luò)之中引入條件變量,從而將無監(jiān)督GANs變成有監(jiān)督GANs.Radford等[7]使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為G網(wǎng)絡(luò)和D網(wǎng)絡(luò),提出了DCGANs(Deep convolutional generative adversarial networks)模型,并且G網(wǎng)絡(luò)和D網(wǎng)絡(luò)中的CNN去掉了池化處理和全連接層使得GANs圖像生成質(zhì)量得以提高.Denton 等[8]提出了一種金字塔LAPGANs模型,其結(jié)合了CGANs和GANs的一些優(yōu)點,使用一系列的GANs來生成質(zhì)量更高的自然圖像.Odena[9]設(shè)計出SGANs,使用半監(jiān)督的方式使得G網(wǎng)絡(luò)和D網(wǎng)絡(luò)可以同時訓(xùn)練,相互促進相互學(xué)習(xí),能夠明顯改變生成的圖像質(zhì)量和學(xué)習(xí)的時間代價.Donahue等[10]提出了一種雙向結(jié)構(gòu)的BiGANs,增加了E網(wǎng)絡(luò)(編碼機)作為特征提取器,用于將GANs要生成的數(shù)據(jù)空間中的數(shù)據(jù)逆映射回隱藏編碼空間,能夠在實際場景中的自然圖像達(dá)到好的效果.Zhang 等[11]提出的StackGAN由兩層CGANs組成,可以生成非常真實的自然圖像.Chen等[12]提出的InfoGAN中,G網(wǎng)絡(luò)的輸入信息z加入了隱含約束信息c,能更好地解釋z的語義信息,也能得到內(nèi)容更豐富的生成圖像.Qi[13]和Arjovsky等[14]分別提出的LSGANs和WGANs主要是通過優(yōu)化函數(shù)進行性能提升,前者主要針對了G網(wǎng)絡(luò)的過擬合問題,后者主要針對了整個網(wǎng)絡(luò)的梯度消失問題.Yu等[15]提出的SeqGANs通過改變網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化函數(shù),緩解了G網(wǎng)絡(luò)輸出值離散化后,D網(wǎng)絡(luò)難以回傳梯度對G網(wǎng)絡(luò)進行參數(shù)更新的問題.王功明等[16]在借鑒EBGANs的思想,重新設(shè)計了一種能量重構(gòu)誤差損失函數(shù),在學(xué)習(xí)效率和圖像生成質(zhì)量上有所提高.
Salimans等[5]除將D網(wǎng)絡(luò)損失函數(shù)改為半監(jiān)督形式外,也更改了它的訓(xùn)練方式,對其使用Mini-Batch 的訓(xùn)練方法,每次判別網(wǎng)絡(luò)輸入一批圖像進行判別,更改D網(wǎng)絡(luò)損失函數(shù)正負(fù)樣本概率權(quán)重,在每次饋入的Batchsize個樣本訓(xùn)練之前做Normalize處理.Do-Omri[17]將深度神經(jīng)網(wǎng)絡(luò)中的自訓(xùn)練(Self-training)過程融入到針對半監(jiān)督任務(wù)GANs.Gulrajani等[18]使用梯度懲罰方法替代了D網(wǎng)絡(luò)中權(quán)重剪枝的過程,提高了WGANs的穩(wěn)定性.Daskalakis等[19]針對WGANs中的極限循環(huán)問題,使用OMD(Optimistic mirror decent)來改進訓(xùn)練WGANs.Mescheder 等[20]使用D網(wǎng)絡(luò)參數(shù)正則化策略穩(wěn)定GANs的訓(xùn)練,并且指出實例噪聲(Instance noise)或零中心梯度懲罰的GANs訓(xùn)練上是收斂的.
上述GANs相關(guān)文獻(xiàn)從網(wǎng)絡(luò)結(jié)構(gòu)、優(yōu)化函數(shù)、訓(xùn)練方式的改進使得GANs性能有所提升.訓(xùn)練方式的改進主要對網(wǎng)絡(luò)內(nèi)部中間數(shù)據(jù)進行處理,或網(wǎng)絡(luò)中間層數(shù)據(jù)處理策略的改進.本文通過對GANs外部數(shù)據(jù)(訓(xùn)練樣本集)進行干預(yù),提出一種基于訓(xùn)練樣本集特征分布的子樣本集構(gòu)建的訓(xùn)練方法.先計算出整個訓(xùn)練樣本集在選取的特征空間中的概率分布,再對每次饋入(feed)生成器G的Batchsize個數(shù)據(jù)構(gòu)建成與訓(xùn)練集分布差異更小的子樣本集.使得在每次epoch內(nèi),每個Batchsize大小的子樣本集分布均與訓(xùn)練樣本集分布相似.最后在卡通人臉數(shù)據(jù)集和Cifar10數(shù)據(jù)集上的實驗結(jié)果表明,相對于原有的訓(xùn)練方法,本文能夠取得更好的生成圖像.
DCGANs模型的生成器G和判別器D使用了去除池化層和全連接層的深度卷積神經(jīng)網(wǎng)絡(luò)[7]代替多層感知機網(wǎng)絡(luò),使得整個網(wǎng)絡(luò)連續(xù)可微.G網(wǎng)絡(luò)和D網(wǎng)絡(luò)的損失函數(shù)分別為:
其中,b是每次饋入的數(shù)據(jù)量,整個對抗網(wǎng)絡(luò)的博弈損失函數(shù)為:
V(D,G)是一個二元極小極大零和博弈函數(shù),E(·)為期望函數(shù).損失函數(shù)最終目的為使得G(Z)的分布函數(shù)FG(x)趨近于訓(xùn)練樣本集X的分布FX(x),或G(Z)的概率密度函數(shù)f G(x)趨近于訓(xùn)練樣本集X的概率密度函數(shù)f X(x).
DCGANs的訓(xùn)練過程就是利用訓(xùn)練樣本集X對損失函數(shù)的優(yōu)化過程.主流的神經(jīng)網(wǎng)絡(luò)優(yōu)化方法是梯度下降法[20?24],它主要有全樣本梯度下降(Gradient descent,GD)、隨機梯度下降(Stochastic gradient descent,SGD)、批梯度下降(Batchsize gradient descent,BGD).其中SGD[22]每次饋入極少量樣本進行訓(xùn)練,這種方法對內(nèi)存要求少,收斂速度很快,但更容易陷入局部最優(yōu).BGD[21,23?25]每次饋入較大數(shù)據(jù)量進行訓(xùn)練,它綜合考慮了梯度估計準(zhǔn)確性、收斂速度、訓(xùn)練效果等因素.在原DCGANs訓(xùn)練過程中使用的是動量最小批SGD方法[7].
在選取優(yōu)化方法后,確定Batchsize、epoch、學(xué)習(xí)率等超參數(shù),下面分析數(shù)據(jù)的饋入過程.DCGANs的訓(xùn)練示意圖如圖1所示.每個epoch 訓(xùn)練順序饋入子樣本集,X i(i=1,2,···,m).
其中,n為訓(xùn)練樣本總數(shù),m為子樣本集個數(shù),Batchsize為每次饋入的樣本數(shù)量.每次epoch訓(xùn)練,遺漏的樣本數(shù)為nmod Batchsize.所以每個epoch 樣本覆蓋率為:
圖1 DCGANs訓(xùn)練示意圖Fig.1 Schematic diagram of DCGANs training
每次epoch 訓(xùn)練結(jié)束后,DCGANs的生成器網(wǎng)絡(luò)G對應(yīng)一個生成樣本分布f G(x).由于在每個epoch 訓(xùn)練中,每次饋入子樣本集X i后G網(wǎng)絡(luò)將模擬X i的分布f X i(x).因此每次epoch訓(xùn)練后G網(wǎng)絡(luò)模擬的分布是這m個子分布f X i(x)效果總和.通過若干次epoch訓(xùn)練使得f G(x)與訓(xùn)練樣本集f X(x)盡可能相似.即:
其中,式(6)中“⊕”指每個epoch內(nèi)DCGANs模擬子分布f X i(x)(i=1,2,···,m)效果的總和.式(7)中|·|函數(shù)是分布距離度量函數(shù).
由式(6)可知,生成樣本集分布f G(x)與子樣本集X i的分布有直接關(guān)系.本節(jié)將討論子樣本集分布對網(wǎng)絡(luò)訓(xùn)練效果的影響.命題2討論每個epoch內(nèi)饋入的子樣本集X i對訓(xùn)練效果的影響.由于上述問題均是在概率統(tǒng)計基礎(chǔ)上的討論,因此需要先證明G(Z)是隨機變量(命題1),證明命題1需要引用以下3個引理.
引理1[26].可測集上的連續(xù)函數(shù)是可測函數(shù).
引理2[27].若X為可測空間(?,F)上的隨機變量,g(x)是可測函數(shù),則Y=g(X)是(?,F)上的隨機變量.
引理3[27].設(shè)X1,X2,···,X k是可測空間(?,F)上的隨機變量,g(x1,x2,···,x k)是k元可測函數(shù),那么Y=g(X1,X2,···,X k)是(?,F)上的隨機變量.
命題1.DCGANs中G網(wǎng)絡(luò)生成的圖像G(Z)=(Q1,Q2,···,Ql)是l維隨機變量,其中l(wèi)是G網(wǎng)絡(luò)輸出神經(jīng)元個數(shù),Qi是第i個像素值.
證明.G網(wǎng)絡(luò)的直接輸出值G?(z)由多個神經(jīng)元輸出值Ni(z)組成,即,
因為G網(wǎng)絡(luò)去掉了池化層[3],G網(wǎng)絡(luò)連續(xù)可微可導(dǎo).
所以Ni(z)連續(xù)可微可導(dǎo).
將其展開即Ni(z1,z2,···,zk)連續(xù)可微可導(dǎo),其中k為隨機向量z的維度.
又因為z1,z2,···,zk各自的取值范圍是可測集.
從而由引理1可知Ni(z1,z2,···,zk)是可測集上的k元可測函數(shù).
因為Z1,Z2,···,Zk是隨機變量.
由引理3可知Ni(Z1,Z2,···,Zk)是隨機變量.
所以G?(Z)是l維隨機變量.
將G網(wǎng)絡(luò)直接輸出值G?(z)轉(zhuǎn)化成圖像樣本G(z)時,需要對Ni(z)函數(shù)值進行線性變換為[0,255]區(qū)間的像素值,記神經(jīng)元Ni(z)的值域為[n1,n2],它的輸出值為ni,則線性變換函數(shù)為:
顯然q(·)函數(shù)是可測集上的連續(xù)函數(shù),結(jié)合引理1知,它是可測函數(shù).
因為Ni是隨機變量.
那么由引理2知,Qi=q(Ni)為隨機變量.
所以G網(wǎng)絡(luò)的生成圖像G(Z)=(Q1,Q2,···,Ql)是l維隨機變量.
由第1.2節(jié)分析可知,神經(jīng)網(wǎng)絡(luò)每次epoch 訓(xùn)練過程中需要饋入若干組Batchsize大小的子樣本圖像集X i.因此將討論X i和總體訓(xùn)練圖像集X的相似度與f G(x)和f X(x)相似度關(guān)系.由于涉及概率分布之間相似度度量,需先引入K L距離概念.
定義1.K L距離(Kullback-Leibler divergence),也叫相對熵(Relative entropy),其定量計算了同一事件空間中兩個不同的概率分布的差異程度.記兩個概率密度函數(shù)分別為f X(x)和gX(x),K L(f X(x)||gX(x))表示它們的K L距離,那么:
K L距離具有非負(fù)性,但不滿足距離定義中的對稱性和三角不等式.在實際操作中,生成圖G(z)和訓(xùn)練圖像集x是隨機樣本值,計算它們兩組同維度圖片概率分布時,為了降低難度可以使用其在特征空間中的概率分布表征.
命題2.DCGANs訓(xùn)練過程中依次饋入大小為Batchsize的訓(xùn)練圖像子樣本集X i時,子樣本集X i、訓(xùn)練集X、生成集G(Z)它們之間的關(guān)系為,
證明.DCGANs訓(xùn)練過程中每次epoch 依次饋入子樣本集X i時(i∈[1,m]),網(wǎng)絡(luò)損失函數(shù)梯度估計值為g(X i,Zi).
所以每訓(xùn)練一個epoch,共訓(xùn)練m個Batchsize大小的子樣本集X i后,G網(wǎng)絡(luò)梯度估計值的總和為與之對應(yīng)的梯度估計方差為
繼而討論以下兩種子樣本集對訓(xùn)練結(jié)果的影響.
記兩種子樣本集{X1i}m和{X2i}m,滿足如下兩個條件:
因為var(g(X i,Zi))正相關(guān)于var((X i,Zi)),且式(12)為已知條件.
所以,
所以在梯度估計精度及平穩(wěn)性上,子樣本集{X1i}m差于子樣本集{X2i}m.
在子樣本集構(gòu)建過程中先計算出總體樣本集的概率分布,然后改進按比例抽樣方法從總體樣本集X中構(gòu)建子樣本集X i.訓(xùn)練整個網(wǎng)絡(luò)時,依次饋入X i進行網(wǎng)絡(luò)參數(shù)更新.
對于f X(x)需在其特征空間上進行描述,樣本本身為樣本的特征,若不對X進行任何處理,X本身就能描述f X(x).由于訓(xùn)練樣本數(shù)量有限,在高維度特征空間中可能導(dǎo)致分布過于離散,不利于利用X的分布進行數(shù)據(jù)下采樣構(gòu)建X i.
在計算f X(x)時,應(yīng)考慮特征空間的構(gòu)建,即特征向量V的組成.當(dāng)確定V=(v1,v2,···,vn)后對vi在樣本集X上提取特征得到特征值集Vi,Vi的元素個數(shù)與X一致,它的元素由X中每個圖像樣本計算出的特征值vi組成.為了便于子樣本集X i的構(gòu)建,應(yīng)對特征值vi進行尺度變換處理,使得訓(xùn)練集X在特征空間中的密度適當(dāng).此時Vi的每個元素值屬于[0,mi],其中mi是vi特征值尺度變換的最大值.最后計算出X關(guān)于特征向量V的聯(lián)合概率密度函數(shù)f V(v),用它表征f X(x).
圖2是Batchsize=128時G網(wǎng)絡(luò)的訓(xùn)練過程生成樣本,第1~8行分別是第0,3,6,9,12,15,18,21個epoch的生成樣本.從圖2中可以看出,在DCGANs訓(xùn)練過程中,G網(wǎng)絡(luò)先學(xué)習(xí)訓(xùn)練集樣本的大體輪廓,再學(xué)習(xí)樣本的顏色,最后學(xué)習(xí)樣本的紋理,與此同時樣本的多樣性也會逐步提高.對于彩色圖像,人們最關(guān)注的部分也大體分解為三個方面,輪廓特征、顏色特征和紋理特征.由于圖像輪廓特征難以用一個量進行描述,并且三維特征空間構(gòu)造及抽樣難度比二維更復(fù)雜(需調(diào)節(jié)各特征屬性的值域以使得X在特征空間中密度適當(dāng)以便于抽樣),因此選用顏色特征和紋理特征進行特征空間構(gòu)建.顏色一階矩和清晰度(圖像細(xì)節(jié)紋理的一種描述)在人工特征選取中經(jīng)常被使用.
圖2 G網(wǎng)絡(luò)學(xué)習(xí)的中間效果Fig.2 Intermediate effects of G net learning
彩色圖像顏色一階矩特征如式(14)所示.
其中c={0.30,0.59,0.11}為RGB彩色空間轉(zhuǎn)灰度空間的系數(shù).Ii(x,y)是第i個顏色通道坐標(biāo)(x,y)處的值.w,h分別指圖像的寬度和高度.
清晰度評價函數(shù)選取廣泛使用且函數(shù)曲線與清晰度正相關(guān)的能量梯度函數(shù).如式(15)所示.
在確定特征向量后,按以下3個步驟計算X在特征空間中的聯(lián)合概率密度函數(shù)f V(v).
步驟1.特征值計算:按式(14)、(15)計算出X中每個樣本x的特征值,得到特征值集合V1,V2(均為正值),并分別計算出它們的最大值max1,max2.
步驟2.特征值尺度變換:確定兩種特征值的取值范圍[0,mi](i=1,2),按式(16)將特征值線性縮放到此區(qū)間中.
其中,j=1,2,···,n.n為X的規(guī)模.表示第j個樣本xj的第i類特征值變換后的特征值.vij表示第j個樣本xj的第i類特征的原始特征值.將計算出的值四舍五入后替代vij,從而更新V1,V2.
步驟3.樣本頻數(shù)統(tǒng)計:建立表T(v1,v2),初始值為0,尺寸為m1×m2,表中元素tij表示特征值v1=i,v2=j的樣本個數(shù),vk∈Vk,k=1,2.同時遍歷V1,V2中所有元素,若v1=i,v2=j則tij自加1.
步驟4.f V(v)求取:遍歷表T(v1,v2),將每個表中元素值tij除以X的樣本數(shù)n,即tij ←tij/n;從而使用表T(v1,v2)表示f V(v).
最終使用f V(v)表征f X(x).對n維的特征空間計算f X(x)以此類推,隨著空間維度的提高,f X(x)將越來越稀疏.在使用更高維特征空間時,可以適當(dāng)壓縮特征值線性變換后的取值范圍以增加f X(x)的稠密性,便于子樣本集構(gòu)建.
為使X i的分布與f X(x)相似,需人為構(gòu)建X i.在按概率抽樣的基礎(chǔ)上,依據(jù)總體分布f X(x)
構(gòu)建訓(xùn)練子集如下所示:
步驟1.特征分布計算:依據(jù)第2.1節(jié),計算出特征值聯(lián)合概率分布f V(v1,v2),V=(V1,V2).將對應(yīng)的統(tǒng)計概率值記錄在表T1(v1,v2)中,用它來表征f X(x).
步驟2.獲取抽樣個數(shù)表:計算每個Batchsize大小的子樣本集X i對應(yīng)概率的樣本個數(shù)表,使用Batchsize乘以T1中每個元素值四舍五入后可得,記為T2(v1,v2).
步驟3.樣本抽樣:遍歷T2中不為0的值,在訓(xùn)練集X中抽取T2中對應(yīng)元素個數(shù)且對應(yīng)特征向量的樣本,例如=t,那么就在X中選取t個v1=i,v2=j的樣本.每次抽取樣本時,優(yōu)先抽取先前未被抽取的樣本.
通過以上處理,得到了一個子樣本集X i,一般地X i的樣本個數(shù)numi小于Batchsize,造成這種現(xiàn)象的主要原因在于:1)f X(x)中概率值過小的樣本可能無法采樣.2)f X(x)中乘以Batchsize后小數(shù)部分被截斷.
由于f X(x)中高頻部分比較好采樣,并且高頻部分對G網(wǎng)絡(luò)的貢獻(xiàn)更大,因此隨機選取前k個高頻概率,計算出它們的比重再對這Batchsize-numi進行補齊,最后使得X i的規(guī)模為Batchsize(二次補齊后可能會與Batchsize有很小的差異,再在這k個概率對應(yīng)的樣本中隨機選取補齊即可;如果想進一步提高樣本覆蓋率,可以隨機采樣未被采樣到的極低概率值對應(yīng)的樣本).
子樣本集構(gòu)建中,未進行樣本補齊操作前能保證X i之間獨立同分布,補齊后會有較少的交集部分,整個下采樣獲取的X i可以近似看成獨立同分,且與f X(x)相似.
通過以上描述可以得到整個訓(xùn)練方法如下所示:
步驟1.選定Batchsize和epoch 參數(shù)值,動量因子和學(xué)習(xí)率參考文獻(xiàn)[7]選取;通過總樣本量和Batchsize大小計算出每個epoch 饋入的子樣本集個數(shù)m.m依據(jù)式(4)所得.
步驟2.依據(jù)第2.1節(jié),計算出總體樣本集在特征空間中的統(tǒng)計概率分布f X(x).
步驟3.依據(jù)第2.2節(jié),構(gòu)建m個子樣本集分布其對應(yīng)的子樣本集記為{X i}m.
步驟4.每次epoch 訓(xùn)練中依次饋入X i,更新整個DCGANs網(wǎng)絡(luò)參數(shù),直到達(dá)到epoch 參數(shù)值為止.
為驗證本文方法對DCGANs訓(xùn)練的效果,實驗中選用卡通人臉,Cifar10數(shù)據(jù)集.主要軟硬件環(huán)境為:tensorf ow1.4.0 GPU版本、英偉達(dá)gtx1060,gtx1080顯卡、DDR4 2 400 MHz,8 GB內(nèi)存.卡通人臉數(shù)據(jù)集有51 223張彩色卡通人臉圖片,每張圖像大小為96×96像素.為便于選取較大Batchsize值,將圖像大小縮放到48×48像素.生成數(shù)據(jù)規(guī)模為51 223,每組訓(xùn)練耗時1~10小時左右.Cifar10圖像數(shù)據(jù)集總共有60 000張彩色圖片,其中訓(xùn)練集50 000張,測試集10 000張,每張圖像大小為32×32像素.在實驗中,選用Cifar10中訓(xùn)練集參與DCGANs訓(xùn)練,生成數(shù)據(jù)規(guī)模為50 000,每組訓(xùn)練耗時1~7 小時左右.圖3和圖4分別給出了兩種訓(xùn)練集的隨機樣本.實驗數(shù)據(jù)及分析如下所示.
為客觀評價訓(xùn)練效果,選取了測試誤差[16]、K L距離(式(10)),Inception score(IS)[28]共3種定量評價指標(biāo).1)測試誤差:均值和標(biāo)準(zhǔn)差越小越好,均值越小,生成集分布f G(x)越接近,訓(xùn)練集分布f X(x),標(biāo)準(zhǔn)差越小,表明批量生成圖像樣本時越穩(wěn)定;2)K L距離:越小越好,它表明了f G(x)與f X(x)的差異程度;3)IS指標(biāo):越大越好,它體現(xiàn)了GANs在生成圖像質(zhì)量和多樣性方面的能力.
圖3 卡通人臉訓(xùn)練集樣本Fig.3 Training set samples of cartoon face
圖4 Cifar10訓(xùn)練集樣本Fig.4 Training set samples of Cifar10
為對比不同Batchsize下構(gòu)建子樣本集效果及隨機子樣本集與構(gòu)建子樣本集之間的差異,做了如下實驗.表1統(tǒng)計了不同Batchsize下構(gòu)建子樣本集總體覆蓋率和隨機子樣本集總體覆蓋率相關(guān)數(shù)據(jù).表2統(tǒng)計了兩個數(shù)據(jù)集不同Batchsize下各自所有子分布f X i(x)與總體分布f X(x)的K L距離統(tǒng)計值.表2中1~5行來自于卡通人臉數(shù)據(jù)集,6~10行來自于Cifar10數(shù)據(jù)集.
表1 不同Batchsize下總體覆蓋率Table 1 Total coverage rate of different Batchsize
從表1可以看出,Batchsize 增大有利于構(gòu)建子樣本集后總體樣本覆蓋率的提升及減少與隨機采樣總體覆蓋率的差距.考慮到構(gòu)建子樣本集后的樣本覆蓋率,選取較大Batchsize進行后繼實驗.從表2可看出Batchsize越大越有利于子分布趨近于總體分布,并且子分布各自之間的差異會越來越小,人為干預(yù)后子分布各自之間的差異最小,且與總體分布f X(x)最趨近.這表明對樣本子分布X i進行人為干預(yù)后能使得它們有更好的數(shù)理統(tǒng)計值(如均值、標(biāo)準(zhǔn)差等).由大數(shù)定理可知,子樣本集尺寸越大越使它分布接近總體分布.在特征空間中,依然呈現(xiàn)了這種規(guī)律,這也表明該特征空間上訓(xùn)練集的分布一定程度反映了訓(xùn)練集未降維時的分布.
表2 不同Batchsize下K L((x)||f X(x))數(shù)據(jù)Table 2 K L((x)||f X(x))data under different Batchsize
表2 不同Batchsize下K L((x)||f X(x))數(shù)據(jù)Table 2 K L((x)||f X(x))data under different Batchsize
帶“?”項是構(gòu)建子樣本集相關(guān)數(shù)據(jù),下同
這些數(shù)據(jù)表明,隨機取樣的子樣本集分布比人為構(gòu)建的子樣本集分布一致性更弱,而且子樣本集分布之間的差異程度高于構(gòu)建的子樣本集分布之間的差異程度.同時前者的分布與總體分布差異更大,后者的分布與總體分布差異更小.
通過表1可知在子樣本集構(gòu)建的過程中,有低頻樣本未被覆蓋.圖5展示了Batchsize為2 000左右時未被采樣到的低頻樣本和采樣到的普通樣本示例.其中第1、2行分別是卡通人臉數(shù)據(jù)集中的低頻樣本和普通樣本;第3、4行分別是Cifar10中的低頻樣本和普通樣本.
圖5 低頻樣本和普通樣本Fig.5 Low frequency and common samples
從圖5中可以看出,子樣本集構(gòu)建中未參與訓(xùn)練的低頻樣本與普通樣本有明顯差別,它們主要表現(xiàn)為顏色比較單一,紋理信息也比較簡單.從數(shù)據(jù)分布的角度上看,這類樣本是屬于分布上的離群點.在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,離群點容易對訓(xùn)練結(jié)果產(chǎn)生不利影響.
為驗證本文方法的有效性,對比了在Batchsize為1 024,2 000左右時構(gòu)建子樣本集及未構(gòu)建子樣本集的訓(xùn)練效果;對比了本文方法與文獻(xiàn)[7]及其他3種訓(xùn)練策略的訓(xùn)練效果.
1)構(gòu)建與未構(gòu)建子樣本集對比
對于卡通人臉數(shù)據(jù)集分別構(gòu)建了Batchsize在1 024和2 000的子樣本集.對于Cifar10數(shù)據(jù)集分別構(gòu)建了Batchsize為1 024和2 048的子樣本集.選取的學(xué)習(xí)率調(diào)參范圍為0.001~0.002之間,動量因子為0.5,使用BGD.得到的實驗數(shù)據(jù)如下所示.
表3 卡通人臉數(shù)據(jù)集實驗結(jié)果對比Table 3 Experimental results comparison of cartoon face dataset
表4 Cifar10數(shù)據(jù)集實驗結(jié)果對比Table 4 Experimental results comparison of Cifar10 dataset
通過表3和4可知,在Batchsize為1 024時,本文方法訓(xùn)練結(jié)果要稍差一點,主要原因是樣本覆蓋率相對于隨機子樣本集差距較大,在10%左右,導(dǎo)致子樣本集構(gòu)建后的總體分布與訓(xùn)練集分布差異較大導(dǎo)致的.在Batchsize為2 000左右,由于覆蓋率差值為5%左右,這表明構(gòu)建子樣本集后的總體分布與訓(xùn)練集總體分布差異較小,可以看出子樣本集構(gòu)建的訓(xùn)練方法在訓(xùn)練結(jié)果上有更好的生成效果.
圖6 生成樣本(隨機,Batchsize=2 000,卡通人臉)Fig.6 Generated samples(random,2 000,cartoon face)
圖7 生成樣本(構(gòu)建,Batchsize=2 000,卡通人臉)Fig.7 Generated samples(constructing,2 000,cartoon face)
圖8 生成樣本(隨機,Batchsize 2 048,Cifar10)Fig.8 Generated samples(random,2 048,Cifar10)
圖9 生成樣本(構(gòu)建,Batchsize=2 048,Cifar10)Fig.9 Generated samples(constructing,2 048,Cifar10)
圖6 ~9直觀展示了兩種數(shù)據(jù)集在Batchsize大小為2 000左右訓(xùn)練所隨機抽取的生成樣本.對比圖6、7 可知,兩種生成樣本風(fēng)格都相差不大,都能比較好地刻畫出面部特征和頭發(fā)等細(xì)節(jié)紋理.但是圖7 (構(gòu)建方法)的人臉輪廓學(xué)習(xí)得更到位一些,并且面部特征消失的樣本相對較少.對比圖8、9可知,依然出現(xiàn)了類似的實驗現(xiàn)象,圖9(構(gòu)建方法)能夠辨別出大體類別的樣本稍多,如1行4列是鳥類,1行7 列是卡車,2行3列是船,2行6列是馬.在圖8(隨機方法)中2行1列是蛙類,3行5列是狗.
綜上所述,適當(dāng)選取Batchsize,少量損失總體樣本覆蓋率,構(gòu)建子樣本集訓(xùn)練方法具有較好的實驗效果.如果選取的Batchsize較小,導(dǎo)致樣本覆蓋率偏低,使得較多的樣本不參與訓(xùn)練,反而不利于G網(wǎng)絡(luò)模擬原訓(xùn)練集.
2)本文方法與其他訓(xùn)練策略對比
為對比本文方法相對于文獻(xiàn)[7]訓(xùn)練方法以及其他3種通過處理D網(wǎng)絡(luò)內(nèi)部數(shù)據(jù)或梯度信息訓(xùn)練策略的訓(xùn)練效果,做了以下實驗.包括D網(wǎng)絡(luò)批規(guī)范化(BN)、Adam、SGD,對應(yīng)表中128(a)[7];D網(wǎng)絡(luò)權(quán)重剪枝結(jié)合D網(wǎng)絡(luò)損失函數(shù)1中心梯度懲罰代替原訓(xùn)練方法[14,18]、RMSProp、SGD、對應(yīng)表中128(b);D網(wǎng)絡(luò)權(quán)重參數(shù)正則化代替原訓(xùn)練方法[20]、RMSProp、SGD對應(yīng)表中128(c);D網(wǎng)絡(luò)真實樣本對應(yīng)的損失函數(shù)0中心梯度懲罰代替原訓(xùn)練方法[20]、RMSProp、SGD對應(yīng)表中128(d).RMSProp優(yōu)化方法的學(xué)習(xí)率調(diào)參范圍為0.00005 ~0.0001,動量因子為0.9.得出了實驗數(shù)據(jù)如下所示.帶“?”項數(shù)據(jù)來自于本文方法實驗結(jié)果.
表5 卡通人臉數(shù)據(jù)集不同策略對比Table 5 Different strategies comparison of cartoon face dataset
表6 Cifar10數(shù)據(jù)集不同策略對比Table 6 Different strategies comparison of Cifar10 dataset
通過表5、6可知,即使在Batchsize為1 024時也能取得不錯指標(biāo)數(shù)據(jù).在Batchsize為2 000左右時有更好的實驗指標(biāo)數(shù)據(jù),并且明顯優(yōu)于文獻(xiàn)[7]的實驗效果.在卡通人臉數(shù)據(jù)集中(單類別數(shù)據(jù)集)Batchsize為1 024時,對除文獻(xiàn)[7]外的其他3種學(xué)習(xí)策略并無優(yōu)勢,但在Batchsize為2 000時有一定的優(yōu)勢.在Cifar10數(shù)據(jù)集中(多類別數(shù)據(jù)集),依然有類似的規(guī)律,不同的是Batchsize無論為1 024或2 000左右均有相對較好的效果.以上表明本文方法對于多類別數(shù)據(jù)集有更好的適應(yīng)性.通過對比表中3 ~6行還可以發(fā)現(xiàn),文獻(xiàn)[7]的訓(xùn)練策略均差于其他3種訓(xùn)練策略.實驗也證明了這幾種訓(xùn)練策略的有效性,它們可以相互替代.
圖10 ~13展示了文獻(xiàn)[7]和D網(wǎng)絡(luò)權(quán)重參數(shù)正則化訓(xùn)練效果.對比圖7、10、11可以發(fā)現(xiàn)本文方法在直觀效果上優(yōu)于文獻(xiàn)[7]和參數(shù)正則化訓(xùn)練策略.可以看出和文獻(xiàn)[7]和參數(shù)正則化策略直觀效果大體相差不大,瞳孔、頭發(fā)紋理和眉毛等細(xì)節(jié)信息都丟失較多,均要弱于本文方法.對比圖9、12、13可知,本文方法生成的樣本中,能夠區(qū)分出大體類別的數(shù)量相對較多.
圖10 生成樣本(128(文獻(xiàn)[7]),卡通人臉)Fig.10 Generated samples(128(paper[7]),cartoon face)
圖11 生成樣本(128(正則化),卡通人臉)Fig.11 Generated samples(128(regularizer),cartoon face)
需要說明的是,兩種數(shù)據(jù)集上,實驗所生成圖像中質(zhì)量高的樣本比例很少,其中存在大量的結(jié)構(gòu)失真和紋理信息丟失嚴(yán)重的圖像,這是很常見的現(xiàn)象[1,7,10].單類別數(shù)據(jù)集訓(xùn)練效果要明顯優(yōu)于多類別數(shù)據(jù)集訓(xùn)練效果.本文方法由于Batchsize的增大,每次epoch更新次數(shù)的減少,會導(dǎo)致總的epoch數(shù)增多,需要更多的訓(xùn)練時間.以上數(shù)據(jù)表明,本文方法相對于文獻(xiàn)[7]的訓(xùn)練方法,訓(xùn)練效果有明顯提升;并且在相同Batchsize,保證有較大樣本覆蓋率的情況下是優(yōu)于隨機子樣本集訓(xùn)練方法.
圖12 生成樣本(128(文獻(xiàn)[7]),Cifar10)Fig.12 Generated samples (128(paper[7]),Cifar10)
圖13 生成樣本(128(正則化),Cifar10)Fig.13 Generated samples(128(regularizer),Cifar10)
為提高DCGANs訓(xùn)練的效果,本文嘗試通過對外部訓(xùn)練數(shù)據(jù)進行處理來影響最終的生成效果.實驗結(jié)果表明,適當(dāng)增加Batchsize大小,對每次epoch 饋入的子樣本集經(jīng)過人為構(gòu)建能夠影響生成結(jié)果,與原有的訓(xùn)練方法比較,提高了生成器網(wǎng)絡(luò)生成的圖像的效果,這種處理方式能夠減輕隨機饋入數(shù)據(jù)對結(jié)果產(chǎn)生的不利影響.同時也實踐證明了在訓(xùn)練集概率統(tǒng)計分布過于抽象難以表達(dá)時,其在特征空間中分布表達(dá)的有效性.實驗也證明了這幾種訓(xùn)練策略的有效性,它們可以相互替代.當(dāng)然本文方法也存在不足之處,如由于加大了Batchsize大小,導(dǎo)致了訓(xùn)練所需的時間更多.訓(xùn)練之前需要對訓(xùn)練集進行較繁瑣的預(yù)處理.