GAN可能是最近人工智能圈最為人熟知的技術(shù)之一。但是它的爆火不僅是由于這個(gè)技術(shù)出神入化的好用,還因?yàn)橛伤呱南嚓P(guān)應(yīng)用導(dǎo)致了各種倫理道德問題。
最受關(guān)注的當(dāng)然是Deepfake(深度偽造),這款操作容易且效果完美的換臉應(yīng)用,讓人們談“GAN”色變。
而近期,Deepfake甚至有了升級(jí)版,走紅網(wǎng)絡(luò)的一鍵生成裸照軟件DeepNude,只要輸入一張完整的女性圖片就可自動(dòng)生成相應(yīng)的裸照,由于廣泛傳播而造成了預(yù)料之外的后果,開發(fā)者最終將APP下架。
被一鍵脫衣的霉霉
相關(guān)技術(shù)引發(fā)了一系列社會(huì)后果,并且引發(fā)了政府立法部門的重視。2019年6月13日,美國眾議院情報(bào)委員會(huì)召開關(guān)于人工智能深度偽造的聽證會(huì),公開談?wù)摿松疃葌卧旒夹g(shù)對(duì)國家、社會(huì)和個(gè)人的風(fēng)險(xiǎn)及防范和應(yīng)對(duì)措施。
讓人嗤之以鼻的同時(shí),真正的研究者們也在用GAN推動(dòng)人類社會(huì)的發(fā)展。據(jù)《MIT科技評(píng)論》報(bào)道,呂貝克大學(xué)研究人員近期剛剛利用deepfake背后同樣的技術(shù),合成了與真實(shí)影像無異的醫(yī)學(xué)圖像,解決了沒有足夠的訓(xùn)練數(shù)據(jù)的問題,而這些圖像將可以用于訓(xùn)練AI通過X光影像發(fā)現(xiàn)不同的癌癥。
那么,技術(shù)本身就存在原罪么?又是哪里出了錯(cuò)呢?
讓我們回到GAN誕生的那天,從頭回顧這一讓人又愛又恨的技術(shù)發(fā)展的前世今生。
GAN的誕生故事:一場酒后的奇思妙想
時(shí)間拉回到2014年的一晚,Ian Goodfellow和一個(gè)剛剛畢業(yè)的博士生一起喝酒慶祝。在蒙特利爾一個(gè)酒吧,一些朋友希望他能幫忙看看手頭上一個(gè)棘手的項(xiàng)目:計(jì)算機(jī)如何自己生成圖片。
研究人員已經(jīng)使用了神經(jīng)網(wǎng)絡(luò)(模擬人腦的神經(jīng)元網(wǎng)絡(luò)的一種算法),作為生成模型來創(chuàng)造合理的新數(shù)據(jù)。但結(jié)果往往不盡人意。計(jì)算機(jī)生成的人臉圖像通常不是模糊不清,就是缺耳少鼻。
Ian Goodfellow朋友們提出的方案是對(duì)那些組成圖片的元素進(jìn)行復(fù)雜的統(tǒng)計(jì)分析以幫助機(jī)器自己生成圖片。這需要進(jìn)行大量的數(shù)據(jù)運(yùn)算,Ian Goodfellow告訴他們這根本行不通。
邊喝啤酒邊思考問題時(shí),他突然有了一個(gè)想法。如果讓兩個(gè)神經(jīng)網(wǎng)絡(luò)相互對(duì)抗會(huì)出現(xiàn)什么結(jié)果呢?他的朋友對(duì)此持懷疑態(tài)度。
當(dāng)他回到家,他女朋友已經(jīng)熟睡,他決定馬上實(shí)驗(yàn)自己的想法。那天他一直寫代碼寫到凌晨,然后進(jìn)行測試。第一次運(yùn)行就成功了!
那天晚上他提出的方法現(xiàn)在叫做GAN,即生成對(duì)抗網(wǎng)絡(luò)(generative adversarial network)。
Goodfellow自己可能沒想到這個(gè)領(lǐng)域會(huì)發(fā)展得如此迅速,GAN的應(yīng)用會(huì)如此廣泛。
下面我們先來看幾張照片。
如果你沒有親眼看到我去過的地方,那就可以認(rèn)為這些照片完全是假的。
當(dāng)然,我并不是說這些都是ps的或者CGI編輯過的,無論Nvidia稱他們的新技術(shù)是如何了得,那也只是圖片,不是真實(shí)的世界。
也就是說,這些圖像完全是用GPU計(jì)算層層疊加,并且通過燒錢生成的。
能夠做出這些東西的算法就是對(duì)抗生成網(wǎng)絡(luò),對(duì)于那些剛開始學(xué)習(xí)機(jī)器學(xué)習(xí)的人而言,編寫GAN是一個(gè)漫長的旅途。在過去的幾年中,基于對(duì)抗生成網(wǎng)絡(luò)應(yīng)用的創(chuàng)新越來越多,甚至比Facebook上發(fā)生的隱私丑聞還多。
2014年以來GANs不斷進(jìn)行改進(jìn)才有了如今的成就,但是要一項(xiàng)一項(xiàng)來回顧這個(gè)過程,就像是要重新看一遍長達(dá)八季的“權(quán)力的游戲”,非常漫長。所以,在此我將僅僅重溫這些年來GAN研究中一些酷炫成果背后的關(guān)鍵思想。
我不準(zhǔn)備詳細(xì)解釋轉(zhuǎn)置卷積(transposed convolutions)和瓦瑟斯坦距離(Wasserstein distance)等概念。相反,我將提供一些我覺得比較好的資源鏈接,你可以使用這些資源快速了解這些概念,這樣你就可以看到它們?cè)谒惴ㄖ惺侨绾问褂玫摹?/p>
下文的閱讀需要你掌握深度學(xué)習(xí)的基礎(chǔ)知識(shí),并且知道卷積神經(jīng)網(wǎng)絡(luò)的工作原理,否則讀起來可能會(huì)有點(diǎn)難度。
鑒于此,先上一張GAN發(fā)展路線圖:
GAN路線圖
圖中的過程我們將在下文一步一步地講解。讓我們先來看看內(nèi)容大綱吧。
GAN:Generative Adversarial Networks
DCGAN:Deep Convolutional Generative Adversarial Network
CGAN:Conditional Generative Adversarial Network
CycleGAN
CoGAN:Coupled Generative Adversarial Networks
ProGAN:Progressive growing of Generative Adversarial Networks
WGAN:Wasserstein Generative Adversarial Networks
SAGAN:Self-Attention Generative Adversarial Networks
BigGAN:Big Generative Adversarial Networks
StyleGAN:Style-based Generative Adversarial Networks
GAN:Generative Adversarial Networks
看到這張圖你首先想到的是什么,是不是覺得這像素也太低了,還看得人難受,尤其是對(duì)于密集恐懼癥患者來說,這張圖片看起來像是某個(gè)數(shù)學(xué)書呆子在excel表中放大了一張縮小的照片。
我們來看看這圖片究竟是什么?
看完視頻是不是發(fā)現(xiàn)除了Excel,其他都猜對(duì)了。
早在2014年,Ian Goodfellow提出了這個(gè)革命性的想法——讓兩個(gè)神經(jīng)網(wǎng)絡(luò)互相競爭(或合作,這是一個(gè)視角問題)。
感興趣的同學(xué)可以查看Ian Goodfellow 提出GAN時(shí)的原文。
論文鏈接:
https://arxiv.org/abs/1406.2661
代碼鏈接:
https://github.com/goodfeli/adversarial
作者相關(guān)論文鏈接:
https://arxiv.org/abs/1701.00160
一個(gè)神經(jīng)網(wǎng)絡(luò)試圖生成真實(shí)數(shù)據(jù)(注意:GAN可用于給任何數(shù)據(jù)分布建模,但近來其主要用于圖像),而另一個(gè)神經(jīng)網(wǎng)絡(luò)則試圖判別真實(shí)數(shù)據(jù)和生成器網(wǎng)絡(luò)生成的數(shù)據(jù)。
生成器網(wǎng)絡(luò)使用判別器作為損失函數(shù),并更新其參數(shù)以生成看起來更真實(shí)的數(shù)據(jù)。
另一方面,判別器網(wǎng)絡(luò)更新其參數(shù)以使其更好地從真實(shí)數(shù)據(jù)中鑒別出假數(shù)據(jù),所以它這方面的工作會(huì)變得更好。
這就像貓和老鼠的游戲,持續(xù)進(jìn)行,直到系統(tǒng)達(dá)到所謂的“平衡”,其中生成器能夠生成看起來足夠真實(shí)的數(shù)據(jù),然后判別器則輕易就能正確判斷真假。
到目前為止,如果順利的話,你的代碼無誤,亞馬遜也沒有斃掉你的spot實(shí)例(順便說一句,如果使用FloydHub就不會(huì)出現(xiàn)這個(gè)問題,因?yàn)樗麄兲峁┝藗溆玫腉PU機(jī)器),那么你現(xiàn)在就留下了一個(gè)能從同樣的數(shù)據(jù)分布中準(zhǔn)確生成新數(shù)據(jù)的生成器,它生成的數(shù)據(jù)則可以成為你的訓(xùn)練集。
這只是非常簡單的一種GAN。到此,你應(yīng)該掌握GAN就是使用了兩個(gè)神經(jīng)網(wǎng)絡(luò)——一個(gè)用于生成數(shù)據(jù),一個(gè)是用來對(duì)假數(shù)據(jù)和真實(shí)數(shù)據(jù)進(jìn)行判別。理論上,您可以同時(shí)訓(xùn)練它們,然后不斷迭代,直至收斂,這樣生成器就可以生成全新的,逼真的數(shù)據(jù)。
DCGAN:Deep Convolutional Generative Adversarial Network
論文:
https://arxiv.org/abs/1511.06434
代碼:
https://github.com/floydhub/dcgan
其他文章:
https://towardsdatascience.com/up-sampling-with-transposed-convolution-9ae4f2df52d0
看原文是非常慢的,看本文將為您節(jié)省一些時(shí)間。
先來看幾個(gè)公式:
卷積=擅長圖片
GANs=擅長生成一些數(shù)據(jù)
由此推出:卷積+GANs=擅長生成圖片
事后看來,正如Ian Goodfellow自己在與Lex Fridman的播客中指出的那樣,將這個(gè)模型稱為DCGAN(“深度卷積生成對(duì)抗網(wǎng)絡(luò)”的縮寫)似乎很愚蠢,因?yàn)楝F(xiàn)在幾乎所有與深度學(xué)習(xí)和圖像相關(guān)的內(nèi)容都是深度的(deep)和卷積的(convolutional)。
此外,當(dāng)大多數(shù)人了解到GANs時(shí),都會(huì)先學(xué)習(xí)“深度學(xué)習(xí)和卷積”(deep and convolutional)。
然而,有一段時(shí)間GANs不一定會(huì)使用基于卷積的操作,而是依賴于標(biāo)準(zhǔn)的多層感知器架構(gòu)。
DCGAN通過使用稱為轉(zhuǎn)置卷積運(yùn)算(transposed convolution operation)來改變了這一現(xiàn)狀,它還有個(gè)不太好聽的名字——反卷積層( Deconvolution layer)。
轉(zhuǎn)置卷積是一種提升運(yùn)算,它幫助我們將低分辨率圖像轉(zhuǎn)換為更高分辨率的圖像。
但是嚴(yán)格來說,如果您要掌握轉(zhuǎn)置卷積原理,只看上文介紹不夠,是需要深入研究鏈接里的資源,畢竟這是現(xiàn)代所有GAN架構(gòu)的基礎(chǔ)。
如果你沒有足夠多的的時(shí)間來看,我們可以通過一個(gè)總結(jié)得很好的動(dòng)畫來了解轉(zhuǎn)置卷積是如何工作:
在一般的卷積神經(jīng)網(wǎng)絡(luò)中,你會(huì)用一系列卷積(以及其他操作)將圖像映射到通常是較低維度的向量。
類似地,運(yùn)用多個(gè)反卷積允許我們映射出單個(gè)低分辨率的陣列,并使之成為鮮明的全彩圖像。
在我們繼續(xù)之前,讓我們嘗試使用GAN的一些獨(dú)特方法。
你現(xiàn)在的位置:紅色的X
CGAN:Conditional Generative Adversarial Network
原始GAN根據(jù)隨機(jī)噪聲生成數(shù)據(jù)。這意味著你可以在此基礎(chǔ)上訓(xùn)練它,比如狗的圖像,它會(huì)產(chǎn)生更多的狗的圖像。
您也可以在貓的圖像上訓(xùn)練它,在這種情況下,它會(huì)生成貓的圖像。
您也可以在尼古拉斯·凱奇(Nicholas Cage)圖像上訓(xùn)練它,在這種情況下,它會(huì)生成尼古拉斯·凱奇(Nicholas Cage)圖像。
你也可以在其他圖像上訓(xùn)練它,以此類推。
但是,如果你試圖同時(shí)訓(xùn)練狗和貓的圖像,它會(huì)產(chǎn)生模糊的半品種。
CGAN旨在通過只告訴生成器生成一個(gè)特定物種的圖像來解決這個(gè)問題,比如一只貓,一只狗或一個(gè)尼古拉斯·凱奇。
具體地來說,CGAN將單編碼向量yy連接到隨機(jī)噪聲向量zz,產(chǎn)生如下所示的體系結(jié)構(gòu):
現(xiàn)在,我們可以用同一個(gè)GAN同時(shí)生成貓和狗。
CycleGAN
GANs并不僅僅用于生成圖像。他們還可以創(chuàng)建“馬+斑馬”這樣的新生物,如上圖所示。
為了創(chuàng)建這些圖像,CycleGAN旨在解決“圖像到圖像”轉(zhuǎn)換的問題。
CycleGAN并不是一個(gè)推動(dòng)藝術(shù)圖像合成的新GAN架構(gòu),相反,它是使用了GAN的智能方式。因此,您可以自由地將此技術(shù)應(yīng)用于您喜歡的任何架構(gòu)。
此時(shí),我會(huì)建議你閱讀一篇論文(https://arxiv.org/abs/1703.10593v6)。寫得非常好,即使是初學(xué)者也很容易理解。
CycleGAN的任務(wù)是訓(xùn)練一個(gè)網(wǎng)絡(luò)G(X)G(X),該網(wǎng)絡(luò)會(huì)將圖像從源域XX映射到目標(biāo)域YY。
但是,你可能會(huì)問:“這與常規(guī)的深度學(xué)習(xí)或樣式遷移有什么不同?!?/p>
嗯,下面的圖片很好地總結(jié)了這個(gè)問題。CycleGAN將不成對(duì)的圖像進(jìn)行圖像平移。這意味著我們正在訓(xùn)練的圖像不必代表相同的東西。
如果我們有大量的圖像對(duì):(圖像,達(dá)芬奇的繪畫圖像)(圖像,達(dá)芬奇繪畫圖像),那么訓(xùn)練達(dá)芬奇的繪畫圖像就會(huì)(相對(duì))容易一些。
不幸的是,這個(gè)家伙并沒有太多的畫作。
然而,CycleGAN可以在未配對(duì)的數(shù)據(jù)上進(jìn)行訓(xùn)練,所以我們不需要兩個(gè)相同的圖像。
另一方面,我們可以使用樣式遷移。但這只會(huì)提取一個(gè)特定圖像的風(fēng)格并將其轉(zhuǎn)移到另一個(gè)圖像,這意味著我們無法轉(zhuǎn)化一些假設(shè)性事物,如將馬轉(zhuǎn)化為斑馬。
然而,CycleGAN會(huì)學(xué)習(xí)從一個(gè)圖像域到另一個(gè)域的映射。所以我們就說一下所有的莫奈畫作訓(xùn)練。
他們使用的方法非常優(yōu)雅。CycleGAN由兩個(gè)生成器GG和FF,以及兩個(gè)判別器DXDX和DYDY組成。
GG從XX獲取圖像并嘗試將其映射到Y(jié)Y中的某個(gè)圖像。判別器 DYDY預(yù)測圖像是由GG生成還是實(shí)際在YY中生成。
類似地,F(xiàn)F從YY接收?qǐng)D像并嘗試將其映射到XX中的某個(gè)圖像,而判別器DXDX 預(yù)測圖像是由FF生成還是實(shí)際上是在XX中。
所有的這四個(gè)神經(jīng)網(wǎng)絡(luò)都是以通常的GAN方式進(jìn)行訓(xùn)練,直到我們留下了強(qiáng)大的生成器GG和FF,它們可以很好地執(zhí)行圖像到圖像的轉(zhuǎn)換任務(wù),乃至愚弄了DYDY 和DXDX。
這種類型的對(duì)抗性損失聽起來是個(gè)好主意,但這還不夠。為了進(jìn)一步提高性能,CycleGAN使用另一個(gè)度量標(biāo)準(zhǔn),循環(huán)一致性損失。
一般來說,優(yōu)秀的轉(zhuǎn)換應(yīng)該具備以下屬性,當(dāng)你來回轉(zhuǎn)換時(shí),你應(yīng)該再次得到同樣的東西。
CycleGAN用巧妙的方式實(shí)現(xiàn)了這個(gè)想法,它迫使神經(jīng)網(wǎng)絡(luò)遵守這些約束:
F(G(x))≈x,x∈XF(G(x))≈x,x∈X G(F(y))≈y,y∈YG(F(y))≈y,y∈Y
在視覺上看,循環(huán)一致性如下所示:
總損失函數(shù)是以懲罰網(wǎng)絡(luò)不符合上述特性的方式構(gòu)造的。我不打算在這里寫出這個(gè)損失函數(shù),因?yàn)檫@會(huì)破壞它在文章中匯總的方式。
好的,七龍珠還沒有召喚完,讓我們回到我們找尋更好的GAN架構(gòu)的主要任務(wù)。
CoGAN:Coupled Generative Adversarial Networks
你知道比一個(gè)GAN更好的網(wǎng)絡(luò)是什么嗎?兩個(gè)GAN!
CoGAN(即“Coupled Generative Adversarial Networks”,不要與CGAN混淆,后者代表的是條件生成對(duì)抗網(wǎng)絡(luò))就是這樣做的。它會(huì)訓(xùn)練兩個(gè)GAN而不是一個(gè)單一的GAN。
當(dāng)然,GAN研究人員不停止地將此與那些警察和偽造者的博弈理論進(jìn)行類比。所以這就是CoGAN背后的想法,用作者自己的話說就是:
在游戲中,有兩個(gè)團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)有兩個(gè)成員。生成模型組成一個(gè)團(tuán)隊(duì),在兩個(gè)不同的域中合作共同合成一對(duì)圖像,用以混淆判別模型。判別模型試圖將從各個(gè)域中的訓(xùn)練數(shù)據(jù)分布中繪制的圖像與從各個(gè)生成模型中繪制的圖像區(qū)分開。同一團(tuán)隊(duì)中,參與者之間的協(xié)作是根據(jù)權(quán)重分配約束建立的。
這樣就有了一個(gè)GAN的多人局域網(wǎng)競賽,聽起來不錯(cuò),但你怎么能讓它真正起作用呢?
事實(shí)證明這并不復(fù)雜,只需使網(wǎng)絡(luò)對(duì)某些層使用完全相同的權(quán)重。
在我認(rèn)為(可能不太謙虛),關(guān)于CoGAN最酷的事情不是提高圖像生成質(zhì)量,也不是你可以在多個(gè)圖像域中進(jìn)行訓(xùn)練的事實(shí)。
而是,事實(shí)上,你獲得兩張圖片的價(jià)格僅是之前的四分之三。
由于我們共享一些權(quán)重,因此CoGAN將比兩個(gè)單獨(dú)的GAN具有更少的參數(shù)(因此將節(jié)省更多的內(nèi)存,計(jì)算和存儲(chǔ))。
這是一種微妙技術(shù),但是有點(diǎn)過時(shí),所以我們今天看到的一些新GAN并不會(huì)使用這種技術(shù)。
不過,我認(rèn)為這一想法會(huì)在未來再次得到重視。
ProGAN:Progressive growing of Generative Adversarial Networks
訓(xùn)練集GAN存在許多問題,其中最重要的是其不穩(wěn)定性。
有時(shí),GAN的損失會(huì)發(fā)生振蕩,因?yàn)樯善骱团袆e器會(huì)消除對(duì)方的學(xué)習(xí)。也有時(shí),錯(cuò)誤會(huì)在網(wǎng)絡(luò)收斂后立即發(fā)生,這時(shí)圖像就會(huì)看起來很糟糕。
ProGAN是一種通過逐步提高生成圖像的分辨率來使其訓(xùn)練集穩(wěn)定的技術(shù)。
常識(shí)認(rèn)為,生成4x4的圖像比生成1024x1024圖像更容易。此外,將16x16的圖像映射到32x32的圖像比將2x2圖像映射到32x32圖像更容易。
因此,ProGAN首先訓(xùn)練4x4生成器和4x4判別器,并在訓(xùn)練過程的后期添加相對(duì)應(yīng)的更高分辨率的層。我們用一個(gè)動(dòng)畫來總結(jié)一下:
WGAN:Wasserstein Generative Adversarial Networks
這篇文獻(xiàn)可能是此列表中最具理論性和數(shù)學(xué)性的論文。作者在文中用了一卡車的證據(jù)、推論以及另一種數(shù)學(xué)術(shù)語。因此,如果積分概率計(jì)量和Lipschitz連續(xù)與你無關(guān),我們也不會(huì)在這個(gè)上花太多時(shí)間。
簡而言之,WGAN('W'代表Wasserstein)提出了一個(gè)新的成本函數(shù),這些函數(shù)在純數(shù)學(xué)家和統(tǒng)計(jì)學(xué)家中風(fēng)靡一時(shí)。
這是GAN minimax函數(shù)的舊版本:
這是WGAN使用的新版本:
在大多數(shù)情況下,你需要知道WGAN函數(shù)是清除了舊的成本函數(shù),該函數(shù)近似于稱為Jensen-Shannon散度的統(tǒng)計(jì)量,并在新的成本函數(shù)中滑動(dòng),使其近似于稱為1-Wasserstein距離的統(tǒng)計(jì)量。
看了下圖您就知道為什么要這么做。
當(dāng)然,如果您感興趣的話,接下來的是對(duì)數(shù)學(xué)細(xì)節(jié)的快速回顧,這也是WGAN論文備受好評(píng)的原因。
最初的GAN論文里認(rèn)為,當(dāng)判別器是最優(yōu)的時(shí),生成器以最小化Jensen-Shannon散度的方式更新。
如果你不太明白的話,Jensen-Shannon散度是一種衡量不同兩種概率分布的方法。JSD越大,兩個(gè)分布越“不同”,反之亦然。計(jì)算公式如下:
然而,把JSD最小化是最好的選擇嗎?
WGAN論文的作者認(rèn)為可能不是。出于特殊原因,當(dāng)兩個(gè)發(fā)行版完全不重疊時(shí),可以顯示JSD的值保持為2log22log?2的常量值。
具有常量值的函數(shù)有一個(gè)梯度等于零,而零梯度是不好的,因?yàn)檫@意味著生成器完全沒有學(xué)習(xí)。
WGAN作者提出的備用距離度量是1-Wasserstein距離,也稱為搬土距離(EMD距離)。
“搬土距離”來源于類比,想象一下,兩個(gè)分布中的一個(gè)是一堆土,另一個(gè)是一個(gè)坑。
假設(shè)盡可能有效地運(yùn)輸淤泥,沙子,松土等物品,搬土距離測量將土堆運(yùn)輸?shù)娇又械某杀?。這里,“成本”被認(rèn)為是點(diǎn)之間的距離×土堆移動(dòng)的距離×移動(dòng)的土堆量。
也就是說(沒有雙關(guān)語),兩個(gè)分布之間的EMD距離可以寫成:
當(dāng)inf是最小值時(shí),xx和yy是兩個(gè)分布上的點(diǎn),γγ是最佳運(yùn)輸計(jì)劃。
可是,計(jì)算這個(gè)是很難的。于是,我們計(jì)算完全不同的另一個(gè)值:
這兩個(gè)方程式之間的聯(lián)系一開始似乎并不明顯,但通過一些稱為Kantorovich-Rubenstein二重性的復(fù)雜數(shù)學(xué)(試著快讀三次),可以證明這些Wasserstein / Earth mover距離的公式在試計(jì)算同樣的東西。
如果你跟不上我提供的鏈接中的的論文和博客文章中的一些重要的數(shù)學(xué)概念,也不要過于擔(dān)心。關(guān)于WGAN的大部分工作都是為一個(gè)簡單的想法提供一個(gè)復(fù)雜的理由。
SAGAN:Self-Attention Generative Adversarial Networks
由于GAN使用轉(zhuǎn)置卷積來“掃描”特征映射,因此它們只能訪問附近的信息。
單獨(dú)使用轉(zhuǎn)置卷積就像繪制圖片,只在畫筆的小半徑范圍內(nèi)查看畫布區(qū)域。
即使是能完善最獨(dú)特和復(fù)雜細(xì)節(jié)的最偉大的藝術(shù)家,在創(chuàng)作過程中也需要退后一步,看看大局。
SAGAN(全稱為“自我關(guān)注生成對(duì)抗網(wǎng)絡(luò)”)使用自我關(guān)注機(jī)制,由于遷移模型架構(gòu),近年來這種方式已經(jīng)變得十分流行。
自我關(guān)注讓生成器退后一步,查看“大局”。
BigGAN:Big Generative Adversarial Networks
經(jīng)過四年漫長的歲月,DeepMind前所未有地決定與GAN合作,他們使用了一種深度學(xué)習(xí)的神秘技術(shù),這種技術(shù)非常強(qiáng)大,是最先進(jìn)的技術(shù),超越了先進(jìn)技術(shù)排行榜上所有其他的技術(shù)。
接下來展示BigGAN,GAN絕對(duì)沒有做什么(但是運(yùn)行了一堆TPU集群,卻不知何故應(yīng)該在這個(gè)列表中)。
開個(gè)玩笑!DeepMind團(tuán)隊(duì)確實(shí)在BigGAN上取得了很多成就。除了用逼真的圖像吸睛之外,BigGAN還向我們展示了一些非常詳細(xì)的訓(xùn)練GAN的大規(guī)模結(jié)果。
BigGAN背后的團(tuán)隊(duì)引入了各種技術(shù)來對(duì)抗在許多機(jī)器上大批量培訓(xùn)GAN的不穩(wěn)定性。
首先,DeepMind使用SAGAN作為基線,并添加了一個(gè)稱為譜歸一化的功能。
接下來,他們將圖片批量大小縮放50%,寬度(通道數(shù))縮放20%。最初,增加層數(shù)似乎并沒有幫助。
在進(jìn)行了一些其他單位數(shù)百分比改進(jìn)之后,作者使用“截?cái)嗉记伞眮硖岣卟蓸訄D像的質(zhì)量。
BigGAN在訓(xùn)練期間從z N(0,I)提取其潛在向量,如果潛在向量在生成圖像時(shí)落在給定范圍之外,則重新采樣。
范圍是超參數(shù),由ψψ表示。較小的ψψ會(huì)縮小范圍,從而以多樣化為代價(jià)提高樣本保真度。
那么所有這些錯(cuò)綜復(fù)雜的調(diào)整工作會(huì)有什么后顧呢?好吧,有人稱之為狗球。
BigGAN技術(shù)還發(fā)現(xiàn)更大規(guī)模的GAN訓(xùn)練可能會(huì)有一系列問題。
值得注意的是,訓(xùn)練集似乎可以通過增加批量大小和寬度等參數(shù)來很好地?cái)U(kuò)展,但不知什么原因,最終總會(huì)崩潰。
如果你對(duì)通過分析奇異值來理解這種不穩(wěn)定性感興趣的話,請(qǐng)查看論文,因?yàn)槟銜?huì)在那里找到很多東西。
最后,作者還在一個(gè)名為JFT-300的新數(shù)據(jù)集上訓(xùn)練BigGAN,這是一個(gè)類似ImageNet的數(shù)據(jù)集,它有3億個(gè)圖像。他們表明BigGAN在這個(gè)數(shù)據(jù)集上的表現(xiàn)更好,這表明更大規(guī)模的數(shù)據(jù)集可能是GAN的發(fā)展方向。
在論文的第一版發(fā)布后,作者在幾個(gè)月后重新訪問了BigGAN。還記得我怎么說增加層數(shù)不起作用?事實(shí)證明,這是由于糟糕的訓(xùn)練集選擇導(dǎo)致的。
該團(tuán)隊(duì)不再只是在模型上填充更多層,還進(jìn)行了實(shí)驗(yàn),發(fā)現(xiàn)使用ResNet突破瓶頸是可行的。
通過以上不斷地調(diào)整、縮放和仔細(xì)實(shí)驗(yàn),BigGAN的頂級(jí)線條完全抹殺了先前的最新狀態(tài),得分高達(dá)52.52分,總分是152.8。
如果這不是正確步驟的話,那我不知道哪個(gè)是正確的。
StyleGAN:Style-based Generative Adversarial Networks
StyleGAN是Nvidia的一個(gè)延伸研究,它主要與傳統(tǒng)的GAN研究關(guān)系不大,傳統(tǒng)GAN主要關(guān)注損失函數(shù),穩(wěn)定性,體系結(jié)構(gòu)等。
如果你想生成汽車的圖像的話,僅僅擁有一個(gè)可以欺騙地球上大多數(shù)人的世界級(jí)人臉生成器是沒有用的。
因此,StyleGAN不是專注于創(chuàng)建更逼真的圖像,而通過提高GAN的能力,可以對(duì)生成的圖像進(jìn)行精細(xì)控制。
正如我所提到的那樣,StyleGAN沒有開發(fā)架構(gòu)和計(jì)算損失函數(shù)功能。相反,它是一套可以與任何GAN聯(lián)用的技術(shù),允許您執(zhí)行各種很酷的操作,例如混合圖像,在多個(gè)級(jí)別上改變細(xì)節(jié),以及執(zhí)行更高級(jí)的樣式傳輸。
換句話說,StyleGAN就像一個(gè)photoshop插件,只是大多數(shù)GAN開發(fā)都是photoshop的新版本。
為了實(shí)現(xiàn)這種級(jí)別的圖像風(fēng)格控制,StyleGAN采用了現(xiàn)有的一些技術(shù),如自適應(yīng)實(shí)例規(guī)范化,潛在矢量映射網(wǎng)絡(luò)和常量學(xué)習(xí)輸入。
如果沒有深入細(xì)節(jié),是很難再描述StyleGAN的,所以如果你有興趣的話,請(qǐng)查看我的文章,其中展示了如何使用StyleGAN生成權(quán)力游戲角色。我對(duì)所有技術(shù)都有詳細(xì)的解釋,一路上有很多很酷的結(jié)果等你哦。
結(jié)論
恭喜你,堅(jiān)持看到了最后!你們都跟上了創(chuàng)造虛假個(gè)人照片的高度學(xué)術(shù)領(lǐng)域的最新進(jìn)展。
但是在你癱在沙發(fā)上并開始無休止地刷微博票圈之前,請(qǐng)稍微停一下看看你到底還有多少路要走:
接下來是什么?!未被開發(fā)的區(qū)域!
在掌握了ProGAN和StyleGAN,且規(guī)模到達(dá)BigGAN之后,你很容易迷失在這里邊。
但請(qǐng)放大地圖仔細(xì)觀察,看到那個(gè)綠色土地了嗎?看到北方的紅三角了嗎?
這些都是等待被突破的未知開發(fā)區(qū)域,如果你放膽一試,他們都可以成為你的。
-
GaN
+關(guān)注
關(guān)注
19文章
1936瀏覽量
73533 -
DeepFake
+關(guān)注
關(guān)注
0文章
15瀏覽量
6681
原文標(biāo)題:能生成Deepfake也能診斷癌癥,GAN與惡的距離
文章出處:【微信號(hào):BigDataDigest,微信公眾號(hào):大數(shù)據(jù)文摘】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論