才 智, 魏為民, 孟繁星, 劉 暢
(上海電力大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 200090)
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的分支,是一種以人工神經(jīng)網(wǎng)絡(luò)為架構(gòu),對(duì)資料進(jìn)行表征學(xué)習(xí)的算法[1]。隨著數(shù)據(jù)總量和硬件性能的不斷提升,各種神經(jīng)網(wǎng)絡(luò)層出不窮,對(duì)人工智能技術(shù)的發(fā)展起到了一定的推動(dòng)作用。2014年,GOODFELLOW I J等人[2]第一次提出了生成式對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN),此后眾多學(xué)者對(duì)其進(jìn)行了研究,將生成式對(duì)抗網(wǎng)絡(luò)應(yīng)用于不同領(lǐng)域。
生成式對(duì)抗網(wǎng)絡(luò)由生成器G(Generator)和判別器D(Discriminator)兩種模型構(gòu)成,均為多層感知器。它是基于博弈論中的零和博弈思想,通過生成器和判別器二者不斷地博弈,進(jìn)而達(dá)到納什平衡的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)。作為一個(gè)具有“無限”生成能力的模型,GAN的直接應(yīng)用就是建模,生成與真實(shí)數(shù)據(jù)分布一致的數(shù)據(jù)樣本[3]。
生成器和判別器所用的網(wǎng)絡(luò)通常由包含卷積層和完全連接層的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)。生成器和判別器必須是可微分的,但不必是直接可逆的[4]。生成器G根據(jù)輸入的學(xué)習(xí)噪聲,生成新的逼真圖像;然后由判別器D對(duì)G生成的圖像進(jìn)行評(píng)價(jià),根據(jù)評(píng)價(jià)結(jié)果,對(duì)G的參數(shù)進(jìn)行調(diào)整,進(jìn)而由G再生成新的圖像;如此往復(fù),最終生成符合要求的圖像。生成式對(duì)抗網(wǎng)絡(luò)工作流程如圖1所示。
圖1 生成式對(duì)抗網(wǎng)絡(luò)工作流程
為了學(xué)習(xí)輸入到生成器的數(shù)據(jù)x的分布pdt(x),即真實(shí)數(shù)據(jù)的分布情況,將噪聲z輸入給生成器G(一個(gè)可微函數(shù)),即用G(z)來表示數(shù)據(jù)空間的映射。判別器D輸出一個(gè)標(biāo)量D(x),表示x來自數(shù)據(jù)而不是pg(即生成的數(shù)據(jù))的概率,其輸出的值越大,代表生成的數(shù)據(jù)越真實(shí)。D和G完成一種博弈,其損失函數(shù)V(G,D)所示不斷地輸入真實(shí)數(shù)據(jù)x和噪聲z,計(jì)算出函數(shù)D的表達(dá)式,使損失函數(shù)的值最大,同時(shí)計(jì)算出G的表達(dá)式,使此時(shí)損失函數(shù)的值最小[2]。
minGmaxDV(G,D)=Ex~pdt(x)[logD(x)]+
Ez~pz(z)[log(1-D(G(z)))]
(1)
生成式對(duì)抗網(wǎng)絡(luò)目前應(yīng)用于圖像、音頻和視頻3大領(lǐng)域,在不同方向上的應(yīng)用主要表現(xiàn)在以下幾個(gè)方面。
人類可以通過視覺感知世界,而機(jī)器同樣可以通過圖片來學(xué)習(xí)世界。但是在機(jī)器學(xué)習(xí)未得到大規(guī)模應(yīng)用前,機(jī)器是無法脫離人的操作來對(duì)圖片進(jìn)行處理的,如圖像識(shí)別是指利用計(jì)算機(jī)對(duì)圖像進(jìn)行處理、分析和理解,以識(shí)別各種不同模式的目標(biāo)和對(duì)象的技術(shù)[5]。當(dāng)GAN被提出后,大量基于生成式對(duì)抗網(wǎng)絡(luò)的研究應(yīng)用到圖像處理領(lǐng)域,使得機(jī)器自動(dòng)對(duì)圖片進(jìn)行處理成為可能。
2.1.1 圖像生成
RADFORD A等人[6]對(duì)GAN進(jìn)行了改進(jìn),提出了一種生成清晰圖像的神經(jīng)網(wǎng)絡(luò)(Deep Convolutional Generative Adversarial Networks,DCGAN)。該方法通過訓(xùn)練生成式對(duì)抗網(wǎng)絡(luò),將生成器和判別器的一部分重新用作有監(jiān)督任務(wù)的特征提取器;將卷積網(wǎng)絡(luò)引入生成式模型中進(jìn)行無監(jiān)督的訓(xùn)練,利用卷積網(wǎng)絡(luò)強(qiáng)大的特征提取能力提高生成網(wǎng)絡(luò)的學(xué)習(xí)效果;將100維均勻分布Z投影到具有多個(gè)特征映射的小空間卷積表示中,通過4次卷積將高維圖像轉(zhuǎn)換成64×64像素的圖像,但并沒有使用完全連接層或池層。DCGAN具有以下4個(gè)特點(diǎn):一是在判別器模型中使用strided convolutions來替代空間池化(pooling),而在生成器模型中使用fractional strided convolutions;二是使用批量標(biāo)準(zhǔn)化(Batch Normalization,BN)加快收斂速度,使網(wǎng)絡(luò)學(xué)習(xí)更加穩(wěn)定,有助于處理初始化不良導(dǎo)致的訓(xùn)練問題;三是去除全連接層,直接使用卷積層連接生成器和判別器的輸入層以及輸出層,減弱對(duì)收斂速度的影響;四是在生成器的輸出層使用tanh激活函數(shù),而在其他層使用ReL激活函數(shù)。
由于DCGAN輸入隨機(jī)噪聲來生成符合真實(shí)數(shù)據(jù)分布的圖片,所以不能指定生成相似結(jié)構(gòu)的照片,有一定的隨機(jī)性。研究者通過有監(jiān)督的學(xué)習(xí),在原有GAN的基礎(chǔ)上,對(duì)損失函數(shù)進(jìn)行改進(jìn),提出了條件生成網(wǎng)絡(luò)(Conditional Generative Adversarial Network,CGAN)[7]。其損失函數(shù)表示D和G完成一種博弈,通過不斷地輸入真實(shí)數(shù)據(jù)x與條件y的疊加(x|y)和噪聲z與條件y的疊加(z|y),計(jì)算出函數(shù)D的表達(dá)式,使損失函數(shù)的值最大,同時(shí)計(jì)算出G的表達(dá)式,使損失函數(shù)的值最小。計(jì)算公式為
Ez~pz(z)[log(1-D(G(z|y)))]
(2)
CGAN在G和D的輸入端添加了條件,使得對(duì)G生成的圖片做了一定的控制,生成的數(shù)據(jù)就有了具體的方向。
變頻發(fā)電時(shí),增加1臺(tái)4 000 kW發(fā)電機(jī)(6 kV/50Hz)和 1臺(tái) 4 300 kW電動(dòng)機(jī)(3 kV/25Hz)及相應(yīng)附件,變頻機(jī)組轉(zhuǎn)速107 r/min。變頻機(jī)組約需250萬元,增加廠房造價(jià)約60萬元,相應(yīng)輔助設(shè)備約需50萬元,合計(jì)360萬元,其余費(fèi)用相同。
2.1.2 風(fēng)格轉(zhuǎn)換
風(fēng)格轉(zhuǎn)換可以看作是將樣式從一個(gè)圖像轉(zhuǎn)移到另一個(gè)圖像的紋理轉(zhuǎn)移問題。在紋理傳輸中,目標(biāo)是從源圖像合成紋理,同時(shí)約束紋理合成,以保持目標(biāo)圖像的語義內(nèi)容[8]。
Pix2pix[9]是對(duì)CGAN的應(yīng)用,通過輸入成對(duì)的訓(xùn)練數(shù)據(jù),實(shí)現(xiàn)圖片到圖片的翻譯,將圖片從一種風(fēng)格轉(zhuǎn)換成另一種風(fēng)格。這種網(wǎng)絡(luò)不僅學(xué)習(xí)輸入圖像到輸出圖像的映射,而且還學(xué)習(xí)一個(gè)損失函數(shù)來訓(xùn)練這種映射。這使得采用相同的方法,解決傳統(tǒng)上需要不同損失公式的問題成為可能。Pix2pix研究結(jié)果表明,條件生成網(wǎng)絡(luò)適用于許多圖像-圖像轉(zhuǎn)換任務(wù),特別是涉及高度結(jié)構(gòu)化圖形輸出的任務(wù)。該網(wǎng)絡(luò)根據(jù)任務(wù)和數(shù)據(jù)學(xué)習(xí)損失,適用于各種各樣的設(shè)置。
針對(duì)Pix2pix成對(duì)訓(xùn)練數(shù)據(jù)不好獲取的問題,ZHU J等人[10]提出了一種在沒有成對(duì)例子的情況下,能夠?qū)D像從源域X轉(zhuǎn)換到目標(biāo)域Y的方法。通過學(xué)習(xí)一個(gè)映射G:X→Y,使來自G(X)圖像的分布與目標(biāo)分布Y高度相似,得到Y(jié)風(fēng)格的X圖像。該模型包含兩個(gè)生成器G:X→Y和F:Y→X,以及相關(guān)的判別器DY和DX。前向循環(huán)一致性損失為x→G(x)→F(G(x))≈x,后向循環(huán)一致性損失為y→F(y)→G(F(y))≈y。
2.1.3 圖像修復(fù)
YU J等人[11]提出了一種新的基于深度生成模型的方法,不僅可以合成新的圖像結(jié)構(gòu),而且可以在網(wǎng)絡(luò)訓(xùn)練過程中顯式地利用周圍的圖像特征作為參考,以做出更好的預(yù)測(cè)。該模型是一個(gè)前向的、完全卷積的神經(jīng)網(wǎng)絡(luò),能夠在測(cè)試期間處理任意位置和可變大小的多個(gè)孔的圖像。
桑亮等人[12]提出了一個(gè)復(fù)原由運(yùn)動(dòng)而導(dǎo)致模糊圖像的解決方案。該方案利用了模糊核估計(jì)過程,采用端對(duì)端的方式直接獲取復(fù)原圖像,并且通過引入GAN對(duì)抗損失和對(duì)殘差網(wǎng)絡(luò)進(jìn)行改進(jìn),有效地復(fù)原了圖像的細(xì)節(jié)信息。
CAI W等人[13]提出了PiiGAN模型,配備了一種全新的風(fēng)格提取器,可以從基礎(chǔ)事實(shí)中提取風(fēng)格特征,摒棄了傳統(tǒng)修復(fù)圖片產(chǎn)生單一最優(yōu)結(jié)果的缺陷,而是考慮了修復(fù)任務(wù)的不確定性。對(duì)于一個(gè)缺失區(qū)域的單一輸入圖像,該模型可以生成大量具有可信內(nèi)容的不同結(jié)果。
在信息安全方面,應(yīng)用GAN來提升隱寫質(zhì)量,得到了眾多研究者的關(guān)注。
YANG J H等人[14]提出了一種生成隱寫框架的失真函數(shù)。利用3個(gè)模塊:一個(gè)模塊是以U-Net為框架的生成器,使封面圖像轉(zhuǎn)化為嵌入變化概率圖;一個(gè)模塊以不需要預(yù)訓(xùn)練的雙tanh函數(shù)來逼近最優(yōu)嵌入模型,同時(shí)在對(duì)抗式訓(xùn)練的反向傳播過程中保持梯度范數(shù);一個(gè)模塊以卷積神經(jīng)網(wǎng)絡(luò)和多個(gè)高通濾波器作為判別器的增強(qiáng)型隱寫分析器。隱寫生成對(duì)抗網(wǎng)絡(luò)(Steganographic Generative Adversarial Networks,SGAN)[15]是在DCGAN的基礎(chǔ)上加了一個(gè)由CNN實(shí)現(xiàn)的判別器網(wǎng)絡(luò),對(duì)輸入給該網(wǎng)絡(luò)的圖像進(jìn)行隱寫分析。
2.2.1 音頻合成
GAN在生成本地和全局一致的圖像方面已經(jīng)得到了廣泛的應(yīng)用,但在音頻生成方面的應(yīng)用卻很少。這是因?yàn)橐环矫嬉纛l具有較高的時(shí)間分辨率(通常至少為每秒16 000個(gè)樣本),另一方面在不同時(shí)間尺度上存在短期和長(zhǎng)期依賴性的結(jié)構(gòu),使得音頻的生成較為困難。
DONAHUE C等人[16]提出了WaveGAN,首次嘗試將其應(yīng)用于原始波形音頻的無監(jiān)督合成。WaveGAN能夠合成具有全局相干性的音頻波形片段,也適合于產(chǎn)生聲音效果,如生成鼓、鳥叫聲和鋼琴聲等。WaveGAN架構(gòu)基于DCGAN,但是與DCGAN的生成器使用轉(zhuǎn)置卷積操作,迭代地將低分辨率特征映射采樣到高分辨率圖像中不同,它修改了這種轉(zhuǎn)置積運(yùn)算[16]。此外,DCGAN使用較小的(5×5)二維濾波器,而WaveGAN使用較長(zhǎng)的(長(zhǎng)度為25)一維濾波器和較大的上采樣因子。兩種策略的參數(shù)和數(shù)值運(yùn)算數(shù)目相同。
KUMAR K等人[17]提出了MelGAN,通過引入一組簡(jiǎn)單的訓(xùn)練技術(shù),證明了可靠地訓(xùn)練GAN,生成高質(zhì)量的相干波形是可能的。
2.2.2 文本轉(zhuǎn)語音
TULYAKOV S等人[19]提出了基于運(yùn)動(dòng)和內(nèi)容分解的生成對(duì)抗網(wǎng)絡(luò)(MoCoGAN)視頻生成框架。該框架通過將隨機(jī)向量序列映射到視頻幀序列來生成視頻。每個(gè)隨機(jī)向量由一個(gè)內(nèi)容部分和一個(gè)運(yùn)動(dòng)部分組成。當(dāng)內(nèi)容部分保持固定時(shí),運(yùn)動(dòng)部分為一個(gè)隨機(jī)過程。為了在無監(jiān)督的情況下學(xué)習(xí)運(yùn)動(dòng)和內(nèi)容分解,該框架提出了一種新的基于圖像和視頻判別器的對(duì)抗學(xué)習(xí)方案。
CLARK A等人[20]提出了一種生成高保真視頻的對(duì)抗網(wǎng)絡(luò)DVD-GAN。這種模型通過利用判別器的計(jì)算效率分解將原視頻擴(kuò)展為更長(zhǎng)、更高分辨率的視頻。通過評(píng)估視頻合成和視頻預(yù)測(cè)的相關(guān)任務(wù),該研究為Kinetics-600預(yù)測(cè)提供了最先進(jìn)的Frechet初始距離,為UCF-101數(shù)據(jù)集的合成提供了最先進(jìn)的初始分?jǐn)?shù),也為Kinetics-600的合成建立了強(qiáng)有力的基線。
GAN開始時(shí)大多應(yīng)用于圖像處理中,近期應(yīng)用GAN對(duì)音頻、視頻處理的研究逐漸增多。相對(duì)于音頻處理,由于視頻和圖像易于編碼,因此利用GAN能夠相對(duì)容易地完成對(duì)圖像和視頻的處理。音頻具有較高的時(shí)間分辨率,在目前階段,由于基本上是以波形圖為中間步驟來進(jìn)行音頻生成的,所以有一定的復(fù)雜性;但隨著技術(shù)的發(fā)展,相信在未來GAN會(huì)更多地應(yīng)用于音頻領(lǐng)域。
GAN邏輯是一種類比、對(duì)抗進(jìn)化的思想。如果能夠?qū)⑦@種思想應(yīng)用在機(jī)器人行為模式上,通過輸入人類行為,讓機(jī)器在學(xué)習(xí)現(xiàn)有的人類行為的基礎(chǔ)上,創(chuàng)造出類似的行為,將加速機(jī)器通過圖靈測(cè)試的時(shí)間。
當(dāng)然,GAN也存在一些問題:一方面,GAN的訓(xùn)練過程復(fù)雜,需要使用高性能的硬件,尤其對(duì)顯卡的要求較高;另一方面,GAN訓(xùn)練效果不夠穩(wěn)定,若使用小數(shù)據(jù)集訓(xùn)練,就達(dá)不到理想結(jié)果,而若使用大訓(xùn)練集,則有可能導(dǎo)致訓(xùn)練崩潰。此外,GAN也存在一定的倫理問題。如生成一些名人的虛假照片以達(dá)到宣傳的目的,從而造成重大的社會(huì)問題。技術(shù)本身是無罪的,研究人員應(yīng)保持對(duì)技術(shù)的敬畏之心,用技術(shù)去創(chuàng)造更好的世界。