李秋麗 馬 力
(西安郵電大學計算機學院 陜西 西安 710061)
圖像生成問題一直以來都是一個具有挑戰性的問題。由于圖像生成模型的建模非常困難,傳統的生成模型都需要先定義一個概率分布的參數表達式,然后通過最大化似然函數來訓練模型,但模型的梯度表達式展開式中通常都含有期望項,使得在大規模數據下變得極難求解。為了克服計算復雜性和求解準確性的困難,生成式對抗網絡[1](Generative Adversarial Networks,GAN)被提出。
GAN的核心思想是同時訓練兩個相互對抗的模型:判別模型(Discriminative Model,D)和生成模型(Generative Model, G),判別模型判斷生成樣本和真實樣本的真假,生成模型擬合生成新的樣本,讓判別模型信以為真。由于GAN有著強大的建模能力,可以捕捉到高維的、難以追蹤的真實數據分布,以及無須人為地構造損失函數和馬爾可夫鏈去訓練或者生成樣本等優點,使其在近幾年受到大量的關注且被運用于圖像風格遷移[2-4]、圖像超分辨率重建[5-7]、圖像翻譯[8-9]、基于圖像內容檢索和分類[10]、圖像生成[11-12]等不同的領域,但也存在著模型訓練不穩定,收斂困難,梯度消失以及梯度爆炸等明顯的缺點。針對這些缺點,研究者們提出了各種各樣的改進生成網絡模型。2015年Radford等[13]提出深度卷積生成對抗網絡(DCGAN),其本質是GAN與CNN相結合的生成網絡模型,在結構上使用卷積取代池化和引入批規范化操作等方法使得生成網絡訓練穩定性和生成圖像的質量有了提高。2017年Gulrajani等[14]提出了一種Wasserstein GAN(WGAN)圖像生成模型,使用從低分辨率圖像開始在訓練時逐步添加更高分辨率細節的層次,從而大大加快了訓練速度,提高了模型的穩定性。同年提出加強版的WGAN模型,WGAN梯度懲罰(Wasserstein Generative Adversarial Networks-Gradient Penalty,WGAN-GP)[15],利用梯度懲罰取代WGAN中權重剪枝實施Lipschitz約束方法,在訓練的過程中,幾乎不需要超參數調參,達到了訓練穩定和成功訓練多種針對生成任務的GAN架構的目的。雖然目前GAN的衍化模型從優化損失函數方面提高生成圖像的精度與收斂的速度有驚人的成效,但仍有提高的空間。
針對以上分析,本文提出一種結合頻譜規范化和自注意力機制的DCGAN模型,將頻譜規范化引入判別器的每層卷積中,使判別器的參數矩陣滿足Lipschitz約束;將自注意力機制引入生成器中,使網絡有目的地學習,得到細節更加完善的圖像。實驗結果表明,改進的DCGAN模型能夠提高圖像生成質量、穩定性和收斂速度。
GAN由生成網絡與判別網絡構成,生成網絡以生成能使判別網絡判別為真的樣本為優化目標,判別網絡則以盡可能準確地區分樣本真偽為優化目標,二者以“二元極大極小博弈”的方式進行對抗學習,當極大極小博弈對抗學習達到“納什均衡”時,模型的生成效果最好。其原理如圖1所示,G從真實樣本中捕獲數據分布映射到某個新的數據空間,輸出生成的數據記作G(Z)。將生成樣本G(Z)和真實數據X同時輸入判別器D,輸出為一個一維標量或者概率值,代表輸入為真的概率,數值越大,是真實樣本的概率越大,反之認為輸入的是生成樣本,D把輸出結果反饋給G,使G生成的數據與真實樣本逐漸一致,最終達到“納什均衡”。

圖1 生成對抗網絡模型
GAN模型的優化實際上是一個“二元非凸最優化”問題,目標函數定義為:
Ez~Pz(z)[log(1-D(G(z)))]
(1)
式中:前一項為判別網絡優化目標,使得輸入真實數據時,目標函數盡量大,判斷其為真實樣本;后一項為生成網絡優化目標,當輸入生成數據時,D(G(Z))越接近1,表明生成器成功欺騙判別器,使其誤認為此時輸入的是真實數據。如果將G(Z)的數據分布記為PG,訓練集中樣本分布為PX,當PG=PX時,實現生成樣本的數據分布與真實數據的分布完全一致,達到生成真實樣本的目的。
DCGAN模型結合了GAN訓練過程簡單且計算量小、CNN的特征提取能力,以及更好的空間信息感知能力的優點,并且在GAN網絡架構上做出了如下改變:
(1) 判別網絡和生成網絡中的所有池化層分別使用步幅卷積和微步幅度卷積進行替換。
(2) 在生成網絡和判別網絡上使用批處理規范化(Batch Norm,BN)。
(3) 使用卷積層和轉置卷積層分別替代判別網絡和生成網絡中的全連接層。
(4) 在生成網絡中,除最后輸出層使用Tanh激活函數外,其他層均采用ReLU激活函數。
(5) 在判別網絡的所有層上使用LeakyReLU激活函數。其生成器結構如圖2所示。

圖2 DCGAN生成器結構
傳統的GAN模型通過低分辨率圖像中的固定空間局部點來生成高分辨率細節特征,很容易學習到紋理特征,但難以捕捉到圖像中特定的結構和幾何特征,而加入自注意力機制的GAN模型可以直接通過計算圖像中任意兩個像素點之間的關系,一步到位地獲取圖像的全局幾何特征,從冗雜的信息中選擇出有價值的信息[16]。自注意力模塊的原理如圖3所示。

圖3 自注意力模塊結構
圖3中的x表示前一個隱藏層的圖像特征;f(x)、g(x)、h(x)都是1×1的卷積,表示圖像特征乘以不同權重矩陣后得到的兩個特征空間;將f(x)輸出轉置,并與g(x)的輸出相乘,再經過分類器Softmax歸一化得到一個注意力圖βj,i,公式如下:
(2)
將得到的注意力圖和h(x)逐像素點相乘,得到自適應的注意力特征圖,把全局信息和局部信息整合到一起,公式如下:
(3)
式中:Wh為h(xi)卷積層的權重矩陣;xi為第i個被提取的圖像特征圖。
注意力層的最終輸出yi表示全局空間和局部信息的整合。為了兼顧鄰域信息和遠距離特征相關性,引入一個過渡參數r,初始值為0,逐步將權重分配到別的遠距離特征細節上,公式如下:
yi=roi+xi
(4)
生成對抗網絡研究中的一個挑戰是其訓練的不穩定性,而頻譜規范化(Spectral Normalization,SN)中的權重標準化技術可以穩定判別器的訓練[17-18]。其核心思想是使傳統GAN判別器的參數矩陣加上Lipschitz約束,讓每層網絡的網絡參數除以該層參數矩陣的譜范數,滿足Lipschitz等于1的約束條件,其公式如下:
(5)
式中:σ(W)是權重W的二范式。如果對于判別器的每層權重W都做式(5)的譜標準化,可以將D看作一個函數隱射,即可將其Lipschitz約束到1以下,從而產生相較之前的訓練穩定技術更高質量或者質量相當的圖片。
結合譜標準化和自注意力機制的深度卷積對抗生成網絡模型的流程如圖4所示。模型主要由加入注意力模塊的生成網絡、加入頻譜歸一化的判別網絡、計算生成器和判別器的損失函數三個主要部分組成。

圖4 改進的DCGAN模型流程
判別網絡采用五層的卷積神經網絡,其模型結構如表1所示。判別網絡的輸入為64×64的RGB圖片。經過4次2D卷積進行特征提取后將所得特征圖拉長為8 192維向量,使用在(-1,1)區間內取值變化明顯的Sigmoid函數進行真偽二分類。在判別網絡全局取消池化層,使用步幅卷積代替,用以減少特征損失并在所有層增加批歸一化和頻譜規范化操作。雖然批處理規范化有助于降低網絡對初始參數的過度依賴,防止初始化參數過差;防止梯度消失,將梯度傳遞到網絡每一層;防止生成器收斂到同一點,提高生成樣本的多樣性;降低網絡的震蕩,提高網絡訓練的穩定性。但加入頻譜規范化可以使整個模型學習到更好的生成器,提高網絡整體性能。除輸出層外,全局采用斜率為0.2的LeakyReLU激活函數。

表1 判別網絡模型
生成網絡與判別網絡相對應,采用五層轉置卷積神經網絡進行特征展開,其模型結構如表2所示。生成網絡將輸入100維噪聲投影到8 192維特征向量并進行變形后,先作為轉置卷積的輸入進行逐層展開,每層與判別網絡中的尺寸相對應,最終輸出一張64×64像素的RGB圖片。生成網絡同樣在全局使用ReLU激活函數并增加批歸一化操作,在輸出層采用能夠保持非線性單調上升或下降的tanh激活函數,使得生成的圖像在色調分布上更加平緩。

表2 生成網絡模型
在生成網絡中加入自注意力機制時,需要將表2的第二層轉置卷積層提取的特征圖經過三個核為1的卷積層被變換到三個特征空間f(x)、g(x)和h(x),其中:f(x)用于提取像素特征;g(x)用于提取全局特征。接著通過對f(x)與g(x)的變換計算得到注意力圖,然后將注意力圖中的像素與h(x)中的像素逐點相乘得到注意力特征圖。而輸出的注意力特征圖會進入下一個注意力機制網絡中繼續特征提取與學習的過程,即每隔兩層轉置卷積層加入一個注意力模塊。因此生成網絡需要加入2個注意力模塊,得到一幅64×64像素的RGB圖片。生成網絡結構如圖5所示。

圖5 生成網絡結構
本文實驗在CelebA數據集和Cartoon動漫人物頭像數據集上進行,使用的優化器是Adam,初始學習率為0.000 2,批量大小batch_size為64,在Intel(R)Xeon(R)CPU E5-262 v4@ 2.10 GHz處理器、一塊NVIDIA Tesla P100 GPU顯卡、TensorFlow環境下進行。為了方便實驗結果進行比較,將數據集樣本尺寸設置為64×64大小。
CelebA數據集包含202 600幅人臉圖片,其中200 000幅圖像作為訓練樣本,2 600幅圖像作為測試樣本。實驗中,將訓練樣本迭代訓練60個周期,迭代次數從0 epoch開始,每個周期迭代訓練7 000次。
圖6是結合頻譜規范化和注意力機制的DCGAN生成的樣本。在實驗中,生成的圖像在第1次迭代時,模型就學習到了大致的人臉輪廓,并且具有一定的多樣性,但圖片噪聲較大;經過10次迭代后,圖像較為平滑,人臉五官和背景逐漸清晰,但兩者的更多特征仍有待學習;經過30次迭代后,生成器已經能夠生成很清晰且具有多樣性的樣本。當到達60次迭代后,生成器生成的圖像在人臉五官、發型和背景等部分的紋理細節信息更加豐富、清晰,與真實樣本相似度較高。

圖6 CelebA生成樣本
圖7和圖8分別表示DCGAN與加入頻譜規范化的DCGAN的判別器和生成器的損失函數變化對比。圖7的判別器損失函數表示真實數據與生成數據誤差之間的差值,DCGAN的損失值變化幅度整體上較大,訓練至120 000步和190 000步時,損失值變化幅度達到最大;而加入頻譜規范化的DCGAN的損失值變化整體上比較平緩,損失值曲線也較平滑。圖8中,兩者生成器損失值變化幅度的平緩度對比效果更加明顯,表明將頻譜規范化加入判別器可以提高模型的訓練穩定性。

圖7 判別器損失變化趨勢對比

圖8 生成器損失變化趨勢對比
圖9為加頻譜范數、注意力機制的DCGAN(DCGAN-SN-SA),加頻譜范數的DCGAN(DCGAN-SN),加自注意力機制的DCGAN(DCGAN-SA)與深度卷積對抗網絡(DCGAN)的生成樣本對比圖。經過30次的迭代后,DCGAN-SN和DCGAN-SA模型生成的樣本與DCGAN模型相比,人臉五官和背景比較清晰,圖片比較平滑,還存在一定的噪聲;但DCGAN-SA模型生成的樣本與DCGAN-SN模型相比,圖像的質量稍微高一點;DCGAN-SN-SA模型生成的樣本紋理細節部分最清晰,逼真度最高。因此DCGAN-SN-SA模型收斂速度更快,生成樣本質量更好。

圖9 CelebA模型生成樣本對比圖
Cartoon數據集包含51 223幅動漫人物頭像圖片,其中50 000幅圖片作為訓練樣本,1 223幅圖片作為測試樣本。實驗中,將訓練樣本迭代訓練60個周期,迭代次數從0 epoch開始,每個周期迭代訓練5 000次。
圖10是結合頻譜規范化、自注意力機制的DCGAN生成的樣本,在實驗中,生成的圖像在第1次迭代時,模型就學習到了大致的動漫人物頭像輪廓,并且具有一定的多樣性,但圖片噪聲比較大;經過10次迭代后,圖像較為平滑,逐漸清晰,但更多樣本的特征仍然有待學習;經過30次迭代后,生成的圖像較清晰且具有多樣性。當到達60次迭代后,生成的圖片具有高度的逼真性。

圖10 Cartoon生成樣本
圖11為使用與CelebA實驗相同的模型對比圖,經過30次的迭代后,只有結合頻譜規范化、自注意力機制的DCGAN模型(DCGAN-SN-SA)生成的樣本發型、五官等紋理細節部分最清晰,與真實樣本相似度最高,其他模型生成的樣本都存在噪聲且不夠平滑。因此DCGAN-SN-SA模型收斂速度更快,生成樣本質量更好。

圖11 Cartoon模型生成樣本對比圖
為了定量地評估生成圖片的質量,本文使用了Inception Score(IS)評估標準對生成的5 000幅圖片進行10次平均評估,數值越大代表生成的圖像有著更好的質量和多樣性。表3為本文方法與其他模型相比較的IS值。

表3 不同模型IS值對比圖
本文提出一種結合譜標準化、注意力機制的深度卷積對抗生成網絡模型,將譜標準化的權重標準化技術運用到判別器中和將自注意力機制引入生成器中。相比于目前通過優化損失函數來提高模型整體性能的生成對抗網絡方法,如WGAN、WGAN_GP、LSGAN等,該方法經標準數據集CelebA、動漫人物頭像Cartoon和定量的質量評估標準IS測試表明,模型的訓練過程穩定性以及圖像生成質量確有提高。但同時也發現,模型在訓練一些復雜的藝術肖像時,特征學習方面有一定的局限性。但總體來說,對紋理細節相對簡單的樣本進行特征學習時,該方法仍是一種較為理想的模型。