張家亮,何志鵬,王媛媛,曾 兵,沈 宜,賈 宇
(1.成都三零凱天通信實(shí)業(yè)有限公司,四川 成都 610041;2.電子科技大學(xué) 信息與通信工程學(xué)院,四川 成都 611731; 3.烏魯木齊市公安局 網(wǎng)絡(luò)安全保衛(wèi)支隊(duì),新疆 烏魯木齊 830000)
生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Networks, GAN)[1]自2014年Ian Goodfellow提出以來(lái),受到了學(xué)術(shù)界的持續(xù)關(guān)注。生成對(duì)抗網(wǎng)絡(luò)在諸多領(lǐng)域都有廣泛的應(yīng)用,如圖像生成、圖像去模糊以及文字轉(zhuǎn)換為圖像等。雖然在這些領(lǐng)域有著優(yōu)于傳統(tǒng)方法的優(yōu)勢(shì),但是生成對(duì)抗網(wǎng)絡(luò)本身存在的訓(xùn)練不穩(wěn)定性和模式崩潰問(wèn)題也不容忽視。針對(duì)這兩個(gè)問(wèn)題,學(xué)術(shù)界提出了許多改進(jìn)方法,其中David Berthelot提出的BEGAN[2]提供了一種新的GAN網(wǎng)絡(luò)結(jié)構(gòu),只使用標(biāo)準(zhǔn)的訓(xùn)練方式可以穩(wěn)定收斂,同時(shí)提供了一個(gè)超參數(shù)來(lái)均衡圖像的多樣性和生成質(zhì)量以及一種收斂程度的估計(jì),但是該結(jié)構(gòu)需要大量的圖像作為訓(xùn)練集才能使生成器較好地學(xué)習(xí)到真實(shí)圖像的數(shù)據(jù)分布,且需要訓(xùn)練多個(gè)批次才能使網(wǎng)絡(luò)達(dá)到穩(wěn)定狀態(tài)。
為了能夠在有限數(shù)據(jù)集上快速生成圖像,本文基于BEGAN和變分自編碼器(Variational Auto Encoder,VAE)[3],采取兩個(gè)生成模型并聯(lián)的方式,利用變分自編碼器提取真實(shí)圖像的編碼信息,將VAE的重建圖像視為虛假圖像,以提高判別器區(qū)分真假圖像的難度。特別是在訓(xùn)練前期,可進(jìn)一步提高模型訓(xùn)練的穩(wěn)定性,緩解了模式崩潰問(wèn)題,通過(guò)正則化項(xiàng)供給生成器有效的真實(shí)數(shù)據(jù)分布信息加快了學(xué)習(xí)過(guò)程。
生成對(duì)抗網(wǎng)絡(luò)主要由兩個(gè)模塊構(gòu)成——生成器G和判別器D。生成器輸入為隨機(jī)噪聲Z,噪聲經(jīng)過(guò)生成器G映射到新的數(shù)據(jù)空間,得到生成數(shù)據(jù)G(Z);判別器的輸入為真實(shí)圖像與生成的虛假圖像,可以簡(jiǎn)單理解為一個(gè)二分類器,用于判別圖像的來(lái)源。判別器輸入為x,代表一張圖像,輸出D(x)表示x為真實(shí)圖像的概率。若D(x)=1,則代表x為真實(shí)圖像;若D(x)=0,則代表x為虛假圖像。該網(wǎng)絡(luò)模型的主要思想是對(duì)抗訓(xùn)練思想。訓(xùn)練過(guò)程中,生成器更新參數(shù)生成與真實(shí)圖像分布相似的虛假圖像,以欺騙判別器D;判別器D增強(qiáng)區(qū)分真實(shí)圖像與虛假圖像的能力。如此循環(huán)訓(xùn)練,直到判別器無(wú)法辨別圖像的來(lái)源,即D(x)=0.5,網(wǎng)絡(luò)達(dá)到納什均衡,生成器G和判別器D無(wú)法再提高各自生成與判別能力,訓(xùn)練結(jié)束。
標(biāo)準(zhǔn)生成對(duì)抗網(wǎng)絡(luò)的模型如圖1所示。
圖1 標(biāo)準(zhǔn)生成對(duì)抗網(wǎng)絡(luò)模型
原始生成對(duì)抗網(wǎng)絡(luò)的目標(biāo)函數(shù)為:
其中V(D,G)表示生成對(duì)抗網(wǎng)絡(luò)中的目標(biāo)函數(shù),x~pr表示x服從訓(xùn)練集中的真實(shí)圖像分布pr;z~pz(z)表示z服從的某一隨機(jī)噪聲分布;E[·]表示求數(shù)學(xué)期望。
變分自編碼器VAE與生成對(duì)抗網(wǎng)絡(luò)的目標(biāo),都是希望構(gòu)建一個(gè)從隨機(jī)噪聲Z到生成數(shù)據(jù)X的模型。VAE的主要模塊分別為編碼器和解碼器,其中編碼器負(fù)責(zé)將高維空間中的圖像轉(zhuǎn)化為一個(gè)低維空間的向量Z。給定一張圖像Xk,假定p(Z|Xk)是專屬于Xk的后驗(yàn)概率分布,而這個(gè)概率分布服從正態(tài)分布。如果能夠得到這個(gè)概率,就可以從分布中采樣,并且通過(guò)解碼器將圖像從低維空間映射回高維空間,從而達(dá)到恢復(fù)圖像的目的。
需要從p(Z|Xk)中采樣Zk,而采樣操作是不可導(dǎo)的,采樣結(jié)果是可導(dǎo)的。于是,從N(0,I)中采樣一個(gè)ε,令Z=μ+εσ就相當(dāng)于從N(μ,σ2)中采樣一個(gè)Z。所以,將從N(μ,σ2)中采樣變成從N(0,I)采樣,然后通過(guò)參數(shù)變換得到N(μ,σ2)中采樣的結(jié)果。這樣“采樣”操作就不用參與梯度下降,改為采樣的結(jié)果參與,而采樣的結(jié)果是可導(dǎo)的,從而使得整個(gè)模型能夠訓(xùn)練,即VAE中重參數(shù)化的技巧。
變分自編碼的損失函數(shù)由兩個(gè)部分組成:原始圖像與重建圖像之間的重建損失,后驗(yàn)概率分布與標(biāo)準(zhǔn)正態(tài)分布之間的正則項(xiàng)。
2.3.1 重建損失
交叉熵度量:
均方誤差度量:
其中,x表示原始圖像,x^表示重建后的圖像。Lrecon越小,表示原始圖像與重建圖像越接近。
2.3.2 正則項(xiàng)
正則項(xiàng)為采樣與標(biāo)準(zhǔn)正態(tài)分布之間的相對(duì)熵,化簡(jiǎn)可得:
3.1.1 BEGAN的網(wǎng)絡(luò)結(jié)構(gòu)
BEGAN沒(méi)有采用其他GAN估計(jì)概率分布的方法,不直接估計(jì)生成圖像的數(shù)據(jù)分布和真實(shí)圖像分布之間的差距,而是改為估計(jì)分布的誤差之間的差距。為了估計(jì)分布的誤差,BEGAN與EBGAN[4]類似,也將判別器設(shè)計(jì)為自編碼器結(jié)構(gòu),輸入和輸出的圖像大小相同。BEGAN的網(wǎng)絡(luò)模型如圖2所示。
圖2 BEGAN網(wǎng)絡(luò)結(jié)構(gòu)
3.1.2 BEGAN的損失函數(shù)設(shè)計(jì)
BEGAN估計(jì)分布誤差之間的差距,采用范數(shù)衡量圖像分布的誤差,具體函數(shù)如下:
其中,L(v)是一個(gè)像素誤差的損失,表示圖像v與經(jīng)過(guò)判別器D之后的輸出D(v)之間的相似程度;L(v)越小,則說(shuō)明v、D(v)越接近。LD表示判別器的損失函數(shù),LG表示生成器的損失函數(shù),x表示真實(shí)圖像,L(·)表示圖像與經(jīng)過(guò)判別器D之后輸出的像素誤差,z表示隨機(jī)噪聲分布,kt∈[0,1]控制L(G(z))在梯度下降時(shí)的比例實(shí)現(xiàn),λk為k的學(xué)習(xí)率。γ∈[0,1]為比例系數(shù),用于均衡生成圖像的生成質(zhì)量和多樣性。γ越小,多樣性越差,生成質(zhì)量越高。mglobal表示訓(xùn)練程度的好壞,越小,訓(xùn)練程度越好。
3.2.1 改進(jìn)的BEGAN的網(wǎng)絡(luò)結(jié)構(gòu)
為了在有限數(shù)據(jù)集上快速生成圖像,將BEGAN 與VAE結(jié)合,利用VAE提取真實(shí)圖像的數(shù)據(jù)分布,并且將VAE的重建圖像也視為虛假圖像,增加了判別器辨別真假圖像的能力,特別是在訓(xùn)練前期能夠進(jìn)一步穩(wěn)定模型的訓(xùn)練。通過(guò)設(shè)計(jì)的正則項(xiàng),生成器可以獲取VAE提取的真實(shí)圖像信息,達(dá)到加快圖像生成和在有限數(shù)據(jù)集上生成圖像的目的。改進(jìn)后的BEGAN網(wǎng)絡(luò)模型如圖3所示。
圖3 改進(jìn)的BEGAN網(wǎng)絡(luò)模型
3.2.2 改進(jìn)的BEGAN的損失函數(shù)設(shè)計(jì)
通過(guò)正則化項(xiàng)獲取變分自編碼器提取的真實(shí)圖像信息,若潛空間變量越相似,那么得到的生成圖像也應(yīng)該越相似。
其中,Lreg為設(shè)計(jì)的正則化項(xiàng),L1表示L1范數(shù)約束,為潛空間變量與生成圖像之間的維度比例[5]。
其中,LVAE表示變分自編碼器的損失函數(shù),Lrecon表示變分自編碼器的重建損失,本文實(shí)驗(yàn)中使用L2范數(shù)。Lμ,σ2表示重參數(shù)化的正則項(xiàng),kg,kvae∈[0,1]分別控制L(G(z))、L(VAE(x))在梯度下降時(shí)的比例實(shí)現(xiàn),λk為k的學(xué)習(xí)率,γ∈[0,1]為比例系數(shù),用于均衡生成圖像的生成質(zhì)量和多樣性,γ越小,多樣性越差,生成質(zhì)量越高,α,β為正則化項(xiàng)的比例系數(shù),mglobal表示訓(xùn)練程度的好壞,越小訓(xùn)練程度越好。
3.2.3 改進(jìn)的BEGAN的模型訓(xùn)練機(jī)制
模型訓(xùn)練的基本思想是對(duì)抗訓(xùn)練思想,訓(xùn)練大體流程與BEGAN一致。由于在模型中加入了變分自編碼器,所以模型訓(xùn)練的步驟可歸納為以下四個(gè)步驟:
(1)訓(xùn)練判別網(wǎng)絡(luò),降低判別網(wǎng)絡(luò)的損失函數(shù),盡可能判別出圖像的真假。
(2)訓(xùn)練變分自編碼器,使得變分自編碼器盡可能生成接近于真實(shí)樣本的圖像,為生成網(wǎng)絡(luò)的更新提供信息,增加判別網(wǎng)絡(luò)辨別圖像來(lái)源的難度。
(3)訓(xùn)練生成網(wǎng)絡(luò),通過(guò)正則化項(xiàng)獲取變分自編碼器提取的潛變量信息,盡可能生成真實(shí)的圖像去迷惑判別網(wǎng)絡(luò),達(dá)到對(duì)抗訓(xùn)練的目的。
(4)經(jīng)過(guò)三個(gè)網(wǎng)絡(luò)的不斷循環(huán)訓(xùn)練,直至判別網(wǎng)絡(luò)無(wú)法區(qū)分其輸入圖像的來(lái)源,即D(x)=0.5,標(biāo)志著訓(xùn)練達(dá)到平衡,各網(wǎng)絡(luò)無(wú)法再通過(guò)參數(shù)優(yōu)化提高能力,此時(shí)生成網(wǎng)絡(luò)的生成能力達(dá)到最佳,能夠生成高質(zhì)量和高多樣性的圖像。
BEGAN基本上解決了GAN訓(xùn)練的不穩(wěn)定性和模式崩潰問(wèn)題。本文使用CelebA人臉數(shù)據(jù)集,將人臉數(shù)據(jù)統(tǒng)一裁剪為128×128×3大小的圖像,對(duì)原始BEGAN與改進(jìn)后的BEGAN進(jìn)行對(duì)比實(shí)驗(yàn)。為了驗(yàn)證改進(jìn)模型在少量數(shù)據(jù)集上的圖像生成效果,分別采用1萬(wàn)張和8萬(wàn)張人臉圖像對(duì)兩個(gè)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。改進(jìn)的BEGAN網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,其中具體的判別器網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示;變分自編碼器網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,生成器網(wǎng)絡(luò)結(jié)構(gòu)如 圖6所示。
圖4 判別器網(wǎng)絡(luò)結(jié)構(gòu)
圖5 變分自編碼器網(wǎng)絡(luò)結(jié)構(gòu)
圖6 生成器網(wǎng)絡(luò)結(jié)構(gòu)
相關(guān)參數(shù)設(shè)置為:epoch=50,batch_size=25,lr=0.000 1,m=0.5,m2=0.999,γ=0.7,λk=0.001,fn=128,z=128,α=0.2,β=0.1。其中epoch表示迭代次數(shù);batch_size表示批處理大小;lr表示學(xué)習(xí)率;m、m2分別表示Adam優(yōu)化器的兩個(gè)參數(shù);γ用于在生成圖像質(zhì)量和多樣性之間做調(diào)節(jié),γ越高,圖像的多樣性越高;λk表示kg、kvae更新時(shí)的步長(zhǎng);fn表示卷積核個(gè)數(shù);z表示噪聲維度,α、β分別表示正則項(xiàng)的比例系數(shù)。
4.2.1 1萬(wàn)數(shù)據(jù)集
下面將分析訓(xùn)練集為1萬(wàn)張人臉圖像時(shí),BEGAN和改進(jìn)的BEGAN的訓(xùn)練結(jié)果。其中,圖7為BEGAN訓(xùn)練過(guò)程中分別迭代2 500次、5 000次、10 000次、15 000次和20 000次生成的圖像。
圖7 BEGAN訓(xùn)練中生成圖像
圖8 為改進(jìn)后的BEGAN訓(xùn)練過(guò)程中分別迭代2 500次、5 000次、10 000次、15 000次和20 000次生成的圖像。圖9為BEGAN訓(xùn)練完成后由隨機(jī)噪聲生成的5組圖像。圖10為改進(jìn)后的BEGAN訓(xùn)練完成后由隨機(jī)噪聲生成的5組圖像。
圖8 改進(jìn)后的BEGAN訓(xùn)練中生成圖像
圖9 BEGAN完成訓(xùn)練后生成的5組圖像
圖10 改進(jìn)后的BEGAN完成訓(xùn)練后生成的5組圖像
4.2.2 8萬(wàn)數(shù)據(jù)集
下面是訓(xùn)練集為8萬(wàn)張人臉圖像時(shí),BEGAN和改進(jìn)的BEGAN的訓(xùn)練結(jié)果。其中,圖11為BEGAN訓(xùn)練過(guò)程中分別迭代2 500次、5 000次、10 000次、15 000次和20 000次生成的圖像。圖12為改進(jìn)后的BEGAN訓(xùn)練過(guò)程中分別迭代2 500次、 5 000次、10 000次、15 000次和20 000次生成的圖像。圖13為BEGAN訓(xùn)練完成后由隨機(jī)噪聲生成的5組圖像。圖14為改進(jìn)后的BEGAN訓(xùn)練完成后由隨機(jī)噪聲生成的5組圖像。
圖11 BEGAN訓(xùn)練中生成圖像
圖12 改進(jìn)后的BEGAN訓(xùn)練中生成圖像
圖13 BEGAN完成訓(xùn)練后生成的5組圖像
圖14 改進(jìn)后的BEGAN完成訓(xùn)練后生成的5組圖像
在不同量級(jí)數(shù)據(jù)集上的對(duì)比實(shí)驗(yàn)數(shù)據(jù)表明,改進(jìn)后的BEGAN可以更快地學(xué)習(xí)到圖像的特征,特別是基于1萬(wàn)CelebA人臉數(shù)據(jù)集,生成圖像的質(zhì)量與多樣性都遠(yuǎn)遠(yuǎn)高于原始的BEGAN,且訓(xùn)練過(guò)程中的穩(wěn)定性較高,即使減少了訓(xùn)練的迭代次數(shù),也能生成高質(zhì)量與多樣性并存的圖像。
本文提出了一種使用變分自編碼器提取真實(shí)圖像信息,并將重建圖像視為虛假圖像來(lái)改進(jìn)BEGAN的方法。經(jīng)試驗(yàn)對(duì)比分析,該改進(jìn)BEGAN的方法有可能實(shí)現(xiàn)基于少量數(shù)據(jù)集快速生成高質(zhì)量和高多樣性圖像的目的。此外,該改進(jìn)方法依然存在許多可以持續(xù)改進(jìn)的地方,如在網(wǎng)絡(luò)結(jié)構(gòu)中加入ResNet模塊,使用逆卷積代替resize操作對(duì)圖像進(jìn)行縮放等,以實(shí)現(xiàn)對(duì)BEGAN更進(jìn)一步的 改進(jìn)。