楊耀坤,肖衛(wèi)國(guó),王 力
(北京控制與電子技術(shù)研究所,北京 100038)
自動(dòng)駕駛、AI診療等技術(shù)正在逐步進(jìn)入日常生活。這些新技術(shù)在研究和應(yīng)用過(guò)程中對(duì)圖像數(shù)據(jù)的需求量越來(lái)越大[1]。在現(xiàn)實(shí)世界里,由于各種客觀條件的限制,大規(guī)模的圖像數(shù)據(jù)往往難以取得[2]。訓(xùn)練數(shù)據(jù)不足的困境,阻礙了這些新技術(shù)的發(fā)展和應(yīng)用。如何生成逼真度高、多樣性豐富的圖像樣本已經(jīng)成為當(dāng)前人工智能領(lǐng)域的研究熱點(diǎn),而深度學(xué)習(xí)中的生成式模型正日漸成為圖像樣本生成的主流方法[3]。
然而當(dāng)面對(duì)小樣本圖像生成問(wèn)題時(shí),已有生成式模型的效果并不好。小規(guī)模數(shù)據(jù)集(即圖像尺寸維度遠(yuǎn)大于樣本集的數(shù)據(jù)規(guī)模)會(huì)影響生成式模型獲得滿意的圖像生成效果[4]。
針對(duì)小規(guī)模數(shù)據(jù)集圖像生成問(wèn)題,本文對(duì)原始GAN進(jìn)行了改進(jìn),提出了改進(jìn)的深度卷積生成式對(duì)抗網(wǎng)絡(luò)MDCGAN。相較原始的GAN,MDCGAN幾乎完全使用了卷積層代替全鏈接層,使用了帶步長(zhǎng)的卷積代替了上采樣。同時(shí)將條件信息y引入判別器和生成器中,條件信息y能夠?yàn)樯墒綄?duì)抗網(wǎng)絡(luò)增加條件,對(duì)生成數(shù)據(jù)起到監(jiān)督作用。通過(guò)手寫數(shù)字生成實(shí)驗(yàn)和建筑物輪廓生成實(shí)驗(yàn)證明,我們提出的MDCGAN能夠基于小規(guī)模圖像數(shù)據(jù)集生成逼真度高、多樣性豐富的圖像。
GAN的理論來(lái)自于二人零和博弈[5],在博弈過(guò)程中,雙方都會(huì)根據(jù)對(duì)方策略不斷更新自身策略,最終博弈雙方會(huì)達(dá)到納什均衡狀態(tài)。GAN的邏輯框架包括判別器和生成器兩部分。分別用D來(lái)表示判別器模型,用G來(lái)表示生成器型。生成模型用來(lái)學(xué)習(xí)真實(shí)數(shù)據(jù)的分布,其輸入為真實(shí)數(shù)據(jù)x。判別模型用來(lái)判斷數(shù)據(jù)的真?zhèn)?,其輸入為隨機(jī)變量z.GAN的計(jì)算流程與結(jié)構(gòu)如圖1所示。將生成器的輸出定義為G(z),并希望G(z)盡量服從真實(shí)數(shù)據(jù)x的分布pdata。
圖1 GAN的計(jì)算流程與結(jié)構(gòu)
GAN模型的損失函數(shù)如下
+Εz~pz(z)[log(1-D(G(z)))]
(1)
訓(xùn)練網(wǎng)絡(luò)D最大化logD(x),即最大化正確判別數(shù)據(jù)真?zhèn)蔚母怕?,?xùn)練網(wǎng)絡(luò)G最小化log(1-D(G(z))),即最大化D的損失函數(shù)。G隱式地定義了一個(gè)概率分布pg,在模型的訓(xùn)練過(guò)程中pg會(huì)逐漸收斂到數(shù)據(jù)的真實(shí)分布pdata.模型達(dá)到納什均衡狀態(tài)時(shí),概率分布pg=pdata,生成器G具備了擬合數(shù)據(jù)真實(shí)分布的能力。
針對(duì)小樣本圖像生成問(wèn)題,本文提出了改進(jìn)的MDCGAN,MDCGAN可以視為一種帶條件約束的DCGAN。MDCGAN沿用了DCGAN的網(wǎng)絡(luò)結(jié)構(gòu),MDCGAN模型采用卷積層取代全鏈接層,采用帶步長(zhǎng)的卷積運(yùn)算取代上采樣運(yùn)算[6]。將條件信息y引入判別器和生成器中,條件信息y能夠?yàn)樯墒綄?duì)抗網(wǎng)絡(luò)增加條件,對(duì)生成數(shù)據(jù)起到監(jiān)督作用。條件信息y既可以是對(duì)象層面的圖像類別標(biāo)簽,也可以是像素層面的圖像語(yǔ)義分割標(biāo)注,如圖2和圖3所示。
圖2 圖像類別標(biāo)簽
圖3 圖像語(yǔ)義分割標(biāo)注
需注意的是,與條件生成式對(duì)抗網(wǎng)絡(luò)(CGAN)模型只在輸入時(shí)連接條件變量y不同[7],為了增強(qiáng)條件變量y在訓(xùn)練中的引導(dǎo)作用,在模型中每一層的輸入數(shù)據(jù)都要連接條件變量y。
MDCGAN的生成器包含兩個(gè)全連接層和四個(gè)步幅為1/2的微步幅卷積層。通過(guò)步幅為1/2的微步幅卷積運(yùn)算,輸出特征圖的尺寸被放大為輸入的兩倍。經(jīng)過(guò)四個(gè)微步幅卷積運(yùn)算后,生成器生成的圖像將擁有和輸入圖像系統(tǒng)的尺寸。MDCGAN 的生成器模型如圖4所示。
圖4 MDCGAN生成器的結(jié)構(gòu)
MDCGAN的判別器模型包含四個(gè)步幅為2的卷積層和一個(gè)全連接層。通過(guò)步幅為2的步幅卷積運(yùn)算,可以將輸出特征圖的尺寸縮減為輸入特征圖的一半。經(jīng)過(guò)四個(gè)步幅卷積運(yùn)算,可以確保判別器在學(xué)習(xí)中能夠提取到輸入圖像從像素級(jí)的特征到內(nèi)容級(jí)的特征。MDCGAN 的判別器結(jié)構(gòu)如圖5所示。
圖5 MDCGAN判別器的結(jié)構(gòu)
在生成器和判別器的各層之后使用批量歸一化層,通過(guò)在每個(gè)批量中計(jì)算得到均值和方差后,將卷積層輸出信號(hào)進(jìn)行規(guī)范化。批量歸一化層的使用能夠增加模型的穩(wěn)定性,提高模型的收斂速度。
根據(jù)生成器和判別器的特點(diǎn)且經(jīng)過(guò)實(shí)驗(yàn)測(cè)試,各層激活函數(shù)使用如下策略效果較好:生成模型的最后一層使用Sigmoid,其它層使用ReLU
σRe lu(x)=max(0,x)
(2)
判別器的所有層選用收斂速度快又不易使神經(jīng)元壞死的Leaky ReLU函數(shù).在Leaky ReLU函數(shù)中,所有模型的泄漏斜率均設(shè)置為0.01
(3)
在生成器的輸出卷積層中,使用 Tanh取代Relu,Tanh能夠?qū)⑤敵鰵w一化至區(qū)間[-1,1]
(4)
將隨機(jī)噪聲pz(z)作為生成器網(wǎng)絡(luò)的輸入,將生成器網(wǎng)絡(luò)定義為G(z/y;θg),其中θg代表參數(shù),將輸出的圖象定義為G(z/y)。將判別器網(wǎng)絡(luò)定義為D(x/y;θd),其中,θd為參數(shù),將輸出(即對(duì)應(yīng)的輸入被判定為真的比率)定義為D(x/y)。交替優(yōu)化生成器和判別器,使得生成器能夠不斷提高輸出圖像的逼真度,使得判別器難以區(qū)分其真假,即學(xué)習(xí)最小化logD(x/y)+log(1-D(G(z/y)));判別器則能夠不斷提升分辨輸入圖像真假的能力,即學(xué)習(xí)最大化logD(x/y)+log(1-D(G(z/y))).MDCGAN的損失函數(shù)如下所示
+Εz~pz(z)[log(1-D(G(z/y)))]
(5)
通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),對(duì)于同樣大小的數(shù)據(jù)集,模型參數(shù)越多,越容易出現(xiàn)訓(xùn)練不穩(wěn)定的情況。對(duì)MDCGAN的生成器,讓各個(gè)反卷積層的輸出通道數(shù)減半,由卷積核的尺寸可知,模型參數(shù)數(shù)量減少為原來(lái)的1/4,該方法對(duì)于穩(wěn)定訓(xùn)練起到了明顯的效果。
原始GAN模型利用動(dòng)量來(lái)加快訓(xùn)練速度[5],但使用了帶有優(yōu)化超參數(shù)的Adam優(yōu)化器。發(fā)現(xiàn)建議的學(xué)習(xí)率0.001太高,而使用0.0002代替。此外發(fā)現(xiàn)將動(dòng)量項(xiàng)β1保持在建議值0.9會(huì)導(dǎo)致訓(xùn)練震蕩和不穩(wěn)定性,而將其減小到0.5有助于穩(wěn)定訓(xùn)練。
在手寫數(shù)字?jǐn)?shù)據(jù)集MNIST和建筑物輪廓數(shù)據(jù)集上訓(xùn)練了MDCGAN模型.下面給出了有關(guān)每個(gè)數(shù)據(jù)集用法的詳細(xì)信息和實(shí)驗(yàn)結(jié)果。
MNIST 數(shù)據(jù)集包含0~9的10類手寫數(shù)字圖像,每個(gè)圖像都有對(duì)應(yīng)的類別標(biāo)簽。從MNIST數(shù)據(jù)集中隨機(jī)取出6000個(gè)訓(xùn)練樣本組建小規(guī)模訓(xùn)練集和1000個(gè)測(cè)試樣本組建小規(guī)模測(cè)試集,對(duì)MDCGAN模型進(jìn)行訓(xùn)練和測(cè)試。為了保持對(duì)抗平衡,判別器與生成器的更新次數(shù)比例為 1:3(即更新一次判別器之后,再更新三次生成器)。手寫數(shù)字圖像生成過(guò)程如圖6所示。
圖6 手寫數(shù)字圖像的生成過(guò)程
使用選取的小規(guī)模測(cè)試集對(duì)訓(xùn)練完成的MDCGAN模型進(jìn)行測(cè)試,測(cè)試集上的圖像生成效果如圖7所示(左圖是測(cè)試集原始圖像,中圖是GAN生成的圖像,右圖是MDCGAN生成的圖像)。
圖7 測(cè)試集上生成的手寫數(shù)字圖像
可以看出,MDCGAN模型能夠生成比GAN模型更清晰更逼真的手寫數(shù)字圖像。在選取的小規(guī)模測(cè)試集上,用最近鄰分類器分別對(duì)原始MNIST圖像、GAN生成的圖像、MDCGAN生成的圖像進(jìn)行分類,以分類正確率作為對(duì)模型捕捉圖像數(shù)據(jù)分布能力的評(píng)價(jià)指標(biāo),見(jiàn)表1.
表1 測(cè)試圖像的分類正確率
MDCGAN模型實(shí)現(xiàn)了與真實(shí)圖片在最近鄰分類器上相近的分類正確率,這表明MDCGAN模型在對(duì)從MNIST中選取的小規(guī)模數(shù)據(jù)集的數(shù)據(jù)分布進(jìn)行建模方面性能出色。
建筑物數(shù)據(jù)集包含建筑物彩色圖像和語(yǔ)義分割標(biāo)注圖,包括1024×977像素、788×1024像素等圖像尺寸,整個(gè)數(shù)據(jù)集只有550個(gè)訓(xùn)練樣本和84個(gè)測(cè)試樣本。使用訓(xùn)練集對(duì)MDCGAN模型進(jìn)行訓(xùn)練,建筑物輪廓圖像生成過(guò)程如圖8所示(左圖是語(yǔ)義分割標(biāo)注圖,中圖是MDCGAN模型生成的圖像,右圖是建筑物的真實(shí)圖像,圖像生成過(guò)程自上而下)。
圖8 建筑物輪廓圖像生成過(guò)程
判別器和生成器的損失函數(shù)曲線分別如圖9和圖10所示。當(dāng)二者的損失函數(shù)相對(duì)穩(wěn)定時(shí),模型在訓(xùn)練集上達(dá)到了納什均衡狀態(tài)。
圖9 判別器的損失函數(shù)曲線
圖10 生成器的損失函數(shù)曲線
MDCGAN模型在測(cè)試集上的效果如圖11所示??梢钥闯?,對(duì)帶有語(yǔ)義分割標(biāo)注信息的小規(guī)模建筑物輪廓數(shù)據(jù)集,MDCGAN模型能夠捕捉到圖像數(shù)據(jù)的真實(shí)分布,進(jìn)而生成高清晰度高逼真度的建筑物輪廓圖像。
圖11 測(cè)試集生成的建筑物輪廓圖像
本文針對(duì)小規(guī)模數(shù)據(jù)集的圖像生成問(wèn)題,提出了一種改進(jìn)的MDCGAN。MDCGAN模型采用卷積層取代全鏈接層,采用帶步長(zhǎng)的卷積運(yùn)算取代上采樣運(yùn)算。同時(shí)將條件信息y引入判別器和生成器中,條件信息y能夠?yàn)樯墒綄?duì)抗網(wǎng)絡(luò)增加條件,對(duì)生成數(shù)據(jù)起到監(jiān)督作用。通過(guò)手寫數(shù)字生成實(shí)驗(yàn)和建筑物輪廓生成實(shí)驗(yàn)證明,所提出的MDCGAN能夠基于小規(guī)模圖像數(shù)據(jù)集生成逼真度高、多樣性豐富的圖像。