管鳳旭,路斯棋,鄭巖
(哈爾濱工程大學 智能科學與工程學院, 黑龍江 哈爾濱 150001)
傳統的近似法[1-2]、馬爾可夫鏈法[3-4]等生成模型學習到的數據具有人類可以理解的分布規律,但是這種分布規律不能被計算機很好地理解。此外,由于數據分布的復雜性,在對其進行數據建模時往往存在一定的困難,導致生成圖像質量不高。2014 年Goodfellow 等[5]借鑒了零和博弈中二人博弈的思想,提出一種基于對抗思想的無監督生成模型-生成對抗網絡(generative adversarial networks, GANs),并持續受到相關學者們的關注。由于無需對復雜數據進行建模便可以取得質量較高的生成效果,GANs及其衍生模型近年來被應用于各個領域,并且取得了巨大的成功[6-12]。除此之外,GANs 能在深度學習領域引起如此巨大的轟動,還因為GANs 在理論方面具有許多引人思考的地方[13],如Casanova 等[14]從核密度估計技術中獲得啟發,提出一種對復雜數據集進行建模的生成對抗網絡(instance-conditioned generative adversarial networks, IC-GAN)。IC-GAN 不僅獲得了更優秀的生成效果,而且也為遷移學習的發展提供重要的貢獻。
但是,標準的GANs 在訓練過程中是通過判別器D 的輔助,尋找生成器和判別器兩個模型損失函數的最小值點,這相比于傳統的只訓練一個網絡的情況來說會存在訓練上的困難[15]。標準的GANs 網絡在訓練的過程中,由于判別器相較于生成器收斂速度更快,通常很快就達到收斂點,此時判別器將很難繼續正確地指導生成器。而相比于判別器模型,生成器模型往往具有更深的網絡結構,由于缺少了有效指導,使得生成器往往會出現梯度消失現象[16]。GANs 面臨的另一個嚴重問題是模式崩潰問題,表現為生成器所生成的結果單一,缺乏多樣性。這是因為傳統的判別器能力較弱,在小批次訓練中往往不能正確地區分數據來源[17],從而導致在反向傳播過程中無法給予生成器有意義的指導,使生成器更傾向于生成能夠獲得判別器更高評分的分布結果。正是由于這些錯誤的“指導”,導致生成器生成自認為正確的分布來欺騙判別器,輸出質量極差的生成結果,同時產生模式崩潰現象。同時,由于訓練初期判別器的性能較弱,這也為模式崩潰現象的發生提供了可能。對于生成器來說,由于生成器在圖像生成過程中每步獨立進行生成,下一層無法知曉上一層所學習到的特征,導致生成過程中存在一定程度上的信息丟失,生成的圖像具有極大相似性且導致生成圖像具有不連續的語義結構、質量較差。
針對標準GANs 存在的模式崩潰等一系列問題,學者們從不同的角度提出改進方案。而在眾多的改進方案中,主流思路有兩種。一是對模型拓撲結構進行改進,優化生成器、判別器模型,如Radford 等[18]提出的深度卷積生成對抗網絡(deep convolution generative adversarial networks, DCGAN),通過引入深度卷積來提高模型對特征的學習能力,增強訓練的穩定性,提高生成圖像的質量;Karras 等[19]提出的漸進式增長的生成對抗網絡(progressive growing of GAN, proGAN)采用逐層漸進式生成方法,隨著訓練輪次的提高不斷增加生成模型的結構來逐步提高高分辨率圖像的生成質量以及多樣性,解決模型訓練穩定性的問題;史彩娟等[17]提出的殘差生成對抗網絡(residual generative adversarial networks, Re-GAN)模型在生成模型中引入殘差網絡思想進行特征融合,有效提高了訓練穩定性,緩解梯度消失現象。Mirza等[20]提出的條件生成對抗網絡(conditional generative adversarial networks, cGAN)、Odena 等[21]提出的輔助分類器生成對抗網絡(auxiliary classifier generative adversarial networks, AC-GAN)以及Zhou 等[22]提出的Omni-GAN 等模型,通過增加輔助信息來控制生成類別,解決模式崩潰等問題;Nguyen 等[23]提出雙判別器模型(dual discriminator generative adversarial networks, D2GAN)來解決模式崩潰問題,D2GAN 中一個判別器會給符合分布的數據樣本給予高獎勵,而另外一個鑒別器卻更喜歡生成器生成的數據。DCGAN 等模型雖然在一定程度上提高了生成圖像的質量,減輕了模式崩潰等問題,但是沒有從根本上解決梯度問題。比如當DCGAN 的層數增加時,會造成梯度消失的情況。
另一種是通過改進損失函數、增加懲罰項、進行不同正則化等方法來提高GANs 訓練穩定性,解決模式崩潰問題。如Arjovsky 等[24]提出的瓦瑟斯坦生成對抗網絡(Wassertein generative adversarial networks, WGAN)將原始GANs 模型中的損失函數替換為W-距離,在一定程度上解決了模式崩潰問題;帶梯度懲罰的WGAN(WGAN-GP)[25]通過加入梯度懲罰項,有效地解決了WGAN 中存在的梯度爆炸問題;Miyato 等[13]提出的光譜歸一化生成對抗網絡(spectral normalization generative adversarial networks, SN-GAN)通過譜范數歸一化方法,有效解決了WGAN 對判別器限制條件過強而無法滿足1-Lipschitz 性質的問題,提高了訓練的穩定性;Bhaskara 等[26]提出的分段梯度歸一化生成對抗網絡(piecewise gradient normalization for generative adversarial networks, GraN-GAN)通過對輸入進行梯度正則化處理,使在應用W-距離作為損失函數的GANs 模型訓練中訓練更加穩定。但是,WGAN 及其變體所采用的BN 模型在小批量訓練中無法使用[17]。
受Re-GAN 的啟發,本文將多尺度特征融合引入到生成器模型,在轉置卷積中應用不同尺寸感受野以及步長,通過通道融合方式進行特征融合,避免圖像生成過程中的特征丟失。受D2GAN的啟發,引入雙判別器模型,來解決訓練前期由于判別器能力不足引起的模式崩潰現象。同時采用多尺度特征融合思想,提高判別器對不同特征的感知能力,以提高其對輸入圖像來源的判斷能力,在反向傳播時為生成器提供更多有意義的信息。通過對生成器和判別器結構的改進,本文提出基于多尺度特征融合的雙判別器殘差生成對抗網絡(dual discriminator residual generation adversarial network with multi-scale feature fusion, DDRMGAN)模型。
生成對抗網絡(GANs)是一類無需對復雜數據進行建模,便可以從數據集中學習到數據分布的無監督生成類網絡模型。簡單來說,GANs 由生成器G 和判別器D 兩個模塊構成。生成器G從真實數據樣本中捕捉數據潛在的分布規律,生成一組由隨機數構成的偽樣本,判別器D 盡可能地區分輸入樣本來自于真實分布還是偽分布。通過生成器G 與判別器D 的相互對抗,不斷提高生成器的生成樣本能力,最終達到納什均衡。因此,生成對抗網絡整體的訓練目標是減少偽樣本與真實樣本之間的差異。傳統GANs 的網絡模型結構如圖1 所示。

圖1 生成對抗網絡結構Fig.1 Structure of generative adversarial network
本文提出的基于多尺度特征融合的雙判別器殘差生成對抗網絡(DDRM-GAN)與傳統的GANs模型相比,具有以下兩個方面的優勢。一方面,將ResNet[27]與多尺度特征融合思想引入到生成器模型,使生成模型在圖像生成過程中所學習到的特征傳遞過程更加連續,在一定程度上避免了由于學習獨立性所引起的特征丟失,使生成圖像語義更加連續、種類更加多樣。另一方面,改進判別器網絡結構,使判別器能夠更好地分辨輸入圖像來源,同時使用雙判別器模型,為生成器提供更有價值的指導,避免模式崩潰、梯度消失等問題的發生。
為了應對生成器各層獨立學習這一特點,提高模型對生成圖像的全局把控并減小圖像生成過程中的特征丟失,本文根據殘差網絡思想采用雙尺寸卷積核的轉置卷積來進行特征傳遞,利用DenseNet[28]結構中的通道concatenate 操作進行特征融合,可以更好地利用不同尺度特征圖的語義信息,通過增加channel 的方式實現較好的性能。圖2 為DDRM-GAN 的生成器模型在生成64 像素×64 像素尺寸圖像時的拓撲結構。

圖2 DDRM-GAN 的生成器結構Fig.2 Structure of the generator of DDRM-GAN
在64 像素×64 像素尺寸的圖像生成任務中,DDRM-GAN 的生成器中包含5 個卷積核尺寸為2×2 的轉置卷積層、3 個卷積核尺寸為4×4 的轉置卷積層以及1 個卷積核尺寸為1×1 的轉置卷積層、進行了3 次特征疊加操作,將輸入的(100,1)維高斯隨機噪聲映射為(64,64,3)維的RGB 圖像或者(64,64,1)的灰度圖像。在整個生成模型中,利用轉置卷積對圖像進行上采樣操作,在轉置卷積操作之后應用批標準化操作(batch normalization)來防止梯度爆炸以及梯度消失現象,同時可以加快網絡收斂,防止過擬合情況發生。在對通道維度進行改變時,采用卷積核尺寸和步長均為1 的卷積操作進行,保證網絡可以學習到對應特征的權重,保留有用的特征,在一定程度上避免模式崩潰現象發生。在對激活函數的選擇上,中間層采用Leaky-Relu 函數,輸出層采用Tanh 函數,以此提高生成圖像的質量,同時在一定程度上保證了訓練的穩定性。
傳統的生成對抗網絡中,因為在訓練初期判別器的能力不強,可能會對生成器進行錯誤的引導,從而導致模式崩潰等現象發生。為了解決這一問題,本文使用雙判別器模型,共同對生成器進行指導。
在雙判別器模型中,其中一個判別器用于對原數據集以及生成器生成的數據進行判定。而另一個判別器的輸入則是生成器圖像與原數據集經過同一圖像簡單處理后(如上下鏡像翻轉等)的圖像。理想情況下,偽圖像與真實圖像經過同一簡單處理后,判別器無法判別其來自哪個分布。
為了增加判別網絡對不同尺度特征的提取,提高判別器的判別能力,本文采用多尺度特征融合結構來代替傳統的多層卷積網絡,網絡拓撲如圖3 所示。判別器首先對輸入圖像進行一次卷積操作,提取圖像特征。隨后將此特征分別用3×3、5×5以及7×7 3 種不同尺寸的卷積核進行特征提取。將三路特征進行特征融合,將融合后的特征進行一次卷積操作后輸入到全連接層,輸出判別概率。實驗證明,多尺度特征提取網絡不僅可以提高對輸入來源判斷的準確率,在反向傳播過程中給予生成器更有意義的指導信息,并且在生成更高分辨率圖像的時候也表現出令人滿意的效果。

圖3 DDRM-GAN 的判別器模型結構Fig.3 Structure of the discriminator of DDRM-GAN
與標準的GANs 網絡不同,DDRM-GAN 由兩個判別器網絡與一個生成器網絡共同組成。DDRMGAN 的整體拓撲結構如圖4 所示。

圖4 DDRM-GAN 的網絡結構Fig.4 Network structure of DDRM-GAN
判別器與生成器的損失函數采用標準的對抗損失[5],不同的是生成器的損失函數在原始GAN的基礎上增加了D2項。DDRM-GAN 中判別器的損失函數如下所示:
式中:G′(z) 為G(z) 經過鏡像翻轉所得圖像,p′data為真實圖像數據經過鏡像翻轉后的數據分布。
生成器的損失函數如下:
為了驗證DDRM-GAN 的有效性,分別在MNIST、CelebA 及LSUN 數據集上進行了測試。在測試中所應用的評估指標分別為:(fréchet inception distance, FID) 和 (inception score, IS)。
MNIST 數據集是一個具有70 000 張手寫數字的圖像數據集,其中包含60 000 張訓練集圖片和10 000 張測試集圖片,是計算機視覺領域最基礎、應用最廣泛的數據集之一。CelebA 數據集是一個包含20 多萬張人臉圖像的大型數據集,被廣泛應用于圖像生成、人臉檢測等領域的訓練。LSUN是一個場景理解圖像數據集,主要包含了臥室、固房、客廳、教室等場景圖像,是計算機視覺領域的重要數據集之一。此次實驗采用LSUN 數據集中的tower 數據集,共70 萬張不同尺寸、不同場景的訓練集數據。
IS 從信息熵的角度對生成圖像進行評估,它可以對生成圖像的質量以及多樣性進行衡量。但是由于IS 指標并沒有考慮真實的數據影響,因此不能反應生成圖像是否逼近真實圖像,在某些角度來說沒有意義。
FID 是圖像生成領域對生成圖像進行評估時最常用的指標,它可以度量兩個圖片數據集的相似度。而且,FID 對噪聲更加魯棒,更適合描述GANs 模型的多樣性。
此次實驗中,為證明DDRM-GAN 的有效性,CelebA、LSUN 以及MNIST 數據集的圖像在不同模型中均被轉換成64×64 分辨率進行訓練。設定輸入噪聲為100 維服從高斯分布的隨機序列,學習速率設置為0.000 5,設置batch 大小為64,迭代次數為500 000 輪。
訓練時,將數據集圖像與生成器生成圖像送入到正向判別器D1,將數據集數據與生成器生成數據分別進行上下翻轉操作后送入到翻轉判別器D2,每一輪依次對翻轉判別器D2、正向判別器D1、生成器G 進行訓練,并且對每個模型進行參數更新。訓練后,取最優權重進行最終的單幅圖像輸出。算法的步驟如下:
首先,初始化G、D1、D2權重
其次,設置迭代輪次并循環執行以下操作:
1) 從z~N(0,1)中采樣,利用G 生成偽圖像數據xi;
2) 將xi進行圖像上下翻轉操作,得到翻轉圖像x′i;
3) 從 χ中采樣真實數據xj;
4) 從 χ′中 采樣翻轉的真實數據x′j;
5) 將xi和xj送入到D1,并且計算D1的損失函數LD1;
6) 將x′i和x′j送入到D2,并且計算D2的損失函數LD2;
7) 根據式(3),計算生成器G 的損失函數LG;
8) 利用Adam 算法依次更新D1、D2、G 的權重。
循環結束后,選擇最優權重并保存模型。
為了對比DDRM-GAN 的性能,將DDRMGAN 與GAN、WGAN、WGAN-GP、DC-GAN 分別在MNIST、LSUN 以及CelebA 數據集上進行實驗。采用相同的訓練次數,取訓練過程中最優的生成器權重,生成20 000 張偽圖像并且與原始數據集進行FID 以及IS 指標計算。
不同的模型在不同的訓練集上訓練后,生成結果的FID 與IS 指標如表1 所示,表中黑體表示每一列中的最優結果。

表1 不同GANs 在MNIST、LSUN 以及CelebA 數據集的測試結果Table 1 Test results of MNIST, LSUN and CelebA datasets on different GANs
表1 的數據顯示了不同模型的性能,本文的模型(DDRM-GAN)在3 個數據集上都取得了最好的成績。在MNIST 手寫數據集上,DDRMGAN 的FID 指標相比于DC-GAN 降低了15.28%,IS 指標相較于WGAN-GP 提高了8.94%。在LSUN 數據集上,DDRM-GAN 的FID 指標相比于WGAN-GP 降低了20.73%,IS 指標提高了21.72%。在CelebA 數據集上,DDRM-GAN 的FID 指標相比于WGAN-GP 降低了39.46%,IS 指標相較于WGAN 提高了13.44%。
圖5~7 分別給出了不同模型在CelebA、MNIST和LSUN 數據集上的生成圖像。可以看出,在3 個數據集上,與傳統的GAN、WGAN 等模型相比,DDRM-GAN 模型生成的圖像質量最高,可分辨性最強而且生成的圖像種類更加豐富。直觀來看,DDRM-GAN 的性能更勝一籌。

圖5 不同模型在CelebA 數據集上的實驗結果Fig.5 Experimental results of different models on the CelebA dataset

圖6 不同模型在MNIST 數據集上的實驗結果Fig.6 Experimental results of different models on the MNIST dataset

圖7 不同模型在LSUN 數據集上的實驗結果Fig.7 Experimental results of different models on the LSUN dataset
本文在CelebA 數據集上進行消融實驗,進一步證明提出的DDRM-GAN 有效提高了生成圖像的質量和多樣性。消融實驗的內容包括:
1) 完整模型去除判別器中的多尺度特征融合結構(Full-mf);
2) 完整模型去除雙判別器結構,使用單一判別器進行生成實驗(Full-dd);
3) 完整模型去除生成器中的復雜連接(Full-cc)。
表2 給出了消融實驗的結果。為解決生成對抗網絡的模式崩潰問題,提高生成圖像的多樣性,本文引入雙判別器模型。相比于完整的模型,在去除雙判別器結構之后,在CalabA 數據集上,FID指標提升了74.02%,IS 指標下降了4.54%。為提高模型的生成質量,本文引入了多尺度特征融合的判別器結構和基于ResNet 的多尺度特征融合生成器結構。

表2 消融實驗結果對比Table 2 Comparison of ablation experiment results
在完整模型去除多尺度判別器模型,使用單一卷積結構的判別器模型時,FID 指標上升了29.25%,IS 指標下降了23.73%;在去除生成器復雜連接后,FID 指標上升了26.91%,IS 指標下降了35.44%。總的來說,DDRM-GAN 在保證生成圖像質量的條件下,有效地提升了生成偽圖像的多樣性,緩解了模型的模式崩潰現象。
為解決標準GANs 存在的訓練困難-如模式崩潰、梯度消失、梯度爆炸等問題,本文提出了基于多尺度特征融合的雙判別器殘差生成對抗網絡DDRM-GAN。將ResNet 思想與DenseNet 的特征融合方法應用于生成器,搭建了可以掌握圖像全局特征、減少特征丟失的生成器,解決在生成圖像過程中特征丟失的問題。將多尺度特征融合思想應用于判別器網絡,并且將數據集與生成圖像進行簡單圖像處理后提出雙判別器模型,共同完成對生成器的指導工作,緩解了模式崩潰以及梯度消失等問題,提高了模型的魯棒性。將模型在MNIST、LSUN 以及CelebA 數據集上進行測試,DDRM-GAN 均表現出良好的性能,取得了令人滿意的FID 以及IS 值。但是隨著雙判別器以及多尺度融合思想的引入,模型參數量提高,訓練速度下降,這也是DDRM-GAN 需要改進的地方。