李秋麗 馬 力
(西安郵電大學(xué)計(jì)算機(jī)學(xué)院 陜西 西安 710061)
圖像生成問(wèn)題一直以來(lái)都是一個(gè)具有挑戰(zhàn)性的問(wèn)題。由于圖像生成模型的建模非常困難,傳統(tǒng)的生成模型都需要先定義一個(gè)概率分布的參數(shù)表達(dá)式,然后通過(guò)最大化似然函數(shù)來(lái)訓(xùn)練模型,但模型的梯度表達(dá)式展開式中通常都含有期望項(xiàng),使得在大規(guī)模數(shù)據(jù)下變得極難求解。為了克服計(jì)算復(fù)雜性和求解準(zhǔn)確性的困難,生成式對(duì)抗網(wǎng)絡(luò)[1](Generative Adversarial Networks,GAN)被提出。
GAN的核心思想是同時(shí)訓(xùn)練兩個(gè)相互對(duì)抗的模型:判別模型(Discriminative Model,D)和生成模型(Generative Model, G),判別模型判斷生成樣本和真實(shí)樣本的真假,生成模型擬合生成新的樣本,讓判別模型信以為真。由于GAN有著強(qiáng)大的建模能力,可以捕捉到高維的、難以追蹤的真實(shí)數(shù)據(jù)分布,以及無(wú)須人為地構(gòu)造損失函數(shù)和馬爾可夫鏈去訓(xùn)練或者生成樣本等優(yōu)點(diǎn),使其在近幾年受到大量的關(guān)注且被運(yùn)用于圖像風(fēng)格遷移[2-4]、圖像超分辨率重建[5-7]、圖像翻譯[8-9]、基于圖像內(nèi)容檢索和分類[10]、圖像生成[11-12]等不同的領(lǐng)域,但也存在著模型訓(xùn)練不穩(wěn)定,收斂困難,梯度消失以及梯度爆炸等明顯的缺點(diǎn)。針對(duì)這些缺點(diǎn),研究者們提出了各種各樣的改進(jìn)生成網(wǎng)絡(luò)模型。2015年Radford等[13]提出深度卷積生成對(duì)抗網(wǎng)絡(luò)(DCGAN),其本質(zhì)是GAN與CNN相結(jié)合的生成網(wǎng)絡(luò)模型,在結(jié)構(gòu)上使用卷積取代池化和引入批規(guī)范化操作等方法使得生成網(wǎng)絡(luò)訓(xùn)練穩(wěn)定性和生成圖像的質(zhì)量有了提高。2017年Gulrajani等[14]提出了一種Wasserstein GAN(WGAN)圖像生成模型,使用從低分辨率圖像開始在訓(xùn)練時(shí)逐步添加更高分辨率細(xì)節(jié)的層次,從而大大加快了訓(xùn)練速度,提高了模型的穩(wěn)定性。同年提出加強(qiáng)版的WGAN模型,WGAN梯度懲罰(Wasserstein Generative Adversarial Networks-Gradient Penalty,WGAN-GP)[15],利用梯度懲罰取代WGAN中權(quán)重剪枝實(shí)施Lipschitz約束方法,在訓(xùn)練的過(guò)程中,幾乎不需要超參數(shù)調(diào)參,達(dá)到了訓(xùn)練穩(wěn)定和成功訓(xùn)練多種針對(duì)生成任務(wù)的GAN架構(gòu)的目的。雖然目前GAN的衍化模型從優(yōu)化損失函數(shù)方面提高生成圖像的精度與收斂的速度有驚人的成效,但仍有提高的空間。
針對(duì)以上分析,本文提出一種結(jié)合頻譜規(guī)范化和自注意力機(jī)制的DCGAN模型,將頻譜規(guī)范化引入判別器的每層卷積中,使判別器的參數(shù)矩陣滿足Lipschitz約束;將自注意力機(jī)制引入生成器中,使網(wǎng)絡(luò)有目的地學(xué)習(xí),得到細(xì)節(jié)更加完善的圖像。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的DCGAN模型能夠提高圖像生成質(zhì)量、穩(wěn)定性和收斂速度。
GAN由生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)構(gòu)成,生成網(wǎng)絡(luò)以生成能使判別網(wǎng)絡(luò)判別為真的樣本為優(yōu)化目標(biāo),判別網(wǎng)絡(luò)則以盡可能準(zhǔn)確地區(qū)分樣本真?zhèn)螢閮?yōu)化目標(biāo),二者以“二元極大極小博弈”的方式進(jìn)行對(duì)抗學(xué)習(xí),當(dāng)極大極小博弈對(duì)抗學(xué)習(xí)達(dá)到“納什均衡”時(shí),模型的生成效果最好。其原理如圖1所示,G從真實(shí)樣本中捕獲數(shù)據(jù)分布映射到某個(gè)新的數(shù)據(jù)空間,輸出生成的數(shù)據(jù)記作G(Z)。將生成樣本G(Z)和真實(shí)數(shù)據(jù)X同時(shí)輸入判別器D,輸出為一個(gè)一維標(biāo)量或者概率值,代表輸入為真的概率,數(shù)值越大,是真實(shí)樣本的概率越大,反之認(rèn)為輸入的是生成樣本,D把輸出結(jié)果反饋給G,使G生成的數(shù)據(jù)與真實(shí)樣本逐漸一致,最終達(dá)到“納什均衡”。
圖1 生成對(duì)抗網(wǎng)絡(luò)模型
GAN模型的優(yōu)化實(shí)際上是一個(gè)“二元非凸最優(yōu)化”問(wèn)題,目標(biāo)函數(shù)定義為:
Ez~Pz(z)[log(1-D(G(z)))]
(1)
式中:前一項(xiàng)為判別網(wǎng)絡(luò)優(yōu)化目標(biāo),使得輸入真實(shí)數(shù)據(jù)時(shí),目標(biāo)函數(shù)盡量大,判斷其為真實(shí)樣本;后一項(xiàng)為生成網(wǎng)絡(luò)優(yōu)化目標(biāo),當(dāng)輸入生成數(shù)據(jù)時(shí),D(G(Z))越接近1,表明生成器成功欺騙判別器,使其誤認(rèn)為此時(shí)輸入的是真實(shí)數(shù)據(jù)。如果將G(Z)的數(shù)據(jù)分布記為PG,訓(xùn)練集中樣本分布為PX,當(dāng)PG=PX時(shí),實(shí)現(xiàn)生成樣本的數(shù)據(jù)分布與真實(shí)數(shù)據(jù)的分布完全一致,達(dá)到生成真實(shí)樣本的目的。
DCGAN模型結(jié)合了GAN訓(xùn)練過(guò)程簡(jiǎn)單且計(jì)算量小、CNN的特征提取能力,以及更好的空間信息感知能力的優(yōu)點(diǎn),并且在GAN網(wǎng)絡(luò)架構(gòu)上做出了如下改變:
(1) 判別網(wǎng)絡(luò)和生成網(wǎng)絡(luò)中的所有池化層分別使用步幅卷積和微步幅度卷積進(jìn)行替換。
(2) 在生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)上使用批處理規(guī)范化(Batch Norm,BN)。
(3) 使用卷積層和轉(zhuǎn)置卷積層分別替代判別網(wǎng)絡(luò)和生成網(wǎng)絡(luò)中的全連接層。
(4) 在生成網(wǎng)絡(luò)中,除最后輸出層使用Tanh激活函數(shù)外,其他層均采用ReLU激活函數(shù)。
(5) 在判別網(wǎng)絡(luò)的所有層上使用LeakyReLU激活函數(shù)。其生成器結(jié)構(gòu)如圖2所示。
圖2 DCGAN生成器結(jié)構(gòu)
傳統(tǒng)的GAN模型通過(guò)低分辨率圖像中的固定空間局部點(diǎn)來(lái)生成高分辨率細(xì)節(jié)特征,很容易學(xué)習(xí)到紋理特征,但難以捕捉到圖像中特定的結(jié)構(gòu)和幾何特征,而加入自注意力機(jī)制的GAN模型可以直接通過(guò)計(jì)算圖像中任意兩個(gè)像素點(diǎn)之間的關(guān)系,一步到位地獲取圖像的全局幾何特征,從冗雜的信息中選擇出有價(jià)值的信息[16]。自注意力模塊的原理如圖3所示。
圖3 自注意力模塊結(jié)構(gòu)
圖3中的x表示前一個(gè)隱藏層的圖像特征;f(x)、g(x)、h(x)都是1×1的卷積,表示圖像特征乘以不同權(quán)重矩陣后得到的兩個(gè)特征空間;將f(x)輸出轉(zhuǎn)置,并與g(x)的輸出相乘,再經(jīng)過(guò)分類器Softmax歸一化得到一個(gè)注意力圖βj,i,公式如下:
(2)
將得到的注意力圖和h(x)逐像素點(diǎn)相乘,得到自適應(yīng)的注意力特征圖,把全局信息和局部信息整合到一起,公式如下:
(3)
式中:Wh為h(xi)卷積層的權(quán)重矩陣;xi為第i個(gè)被提取的圖像特征圖。
注意力層的最終輸出yi表示全局空間和局部信息的整合。為了兼顧?quán)徲蛐畔⒑瓦h(yuǎn)距離特征相關(guān)性,引入一個(gè)過(guò)渡參數(shù)r,初始值為0,逐步將權(quán)重分配到別的遠(yuǎn)距離特征細(xì)節(jié)上,公式如下:
yi=roi+xi
(4)
生成對(duì)抗網(wǎng)絡(luò)研究中的一個(gè)挑戰(zhàn)是其訓(xùn)練的不穩(wěn)定性,而頻譜規(guī)范化(Spectral Normalization,SN)中的權(quán)重標(biāo)準(zhǔn)化技術(shù)可以穩(wěn)定判別器的訓(xùn)練[17-18]。其核心思想是使傳統(tǒng)GAN判別器的參數(shù)矩陣加上Lipschitz約束,讓每層網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)除以該層參數(shù)矩陣的譜范數(shù),滿足Lipschitz等于1的約束條件,其公式如下:
(5)
式中:σ(W)是權(quán)重W的二范式。如果對(duì)于判別器的每層權(quán)重W都做式(5)的譜標(biāo)準(zhǔn)化,可以將D看作一個(gè)函數(shù)隱射,即可將其Lipschitz約束到1以下,從而產(chǎn)生相較之前的訓(xùn)練穩(wěn)定技術(shù)更高質(zhì)量或者質(zhì)量相當(dāng)?shù)膱D片。
結(jié)合譜標(biāo)準(zhǔn)化和自注意力機(jī)制的深度卷積對(duì)抗生成網(wǎng)絡(luò)模型的流程如圖4所示。模型主要由加入注意力模塊的生成網(wǎng)絡(luò)、加入頻譜歸一化的判別網(wǎng)絡(luò)、計(jì)算生成器和判別器的損失函數(shù)三個(gè)主要部分組成。
圖4 改進(jìn)的DCGAN模型流程
判別網(wǎng)絡(luò)采用五層的卷積神經(jīng)網(wǎng)絡(luò),其模型結(jié)構(gòu)如表1所示。判別網(wǎng)絡(luò)的輸入為64×64的RGB圖片。經(jīng)過(guò)4次2D卷積進(jìn)行特征提取后將所得特征圖拉長(zhǎng)為8 192維向量,使用在(-1,1)區(qū)間內(nèi)取值變化明顯的Sigmoid函數(shù)進(jìn)行真?zhèn)味诸?。在判別網(wǎng)絡(luò)全局取消池化層,使用步幅卷積代替,用以減少特征損失并在所有層增加批歸一化和頻譜規(guī)范化操作。雖然批處理規(guī)范化有助于降低網(wǎng)絡(luò)對(duì)初始參數(shù)的過(guò)度依賴,防止初始化參數(shù)過(guò)差;防止梯度消失,將梯度傳遞到網(wǎng)絡(luò)每一層;防止生成器收斂到同一點(diǎn),提高生成樣本的多樣性;降低網(wǎng)絡(luò)的震蕩,提高網(wǎng)絡(luò)訓(xùn)練的穩(wěn)定性。但加入頻譜規(guī)范化可以使整個(gè)模型學(xué)習(xí)到更好的生成器,提高網(wǎng)絡(luò)整體性能。除輸出層外,全局采用斜率為0.2的LeakyReLU激活函數(shù)。
表1 判別網(wǎng)絡(luò)模型
生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)相對(duì)應(yīng),采用五層轉(zhuǎn)置卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征展開,其模型結(jié)構(gòu)如表2所示。生成網(wǎng)絡(luò)將輸入100維噪聲投影到8 192維特征向量并進(jìn)行變形后,先作為轉(zhuǎn)置卷積的輸入進(jìn)行逐層展開,每層與判別網(wǎng)絡(luò)中的尺寸相對(duì)應(yīng),最終輸出一張64×64像素的RGB圖片。生成網(wǎng)絡(luò)同樣在全局使用ReLU激活函數(shù)并增加批歸一化操作,在輸出層采用能夠保持非線性單調(diào)上升或下降的tanh激活函數(shù),使得生成的圖像在色調(diào)分布上更加平緩。
表2 生成網(wǎng)絡(luò)模型
在生成網(wǎng)絡(luò)中加入自注意力機(jī)制時(shí),需要將表2的第二層轉(zhuǎn)置卷積層提取的特征圖經(jīng)過(guò)三個(gè)核為1的卷積層被變換到三個(gè)特征空間f(x)、g(x)和h(x),其中:f(x)用于提取像素特征;g(x)用于提取全局特征。接著通過(guò)對(duì)f(x)與g(x)的變換計(jì)算得到注意力圖,然后將注意力圖中的像素與h(x)中的像素逐點(diǎn)相乘得到注意力特征圖。而輸出的注意力特征圖會(huì)進(jìn)入下一個(gè)注意力機(jī)制網(wǎng)絡(luò)中繼續(xù)特征提取與學(xué)習(xí)的過(guò)程,即每隔兩層轉(zhuǎn)置卷積層加入一個(gè)注意力模塊。因此生成網(wǎng)絡(luò)需要加入2個(gè)注意力模塊,得到一幅64×64像素的RGB圖片。生成網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 生成網(wǎng)絡(luò)結(jié)構(gòu)
本文實(shí)驗(yàn)在CelebA數(shù)據(jù)集和Cartoon動(dòng)漫人物頭像數(shù)據(jù)集上進(jìn)行,使用的優(yōu)化器是Adam,初始學(xué)習(xí)率為0.000 2,批量大小batch_size為64,在Intel(R)Xeon(R)CPU E5-262 v4@ 2.10 GHz處理器、一塊NVIDIA Tesla P100 GPU顯卡、TensorFlow環(huán)境下進(jìn)行。為了方便實(shí)驗(yàn)結(jié)果進(jìn)行比較,將數(shù)據(jù)集樣本尺寸設(shè)置為64×64大小。
CelebA數(shù)據(jù)集包含202 600幅人臉圖片,其中200 000幅圖像作為訓(xùn)練樣本,2 600幅圖像作為測(cè)試樣本。實(shí)驗(yàn)中,將訓(xùn)練樣本迭代訓(xùn)練60個(gè)周期,迭代次數(shù)從0 epoch開始,每個(gè)周期迭代訓(xùn)練7 000次。
圖6是結(jié)合頻譜規(guī)范化和注意力機(jī)制的DCGAN生成的樣本。在實(shí)驗(yàn)中,生成的圖像在第1次迭代時(shí),模型就學(xué)習(xí)到了大致的人臉輪廓,并且具有一定的多樣性,但圖片噪聲較大;經(jīng)過(guò)10次迭代后,圖像較為平滑,人臉五官和背景逐漸清晰,但兩者的更多特征仍有待學(xué)習(xí);經(jīng)過(guò)30次迭代后,生成器已經(jīng)能夠生成很清晰且具有多樣性的樣本。當(dāng)?shù)竭_(dá)60次迭代后,生成器生成的圖像在人臉五官、發(fā)型和背景等部分的紋理細(xì)節(jié)信息更加豐富、清晰,與真實(shí)樣本相似度較高。
圖6 CelebA生成樣本
圖7和圖8分別表示DCGAN與加入頻譜規(guī)范化的DCGAN的判別器和生成器的損失函數(shù)變化對(duì)比。圖7的判別器損失函數(shù)表示真實(shí)數(shù)據(jù)與生成數(shù)據(jù)誤差之間的差值,DCGAN的損失值變化幅度整體上較大,訓(xùn)練至120 000步和190 000步時(shí),損失值變化幅度達(dá)到最大;而加入頻譜規(guī)范化的DCGAN的損失值變化整體上比較平緩,損失值曲線也較平滑。圖8中,兩者生成器損失值變化幅度的平緩度對(duì)比效果更加明顯,表明將頻譜規(guī)范化加入判別器可以提高模型的訓(xùn)練穩(wěn)定性。
圖7 判別器損失變化趨勢(shì)對(duì)比
圖8 生成器損失變化趨勢(shì)對(duì)比
圖9為加頻譜范數(shù)、注意力機(jī)制的DCGAN(DCGAN-SN-SA),加頻譜范數(shù)的DCGAN(DCGAN-SN),加自注意力機(jī)制的DCGAN(DCGAN-SA)與深度卷積對(duì)抗網(wǎng)絡(luò)(DCGAN)的生成樣本對(duì)比圖。經(jīng)過(guò)30次的迭代后,DCGAN-SN和DCGAN-SA模型生成的樣本與DCGAN模型相比,人臉五官和背景比較清晰,圖片比較平滑,還存在一定的噪聲;但DCGAN-SA模型生成的樣本與DCGAN-SN模型相比,圖像的質(zhì)量稍微高一點(diǎn);DCGAN-SN-SA模型生成的樣本紋理細(xì)節(jié)部分最清晰,逼真度最高。因此DCGAN-SN-SA模型收斂速度更快,生成樣本質(zhì)量更好。
圖9 CelebA模型生成樣本對(duì)比圖
Cartoon數(shù)據(jù)集包含51 223幅動(dòng)漫人物頭像圖片,其中50 000幅圖片作為訓(xùn)練樣本,1 223幅圖片作為測(cè)試樣本。實(shí)驗(yàn)中,將訓(xùn)練樣本迭代訓(xùn)練60個(gè)周期,迭代次數(shù)從0 epoch開始,每個(gè)周期迭代訓(xùn)練5 000次。
圖10是結(jié)合頻譜規(guī)范化、自注意力機(jī)制的DCGAN生成的樣本,在實(shí)驗(yàn)中,生成的圖像在第1次迭代時(shí),模型就學(xué)習(xí)到了大致的動(dòng)漫人物頭像輪廓,并且具有一定的多樣性,但圖片噪聲比較大;經(jīng)過(guò)10次迭代后,圖像較為平滑,逐漸清晰,但更多樣本的特征仍然有待學(xué)習(xí);經(jīng)過(guò)30次迭代后,生成的圖像較清晰且具有多樣性。當(dāng)?shù)竭_(dá)60次迭代后,生成的圖片具有高度的逼真性。
圖10 Cartoon生成樣本
圖11為使用與CelebA實(shí)驗(yàn)相同的模型對(duì)比圖,經(jīng)過(guò)30次的迭代后,只有結(jié)合頻譜規(guī)范化、自注意力機(jī)制的DCGAN模型(DCGAN-SN-SA)生成的樣本發(fā)型、五官等紋理細(xì)節(jié)部分最清晰,與真實(shí)樣本相似度最高,其他模型生成的樣本都存在噪聲且不夠平滑。因此DCGAN-SN-SA模型收斂速度更快,生成樣本質(zhì)量更好。
圖11 Cartoon模型生成樣本對(duì)比圖
為了定量地評(píng)估生成圖片的質(zhì)量,本文使用了Inception Score(IS)評(píng)估標(biāo)準(zhǔn)對(duì)生成的5 000幅圖片進(jìn)行10次平均評(píng)估,數(shù)值越大代表生成的圖像有著更好的質(zhì)量和多樣性。表3為本文方法與其他模型相比較的IS值。
表3 不同模型IS值對(duì)比圖
本文提出一種結(jié)合譜標(biāo)準(zhǔn)化、注意力機(jī)制的深度卷積對(duì)抗生成網(wǎng)絡(luò)模型,將譜標(biāo)準(zhǔn)化的權(quán)重標(biāo)準(zhǔn)化技術(shù)運(yùn)用到判別器中和將自注意力機(jī)制引入生成器中。相比于目前通過(guò)優(yōu)化損失函數(shù)來(lái)提高模型整體性能的生成對(duì)抗網(wǎng)絡(luò)方法,如WGAN、WGAN_GP、LSGAN等,該方法經(jīng)標(biāo)準(zhǔn)數(shù)據(jù)集CelebA、動(dòng)漫人物頭像Cartoon和定量的質(zhì)量評(píng)估標(biāo)準(zhǔn)IS測(cè)試表明,模型的訓(xùn)練過(guò)程穩(wěn)定性以及圖像生成質(zhì)量確有提高。但同時(shí)也發(fā)現(xiàn),模型在訓(xùn)練一些復(fù)雜的藝術(shù)肖像時(shí),特征學(xué)習(xí)方面有一定的局限性。但總體來(lái)說(shuō),對(duì)紋理細(xì)節(jié)相對(duì)簡(jiǎn)單的樣本進(jìn)行特征學(xué)習(xí)時(shí),該方法仍是一種較為理想的模型。