神奇的“GAN”

原創(chuàng):王穩(wěn)鉞
資料來源:二可

GAN最神奇的地方在于它可以生成新的信息,這是其他算法很難甚至根本就做不到的。因此,通過GAN,可以完成很多有趣的應(yīng)用。本文章將從GAN在CV中的應(yīng)用、GAN的理論與框架、應(yīng)用GAN的實(shí)際項(xiàng)目和項(xiàng)目?jī)?yōu)化四個(gè)部分詳細(xì)的介紹GAN的神奇之處。

1. 對(duì)抗生成網(wǎng)絡(luò)(GAN)在計(jì)算機(jī)視覺(CV)中的應(yīng)用

左圖展示了可以通過自身的面部表情,來驅(qū)動(dòng)其他物體的表情。人如何動(dòng),狗就會(huì)跟著改變。右圖展示了一個(gè)瘦臉特效,這其實(shí)也可以通過GAN來實(shí)現(xiàn)。

通過GAN,還可以讓靜態(tài)的圖片動(dòng)起來。進(jìn)而延伸,GAN也可以應(yīng)用在虛擬偶像領(lǐng)域,可以通過算法,讓三維像二維一樣動(dòng)起來。GAN還能非常好的完成老照片的修復(fù)。老照片通常情況下可能存在顏色失真、模糊、細(xì)節(jié)及內(nèi)容缺失等問題。通過GAN,可以很好的解決這類問題。

同時(shí),通過GAN,可以單純的利用數(shù)據(jù)生成卡通圖像,不需要經(jīng)過任何的人為干預(yù)。相應(yīng)的,也可以生成人臉圖像。算法可以生成世界上不存在的人的人臉圖像。

剛才展示的應(yīng)用,都是GAN的經(jīng)典應(yīng)用,為什么叫經(jīng)典應(yīng)用呢?這些應(yīng)用的主體就是GAN或者GAN的結(jié)果就是項(xiàng)目的最終結(jié)果。那么GAN能不能起到其他作用呢?

GAN在數(shù)據(jù)應(yīng)用方面也有成熟的應(yīng)用。在做一些計(jì)算機(jī)視覺的項(xiàng)目中,有的場(chǎng)景需要大量的數(shù)據(jù)。一旦涉及到利用人工智能或者深度學(xué)習(xí)等等這方面的算法的話,那么通常情況下就會(huì)需要大量的數(shù)據(jù)。但是很不幸的是,有些特殊的場(chǎng)景沒有那么多的數(shù)據(jù)。這時(shí),就可以利用GAN網(wǎng)絡(luò)生成一些虛假的數(shù)據(jù),這些虛假數(shù)據(jù)又非常像真實(shí)的數(shù)據(jù),這樣就通過算法補(bǔ)充了需要的數(shù)據(jù)。例如在元宇宙中,需要對(duì)人們的眼動(dòng)進(jìn)行追蹤。不僅需要知道人的眼睛在哪,還需要判斷眼睛的注視方向,這就需要大量眼睛的數(shù)據(jù)。而獲得眼睛數(shù)據(jù)很困難,需要測(cè)試者佩戴特殊的設(shè)備進(jìn)行測(cè)試,還需要人為標(biāo)注注視方向,而且涉及到獲取三維信息。這就需要大量的人力成本。這種情況下,就可以利用模型來生成數(shù)據(jù)。但是模型生成的數(shù)據(jù)和真實(shí)數(shù)據(jù)往往不一致。這就需要利用GAN來讓生成的數(shù)據(jù)看上去更像一個(gè)真實(shí)的數(shù)據(jù)。

除了眼睛項(xiàng)目以外,還有一個(gè)非常經(jīng)典的應(yīng)用就是手的應(yīng)用,元宇宙或者 VR 當(dāng)中很有可能會(huì)出現(xiàn)的就是裸手的交互。因?yàn)榇魃项^顯之后,用戶跟系統(tǒng)當(dāng)中的交互通常情況下有兩種,一種是利用遙控器,另一種就是點(diǎn)擊頭顯,很明顯這些方法都都不方便。更方便的方式是手什么都不帶,就純用手去跟虛擬場(chǎng)景進(jìn)行交互,這個(gè)是第三種可行的方式。那么在第三種方式的時(shí)候,會(huì)出現(xiàn)一個(gè)什么問題,就是需要去找到手每一個(gè)關(guān)節(jié)點(diǎn)的位置。因?yàn)橹挥兄懒嗣恳粋€(gè)關(guān)節(jié)點(diǎn)的位置,才知道手的具體的信息,才知道手在做什么動(dòng)作,每一個(gè)動(dòng)作可能表示什么樣的含義。那么在這個(gè)過程當(dāng)中,如何去獲取每一個(gè)手指關(guān)節(jié)點(diǎn)的位置?而且這個(gè)位置信息還必須是三維的,因?yàn)闀?huì)需要有深度信息,比如點(diǎn)擊操作。如果要用標(biāo)注或者說采集的方式的話,有什么辦法能夠獲得手指每一個(gè)關(guān)節(jié)點(diǎn)的信息呢?可以是采集這個(gè)二維的位置信息,然后進(jìn)行標(biāo)注,利用傳統(tǒng)的計(jì)算機(jī)視覺的方法去生成三維信息,這需要大量的人力成本?;蛘呤墙o每一個(gè)手指關(guān)節(jié)點(diǎn)上放上探測(cè)器,每一個(gè)探測(cè)器都是很貴的,而且每一個(gè)探測(cè)器都需要單獨(dú)地進(jìn)行校準(zhǔn),這是一個(gè)非常非常復(fù)雜的一個(gè)過程,成本也是非常非常高。這個(gè)時(shí)候也可以利用GAN生成看上去非常非常像真實(shí)數(shù)據(jù)的假圖,然后用這些圖來訓(xùn)練模型。

2. GAN的理論與框架

首先先解釋一下GAN與CV、CG的關(guān)系。CV是指計(jì)算機(jī)視覺,CG是指計(jì)算機(jī)圖形學(xué)。計(jì)算機(jī)視覺就是已有圖像,然后從已有圖像當(dāng)中去獲取信息的過程,這一類的算法稱作計(jì)算機(jī)視覺的算法。比如說左邊的圖,已有一張圖,首先可以檢測(cè)到物體在哪,其次可以把這些物體給區(qū)隔開,車、人等等的。其實(shí)還可以分辨出人是誰,當(dāng)然這圖中沒做,但是可以這么做。CG是從已有信息繪制出圖像的過程。這個(gè)圖像是一個(gè)廣義的圖像,它可以是三維的,它可以是二維的。右邊的圖是一個(gè)3D的海,這個(gè)海就是計(jì)算機(jī)圖形學(xué)生成出來的。那么是根據(jù)什么信息繪制出來的呢?其實(shí)是物理公式,模擬流體力學(xué)當(dāng)中的斯托克斯公式,水粒子相互之間的關(guān)系。CG電影也是類似的原理,CG電影貴的原因也是其中需要運(yùn)用到超算。

剛才看的GAN的例子都是跟 CV 相關(guān)的例子,它們和經(jīng)典的 CV 的例子是不是有些不同?因?yàn)樗鼈兒孟裨谏梢恍〇|西。那是不是又跟CG 有點(diǎn)類似?但是它又不全是CG,因?yàn)樗鼪]有物理信息。它有的是什么信息?它有的是從這個(gè)人當(dāng)中提取出來的信息,然后驅(qū)動(dòng)這個(gè)狗的生成。所以它看上去好像是 CV 和 CG 的一個(gè)結(jié)合。但其實(shí)不是。GAN是一類方法論,它可以被應(yīng)用在各個(gè)領(lǐng)域當(dāng)中,CV和CG就是不同的領(lǐng)域。所以它的地位就是一些領(lǐng)域下面的某些方法。

GAN與CNN是什么關(guān)系呢?它的位置要高于CNN。CNN是具體的算法,可以用CNN來實(shí)現(xiàn)GAN,目前人們使用CNN來實(shí)現(xiàn)只是因?yàn)樾Ч容^好。

GAN為什么能產(chǎn)生如此多的神奇的效果呢?下圖展示了最經(jīng)典的GAN的結(jié)構(gòu),其中最主要的兩部分,一部分為判別器(discriminator),另一部分為生成器(generator)。整個(gè)結(jié)構(gòu)最主要的目的就是對(duì)抗式學(xué)習(xí)。辨別器和生成器分別有各自的任務(wù)。判別器的任務(wù)是判別輸入的圖像是真的圖還是假的圖,而這個(gè)假的圖就是用生成器生成出來的圖。那么生成器的目標(biāo)是什么呢?就是要生成圖像,然后爭(zhēng)取讓判別器無法區(qū)分它是真的圖還是假的圖,或者說它更傾向于的生成一個(gè)真的圖,這兩部分像是在打架。所以這就是為什么這套理論叫做對(duì)抗網(wǎng)絡(luò),因?yàn)檫@兩個(gè)東西在對(duì)抗。最終的目的是生成出來一張圖。比如前面生成出來卡通圖像或者生成出一張人臉,它們都來源于生成器。

將上述過程轉(zhuǎn)化為數(shù)學(xué)公式如下圖。其實(shí)想要做AI相關(guān),是需要數(shù)學(xué)的,數(shù)學(xué)最大的用處是幫助寫代碼。對(duì)于絕大部分AI算法,分為三個(gè)步驟。第一步是文字描述,就是前面說的判別器、生成器等。但是僅僅描述到這個(gè)階段完全不夠,因?yàn)椴豢赡苤煌ㄟ^描述寫出任何的代碼。如何判斷真圖還是假圖,在代碼當(dāng)中怎么表示?文字描述僅僅是算法的第一個(gè)階段。第二個(gè)階段就是要把文字轉(zhuǎn)化成相關(guān)的數(shù)學(xué)語言。最后一步就是將數(shù)學(xué)再轉(zhuǎn)化為代碼。

V代表價(jià)值函數(shù),即使得整體利益最大,右邊的兩個(gè)E代表期望。如何讓V最大呢?這就需要確定一個(gè)policy,policy對(duì)應(yīng)D、G中的一些參數(shù)。一旦確定某一套參數(shù)后,就可以讓整體獲得最大值。

為什么要在D確定的情況下,讓V最大呢?這就涉及到希望D(x)趨近于1,D(G(x))趨近于0。D是discriminator,判別器。判別器用來判斷輸入圖像是真圖還是假圖。x代表真圖,所以希望D(x)為1。G(z)代表假圖,所以希望D(G(z))為0。這樣,logD(x)和log(1-D(G(z)))都為0,所以其實(shí)希望V最大就是0。如果D(x)趨近于0,也就是判別器沒有判別出真圖,則logD(x)為負(fù)無窮,顯然小于0。

接下來解釋為什么想要在G確定的情況下,V能夠達(dá)到最小值。G是生成器,理想的G可以愚弄判別器。當(dāng)輸入一張假圖,判別器分辨不了真假,即D(G(z))接近于1,那么log(1-D(G(z)))就趨近于負(fù)無窮,負(fù)無窮就是最小的V。當(dāng)變?yōu)樨?fù)無窮的時(shí)候,即判別器無法分辨真假圖。這就是將文字轉(zhuǎn)化為數(shù)學(xué)。

x是真實(shí)或者叫目標(biāo)數(shù)據(jù),它要服從真實(shí)數(shù)據(jù)的概率分布,因?yàn)檎麄€(gè)GAN的目標(biāo)是希望拉近兩個(gè)概率分布之間的距離。什么意思呢?圖像有真實(shí)圖像的概率分布,生成的圖像有生成圖像上的概率分布。剛開始的時(shí)候生成圖像跟真實(shí)圖像兩個(gè)概率分布是完全不一樣的,那么整個(gè)GAN的過程就是希望讓生成圖像的概率分布能夠盡可能地去貼近于真實(shí)圖像的概率分布,或者是能夠盡可能地貼近于目標(biāo)數(shù)據(jù)的概率分布。這就是GAN獨(dú)特的地方,它可以創(chuàng)造信息。以前的人工智能都不能或者很難創(chuàng)造信息,因?yàn)樗鼈兊哪繕?biāo)就是樣本對(duì)樣本。但一旦目標(biāo)是概率分布的話,那么就可以創(chuàng)造信息,可以生成一個(gè)前所未有的樣本,但只要這個(gè)樣本是符合目標(biāo)分布的話,那么這個(gè)樣本就是一個(gè)好樣本,這就是為什么干能夠創(chuàng)造信息的原因。雖然它創(chuàng)造信息,但是它是創(chuàng)造了一個(gè)符合需求分布的信息。

其實(shí)z也是同理,原始的GAN中,z是噪音。后來,z也可以是一些初始的圖像等,它只要符合自己的分布就可以。

3. 實(shí)際項(xiàng)目

下面介紹一個(gè)真實(shí)的案例,是將BBC的一段對(duì)于中國(guó)的視頻進(jìn)行顏色矯正。

這其中的生成器要復(fù)雜一些,使用的是經(jīng)典的U-Net結(jié)構(gòu)。整體分維三部分。第一部分為Encoder部分,提取圖像當(dāng)中的信息。然后經(jīng)過FeaturePart,這一部分可以認(rèn)為是最簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)的一部分。CNN有一個(gè)特性,網(wǎng)絡(luò)越深,語義信息越來越多,物理信息越來越少。所以中間引入一個(gè)橋,把淺層的信息引入到最終的結(jié)果中。

Discriminator就是非常簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò),但是也有一些區(qū)別。這里并不是一個(gè)簡(jiǎn)單的二值分類,而是得到一個(gè)張量,因?yàn)槠鋵?duì)應(yīng)著PatchGAN算法。

下面展示的是最終的結(jié)果及一小部分代碼。

4. 項(xiàng)目?jī)?yōu)化

在矯正BBC的視頻顏色時(shí),沒有加入時(shí)序信息。最初始的GAN就是一張圖對(duì)應(yīng)一張圖,沒有引入相鄰圖片之間的信息。

其次通過圖片可以看出,字幕的顏色也發(fā)生了改變,可以先檢測(cè)出字幕位置,摳掉字幕,不讓其進(jìn)入項(xiàng)目的計(jì)算矯正。這些都可以進(jìn)行優(yōu)化。

GAN的潛力巨大,因?yàn)樗梢詫W(xué)習(xí)模仿任何數(shù)據(jù)分布。因此,GAN能被教導(dǎo)在任何領(lǐng)域創(chuàng)造類似于我們的世界,比如圖像、音樂、演講、散文。在某種意義上,他們是“藝術(shù)家”。如果想要深入了解GAN或者對(duì)文章中項(xiàng)目的源碼感興趣,歡迎聯(lián)系我們。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容