劉鶴丹,趙旭磊,葉漢平,王 健
(1.廈門大學(xué)嘉庚學(xué)院 信息科學(xué)與技術(shù)學(xué)院,福建 漳州 363105;2.中國船舶第七六〇研究所 海上試驗(yàn)測繪中心,遼寧 大連 116000)
近年來,研究人員一直在努力提升計(jì)算機(jī)的自主學(xué)習(xí)能力,計(jì)算機(jī)學(xué)習(xí)逐步進(jìn)入了人工智能階段。人工智能作為一門交叉性強(qiáng)的學(xué)科,致力于使計(jì)算機(jī)可以模擬人類的學(xué)習(xí)方法。在常見的機(jī)器學(xué)習(xí)模型中,大部分模型是需要監(jiān)督學(xué)習(xí)的,而監(jiān)督學(xué)習(xí)需要收集大量的數(shù)據(jù)集才能得到較好的訓(xùn)練結(jié)果,并且數(shù)據(jù)集的標(biāo)注往往是需要通過人工的手段,這無疑會提高人工成本。在2014年,生成對抗網(wǎng)絡(luò)模型GAN的出現(xiàn)為解決該類問題提出了很好的方案,GAN擁有無監(jiān)督學(xué)習(xí)和優(yōu)越的樣本輸出等優(yōu)勢,受到大批學(xué)者的喜愛,特別是在圖像生成和目標(biāo)檢測等領(lǐng)域得到了廣泛的應(yīng)用與發(fā)展。
GAN采用博弈論中零和博弈的思想[1],其中包含兩個(gè)模型:生成器和判別器。生成器會生成一系列的樣本欺騙判別器,而判別器的目的是識別出這些樣本的真實(shí)性,在兩者的對抗過程中,會不斷地提升模型的效率,直到生成器可生成能夠欺騙判別器的樣本為止,此時(shí)達(dá)到納什均衡[2]。
GAN模型[3]包含生成式模型G和判別式模型D(以下生成器與判別器均用G和D替代),G從統(tǒng)計(jì)學(xué)的角度直觀地展示了數(shù)據(jù)分布情況,并對其進(jìn)行建模P(X|Y),再通過貝葉斯公式進(jìn)行預(yù)測,最后根據(jù)訓(xùn)練數(shù)據(jù)學(xué)習(xí)聯(lián)合概率分布P(X,Y)。模型對比情況見表1所列。
表1 模型對比情況
經(jīng)典GAN網(wǎng)絡(luò)架構(gòu)如圖1所示,兩個(gè)神經(jīng)網(wǎng)絡(luò)G和D構(gòu)成了一個(gè)動(dòng)態(tài)博弈的過程。G和D使用聯(lián)合損失函數(shù),其中x表示真實(shí)數(shù)據(jù),D(x)是每個(gè)圖像x的單個(gè)標(biāo)量值,表示此圖像x是來自數(shù)據(jù)集的真實(shí)圖像的可能性。此外,噪聲z的發(fā)生器輸出的G(z)、D(G(z))是鑒別器對假實(shí)例的真實(shí)概率的估計(jì)。EZ是G的所有輸入的預(yù)期值。生成器G試圖最小化函數(shù),而D試圖將函數(shù)最大化。優(yōu)化目標(biāo)公式如下:
圖1 經(jīng)典GAN架構(gòu)
DCGAN(Deep Convolutional Generative Adversarial Networks)[4]于2015年被提出,其架構(gòu)如圖2所示。對GAN架構(gòu)進(jìn)行了三方面改進(jìn):(1)代替空間池化函數(shù)為步幅卷積,允許網(wǎng)絡(luò)對自身空間下采樣學(xué)習(xí),允許D對自身空間上采樣學(xué)習(xí);(2)最頂層的卷積后面消除全連接層;(3)批處理規(guī)范化。其中G使用了卷積神經(jīng)網(wǎng)絡(luò),除了最終輸出層使用了tanh,其余使用激活函數(shù)ReLu,模型目標(biāo)是最小化判別網(wǎng)絡(luò)的準(zhǔn)確率。DCGAN的Generate網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。D同樣使用卷積神經(jīng)網(wǎng)絡(luò),使用的激活函數(shù)是Leaky ReLu,以實(shí)現(xiàn)最大化判別網(wǎng)絡(luò)的準(zhǔn)確率。
圖2 DCGAN的網(wǎng)絡(luò)結(jié)構(gòu)
圖3 DCGAN的Generate網(wǎng)絡(luò)結(jié)構(gòu)
Mirza等人[5]提出了兩個(gè)問題:如何擴(kuò)大已有模型以適應(yīng)預(yù)測的大量輸出類別,如何實(shí)現(xiàn)GAN從一對多的映射;同時(shí)提出了CGAN(Conditional Generative Adversarial Networks)模型。該模型結(jié)構(gòu)額外為生成器和判別器增加了條件y(表示希望生成的標(biāo)簽)。D會生成符合條件y的樣本,而G會對生成的圖像進(jìn)行判斷,判斷是否符合條件y和是否具有真實(shí)性,并會對后續(xù)的優(yōu)化目標(biāo)公式進(jìn)行相對應(yīng)的優(yōu)化改進(jìn)。
Denton 等人[6]在2016年提出SGAN(Semi-supervised learning GAN),訓(xùn)練時(shí)可通過少量帶標(biāo)簽的數(shù)據(jù)配合無標(biāo)簽數(shù)據(jù)。該模型結(jié)構(gòu)解決了一個(gè)半監(jiān)督分類任務(wù)的同時(shí)還學(xué)習(xí)一個(gè)生成模型;在數(shù)據(jù)集上學(xué)習(xí)G的同時(shí)訓(xùn)練一個(gè)圖像分類器C;共享了D和C之間的部分權(quán)重,一些權(quán)重專屬于D,一些權(quán)重專屬于C;讓GAN生成帶類別標(biāo)簽的樣本,要求D/C指派標(biāo)簽。
針對傳統(tǒng)GAN使用高度混雜的模型和隨機(jī)噪聲z,但不能顯式地表示真實(shí)數(shù)據(jù)空間下的屬性或特征的問題,Chen等人[7]提出InfoGAN以無監(jiān)督方式學(xué)習(xí)隱空間下非混雜方式的真實(shí)特征表示。將隨機(jī)噪聲分成不可壓縮部分z和可解釋的隱編碼c。Generate(G)表示為G(z,c),通過最大化c與生成數(shù)據(jù)x之間的信息來防止GAN在訓(xùn)練過程中忽略c的特征表示能力,并增加c和G(z,c)之間的互信息I(c;G(z,c))為約束。
Arjovsky等人[8]針對訓(xùn)練梯度不穩(wěn)定、生成樣本單一、模式崩潰、梯度消失等問題提出了四點(diǎn)改進(jìn)措施:去除D最后一層的sigmoid,G和D的損失不再取對數(shù),在更新D的參數(shù)后截?cái)嗥浣^對值到固定常數(shù)c下,使用RMSProp、SGD等算法替代基于動(dòng)量的優(yōu)化算法。
Zhang等人[9]指出先前的模型過分使用卷積來模擬不同圖像區(qū)域之間的依賴,導(dǎo)致傳統(tǒng)卷積GAN存在一些問題,因此提出SAGAN。將self-attention機(jī)制加入傳統(tǒng)的卷積GAN,該機(jī)制在模擬遠(yuǎn)程依賴、計(jì)算和統(tǒng)計(jì)時(shí)有更加出彩的表現(xiàn),能夠更好地處理長范圍、多層次的依賴,生成圖像時(shí)做好每一個(gè)位置的細(xì)節(jié)和遠(yuǎn)端的協(xié)調(diào)。此外,D能夠更精準(zhǔn)地對全局圖像使用幾何約束。
針對GAN難以實(shí)現(xiàn)從復(fù)雜數(shù)據(jù)集中生成高分辨率、多樣化樣本的缺點(diǎn),Brock等人[10]提出了BigGAN,該模型增大了BatchSize和channel number,采用“截?cái)嗉记伞钡?,用原有GAN的8倍batch size大小,將隱藏層變量數(shù)量擴(kuò)充到原有模型的4倍進(jìn)行訓(xùn)練,獲得了很好的效果。
2017年NVIDIA提出了ProGAN[11],該模型采用漸進(jìn)式訓(xùn)練,解決了高分辨率圖像生成困難的問題,但控制生成圖像的特定特征能力有限。Karras等人[12]提出了StytleGAN,每一層視覺特征都可以通過修改該層的輸入來控制,且該過程并不受其他層級的影響。StytleGAN的模型結(jié)構(gòu)除了采用傳統(tǒng)的輸入,將一個(gè)可學(xué)習(xí)的常數(shù)作為生成器的初始輸入,還采用8個(gè)由全連接層所組成的映射網(wǎng)絡(luò)來實(shí)現(xiàn)輸出的w與輸入的z大小相同;引入樣式模塊(AdalN),將w通過卷積層的AdaIN輸入到生成網(wǎng)絡(luò)中;添加尺度化噪聲到合成網(wǎng)絡(luò)的分辨率級上,然后通過輸入層輸入到G中;對G使用混合正則化,對訓(xùn)練樣本使用樣式混合的方式生成圖像,在訓(xùn)練過程中使用兩個(gè)隨機(jī)隱碼z,而不是一個(gè),在生成圖像時(shí)會在合成網(wǎng)絡(luò)上隨機(jī)地選擇一個(gè)點(diǎn),實(shí)現(xiàn)一個(gè)隱碼到另一個(gè)隱碼的切換,并且加入感知路徑長度和線性可分性兩種新的量化解耦方法。
He等人[13]提出了通過明確的維度來控制特定層中語義屬性表示的EigenGAN模型,可無監(jiān)督地從不同生成器層挖掘可解釋和可控的維度。EigenGAN將一個(gè)具有正交基礎(chǔ)的線性空間嵌入到每個(gè)生成器層;在對抗訓(xùn)練中,這些子空間會在每一層中發(fā)現(xiàn)一組“特征維度”,對應(yīng)一組語義屬性或可解釋的變化。
GAN所生成圖像與訓(xùn)練的數(shù)據(jù)集密切相關(guān),這導(dǎo)致生成的圖像存在局限性。而Casanova等人[14]提出ICGAN(Instance-Conditioned GAN)模型,可生成逼真且與訓(xùn)練集圖像不同的圖像組合。對于每個(gè)訓(xùn)練的數(shù)據(jù)點(diǎn),采用參數(shù)化的混合形式對其周圍密度進(jìn)行建模處理;模型引入了一種非參數(shù)化方法對復(fù)雜數(shù)據(jù)集的分布進(jìn)行建模,使用條件實(shí)例和噪聲向量作為神經(jīng)網(wǎng)絡(luò)的輸入,并且隱式地對其局部密度進(jìn)行建模。ICGAN中,G與D可以聯(lián)合訓(xùn)練,都參與了一個(gè)兩者最小-最大博弈,在博弈中找到納什均衡。
近年來,Transformers[15]在NLP領(lǐng)域大放異彩,TransGAN的研究者將Transformers結(jié)構(gòu)作為GAN的主結(jié)構(gòu),并完全拋棄了CNN結(jié)構(gòu)[16]。實(shí)驗(yàn)表明,采用Transformers作為GAN模型的主體結(jié)構(gòu)在其性能上幾乎能夠匹敵目前最好的GAN模型。
針對傳統(tǒng)的生成模型很難生成視覺上連貫的圖像問題,Yoon等人[17]提出了OUR-GAN模型,用低分辨率生成視覺上連貫的圖像,應(yīng)用無縫銜接的子區(qū)域超分辨率來提高分辨率,解決了邊界不連續(xù)問題,通過向特征圖添加垂直位置嵌入來提高視覺連續(xù)性和多樣性。
文獻(xiàn)[18]提出了P2GAN(Posterior Promoted GAN),該模型采用D生成的后驗(yàn)分布的真實(shí)信息來提升G,并且通過將圖像隱射到多元高斯分布來提取出真實(shí)的信息;G則使用AdaIN后的真實(shí)信息和潛碼提升自身。
文獻(xiàn)[19]提出了Inclusive GAN模型,通過有效融合對抗模型與重建模型提升對少數(shù)樣本群體的覆蓋能力,提升了模型的包容能力。引入IMLE重建方法調(diào)和GAN,使其成為IMLE-GAN,綜合了兩個(gè)模型的優(yōu)劣,保證了數(shù)據(jù)的覆蓋性,有效提升模型整體的覆蓋能力且更適應(yīng)了對少數(shù)群體的包容能力。
許多GAN及其變體模型很難適應(yīng)不同的數(shù)據(jù)集,當(dāng)真實(shí)分布和生成分布的支撐集不夠重疊時(shí),判別器反饋給生成器的梯度無法提供有益信息。文獻(xiàn)[20]提出了MSG-GAN,可多尺度地提供梯度給D和G。
GAN作為生成式模型,結(jié)構(gòu)簡單,不需要類似GSNs的馬爾科夫鏈,只是用到了反向傳播,其創(chuàng)造的數(shù)據(jù)樣本遠(yuǎn)遠(yuǎn)優(yōu)于其他的生成模型。這表明GAN可以訓(xùn)練任何形式下具有非特定目的生成網(wǎng)絡(luò);GAN的學(xué)習(xí)方式為無監(jiān)督式學(xué)習(xí),該方式被廣泛應(yīng)用于無監(jiān)督和半監(jiān)督學(xué)習(xí)領(lǐng)域,其訓(xùn)練方式不需要推斷隱變量;對比VAEs,GANs尚未引入決定性偏置,也沒有變分下界,因此GANs的生成實(shí)例相比于VAEs更為清晰。如果D訓(xùn)練妥善,那么G將會得到完美的訓(xùn)練樣本分布。GANs的生成過程是漸進(jìn)一致的過程,而VAE有偏差。
GAN普遍存在評價(jià)指標(biāo)和梯度消失、模式崩潰、訓(xùn)練不穩(wěn)定等問題。對于如何實(shí)現(xiàn)GAN在訓(xùn)練中達(dá)到納什均衡,目前還沒有較好的方法。雖然可以通過梯度下降法實(shí)現(xiàn),但會導(dǎo)致其缺乏穩(wěn)定性;GAN不適合處理文本類的離散型數(shù)據(jù),因?yàn)橥ǔP枰獙⒁粋€(gè)詞映射為一個(gè)高維向量,當(dāng)G向D輸出結(jié)果不同時(shí),D均會返回同樣的結(jié)果,導(dǎo)致梯度信息不能很好地傳遞到D中。此外,GAN損失函數(shù)為JS散度,并不適用于衡量不相交分布之間的距離。
生成對抗神經(jīng)網(wǎng)絡(luò)是當(dāng)下人工智能領(lǐng)域的前沿。越來越多的研究人員開始在這一領(lǐng)域進(jìn)行挖掘,并產(chǎn)生越來越多的高效率模型。本文從介紹GAN模型的生成器和判別器出發(fā),闡述了GAN模型的基本原理,并通過典型的GAN變體模型展示了GAN的發(fā)展歷程。GAN目前仍面臨著許多挑戰(zhàn),但值得期待。