張晨曦,姚 瓊,秦飛巍,葛瑞泉
(1.杭州電子科技大學計算機學院,浙江 杭州 310018;2.臺州中學)
上世紀90年代機器學習研究興起,各種新技術(shù)不斷涌現(xiàn),如卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)。當計算機神經(jīng)網(wǎng)絡(luò)拓展到三層及三層以上時便出現(xiàn)了深度學習技術(shù)。深度學習作為計算機機器學習領(lǐng)域新的研究方法,已經(jīng)廣泛運用于計算機視覺、圖像識別、語音識別、自然語言識別等不同領(lǐng)域。其中基于對抗學習的生成對抗網(wǎng)絡(luò)也逐漸成為近幾年的熱點之一。
自2014年Goodfellow博士提出生成對抗網(wǎng)絡(luò)概念以來,截至2022 年,生成對抗網(wǎng)絡(luò)(GAN,Generative Adversarial Network)衍生出多種不同類型的對抗網(wǎng)絡(luò)結(jié)構(gòu),它們在圖像處理的不同領(lǐng)域發(fā)揮著各自的作用,成為深度學習領(lǐng)域不可或缺的一部分[1]。目前,國內(nèi)外涌現(xiàn)的許多基于原始GAN 的改良生成對抗網(wǎng)絡(luò),大多從以下五個方向?qū)AN進行了優(yōu)化拓展[2]。
⑴可解釋性與可控性:在使用GAN進行圖像生成訓練時,以往我們不能具體量化每個參數(shù)對生成結(jié)果的影響,如今其可解釋性得到提升。在可控性方面,傳統(tǒng)GAN 的輸入取決于隨機函數(shù)不受控制,因此也產(chǎn)生了如條件GAN等可自定義輸入的改良模型。
⑵穩(wěn)定性:在訓練模型時可能出現(xiàn)梯度消失或梯度爆炸現(xiàn)象,導致模型坍塌得不到正確的訓練結(jié)果,即穩(wěn)定性低?,F(xiàn)在的GAN模型在穩(wěn)定性方面得到了極大改善。
⑶評價標準:區(qū)別于以往純?nèi)庋塾^察,如今大多使 用Amazon Mechanical Turk(AMT)、Frechet Inception Distance(FID)、Inception Score(IS)三種標準來進行定量評價模型。
⑷學科交叉:通過引入其他學科,如人工智能、概率論、信息論等,使模型性能得到提升。
⑸實用價值:對生成對抗網(wǎng)絡(luò)的應用進行開發(fā)拓展,結(jié)合日常生活,挖掘其實用價值。
盡管生成對抗網(wǎng)絡(luò)領(lǐng)域的研究成果眾多,但仍存在許多問題,其生成圖像結(jié)果也還有進步的空間,為了解決這些問題,模型優(yōu)化基本可分為兩類:一類是對GAN的原理算法進行改進,從數(shù)學的角度修改函數(shù)達到更精確的擬合,另一類是對GAN的外部結(jié)構(gòu)進行改進,通過判別器與生成器的組合來實現(xiàn)優(yōu)化。
GAN 模型是對聯(lián)合分布概率P(x,y)建模的一種生成式模型,其中的對抗是指在模型訓練過程中處于一種對抗博弈的狀態(tài)。隨機生成的測試圖片會與真實目標圖片進行對比,互相促進以優(yōu)化模型。一個GAN 模型主要包含兩部分:生成器G(Generator)和判別器D(Discriminator)[3]。
⑴生成器
生成器先隨機輸入一個噪聲變量,最好滿足常見分布如高斯分布與均值分布,接著將其映射到一個可以輸出圖片的數(shù)據(jù)空間G(z,θg),例如全連接神經(jīng)網(wǎng)絡(luò)或者反卷積網(wǎng)絡(luò)等。其中θg是該數(shù)據(jù)空間模型的參數(shù)。然后得到一組由生成器生成的數(shù)據(jù)G(z),它構(gòu)成一張測試假圖片。
⑵判別器
判別器將通過價值函數(shù)對輸入的真實圖片與生成器生成的假圖片進行判別,最后輸出一個概率P 代表圖片的真實性,1-P 即為假圖片的概率。而最理想的情況是當判別器對于真實圖片與假圖片的判別結(jié)果都為0.5(此時判別器無法區(qū)分真假圖片的不同,又稱達到納什均衡),此時GAN模型達到平衡。
⑶訓練過程
訓練時GAN 通過價值函數(shù)(損失函數(shù))來進行真假區(qū)分判斷,其函數(shù)為:
該函數(shù)中z 是隨機噪點變量,G(z)是z 通過生成器G映射的數(shù)據(jù)分布。因此函數(shù)也可以寫為:
其中,V(D,G)代表訓練圖片與真實圖片的差別。當訓練判別器時(計算maxD),生成器G 保持不變,函數(shù)中前半部分表示真實圖片的價值,其中D(x)表示x 的判別結(jié)果為真的概率,我們希望這個值無限接近于1。而函數(shù)后半部分表示假圖片的價值,1-D(x)表示判別結(jié)果為假的概率,同樣我們希望它能100%判別它為假(即D(x)=0),此時整個函數(shù)的值趨近于0(系統(tǒng)的熵為0,趨于穩(wěn)定)。當訓練生成器時(計算minG),判別器D保持不變,即函數(shù)的前半部分為常數(shù),此時我們希望每一張假圖片在經(jīng)過判別器時都會被判別為真,則D(x)=1,1-D(x)=0[4]。
最終,當判別結(jié)果達到0.5 時系統(tǒng)最優(yōu)。同時執(zhí)行時按照先訓練更新k次判別器后更新一次生成器的流程,這樣可以使判別器盡量不出錯,使結(jié)果更加可靠。
⑴深度卷積對抗網(wǎng)絡(luò)(DCGAN)
DCGAN 模型是將GAN 模型使用的多層感知機用卷積神經(jīng)網(wǎng)絡(luò)(CNN)代替,也就是從內(nèi)部原理進行優(yōu)化,進一步提升模型的生成質(zhì)量,使圖像更接近于真實。
相比傳統(tǒng)GAN,DCGAN的改進在于:使用卷積和去卷積代替池化層;在生成器和判別器中都添加批量歸一化操作;去掉全連接層,代替使用全局池化層;生成器輸出層使用Tanh 激活函數(shù),其他層使用ReLU;判別器所有層都使用LeakyReLU 激活函數(shù)[5]。
在訓練方法上,DCGAN 和GAN 并無區(qū)別,都是先訓練k 次判別器后訓練一次生成器,同時使其判別器結(jié)果穩(wěn)定在0.5 達到納什均衡。在加入CNN 后,深度卷積對抗網(wǎng)絡(luò)具備了更強的性能,更好的擬合度,同時生成圖也具備了多樣性特點,因此該模型獲得了廣泛的應用。但與傳統(tǒng)GAN 相比它仍沒能解決生成圖像素低,圖像質(zhì)量差的問題。
⑵Wasserstein生成對抗網(wǎng)絡(luò)(WGAN)
GAN 模型在數(shù)據(jù)層面的問題會導致當判別器性能極佳時,生成器會有梯度消失的情況發(fā)生,即無論生成器生成怎樣的圖片都會被判為假,此時生成器就無法得到優(yōu)化。為了解決這一問題,WGAN從內(nèi)部原理進行改進,與條件GAN不同的是它從損失函數(shù)入手。
WGAN 對比GAN 做出了以下幾點改變:①去掉判別器的sigmoid 函數(shù),即神經(jīng)元非線性激活函數(shù)(輸出范圍0~1,可表示概率);②損失函數(shù)的計算使用乘法;③每次訓練時將判別器權(quán)重參數(shù)截斷在某一范圍,這樣可以滿足lipschitz 條件(利普希茨連續(xù)條件),使判別器改變速度受限,優(yōu)化更為平滑,提高其穩(wěn)定性[6]。
WGAN 提高了訓練的穩(wěn)定性,較好地應對了梯度消失崩潰的問題,同時生成結(jié)果擬合度也得到一定程度提高。但是WGAN 訓練時間長,而且當判別器權(quán)重裁剪到一定范圍時,會導致權(quán)重堆積在裁剪邊界上,造成梯度爆炸。
⑶Pix2PixHD
與上面兩種方式不同,Pix2Pix是通過改變外部結(jié)構(gòu)進行優(yōu)化的。首先生成器的輸入由以前的隨機生成噪點變?yōu)橛脩糇远x圖片,解決了GAN模型的無用戶控制能力問題。但隨之而來的是,判別器在判斷用戶自定義輸入圖片經(jīng)過生成器映射出的G(x)時,無法對其相關(guān)性做出準確判別。所以在原來GAN 的基礎(chǔ)上,Pix2Pix 在判斷時加入用戶自定義圖片輸入作為條件共同判斷。
通過Pix2Pix模型可以得到自己想要的生成方向,但同樣的讓網(wǎng)絡(luò)產(chǎn)生高維數(shù)據(jù)輸出高精度圖像十分困難,圖像分辨率與圖像質(zhì)量仍然是一個沒解決的問題。所以Pix2PixHD 模型采用了一種循環(huán)的金字塔式方法(一層層向上遞進細化),其將第一次生成的低分辨率圖片作為下一次訓練的自定義輸入圖片,在不停的循環(huán)后得到一個高質(zhì)量輸出結(jié)果。在這種訓練模式下,要求訓練集必須是一一對應的成對數(shù)據(jù),這也算是該模型的一個缺點[7]。
⑷CycleGAN
在現(xiàn)實生活中,有時要得到成對數(shù)據(jù)十分困難,例如我們想把貓變成狗,其對應的真實圖片是不存在的,這時就要用到CycleGAN 模型。該模型訓練集可以是兩個毫無關(guān)聯(lián)的不成對數(shù)據(jù),因此它同樣是從外部結(jié)構(gòu)入手,通過構(gòu)建兩個相同的GAN模型來實現(xiàn)一個環(huán)形網(wǎng)絡(luò),避免所有的x都被映射到同一個y。
在CycleGAN 模型中,這兩個對稱的GAN 模型共享兩個生成器G 和F,同時各自擁有一個判別器Dx 與Dy。模型中兩個GAN 的損失函數(shù)與之前一樣,但CycleGAN 模型中又加入了循環(huán)一致性損失或重構(gòu)誤差,以此達到不成對訓練的目的[8]。
⑴圖像生成
圖像生成是GAN模型最基本的應用方式,本文中提到的方法都能實現(xiàn)該功能。通過給定的條件或?qū)恼鎸崍D,利用模型訓練生成目標圖。在應用方面可以實現(xiàn)從文字生成圖像或圖像生成圖像,運用圖像生成可以減少繪圖的工作量,快速獲得大量符合要求的真實圖片。例如被稱為最強GAN 圖像生成器的BigGAN,根據(jù)輸入?yún)?shù)與條件的不同可以輸出幾近真實的照片風格圖片。正如其名“Big”,BigGAN 使用了大規(guī)模GAN 模型,同時增大了每層網(wǎng)絡(luò)的通道數(shù),最終在提升了訓練速度的情況下獲得了極好的生成結(jié)果。
例如在《激光與光電子進展》期刊中,有研究者基于HistoGAN 算法,提出了一種新的火焰生成算法fire-GAN。通過對目標圖像進行預處理,減少背景影響,使用圓形度目標函數(shù)生成了與目標火焰顏色相近,清晰度好的火焰圖像,其FID達到59.23[9]。
⑵圖像高清修復
高清修復可以說是極具應用價值,它與網(wǎng)絡(luò)上備受關(guān)注的去馬賽克技術(shù)類似,都可以通過生成對抗網(wǎng)絡(luò)來實現(xiàn),例如上文中提到的Pix2PixHD。通過不斷訓練網(wǎng)絡(luò),一張16×16的低分辨率圖片可以得到一張128×128 或更高精度的圖片。這在照片去霧、表情包高清化等命題中得到實踐,通過不斷迭代,將上一次的生成結(jié)果作為下一次的輸入,使圖像中的特征信息不斷強化,同時去除噪點信息,最終可以得到清晰的處理結(jié)果[10]。
北京交通大學的研究者在GAN網(wǎng)絡(luò)的基礎(chǔ)上,結(jié)合基于深度學習的FaceSR 技術(shù),提出了一種高性能的人臉圖像超分辨率重建模型:CSP-GAN。該模型實現(xiàn)了有效利用先驗人臉信息來重建高質(zhì)量的高清人臉圖像[10]。
⑶視頻預測
視頻預測是對靜態(tài)圖應用的擴展,將時序信息加入到GAN模型中,達到對視頻中出現(xiàn)的幾幀圖像進行處理,然后將其輸入到生成器G 中得到接下來預測的幾幀圖像。而判別器則對比生成的視頻幀與真實視頻幀的區(qū)別,從而對生成器產(chǎn)生優(yōu)化作用。GAN 模型可以估算數(shù)據(jù),例如汽車自動駕駛技術(shù)中用于預測行人或汽車的行動軌跡,或者在游戲中通過上幾幀畫面預測并生成下幾幀畫面,達到性能優(yōu)化的作用。
⑷草稿上色復原
通過GAN模型,我們可以批量對草稿圖片進行上色還原,在訓練數(shù)據(jù)較多時往往能得到較好的結(jié)果,同時也能實現(xiàn)真實圖片與簡筆畫的反向轉(zhuǎn)換,得到其輪廓草圖。可以使用Pix2Pix模型,通過對比草稿圖與上色圖,迭代訓練得出上色特征來達到效果。同樣使用DCGAN 與StyleGAN 也可以實現(xiàn)動漫人臉的上色生成,甚至可以自由調(diào)節(jié)發(fā)色、瞳色等特征。
⑸圖像風格遷移
圖像的藝術(shù)風格是一種很難用程序語言來描述的模糊概念,因此傳統(tǒng)的風格遷移要先分析某種風格的特點,并對其建模,但這樣建立的模型只適用于一種風格或場景的切換,同時也較為耗時費力。而運用GAN 模型,我們可以生成任意一種風格的對應圖像,并且與手動建模不同的是我們可以通過訓練生成器來自動生成,其可用性與實用價值得到大大提升。
例如筆者使用CycleGAN 模型實現(xiàn)了人臉照片轉(zhuǎn)換為素描風格(圖1),但CycleGAN 將多個向量維度表示一種人臉特征信息,造成特征糾纏問題,一些噪點細節(jié)也會被識別成人臉器官。因此,筆者通過修改輸入層為mappingnetwork 網(wǎng)絡(luò)來分解糾纏,最終得到較好結(jié)果,并在此基礎(chǔ)上實現(xiàn)了照片轉(zhuǎn)油畫的風格遷移。同時在一些圖像增強領(lǐng)域,如礦井暗光環(huán)境下的圖像增強,渾濁水體下的顏色矯正等,GAN 模型都具有較好的實踐體驗。
圖1 CycleGAN實現(xiàn)人臉素描風格遷移
⑴優(yōu)勢:GAN 模型使用了判別器來代替損失函數(shù),這樣能夠?qū)崿F(xiàn)更大致的擬合,使圖像在對比時不會因為某幾個像素點的不同而影響全局。在這種情況下,單純的幾個像素點的區(qū)別并不能決定判別器對真假的判斷,因此我們能得到總體上以假亂真的圖像。
⑵劣勢:簡單GAN 模型的優(yōu)勢同時也引出了它的一些問題:沒有用戶控制能力且圖像質(zhì)量差。GAN輸入輸出取決于隨機噪點P(z),它的輸入輸出與用戶需求無關(guān),即網(wǎng)絡(luò)沒有用戶控制能力。例如用戶無法指定輸入鉛筆簡筆畫圖片來生成該簡筆畫的油畫版本。有時生成的圖像總體上算是符合要求,但圖像質(zhì)量差,圖像放大后的細節(jié)慘不忍睹。
除此之外,GAN 模型為了達到最佳的納什均衡,在判別器判別效率的迭代優(yōu)化過程中,當判別器效率太高時,生成器中會出現(xiàn)自相矛盾的情況,此時真假圖片都判定為假,造成梯度消失。而判別器中神經(jīng)網(wǎng)絡(luò)層數(shù)過多或權(quán)值設(shè)置過大則會出現(xiàn)梯度爆炸等問題。
如今大數(shù)據(jù)技術(shù)的飛速發(fā)展,無監(jiān)督學習無疑是一種降低研究成本提高效率的重要手段。而GAN 技術(shù)作為典型的無監(jiān)督學習方法,用生成器與判別器的自動博弈對抗來替代復雜的特征分析建模工作,無疑是今后十分熱門的研究方向。
GAN 模型本質(zhì)上是求解損失函數(shù)的最優(yōu)解,找出最合適的權(quán)值,因此,反向傳播訓練是其中的關(guān)鍵。而解決反向傳播中出現(xiàn)的各種梯度消失爆炸,過擬合問題、尋找更加優(yōu)秀的激活函數(shù)將會是研究的重點。除此之外還有另一種思路,直接拋棄傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的反向傳播方式,使用Capsule 膠囊網(wǎng)絡(luò)來進行優(yōu)化,這也是可能的發(fā)展方向。
在應用層面,GAN 模型將會結(jié)合不同領(lǐng)域,例如醫(yī)學圖像識別,人工智能繪畫等領(lǐng)域,實現(xiàn)更多價值實踐應用。
自2014年生成對抗網(wǎng)絡(luò)提出以來,它便吸引了許多目光,在最近幾年更是涌現(xiàn)出了許多不僅好玩有趣,而且具備較強實用價值的優(yōu)秀網(wǎng)絡(luò)結(jié)構(gòu)。這是一個十分具有應用前景的研究領(lǐng)域,相信隨著大數(shù)據(jù)技術(shù)以及設(shè)備性能算力的不斷發(fā)展,生成對抗網(wǎng)絡(luò)也能不斷前進,在計算機科學的不同領(lǐng)域乃至其他學科發(fā)揮更大的應用價值。