張家亮,何志鵬,王媛媛,曾 兵,沈 宜,賈 宇
(1.成都三零凱天通信實業有限公司,四川 成都 610041;2.電子科技大學 信息與通信工程學院,四川 成都 611731; 3.烏魯木齊市公安局 網絡安全保衛支隊,新疆 烏魯木齊 830000)
生成對抗網絡(Generative Adversarial Networks, GAN)[1]自2014年Ian Goodfellow提出以來,受到了學術界的持續關注。生成對抗網絡在諸多領域都有廣泛的應用,如圖像生成、圖像去模糊以及文字轉換為圖像等。雖然在這些領域有著優于傳統方法的優勢,但是生成對抗網絡本身存在的訓練不穩定性和模式崩潰問題也不容忽視。針對這兩個問題,學術界提出了許多改進方法,其中David Berthelot提出的BEGAN[2]提供了一種新的GAN網絡結構,只使用標準的訓練方式可以穩定收斂,同時提供了一個超參數來均衡圖像的多樣性和生成質量以及一種收斂程度的估計,但是該結構需要大量的圖像作為訓練集才能使生成器較好地學習到真實圖像的數據分布,且需要訓練多個批次才能使網絡達到穩定狀態。
為了能夠在有限數據集上快速生成圖像,本文基于BEGAN和變分自編碼器(Variational Auto Encoder,VAE)[3],采取兩個生成模型并聯的方式,利用變分自編碼器提取真實圖像的編碼信息,將VAE的重建圖像視為虛假圖像,以提高判別器區分真假圖像的難度。特別是在訓練前期,可進一步提高模型訓練的穩定性,緩解了模式崩潰問題,通過正則化項供給生成器有效的真實數據分布信息加快了學習過程。
生成對抗網絡主要由兩個模塊構成——生成器G和判別器D。生成器輸入為隨機噪聲Z,噪聲經過生成器G映射到新的數據空間,得到生成數據G(Z);判別器的輸入為真實圖像與生成的虛假圖像,可以簡單理解為一個二分類器,用于判別圖像的來源。判別器輸入為x,代表一張圖像,輸出D(x)表示x為真實圖像的概率。若D(x)=1,則代表x為真實圖像;若D(x)=0,則代表x為虛假圖像。該網絡模型的主要思想是對抗訓練思想。訓練過程中,生成器更新參數生成與真實圖像分布相似的虛假圖像,以欺騙判別器D;判別器D增強區分真實圖像與虛假圖像的能力。如此循環訓練,直到判別器無法辨別圖像的來源,即D(x)=0.5,網絡達到納什均衡,生成器G和判別器D無法再提高各自生成與判別能力,訓練結束。
標準生成對抗網絡的模型如圖1所示。

圖1 標準生成對抗網絡模型
原始生成對抗網絡的目標函數為:

其中V(D,G)表示生成對抗網絡中的目標函數,x~pr表示x服從訓練集中的真實圖像分布pr;z~pz(z)表示z服從的某一隨機噪聲分布;E[·]表示求數學期望。
變分自編碼器VAE與生成對抗網絡的目標,都是希望構建一個從隨機噪聲Z到生成數據X的模型。VAE的主要模塊分別為編碼器和解碼器,其中編碼器負責將高維空間中的圖像轉化為一個低維空間的向量Z。給定一張圖像Xk,假定p(Z|Xk)是專屬于Xk的后驗概率分布,而這個概率分布服從正態分布。如果能夠得到這個概率,就可以從分布中采樣,并且通過解碼器將圖像從低維空間映射回高維空間,從而達到恢復圖像的目的。
需要從p(Z|Xk)中采樣Zk,而采樣操作是不可導的,采樣結果是可導的。于是,從N(0,I)中采樣一個ε,令Z=μ+εσ就相當于從N(μ,σ2)中采樣一個Z。所以,將從N(μ,σ2)中采樣變成從N(0,I)采樣,然后通過參數變換得到N(μ,σ2)中采樣的結果。這樣“采樣”操作就不用參與梯度下降,改為采樣的結果參與,而采樣的結果是可導的,從而使得整個模型能夠訓練,即VAE中重參數化的技巧。
變分自編碼的損失函數由兩個部分組成:原始圖像與重建圖像之間的重建損失,后驗概率分布與標準正態分布之間的正則項。
2.3.1 重建損失
交叉熵度量:

均方誤差度量:

其中,x表示原始圖像,x^表示重建后的圖像。Lrecon越小,表示原始圖像與重建圖像越接近。
2.3.2 正則項
正則項為采樣與標準正態分布之間的相對熵,化簡可得:

3.1.1 BEGAN的網絡結構
BEGAN沒有采用其他GAN估計概率分布的方法,不直接估計生成圖像的數據分布和真實圖像分布之間的差距,而是改為估計分布的誤差之間的差距。為了估計分布的誤差,BEGAN與EBGAN[4]類似,也將判別器設計為自編碼器結構,輸入和輸出的圖像大小相同。BEGAN的網絡模型如圖2所示。

圖2 BEGAN網絡結構
3.1.2 BEGAN的損失函數設計
BEGAN估計分布誤差之間的差距,采用范數衡量圖像分布的誤差,具體函數如下:

其中,L(v)是一個像素誤差的損失,表示圖像v與經過判別器D之后的輸出D(v)之間的相似程度;L(v)越小,則說明v、D(v)越接近。LD表示判別器的損失函數,LG表示生成器的損失函數,x表示真實圖像,L(·)表示圖像與經過判別器D之后輸出的像素誤差,z表示隨機噪聲分布,kt∈[0,1]控制L(G(z))在梯度下降時的比例實現,λk為k的學習率。γ∈[0,1]為比例系數,用于均衡生成圖像的生成質量和多樣性。γ越小,多樣性越差,生成質量越高。mglobal表示訓練程度的好壞,越小,訓練程度越好。
3.2.1 改進的BEGAN的網絡結構
為了在有限數據集上快速生成圖像,將BEGAN 與VAE結合,利用VAE提取真實圖像的數據分布,并且將VAE的重建圖像也視為虛假圖像,增加了判別器辨別真假圖像的能力,特別是在訓練前期能夠進一步穩定模型的訓練。通過設計的正則項,生成器可以獲取VAE提取的真實圖像信息,達到加快圖像生成和在有限數據集上生成圖像的目的。改進后的BEGAN網絡模型如圖3所示。

圖3 改進的BEGAN網絡模型
3.2.2 改進的BEGAN的損失函數設計
通過正則化項獲取變分自編碼器提取的真實圖像信息,若潛空間變量越相似,那么得到的生成圖像也應該越相似。

其中,Lreg為設計的正則化項,L1表示L1范數約束,為潛空間變量與生成圖像之間的維度比例[5]。

其中,LVAE表示變分自編碼器的損失函數,Lrecon表示變分自編碼器的重建損失,本文實驗中使用L2范數。Lμ,σ2表示重參數化的正則項,kg,kvae∈[0,1]分別控制L(G(z))、L(VAE(x))在梯度下降時的比例實現,λk為k的學習率,γ∈[0,1]為比例系數,用于均衡生成圖像的生成質量和多樣性,γ越小,多樣性越差,生成質量越高,α,β為正則化項的比例系數,mglobal表示訓練程度的好壞,越小訓練程度越好。
3.2.3 改進的BEGAN的模型訓練機制
模型訓練的基本思想是對抗訓練思想,訓練大體流程與BEGAN一致。由于在模型中加入了變分自編碼器,所以模型訓練的步驟可歸納為以下四個步驟:
(1)訓練判別網絡,降低判別網絡的損失函數,盡可能判別出圖像的真假。
(2)訓練變分自編碼器,使得變分自編碼器盡可能生成接近于真實樣本的圖像,為生成網絡的更新提供信息,增加判別網絡辨別圖像來源的難度。
(3)訓練生成網絡,通過正則化項獲取變分自編碼器提取的潛變量信息,盡可能生成真實的圖像去迷惑判別網絡,達到對抗訓練的目的。
(4)經過三個網絡的不斷循環訓練,直至判別網絡無法區分其輸入圖像的來源,即D(x)=0.5,標志著訓練達到平衡,各網絡無法再通過參數優化提高能力,此時生成網絡的生成能力達到最佳,能夠生成高質量和高多樣性的圖像。
BEGAN基本上解決了GAN訓練的不穩定性和模式崩潰問題。本文使用CelebA人臉數據集,將人臉數據統一裁剪為128×128×3大小的圖像,對原始BEGAN與改進后的BEGAN進行對比實驗。為了驗證改進模型在少量數據集上的圖像生成效果,分別采用1萬張和8萬張人臉圖像對兩個網絡模型進行訓練。改進的BEGAN網絡結構如圖3所示,其中具體的判別器網絡結構如圖4所示;變分自編碼器網絡結構如圖5所示,生成器網絡結構如 圖6所示。

圖4 判別器網絡結構

圖5 變分自編碼器網絡結構

圖6 生成器網絡結構
相關參數設置為: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表示迭代次數;batch_size表示批處理大小;lr表示學習率;m、m2分別表示Adam優化器的兩個參數;γ用于在生成圖像質量和多樣性之間做調節,γ越高,圖像的多樣性越高;λk表示kg、kvae更新時的步長;fn表示卷積核個數;z表示噪聲維度,α、β分別表示正則項的比例系數。
4.2.1 1萬數據集
下面將分析訓練集為1萬張人臉圖像時,BEGAN和改進的BEGAN的訓練結果。其中,圖7為BEGAN訓練過程中分別迭代2 500次、5 000次、10 000次、15 000次和20 000次生成的圖像。

圖7 BEGAN訓練中生成圖像
圖8 為改進后的BEGAN訓練過程中分別迭代2 500次、5 000次、10 000次、15 000次和20 000次生成的圖像。圖9為BEGAN訓練完成后由隨機噪聲生成的5組圖像。圖10為改進后的BEGAN訓練完成后由隨機噪聲生成的5組圖像。

圖8 改進后的BEGAN訓練中生成圖像

圖9 BEGAN完成訓練后生成的5組圖像

圖10 改進后的BEGAN完成訓練后生成的5組圖像
4.2.2 8萬數據集
下面是訓練集為8萬張人臉圖像時,BEGAN和改進的BEGAN的訓練結果。其中,圖11為BEGAN訓練過程中分別迭代2 500次、5 000次、10 000次、15 000次和20 000次生成的圖像。圖12為改進后的BEGAN訓練過程中分別迭代2 500次、 5 000次、10 000次、15 000次和20 000次生成的圖像。圖13為BEGAN訓練完成后由隨機噪聲生成的5組圖像。圖14為改進后的BEGAN訓練完成后由隨機噪聲生成的5組圖像。

圖11 BEGAN訓練中生成圖像

圖12 改進后的BEGAN訓練中生成圖像

圖13 BEGAN完成訓練后生成的5組圖像

圖14 改進后的BEGAN完成訓練后生成的5組圖像
在不同量級數據集上的對比實驗數據表明,改進后的BEGAN可以更快地學習到圖像的特征,特別是基于1萬CelebA人臉數據集,生成圖像的質量與多樣性都遠遠高于原始的BEGAN,且訓練過程中的穩定性較高,即使減少了訓練的迭代次數,也能生成高質量與多樣性并存的圖像。
本文提出了一種使用變分自編碼器提取真實圖像信息,并將重建圖像視為虛假圖像來改進BEGAN的方法。經試驗對比分析,該改進BEGAN的方法有可能實現基于少量數據集快速生成高質量和高多樣性圖像的目的。此外,該改進方法依然存在許多可以持續改進的地方,如在網絡結構中加入ResNet模塊,使用逆卷積代替resize操作對圖像進行縮放等,以實現對BEGAN更進一步的 改進。