吳少乾,李西明
華南農(nóng)業(yè)大學(xué) 數(shù)學(xué)與信息學(xué)院,廣州510642
近年來,伴隨著Alpha Go 成為第一個擊敗人類職業(yè)圍棋世界冠軍的人工智能機(jī)器人開始,機(jī)器智能得到了迅速發(fā)展。而機(jī)器智能需要人們應(yīng)用大量的數(shù)據(jù)去訓(xùn)練機(jī)器,使其更加智能。其中,生成算法通常被視為機(jī)器對訓(xùn)練數(shù)據(jù)“理解”程度的衡量標(biāo)準(zhǔn),生成算法通過學(xué)習(xí)一組信息之后生成信息分布,通過深度學(xué)習(xí)領(lǐng)域中的基于反向傳播和Dropout 算法的判別式模型,將高維豐富的感知器輸入映射到類別標(biāo)簽上[1-2],以此來判別生成算法生成的分布的正確性,若生成的分布正確,那么機(jī)器也一定正確地理解了這些信息。因此,生成算法被看作是對系統(tǒng)理解的一種度量,常應(yīng)用于生成文本[3-4]、圖像[5-6]、語音[7-8]及生成系統(tǒng)行為和系統(tǒng)狀態(tài)[9]等領(lǐng)域。
然而,由于在最大似然估計(jì)和相關(guān)策略方面通常存在許多難以解決的概率計(jì)算問題,且在生成上下文時無法充分利用分段線性單元的優(yōu)勢,導(dǎo)致深度生成模型沒有得到廣泛的應(yīng)用。但是,在統(tǒng)計(jì)信號處理和機(jī)器學(xué)習(xí)中,以產(chǎn)生或再現(xiàn)與真實(shí)樣本難以區(qū)分的樣本為目標(biāo)的研究依舊是一大熱點(diǎn)。特別是,獲取高維數(shù)據(jù)分布的生成模型是一項(xiàng)具有挑戰(zhàn)性但又非常重要的工作,因?yàn)樗鼈儗τ诟鞣N應(yīng)用程序(如文本到演講合成、語音轉(zhuǎn)換、圖像到圖像的翻譯和照片編輯等)都具有重要的意義。
2014年,Goodfellow 等人[10]提出了一種通過對抗訓(xùn)練來評估生成模型的新框架——生成對抗網(wǎng)絡(luò)(generative adversarial networks,GANs)。它的出現(xiàn)為解決工程和數(shù)學(xué)領(lǐng)域中高維度概率密度分布中采樣和訓(xùn)練的問題提供了很大的幫助,迅速成為人工智能學(xué)界一個熱門的研究方向。GANs 的基本思想源自雙人博弈論,由一個生成器和一個判別器構(gòu)成,通過對抗學(xué)習(xí)的方式進(jìn)行訓(xùn)練,目的是估測數(shù)據(jù)樣本的潛在分布并生成新的數(shù)據(jù)樣本,這使得GANs 在各個領(lǐng)域得到迅速的發(fā)展,被廣泛應(yīng)用于各個算法、模型和神經(jīng)網(wǎng)絡(luò)中,從樸素貝葉斯到深度信念網(wǎng)絡(luò),再到高斯混合模型、隱馬爾可夫模型、潛在狄利克雷分配和受限玻爾茲曼機(jī)等。
近年來,對于GANs 的基礎(chǔ)研究和實(shí)際應(yīng)用研究,都取得了相當(dāng)不錯的成果。本文將對GANs 近幾年來的研究成果進(jìn)行總結(jié),介紹GANs 的基礎(chǔ)理論及其實(shí)際應(yīng)用成果。
GANs 是一種深度生成模型,它包含兩個相互競爭的神經(jīng)網(wǎng)絡(luò)模型:生成模型G和判別模型D。其中G的目的是學(xué)習(xí)真實(shí)樣本的分布,生成相似度逼近真實(shí)樣本的生成樣本,而D的目的則是判斷訓(xùn)練樣本來自真實(shí)樣本還是生成樣本。簡單來說,兩個模型通過不斷的對抗訓(xùn)練,G最大化生成以假亂真的生成樣本,D最小化自己判別錯誤的概率。
模型G和D通過不斷的對抗訓(xùn)練,使D正確判別訓(xùn)練樣本來源的概率最大化,同時使G生成的生成數(shù)據(jù)與真實(shí)數(shù)據(jù)的相似度最大化。在訓(xùn)練優(yōu)化D時,當(dāng)D的輸入為真實(shí)樣本x時,希望D(x)趨于1;當(dāng)輸入為生成樣本G(z)時,則希望D(G(z))趨于0,即希望1-D(G(z))趨于1,故極大化模型D。在訓(xùn)練優(yōu)化G時,輸入只有噪聲z,此時希望生成樣本G(z)通過D后的概率值為1,即希望D(G(z))趨于1,也就是說希望1-D(G(z))趨于0,故極小化模型G。因此,D和G的訓(xùn)練可以表示為關(guān)于值函數(shù)V(G,D)的極小化極大的雙方博弈問題:
訓(xùn)練過程中,兩個模型交替迭代,先固定G,訓(xùn)練D,更新D的參數(shù),然后固定D,更新迭代G的參數(shù),最終達(dá)到模型穩(wěn)定。Goodfellow 等人在文獻(xiàn)[10]中證明了當(dāng)且僅當(dāng)pz=pdata時,極大化極小的雙方博弈問題存在全局最優(yōu)解,即達(dá)到納什均衡,此時生成模型G學(xué)會了真實(shí)樣本pdata的分布,使得判別模型D的準(zhǔn)確率穩(wěn)定停留于1/2 上,即使得D只能對訓(xùn)練樣本在0 或1 之間進(jìn)行隨機(jī)猜測。
相比較于以前的建??蚣?,GANs 框架具有以下的一些優(yōu)勢。相比較于蒙特卡洛估計(jì)、玻爾茲曼機(jī)和生成隨機(jī)網(wǎng)絡(luò)等生成網(wǎng)絡(luò),GANs 的計(jì)算過程不需要使用馬爾可夫鏈,學(xué)習(xí)過程也不需要近似推理,這使得它能夠更好地利用分段線性單元的優(yōu)勢,僅通過反向傳播來計(jì)算梯度,從而回避了近似計(jì)算困難的概率難題。與完全明顯的信念網(wǎng)絡(luò)相比,GANs 因?yàn)椴恍枰诓蓸有蛄猩刹煌臄?shù)據(jù),使其能夠更快地產(chǎn)生樣本。相比于變分自編碼器,GANs 沒有變分下界,不需要引入任何決定性偏置,是漸進(jìn)一致的,而變分方法引入的決定性偏置是有偏差的,由于變分自編碼器優(yōu)化的是對數(shù)似然的下界,而不是似然度本身,從而導(dǎo)致變分自編碼器的生成效果比GANs 差。相比較于非線性獨(dú)立分量分析,GANs 不需要對潛在變量(生成器的輸入值)的大小進(jìn)行限制,即不要求生成器輸入的潛在變量有任何特定的維度或要求生成器是可逆的。
GANs 雖然解決了生成式模型中的一些問題,對其他生成算法的發(fā)展具有一定的啟發(fā)意義,但GANs也并非完美,在解決了已有問題的同時也產(chǎn)生了一些新的問題。由于GANs 采用對抗學(xué)習(xí)的方法,導(dǎo)致模型收斂性的不穩(wěn)定,雖然GANs 在納什均衡時達(dá)到最優(yōu),但是只有當(dāng)梯度下降在凸函數(shù)的情況下才能保證實(shí)現(xiàn)納什均衡。而訓(xùn)練過程需要保證兩個對抗網(wǎng)絡(luò)的平衡和同步,否則難以得到很好的訓(xùn)練效果,但在實(shí)際過程中,兩個對抗網(wǎng)絡(luò)的同步不易把控,因此訓(xùn)練過程可能不穩(wěn)定,這就導(dǎo)致了模型訓(xùn)練很難收斂的問題。此外,GANs 框架使用極大化極小的概念,這使得在訓(xùn)練過程中難以對模型訓(xùn)練情況進(jìn)行評價。GANs 在訓(xùn)練過程中,生成模型可能出現(xiàn)退化現(xiàn)象,總是生成同樣的樣本點(diǎn),無法繼續(xù)學(xué)習(xí),導(dǎo)致生成模型崩潰,而當(dāng)生成模型崩潰時,判別模型也會對相似的樣本點(diǎn)指向相似的方向,使得訓(xùn)練無法繼續(xù),從而導(dǎo)致了GANs 的模型崩潰問題。相比其他生成式模型,GANs 無需預(yù)先建模,直接對真實(shí)樣本進(jìn)行采樣訓(xùn)練,從而真正達(dá)到理論上可以完全逼近真實(shí)樣本,這是GANs 的最大優(yōu)勢,但同時這也會使得模型過于自由。而對于尺寸大、像素高的圖片,簡單的GANs 又會導(dǎo)致模型不太可控,這就導(dǎo)致了GANs模型過于自由不可控的問題。
自2014年Goodfellow 等人提出生成對抗網(wǎng)絡(luò)以來,GANs 已經(jīng)成為最流行的深度生成模型之一,其研究也取得了快速的進(jìn)展,衍生出了上百種相關(guān)的模型,在短短的幾年里已在圖像處理、自然語言、計(jì)算機(jī)視覺等領(lǐng)域中得到了廣泛的應(yīng)用,最終形成了所謂的GANs-zoo。本章將從GANs 模型中的損失函數(shù)、網(wǎng)絡(luò)體系結(jié)構(gòu)及其模型應(yīng)用改進(jìn)等方面的研究進(jìn)展進(jìn)行整理分析,并介紹其中具有代表性的模型,并將一些比較常見的GANs 衍生模型進(jìn)行分類,如表1 所示。
Nowozin 等人[14]對Nguyen 等人[15]提出的變散度估計(jì)框架進(jìn)行擴(kuò)展,提出f-GANs 模型,將散度估計(jì)擴(kuò)展到模型估計(jì),并稱這種新方法為變分發(fā)散最小化(variable dispersion minimization,VDM),并證明了生成對抗訓(xùn)練是VDM 框架的一個特例。他們使用生成模型Q和變分函數(shù)T作為生成對抗網(wǎng)絡(luò)的兩個模型。通過實(shí)驗(yàn)表明,GANs 架構(gòu)中的JS 散度可以被任意的f-散度(不同散度的總稱)代替,證明了GANs 的廣泛應(yīng)用性。雖然使用交叉熵的定義可以保證模型收斂的速度,但是在決策邊界為真的一邊的樣本均會被分類為真,即使是假樣本,這樣就會導(dǎo)致即使使用與真實(shí)樣本相差甚遠(yuǎn)的假樣本更新生成器時,判別器仍會判斷為真,這就讓假樣本成功欺騙了判別器。從而導(dǎo)致了更新生成器的時候出現(xiàn)梯度彌散的問題,進(jìn)而使得傳統(tǒng)GANs 生成的圖片質(zhì)量不高以及訓(xùn)練過程不穩(wěn)定的系列問題。針對以上問題,Mao 等人在文獻(xiàn)[16]中提出了一種最小二乘生成對抗網(wǎng)絡(luò)(least squares generative adversarial networks,LSGANs),該網(wǎng)絡(luò)將傳統(tǒng)GANs 的目標(biāo)函數(shù)中的交叉熵?fù)p失函數(shù)替換成最小二乘損失函數(shù),并將最小二乘損失函數(shù)作為判別器,根據(jù)樣本到?jīng)Q策邊界的距離進(jìn)行懲罰,從而將假樣本移向決策邊界,這樣就會生成更多的梯度來更新生成器,同時保證了模型的收斂性和穩(wěn)定性,以此解決了GANs 中梯度消失的問題,但LSGANs無法解決這個核心問題——如何更好地測量生成數(shù)據(jù)和真實(shí)數(shù)據(jù)之間的散度距離。
Table1 Classification of GANs derived models表1 GANs的衍生模型分類
針對散度距離測量的問題,Arjovsky 等人[17]提出的WGAN(Wasserstein GAN)拋棄了傳統(tǒng)GANs 的JS 散度(Jensen-Shannon 散度)定義,采用Earth Mover距離(EM 距離)來計(jì)算兩個分布的距離,利用EM 距離來監(jiān)控模型的好壞,解決GAN 訓(xùn)練不穩(wěn)定、模型崩塌和生成模型的評價問題。WGAN 在處理Lipschitz限制條件時采用了權(quán)重裁剪方法,將參數(shù)的梯度值限制在一定的范圍內(nèi),以便通過倒數(shù)限制D(x)的增長速度,但是該方法中的權(quán)重裁剪值卻不好確定,這使得有時仍然只能生成較差的樣本或無法收斂。針對WGAN 存在的缺點(diǎn),Gulrajani等人在文獻(xiàn)[18]中提出了WGAN 的改進(jìn)版WGAN-GP,WGAN-GP 提出了一種新的Lipschitz 連續(xù)性限制手法,即通過給判別函數(shù)添加梯度懲罰項(xiàng),將參數(shù)與限制聯(lián)系起來,達(dá)到Lipschitz 限制條件,以此解決WGAN 的權(quán)重裁剪導(dǎo)致參數(shù)集中化、梯度爆炸和梯度消失的問題,但是對于梯度的模大于1 的區(qū)域的值,WGAN-GP 雖然也做出了懲罰,但是卻無法保證每一個值的梯度的模都小于等于1,并且該方法計(jì)算成本很高。
以上所述均存在一個較強(qiáng)的假設(shè),即鑒別器在每一步中(在函數(shù)空間中)都處于最優(yōu)狀態(tài),相比較WGAN 和WANG-GP,Petzka 等人[19]提出一種較弱的正則化項(xiàng)來執(zhí)行Lipschitz 限制。而Kodali 等人[20]提出的DRAGAN(deep regret analytic GAN)則將交替梯度更新過程看作regretminimization 進(jìn)行訓(xùn)練,以達(dá)到納什均衡,并且證明了在無參數(shù)限制和無需要求判別器在每一步中都處于最優(yōu)狀態(tài)的條件下,模型訓(xùn)練能夠漸近收斂,在此基礎(chǔ)上提出了一種新的梯度懲罰算法,支持更快的訓(xùn)練,實(shí)現(xiàn)更好的穩(wěn)定性和建模性能,但本質(zhì)上只是采用了不同的梯度懲罰函數(shù)。同樣,Berthelot 等人在文獻(xiàn)[21]中提出了一種新的平衡強(qiáng)化方法——BEGAN(boundary equilibrium GAN),該方法結(jié)合EM 距離的損失來訓(xùn)練基于自動編碼器的GANs。BEGAN 拋棄了通過估計(jì)真實(shí)分布和生成分布之間的差距,反而通過估計(jì)分布的分布誤差之間的相似度,以達(dá)到判別目的,但是BEGAN主要應(yīng)用于圖像領(lǐng)域中,對于高分辨率的圖像的效果一般。為此,在BEGAN 的基礎(chǔ)上,Li 等人[22]在判別器中新增去噪損失函數(shù),以獲取更多與真實(shí)分布相關(guān)的信息,以此提高訓(xùn)練效果和收斂穩(wěn)定性,但其效果并未超過WGAN-GP。
在文獻(xiàn)[23]中,Mroueh 等人利用奇異值分解概念,將分布嵌入到有限維特征空間中,并根據(jù)其均值和協(xié)方差特征統(tǒng)計(jì)進(jìn)行匹配,同時匹配均值特征和二階矩陣特征,使得真實(shí)數(shù)據(jù)分布和生成數(shù)據(jù)分布之間的嵌入?yún)f(xié)方差差異最大化,以此提升訓(xùn)練效果。在文獻(xiàn)[24]中,Mroueh 等人建立了一種積分概率矩陣框架——FisherGAN來訓(xùn)練GANs。它在WGANGP的基礎(chǔ)上繼續(xù)改進(jìn),當(dāng)WGAN-GP 對判別器函數(shù)的梯度做出懲罰時,F(xiàn)isher GAN 會對判別器的二階矩陣進(jìn)行約束,使得模型可以穩(wěn)定訓(xùn)練,但是FisherGAN對于積分概率度量(integral probability metrics,IPM)的約束較強(qiáng),缺乏一定的靈活性。在神經(jīng)網(wǎng)絡(luò)中,將梯度的模限制在一個范圍內(nèi),抽象地說就是讓產(chǎn)生的函數(shù)更平滑一些,最常見的做法便是正則化,而頻譜歸一化則可以使正則化產(chǎn)生更明確的限制,因此Miyato 等人在文獻(xiàn)[25]中提出了頻譜歸一化GANs,利用頻譜范數(shù)[26]標(biāo)準(zhǔn)化神經(jīng)網(wǎng)絡(luò)的參數(shù)矩陣W,從而讓神經(jīng)網(wǎng)絡(luò)的梯度被限制在一個范圍內(nèi),以便讓正則化產(chǎn)生更明確的限制,但這同時也犧牲了模型的收斂速度。
上一節(jié)主要介紹了從損失函數(shù)方面進(jìn)行改進(jìn)的各種GANs 模型,通過各種改進(jìn),不但穩(wěn)定了模型的收斂性,同時也解決了模型崩潰的問題。而在這一節(jié)中,將介紹從模型的內(nèi)部網(wǎng)絡(luò)體系結(jié)構(gòu)和結(jié)合模型應(yīng)用等方面進(jìn)行改進(jìn)的各種GANs衍生模型。
在無監(jiān)督學(xué)習(xí)中,從大量無標(biāo)記數(shù)據(jù)集中學(xué)習(xí)到可重復(fù)使用的特征是十分有意義的,特別是在計(jì)算機(jī)視覺領(lǐng)域中,如果能從大批量無標(biāo)記圖像和視頻中學(xué)習(xí)到良好的中間特征,就可以將它用于諸如圖像分類這樣的監(jiān)督學(xué)習(xí)任務(wù)。要建立圖像的良好特征,可以通過訓(xùn)練無監(jiān)督學(xué)習(xí)的GANs 模型,并把判別模型和生成模型作為特征提取器,然后再應(yīng)用到有監(jiān)督學(xué)習(xí)上。因此,在基于GANs 的思想上,2015年Radford 等人[27]提出了一種將有監(jiān)督學(xué)習(xí)中的深度卷積神經(jīng)網(wǎng)絡(luò)CNNs 和無監(jiān)督學(xué)習(xí)的GANs 結(jié)合在一起的架構(gòu)——深度卷積對抗生成網(wǎng)絡(luò)(deep convolutional GANs,DCGANs)。通過在不同訓(xùn)練集上訓(xùn)練表明,不論是判別模型還是生成模型,也不論是單個對象還是圖像全局場景,DCGANs 都能學(xué)習(xí)到一系列特征,同時GANs 訓(xùn)練的穩(wěn)定性以及生成結(jié)果質(zhì)量都有了極大的提升,DCGANs 也因此建立起了CNNs在有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)之間的橋梁。
訓(xùn)練傳統(tǒng)GANs 需要找到具有連續(xù)高維參數(shù)的非凸博弈的納什均衡,而傳統(tǒng)GANs 通常使用梯度下降法進(jìn)行訓(xùn)練,這種算法雖然可以找到損失函數(shù)的最小值,但是無法找到博弈的納什均衡。并且當(dāng)該算法用于尋找納什均衡時,該算法可能無法收斂,即使做了結(jié)構(gòu)細(xì)化的DCGANs,其訓(xùn)練過程仍難以收斂。因此,Salimans 和Goodfellow 在文獻(xiàn)[28]中提出Improved-DCGANs,針對DCGANs 的訓(xùn)練過程,利用特征匹配、小批量判別、歷史平均、單側(cè)標(biāo)簽平滑和虛擬批次正態(tài)化五種不同的增強(qiáng)方法,使訓(xùn)練朝著收斂方向進(jìn)行。
針對GANs 無需預(yù)先建模,導(dǎo)致模型過于自由不可控的問題,Mirza和Osindero[29]提出了一種給GANs加上約束條件的模型,稱為CGANs(conditional GANs)。CGANs 就是一種帶條件約束的GANs,在G和D的模型中均引入條件變量y,通過將y作為G和D輸入層的一部分來進(jìn)行調(diào)節(jié),以此提高對模型的控制。這個改進(jìn)雖然簡單,但是被證明非常有效,并廣泛用于后續(xù)的相關(guān)工作中[30-32]。已有的文本圖像生成方法可以生成比較粗糙的模型,但是卻無法生成必要的細(xì)節(jié)和生動的物體,雖然CGANs 的出現(xiàn)提高了生成圖像的質(zhì)量,但是CGANs 仍無法產(chǎn)生高質(zhì)量的圖片。因此,Zhang 等人[6]在CGANs 的基礎(chǔ)上提出了StackGAN 來生成高質(zhì)量的圖片。StackGAN 通過堆疊的方法來實(shí)現(xiàn)目的,即將合成過程分解為兩個較易處理的階段。第一階段的GANs 利用文本描述粗略勾畫物體主要的形狀和顏色,生成低分辨率的圖片;第二階段的GANs 修正了第一階段的結(jié)果,生成細(xì)節(jié)豐富的高分辨率圖片,但是StackGAN 無法處理復(fù)雜文本。為了進(jìn)一步提高生成樣本的質(zhì)量,穩(wěn)定GANs的訓(xùn)練,Zhang 等人[33]提出了對StackGAN 進(jìn)一步改進(jìn)后的StackGAN++,相比于StackGAN,StackGAN++由多個生成器和多個鑒別器組成,它們以樹狀結(jié)構(gòu)排列,讓同一場景對應(yīng)的多個尺度的圖像由樹的不同分支生成,以此提升模型對復(fù)雜文本的處理能力。但是StackGAN++仍無法很好地處理很復(fù)雜的文本,因此Johnson 等人[34]提出了一種從場景圖生成圖像的端到端的方法,以處理更長更復(fù)雜的文本,與從文本描述生成圖像的方法相比,該方法能夠從結(jié)構(gòu)化場景圖中明顯地推理出對象和關(guān)系,并生成具有多個可識別對象的復(fù)雜圖像。
Donahue 等人[11]在GANs 的基礎(chǔ)上,結(jié)合編碼器的定義提出一種雙向生成對抗網(wǎng)絡(luò),不但能將潛在樣本映射到生成的數(shù)據(jù),而且能夠?qū)?shù)據(jù)逆映射到潛在表示上。在CGANs的基礎(chǔ)上,Perarnau 等人[12]則將編碼器和CGANs 相結(jié)合,提出了用于圖像編輯的可逆的CGANs,將真實(shí)圖像映射到高特征空間和條件表示中,這就允許根據(jù)任意的屬性重構(gòu)和修改真實(shí)圖像,即能夠重新生成具有確定性的復(fù)雜修改的真實(shí)圖像。在文獻(xiàn)[2]中,Karacan 等人利用反卷積神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)構(gòu)造了新的條件GANs——屬性-布局條件生成對抗性網(wǎng)絡(luò)(attribute-layout conditioned GAN,AL-CGAN)。AL-CGAN 模型被拆解成兩部分研究,即單屬性條件的A-CGAN 模型和單空間布局條件的L-CGAN 模型。同時還會對缺失的空間布局進(jìn)行補(bǔ)充,對每個場景進(jìn)行粗語義標(biāo)注,對缺失的屬性進(jìn)行屬性預(yù)測。
上述表明了深度卷積網(wǎng)絡(luò)能夠提升GANs 生成高分辨率圖片的細(xì)節(jié),但是由于卷積網(wǎng)絡(luò)的局部感受的限制,如果要生成大范圍相關(guān)的區(qū)域,卷積網(wǎng)絡(luò)就會出現(xiàn)問題。Qian 等人[35]提出將AttentiveNet 引入傳統(tǒng)的GANs 中,以此生成注意力圖(attentive map),并將注意力圖應(yīng)用于生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)中,使網(wǎng)絡(luò)能夠快速準(zhǔn)確地定位到圖像中的重點(diǎn)關(guān)注區(qū)域。但由于GANs 很難捕捉幾何結(jié)構(gòu)特征,使得GANs 在某些圖像類別上很難建模,因此依靠卷積來建立不同圖像區(qū)域之間的依賴關(guān)系的模型,其依賴關(guān)系的傳遞只能通過大范圍的多個卷積層來實(shí)現(xiàn)。隨著卷積大小的增加,網(wǎng)絡(luò)的真實(shí)容量也在增加,卻損失了計(jì)算效率。而self-attention 卻能夠做到依賴性和計(jì)算效率的平衡。因此,Zhang等人[36]提出將self-attention機(jī)制加入GANs 中,讓生成器和判別器可以自動學(xué)習(xí)圖像中的重要目標(biāo),形成了模型SAGAN(self-attention GAN)。SAGAN 克服了傳統(tǒng)GANs 模型均在低分辨率特征圖的空間局部點(diǎn)上來生成高分辨率的細(xì)節(jié)的缺陷——SAGAN 可以從所有的特征處生成細(xì)節(jié),并且SAGAN 的判別器可以判別兩幅具有明顯差異的圖像是否具有一致的高度精細(xì)特征,但仍有很大的提升空間。此外,Brock 等人[37]提出的BigGAN 以SAGAN 架構(gòu)為基礎(chǔ),將正交正則化應(yīng)用于生成器,使其適用于簡單的“截?cái)嗉记伞?,并使用鉸鏈損失作為GANs 目標(biāo)函數(shù),同時使用類條件BatchNorm 和含投影的D向G提供類信息,該方法極大地提高了生成圖像的逼真性和精細(xì)度。
上訴介紹的各種改進(jìn)只是眾多改進(jìn)中的一小部分,除此之外,研究者們利用各種相關(guān)的方法繼續(xù)改進(jìn)傳統(tǒng)GANs,以改善傳統(tǒng)GANs 的各種不足,例如:Ghosh 等人[38]利用多主體的GANs 來改進(jìn)傳統(tǒng)GANs模型崩塌的問題;Zhao等人[39]引入能量定義,提出了基于能量的生成對抗網(wǎng)絡(luò)(energy-based GAN,EBGAN),該模型將判別器看作一個能量函數(shù),將低能量賦給數(shù)據(jù)流行附近地區(qū)域,將高能量賦給其他區(qū)域,結(jié)果表明EBGAN 比傳統(tǒng)的GANs 更加穩(wěn)定,生成的圖像分辨率更高;Qi[40]提出的損失敏感型生成對抗網(wǎng)絡(luò),進(jìn)一步利用真實(shí)數(shù)據(jù)密度的Lipschitz 正則條件對其損失函數(shù)進(jìn)行正則化處理,得到一個正則化模型,該模型提升了GANs 生成新數(shù)據(jù)的泛化能力;Li 等人[13]將最大均值差異作為損失函數(shù),并結(jié)合自動編碼器,結(jié)果表明它能夠比傳統(tǒng)GANs 更有效地生成更好的生成模型;Tolstikhin 等人[41]使用自提高的訓(xùn)練機(jī)制,通過融合各生成模型,達(dá)到更好的擬合數(shù)據(jù)分布的目的,從而克服了GANs訓(xùn)練難以及模型崩潰問題。
GANs 作為一種生成模型,它并不局限于特定的數(shù)據(jù)類型,可以應(yīng)用于各種數(shù)據(jù),如圖像、音頻、文本等。它也不局限于特定的任務(wù),可以應(yīng)用于各種任務(wù),如圖像的處理、視頻生成、惡意檢查、通信保護(hù)和密碼破譯等。
針對GANs 模型過于自由問題,除了給其加上約束條件外,也可以通過讓GANs 分次完成任務(wù),一次生成一部分,分多次生成完整的目標(biāo),來避免這個問題。因此,Denton等人[42]采用這個思想,在基于CGANs的基礎(chǔ)上,提出了改進(jìn)模型LAPGANs(Laplacian pyramid of GANs)。LAPGANs是一種生成式參數(shù)模型,通過帶有Laplacian 金字塔框架的級聯(lián)卷積網(wǎng)絡(luò),以逐步求精的迭代方式生成高質(zhì)量的自然圖像樣本,LAPGANs 訓(xùn)練出來圖像比GANs 訓(xùn)練出來的圖像更加自然,邊緣也更加明確,但由于LAPGANs 的網(wǎng)絡(luò)深度較深,使得逐步求精的方法增加了網(wǎng)絡(luò)簡單記憶輸入樣本的難度。Li 等人[43]將對抗性生成式網(wǎng)絡(luò)應(yīng)用于Markovian 環(huán)境中,學(xué)習(xí)相同內(nèi)容的不同描述之間的映射,通過生成網(wǎng)絡(luò)G將輸入的圖像直接解碼為合成圖像的像素,然后利用判別器D去學(xué)習(xí)區(qū)分實(shí)際的特征塊和不合適的合成特征塊,通過對抗性訓(xùn)練反卷積神經(jīng)網(wǎng)絡(luò)來合成紋理,但是該方法在處理非紋理的數(shù)據(jù)上的表現(xiàn)不足。
GANs 模型不僅適用于二維空間,而且適用于三維空間。但不同于GANs 在二維空間的應(yīng)用,在三維空間中,GANs 的生成器需要建立從二維空間到三維空間的映射關(guān)系,并依據(jù)該映射關(guān)系將2D 圖像生成3D 形狀的對象,這個映射關(guān)系既是重點(diǎn)也是難點(diǎn),直接影響3D 對象的生成質(zhì)量。Wu 等人[44]在DCGANs的基礎(chǔ)上進(jìn)行改進(jìn),提出了3D 生成對抗網(wǎng)絡(luò)(3DGAN),它利用生成對抗網(wǎng)絡(luò)和體卷積網(wǎng)絡(luò)[45],建立從概率空間到3D 對象空間的映射,再利用判別器為三維對象的描述提供有用的特征信息,但是合成的3D 圖像的銳度和邊緣信息還有待提高。Gadelha 等人[46]提出的投影生成對抗網(wǎng)絡(luò)(PrGANs),利用其訓(xùn)練一個可以準(zhǔn)確表示3D 形狀的深度生成模型,將2D圖像生成3D 對象,并在傳遞給判別器之前將其轉(zhuǎn)換為2D 圖像,通過迭代訓(xùn)練周期,生成器通過改進(jìn)生成的3D 體素形狀來完善2D 圖像到3D 對象的投影結(jié)果。將GANs 應(yīng)用于三維空間上的探索還有很多,例如:Cao 等人[47]利用一種3D 輔助二重生成對抗網(wǎng)絡(luò)(aided duet GAN,AD-GAN)來精確地將人臉圖像旋轉(zhuǎn)到任意指定的角度;Wang 等人[48]結(jié)合3D 解碼器GANs 和長期循環(huán)卷積網(wǎng)絡(luò),以低分辨率填充缺失的三維數(shù)據(jù),使三維模型具有語義合理性和上下文細(xì)節(jié)。
隨著神經(jīng)網(wǎng)絡(luò)在無監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)領(lǐng)域上的發(fā)展,可以通過對輸入樣本的重構(gòu)來對數(shù)據(jù)分布進(jìn)行顯式建模,但是基于重構(gòu)的學(xué)習(xí)方法往往會學(xué)習(xí)并保存全部輸入樣本的特征。在GANs 的基礎(chǔ)上,Yi等人[49]提出了無監(jiān)督和半監(jiān)督學(xué)習(xí)下的分類生成式對抗網(wǎng)絡(luò)框架,即將神經(jīng)網(wǎng)絡(luò)分類器與對抗生成模型相結(jié)合,對抗生成模型對訓(xùn)練有素的分類器進(jìn)行正則化,以此使得與分類器一起學(xué)習(xí)的生成器能夠生成高視覺保真度的圖像。但由于傳統(tǒng)GANs的輸入是一組沒有任何限制且完全隨機(jī)的噪聲信號z,這使得無法將z的具體維度和數(shù)據(jù)的語義特征對應(yīng)起來,導(dǎo)致輸入向量對輸出產(chǎn)生不明確性的影響。因此,Chen 等人在文獻(xiàn)[50]中提出了無監(jiān)督學(xué)習(xí)的InfoGANs,他們將原本的輸入向量z拆成子向量c(可解釋的隱變量,表示對輸出產(chǎn)生影響的因素)和子向量z′(不可壓縮的噪聲)。InfoGANs 通過約束隱變量c與生成數(shù)據(jù)之間的關(guān)系,使c能夠直接代表數(shù)據(jù)某個方面的語義信息,進(jìn)而使得c與生成數(shù)據(jù)具有較高的互信息,以此解決隱變量可解釋性的問題。
為了提高圖像的分辨率,Ledig 等人[51]提出了一種超分辨率生成對抗網(wǎng)絡(luò)(super-resolution GAN,SRGAN),實(shí)現(xiàn)了低分辨圖像合成4 倍放大的高分辨率圖像,但生成的圖像的紋理信息并不夠真實(shí),且常常伴有噪聲。因此,Wang 等人[52]提出了一種增強(qiáng)分辨率的生成對抗網(wǎng)絡(luò)(enhanced super-resolution GAN,ESRGAN),對網(wǎng)絡(luò)的結(jié)構(gòu)、對抗性損失和感知性損失進(jìn)行改進(jìn)。并在此基礎(chǔ)上,引入殘差-剩余密集塊作為基本的網(wǎng)絡(luò)構(gòu)建單元,得益于這些改進(jìn),為亮度一致性和紋理恢復(fù)提供更強(qiáng)的監(jiān)控,產(chǎn)生的紋理比SRGAN 更真實(shí)和自然,進(jìn)一步提高了視覺的質(zhì)量。GANs 應(yīng)用于圖像超分辨率的例子還有很多,例如:Huang等人[53]提出的雙通道生成對抗網(wǎng)絡(luò)通過感知全局結(jié)構(gòu)和局部細(xì)節(jié),實(shí)現(xiàn)了從一張單側(cè)照片合成高分辨率的正面人臉圖像;Kupyn 等人[54]提出了一種基于CGANs和內(nèi)容損失的端到端學(xué)習(xí)法DeblurGAN,能夠去除由于運(yùn)動而產(chǎn)生的模糊;Kupyn等人對DeblurGAN進(jìn)行改進(jìn)得到DeblurGAN-v2[55],大大提高了去模糊效率、質(zhì)量和靈活性。
圖像到圖像的轉(zhuǎn)換是圖像領(lǐng)域中一大熱門研究方向,GANs 在該方向的研究也取得了一定的進(jìn)展。Isola 等人[31]在CGANs 的基礎(chǔ)上進(jìn)行圖像到圖像的轉(zhuǎn)換的研究,利用成對的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),表明了CGANs 是一種很有前途的圖像到圖像的轉(zhuǎn)換方法,特別是那些涉及高度結(jié)構(gòu)化圖形輸出的圖像。圖像到圖像的轉(zhuǎn)換通常使用一組成對的圖像對來學(xué)習(xí)輸入圖像和輸出圖像之間的映射,但是對于許多任務(wù),成對的訓(xùn)練數(shù)據(jù)很難獲取,因此Zhu 等人[56]提出了一種在沒有成對數(shù)據(jù)的情況下,設(shè)計(jì)雙生成器與雙鑒別器,形成雙向風(fēng)格遷移的CycleGAN 模型,學(xué)習(xí)將圖像從域X轉(zhuǎn)換為目標(biāo)域Y的方法,解決了pix2pix 必須使用成對數(shù)據(jù)的問題。Chen 等人[57]提出一種利用非成對數(shù)據(jù)來實(shí)現(xiàn)圖像增強(qiáng)的方法,其基于一個結(jié)構(gòu)類似于CycleGAN 的雙向GANs,并進(jìn)行改進(jìn),以此來實(shí)現(xiàn)圖像到增強(qiáng)圖像的轉(zhuǎn)換。
除了上述應(yīng)用外,GANs 在各個領(lǐng)域的應(yīng)用也十分廣泛,Wang 等人[58]對圖像生成過程進(jìn)行了分解,提出了一種基于風(fēng)格和結(jié)構(gòu)的生成反求網(wǎng)絡(luò);Creswell等人[59]將GANs 應(yīng)用于檢索;Zhu 等人[60]提出利用生成式對偶神經(jīng)網(wǎng)絡(luò)直接從數(shù)據(jù)中學(xué)習(xí)自然圖像流形;包仁達(dá)等人[61]提出了一種掩??刂频淖詣由蠆yGANs,能夠重點(diǎn)編輯上妝區(qū)域,約束人臉妝容編輯中無需編輯的區(qū)域不變,保持主體信息;Reed 等人[9]綜合了圖像和描述在哪個位置繪制什么內(nèi)容的指令;Vondrick 等人[62]利用大量未標(biāo)記的視頻來學(xué)習(xí)視頻識別任務(wù)(例如動作分類)和視頻生成任務(wù)(例如未來預(yù)測)的場景動力學(xué)模型;Taigman 等人[63]研究了將一個域上的樣本轉(zhuǎn)移到另一個域上的模擬樣本的問題,可以應(yīng)用于包括數(shù)字和人臉圖像在內(nèi)的視覺領(lǐng)域;Denton 等人[64]介紹了一種簡單的基于對抗性損失的畫中學(xué)習(xí)的半監(jiān)督學(xué)習(xí)方法;Mogren[65]提出了一種基于連續(xù)序列數(shù)據(jù)的生成式對抗模型,并將其應(yīng)用于古典音樂的集合;武隨爍等人[66]針對GANs 無法有效提取圖像局部與全局特征間依賴關(guān)系,以及各類別間的依賴關(guān)系,提出一種用于GANs 的孿生注意力模型;桑亮等人[67]基于GANs 的深度卷積網(wǎng)絡(luò),采用端對端的方式,復(fù)原了由于抖動或運(yùn)動所導(dǎo)致的模糊圖像的細(xì)節(jié)信息;時澄等人[68]利用GANs 對殘缺圖像進(jìn)行補(bǔ)全。除此之外,GANs 的應(yīng)用數(shù)不勝數(shù),但仍需要繼續(xù)研究。
在數(shù)據(jù)隱私保護(hù)中,如何保證數(shù)據(jù)集的可利用性和隱私性的平衡是極為重要的。隨著GANs 應(yīng)用領(lǐng)域的不斷擴(kuò)大,其在隱私保護(hù)中也有所應(yīng)用。GANs 利用自身的優(yōu)勢,將噪聲添加到潛在空間而不是直接添加到數(shù)據(jù)中,減少了整體的信息損失,同時保證了隱私。Triastcyn 等人[69]提出了一種生成人工數(shù)據(jù)集的方法,在生成對抗網(wǎng)絡(luò)的判別器中加入高斯噪聲層,使輸出和梯度相對于訓(xùn)練數(shù)據(jù)具有不同的私密性,然后利用生成器組件合成具有保密性的人工數(shù)據(jù)集,不但保留了真實(shí)數(shù)據(jù)的統(tǒng)計(jì)特性,同時為這些數(shù)據(jù)提供了差分隱私保護(hù)。Beaulieu-Jones 等人[70]結(jié)合GANs 和差分隱私提出了差分隱私輔助分類生成對抗網(wǎng)絡(luò),用于生成醫(yī)療臨床數(shù)據(jù)。針對當(dāng)GANs 應(yīng)用于私人或敏感數(shù)據(jù)(如病人的醫(yī)學(xué)病歷),并且分布的集中可能泄露關(guān)鍵的病人信息的問題,Xie等人[71]提出了一種差分私有GANs 模型——DPGAN(differentially private GAN)模型,通過在學(xué)習(xí)過程中向梯度中添加精心設(shè)計(jì)的噪聲來實(shí)現(xiàn)GANs 的差分隱私。同樣,Huang 等人[72]結(jié)合GANs 提出一種上下文感知隱私模型,通過巧妙添加噪聲來實(shí)現(xiàn)私有數(shù)據(jù)的發(fā)布。Frigerio 等人[73]通過差異隱私定義提出了一個保護(hù)隱私的數(shù)據(jù)發(fā)布框架,從時間序列到連續(xù)數(shù)據(jù)和離散數(shù)據(jù)的生成,均可以很容易地適應(yīng)不同的用例,以保證在發(fā)布新的開放數(shù)據(jù)的同時保護(hù)用戶的個性。Papernot 等人[74]提出了一種教師-學(xué)生模式的深度網(wǎng)絡(luò)隱私保護(hù)方法,利用教師深度模型和學(xué)生GANs 模型,通過訓(xùn)練從而達(dá)到保護(hù)訓(xùn)練數(shù)據(jù)集的目的,但是這種將模型訓(xùn)練過程視為黑盒,僅從模型外部添加隱私保護(hù)機(jī)制,其保護(hù)效果的可控性是不夠的。
GANs 除了應(yīng)用于隱私保護(hù)外,還被應(yīng)用于惡意檢測中。為了有效地檢測包括零日攻擊在內(nèi)的惡意軟件,Kim 等人[75]提出了一種轉(zhuǎn)移深度卷積生成對抗網(wǎng)絡(luò)(transferred deep-convolutional GAN,tDCGAN),基于深度自編碼技術(shù),利用實(shí)際數(shù)據(jù)和tDCGAN 生成的修改數(shù)據(jù)學(xué)習(xí)各種惡意軟件的特征,提取有意義的特征進(jìn)行惡意軟件檢測。GANs 同樣適用于信用卡欺騙檢測,F(xiàn)iore 等人[76]訓(xùn)練一個GANs 模型來輸出模擬的少數(shù)類的欺騙例子,然后將這些例子與訓(xùn)練數(shù)據(jù)合并成一個增強(qiáng)訓(xùn)練集,從而提高分類器對少數(shù)類欺騙例子的分類效率。為了有效識別受害者向詐騙者發(fā)送大額轉(zhuǎn)賬,Zheng 等人[77]提出了一種基于GANs 的模型來計(jì)算銀行每筆大額轉(zhuǎn)賬的欺詐概率,讓銀行采取適當(dāng)?shù)拇胧?,以此防止?jié)撛诘尿_子在概率超過閾值時取錢。除了這些惡意檢測,GANs 還可以用于檢測僵尸網(wǎng)絡(luò),Yin 等人[78]提出了一種基于GANs 的僵尸網(wǎng)絡(luò)檢測模型框架——Bot-GAN,生成模型不斷生成偽樣本,以輔助原檢測模型提高性能。
GANs 的廣泛適用性,使其在信息安全領(lǐng)域中最為古老的密碼學(xué)中同樣也適用。2016年,Abadi等人[79]利用GANs 的對抗學(xué)習(xí)機(jī)制,將傳統(tǒng)的對稱加密體系中的通信雙方及敵手用神經(jīng)網(wǎng)絡(luò)進(jìn)行代替,以此實(shí)現(xiàn)加解密的過程,達(dá)到保護(hù)通信過程的目的。在文獻(xiàn)[80]中李西明等人改進(jìn)Abadi 等人的模型,進(jìn)行了抗泄漏加密通信測試,發(fā)現(xiàn)了利用生成對抗網(wǎng)絡(luò)實(shí)現(xiàn)抗泄漏加密通信的可能性。Coutinho 等人[81]利用選擇明文攻擊的概念改進(jìn)了Abadi 等人的模型,證明了神經(jīng)網(wǎng)絡(luò)在適當(dāng)?shù)沫h(huán)境下可以學(xué)習(xí)一次性密碼本。除了保護(hù)通信之外,GANs 同樣也適用于密碼破譯。Gomez 等人[82]基于GANs 提出CipherGAN,用于破譯古典密碼學(xué)中移位密碼和維吉尼亞密碼,Hitaj等人[83]提出了一種利用GANs 來增強(qiáng)密碼破譯的新方法——PassGAN,通過在泄露密碼列表中訓(xùn)練GANs 來實(shí)現(xiàn)密碼破譯,為GANs 在密碼學(xué)上的應(yīng)用前景提供了更廣闊的道路。
自2014年GANs 的誕生以來,它作為一種新型的生成模型得到了廣泛的應(yīng)用。作為一個生成模型,GAN 模型避免了一些傳統(tǒng)生成模型在實(shí)際應(yīng)用中的一些困難,巧妙地通過對抗學(xué)習(xí)來近似一些不可解的損失函數(shù),這是其最大的創(chuàng)新之處,也是其產(chǎn)生問題的根源。針對其產(chǎn)生的各種問題,研究者們近幾年不斷地進(jìn)行研究分析,將GANs 與各種相關(guān)的方法進(jìn)行改進(jìn)融合,得到了許多有效的成果。但目前的GANs 仍存在不足及缺陷,有賴于研究者們進(jìn)一步解決。在應(yīng)用上,GANs 被廣泛應(yīng)用于圖像、文本生成、自然語言和信息安全等領(lǐng)域中,其中應(yīng)用最為熱門的領(lǐng)域當(dāng)屬圖像領(lǐng)域。
雖然GANs 已經(jīng)在許多方面得到應(yīng)用,但其仍存在廣大的應(yīng)用前景,特別是在信息安全領(lǐng)域。在未來的工作中,可以從以下幾點(diǎn)深入研究GANs 在信息安全領(lǐng)域中的應(yīng)用。
(1)利用GANs 的特性,結(jié)合圖像水印技術(shù),將信息附著在圖像上進(jìn)行傳輸,達(dá)到消息的安全傳遞的效果。
(2)利用GANs 的對抗學(xué)習(xí)機(jī)制,分析病毒樣本,預(yù)測新型病毒,形成自動防御體系。
(3)將GANs 與經(jīng)典密碼學(xué)相結(jié)合,分析破譯率,并利用GANs 的對抗學(xué)習(xí)機(jī)制,保證公鑰密碼體制下的安全通信,實(shí)現(xiàn)消息的可認(rèn)證性和保密性。