0
本文作者: skura | 2019-07-10 09:58 |
當(dāng) Ian Goodfellow 在 2014 年喝了一杯啤酒之后,在夢(mèng)中產(chǎn)生了「生成對(duì)抗網(wǎng)絡(luò)」(GANs)的想法時(shí),他可能沒想到這一領(lǐng)域進(jìn)展如此之快:
你可能不知道我要表達(dá)什么意思——其實(shí)你剛才看到的圖片完全、不可否認(rèn)、100%…是假的。
此外,我并不是說,這些圖片都是 photoshop、CGI 或用 Nvidia 目前的高級(jí)新技術(shù)填補(bǔ)空白產(chǎn)生的。
我的意思是,這些圖像完全是通過加法、乘法在花費(fèi)了大量 GPU 計(jì)算之后生成的。
實(shí)現(xiàn)這些玩意兒的算法被稱為生成性對(duì)抗網(wǎng)絡(luò),在過去幾年中,F(xiàn)acebook 致力于生成對(duì)抗網(wǎng)絡(luò)的研究和創(chuàng)新比在隱私保護(hù)問題上更多。
2019 年 1 月 15 日,Ian Goodfellow 在 twitter 中表示,過去 4 年半,GAN 在人臉生成方面的進(jìn)展可以查看下面的資料:
總結(jié) 2014 年 vanilla GAN 的每一個(gè)進(jìn)步,就和觀看第 8 季《權(quán)力的游戲》一樣困難。因此,我將回顧幾年來 GAN 研究中最酷結(jié)果背后的關(guān)鍵思想。
我不打算詳細(xì)解釋轉(zhuǎn)置卷積和 Wasserstein 距離等概念。相反,我將提供一些最好的資源的鏈接,你可以使用這些資源快速了解這些概念,這樣你就會(huì)了解它們是如何融入大局的。
如果你還在閱讀,我假設(shè)你知道深度學(xué)習(xí)的基礎(chǔ)知識(shí),你知道卷積神經(jīng)網(wǎng)絡(luò)是如何工作的。
帶著這些前提,下面先看看 GAN 的發(fā)展路線圖:
GAN 的發(fā)展路線圖
我們將按照下面的順序,一步一步學(xué)習(xí)它:
GAN:生成對(duì)抗網(wǎng)絡(luò)
DCGAN:深度卷積生成對(duì)抗網(wǎng)絡(luò)
CGAN:條件生成對(duì)抗網(wǎng)絡(luò)
CycleGAN
CoGAN:耦合生成對(duì)抗網(wǎng)絡(luò)
ProGAN:生成對(duì)抗網(wǎng)絡(luò)的漸進(jìn)式增長(zhǎng)
WGAN:Wasserstein 生成對(duì)抗網(wǎng)絡(luò)
SAGAN:自注意力生成對(duì)抗網(wǎng)絡(luò)
BigGAN:大生成對(duì)抗性網(wǎng)絡(luò)
StyleGAN:基于風(fēng)格的生成對(duì)抗網(wǎng)絡(luò)
接下來讓我們開始吧!
1.GAN:生成對(duì)抗網(wǎng)絡(luò)
圖片來自于這篇論文:https://arxiv.org/pdf/1406.2661.pdf
相關(guān)資源:
現(xiàn)在,我知道你在想什么了——天啊,那張令人毛骨悚然的、模糊的圖像看起來像是一個(gè)數(shù)學(xué)迷從 Excel 表格中制作圖片后放大的結(jié)果。
好吧,其實(shí)你猜的多多少少是對(duì)的(除去 excel 部分)。
早在 2014 年,Ian Goodfellow 就提出了一個(gè)革命性的想法——讓兩個(gè)神經(jīng)網(wǎng)絡(luò)相互競(jìng)爭(zhēng)(或合作,這是一個(gè)觀點(diǎn)問題)。
一個(gè)神經(jīng)網(wǎng)絡(luò)試圖生成接近真實(shí)的數(shù)據(jù)(注意,GANs 可以用來模擬任何數(shù)據(jù)分布,但目前主要用于圖像),另一個(gè)網(wǎng)絡(luò)試圖區(qū)分真實(shí)的數(shù)據(jù)和由生成網(wǎng)絡(luò)生成的數(shù)據(jù)。
生成器網(wǎng)絡(luò)使用判別器作為損耗函數(shù),并更新其參數(shù)以生成看起來更真實(shí)的數(shù)據(jù)。
另一方面,判別器網(wǎng)絡(luò)更新其參數(shù),以便更好地從真實(shí)數(shù)據(jù)中識(shí)別出假數(shù)據(jù)。所以它的性能也變得更好了。
這個(gè)貓鼠游戲繼續(xù)進(jìn)行,直到系統(tǒng)達(dá)到所謂的「平衡」。達(dá)到平衡以后,生成器創(chuàng)建的數(shù)據(jù)看起來足夠真實(shí),因此判別器能做的只是是隨機(jī)猜測(cè)。
希望到目前為止,如果你正確地縮進(jìn)了代碼,并且 Amazon 決定不停止你的 SPOT 實(shí)例(順便說一句,這不會(huì)發(fā)生在 FloydHub 上,因?yàn)樗鼈兲峁┝藢S玫?GPU 機(jī)器),那么你現(xiàn)在就有了一個(gè)生成器,可以精確地創(chuàng)建和你的訓(xùn)練數(shù)據(jù)集相同的新數(shù)據(jù)。
現(xiàn)在,這是公認(rèn)的 GANs 的一個(gè)非常簡(jiǎn)單的觀點(diǎn)。你需要從這里學(xué)到的思想是,通過使用兩個(gè)神經(jīng)網(wǎng)絡(luò)——一個(gè)神經(jīng)網(wǎng)絡(luò)生成數(shù)據(jù),另一個(gè)神經(jīng)網(wǎng)絡(luò)從假數(shù)據(jù)中分類出真實(shí)數(shù)據(jù)。從理論上來說,你可以同時(shí)訓(xùn)練它們,收斂到一個(gè)點(diǎn),在這個(gè)點(diǎn)上,生成器可以生成全新的、真實(shí)的數(shù)據(jù)。
2.DCGAN:深卷積生成對(duì)抗網(wǎng)絡(luò)
圖片來源:https://arxiv.org/pdf/1511.06434.pdf
相關(guān)資源:
看到了吧,我會(huì)給你節(jié)省時(shí)間。
卷積=對(duì)于圖像處理來說很有用
GANs=適合生成一些東西
卷積+GANs=適合生成圖像
事后看來,正如 Ian Goodfellow 在與 Lex Fridman 在一次廣播節(jié)目中所指出的那樣,他們將這種模型稱為 DCGAN(即「深層卷積生成對(duì)抗網(wǎng)絡(luò)」)似乎很愚蠢,因?yàn)楝F(xiàn)在幾乎所有與深度學(xué)習(xí)和圖像相關(guān)的東西都是深度的、卷積的。
另外,當(dāng)大多數(shù)人了解到 GANs 時(shí),他們或多或少都會(huì)知道它們是「深度而卷積」的。
然而,曾經(jīng)有一段時(shí)間,GANs 并不一定使用基于卷積的操作,而是依賴于標(biāo)準(zhǔn)的多層感知器架構(gòu)。
DCGAN 改變了這一點(diǎn),使用了一種被稱為轉(zhuǎn)置卷積運(yùn)算的方法,它還有一個(gè)「不幸的」名稱,即反卷積層。
轉(zhuǎn)置卷積可以進(jìn)行向上縮放操作。它們幫助我們將低分辨率圖像轉(zhuǎn)換為高分辨率圖像。
但是,嚴(yán)肅地說,你需要通過上面介紹的論文、低嗎和媒體資源來更好地理解轉(zhuǎn)置卷積,因?yàn)樗鼈兪撬鞋F(xiàn)代 GAN 架構(gòu)的基礎(chǔ)。
不過,如果你的時(shí)間有點(diǎn)短,那么你可以通過觀看一個(gè)簡(jiǎn)單的動(dòng)畫,來大概了解轉(zhuǎn)置卷積是如何工作的:
在 vanilla 卷積中,你應(yīng)用一系列卷積(連同其他操作)來將圖像映射到更低維的向量。
同樣,按順序應(yīng)用多個(gè)轉(zhuǎn)置卷積可以使我們將一個(gè)低分辨率的單陣列演化為一個(gè)色彩明艷的全彩圖像。
現(xiàn)在,在繼續(xù)之前,我們先來探索一下使用 GAN 的一些獨(dú)特方法。
你現(xiàn)在處在第二個(gè)紅色的「X」的位置
3.CGAN:條件生成對(duì)抗網(wǎng)絡(luò)
圖片來源于論文:https://arxiv.org/pdf/1411.1784.pdf
相關(guān)資源:
原始的 GAN 從隨機(jī)噪聲中生成數(shù)據(jù)。這意味著你可以訓(xùn)練它,以小狗圖像為例,它會(huì)產(chǎn)生更多的小狗圖像。
你還可以在小貓圖像上訓(xùn)練它,在這種情況下,它將生成小貓的圖像。
你也可以在演員 Nicholas Cage 的照片圖像上訓(xùn)練它,在這種情況下,它將生成 Nicholas Cage 圖像。
你也可以在很多別的圖像上訓(xùn)練它。明白了嗎?在什么圖像上訓(xùn)練 GAN,它就能生成更多的類似圖像。
然而,如果你同時(shí)嘗試在狗和貓的圖像上訓(xùn)練它,它會(huì)生成模糊的半品種,就和下圖一樣。
圖片由 Anusha Barwa 拍攝于 Unsplash
CGAN(代表「條件生成對(duì)抗網(wǎng)絡(luò)」)旨在通過告訴生成器只生成一個(gè)特定類的圖像來解決這個(gè)問題,例如貓、狗或 Nicholas Cage。
具體來說,CGAN 將一個(gè) one-hot 向量 y 連接到隨機(jī)噪聲矢量 z,得到如下結(jié)構(gòu):
現(xiàn)在,我們就可以利用同一個(gè) GAN 生成貓和狗。
4.CycleGAN
相關(guān)資源:
論文:
其他重要資源:Cyclegan 項(xiàng)目
GANs 不僅僅用于生成圖像。他們還可以創(chuàng)造外表上同時(shí)具有馬和斑馬特點(diǎn)的生物,如上圖所示。
為了創(chuàng)建這些圖像,CycleGAN 致力于解決一個(gè)被稱為圖像到圖像翻譯的問題。
CycleGAN 不是一種新的 GAN 架構(gòu),雖然它推動(dòng)了最先進(jìn)的圖像合成技術(shù)。相反,它是一種使用 GANs 的聰明方法。所以你可以自由地在任何你喜歡的架構(gòu)中使用這種技術(shù)。
這里有一篇文章,我建議你讀一下。它寫得非常好,甚至對(duì)初學(xué)者來說也很容易理解。文章地址:https://arxiv.org/abs/1703.10593v6。
這里的任務(wù)是訓(xùn)練網(wǎng)絡(luò) G(X),將圖像從源域 X 映射到目標(biāo)域 Y
但是,等等,你可能會(huì)問,「這和常規(guī)的深度學(xué)習(xí)或風(fēng)格轉(zhuǎn)換有什么不同」。
好吧,下面的圖片很好地總結(jié)了這一點(diǎn)。CycleGAN 進(jìn)行未配對(duì)的圖像到圖像的轉(zhuǎn)換。這意味著我們正在訓(xùn)練的圖像不必代表相同的東西。
如果我們有大量的圖像(DaVinci-ify 的圖像繪畫)對(duì)收藏的話,DaVinci-ify 將(相對(duì)地)很容易識(shí)別圖像。
不幸的是,這家伙沒來得及完成太多的畫。
然而,CycleGAN 使用未配對(duì)的數(shù)據(jù)進(jìn)行訓(xùn)練。所以我們不需要相同事物的兩個(gè)圖像。
另一方面,我們可以使用樣式轉(zhuǎn)換。但這只會(huì)提取一個(gè)特定圖像的樣式,并將其轉(zhuǎn)換為另一個(gè)圖像,這意味著我們無法從馬轉(zhuǎn)換為斑馬。
然而,CycleGAN 學(xué)習(xí)從一個(gè)圖像域到另一個(gè)圖像域的映射。所以我們可以在所有 Monet 繪畫的集合上對(duì)它進(jìn)行訓(xùn)練。
他們使用的方法相當(dāng)優(yōu)雅。CycleGAN 由兩個(gè)生成器 G 和 F 以及兩個(gè)判別器 Dx 和 Dy 組成。
G 從 X 中獲取圖像,并試圖將其映射到 Y 中的某個(gè)圖像。判別器 Dy 判斷圖像是由 G 生成的,還是實(shí)際上是在 Y 中生成的。
同樣地,F(xiàn) 從 Y 中獲取一個(gè)圖像,并試圖將其映射到 X 中的某個(gè)圖像,判別器 Dx 預(yù)測(cè)圖像是由 F 生成的還是實(shí)際存在于 X 中的。
所有四個(gè)網(wǎng)絡(luò)都是以普通的 GAN 的方式訓(xùn)練的,直到得到強(qiáng)大的生成器 G 和 F,它們可以很好地執(zhí)行圖像到圖像的翻譯任務(wù),騙過判別器。
這種對(duì)抗性的損失聽起來是個(gè)好主意,但還不夠。為了進(jìn)一步提高性能,CycleGAN 使用另一個(gè)度量,即循環(huán)一致性損失。
一般來說,想想好的翻譯人員的特點(diǎn)。其中之一是,當(dāng)你來回翻譯時(shí),你應(yīng)該得到同樣的東西。
CycleGAN 巧妙地實(shí)現(xiàn)了這個(gè)想法,它強(qiáng)制網(wǎng)絡(luò)遵守這些限制條件:
F(G(x))≈x,x∈X
G(F(y))≈y,y∈Y
從視覺上看,循環(huán)一致性如下:
總損耗函數(shù)的構(gòu)造方式是,懲罰不符合上述特性的網(wǎng)絡(luò)。我不打算在這里寫出損失函數(shù),因?yàn)檫@會(huì)破壞它在論文里面的組合方式。
好吧,在越聊越偏之前,讓我們回到尋找更好的 GAN 架構(gòu)的主要任務(wù)。
5.CoGAN:耦合生成對(duì)抗網(wǎng)絡(luò)
圖片來源于論文:https://arxiv.org/pdf/1606.07536.pdf
相關(guān)資源:
你知道什么比一個(gè) GAN 更好嗎??jī)蓚€(gè) GAN!
CoGAN 就是這樣做的(CoGAN 代表「耦合生成對(duì)抗網(wǎng)絡(luò)」,不要與 CGAN 混淆,CGAN 代表?xiàng)l件生成對(duì)抗網(wǎng)絡(luò))。它訓(xùn)練的是「兩個(gè)」GAN 而不是一個(gè)。
當(dāng)然,GAN 的研究人員也無法停止將 GAN 類比成警察和偽造者的言論。因此,GAN 背后的思想,用作者自己的話說就是:
在比賽中,有兩個(gè)隊(duì),每個(gè)隊(duì)有兩名隊(duì)員。生成模型組成一個(gè)團(tuán)隊(duì),共同在兩個(gè)不同的域中合成一對(duì)圖像,以混淆區(qū)分模型。判別模型試圖將從各自領(lǐng)域的訓(xùn)練數(shù)據(jù)分布中提取的圖像與從各自生成模型中提取的圖像區(qū)分開來。同一隊(duì)的隊(duì)員之間的協(xié)作是從權(quán)重分擔(dān)機(jī)制中建立起來的。
好吧,有一個(gè)由多個(gè) GAN 組成的局域網(wǎng)絡(luò)聽起來不錯(cuò),但你如何使它工作?
結(jié)果證明這并不太復(fù)雜,你只需要讓網(wǎng)絡(luò)對(duì)某些層使用完全相同的權(quán)重。
在我看來,CoGAN 最酷的地方不在于它能提高圖像生成質(zhì)量,也不在于它可以在多個(gè)圖像域上訓(xùn)練。
事實(shí)上,你只需要花費(fèi) 1.5 張圖片的代價(jià)來得到 2 張圖片。
因?yàn)楣蚕砹艘恍?quán)重,所以與兩個(gè)單獨(dú)的 GAN 相比,CoGAN 的參數(shù)更少(因此可以節(jié)省更多的內(nèi)存、計(jì)算和存儲(chǔ)空間)。
這是一種「過時(shí)」的微妙技巧,而且我們今天看到的一些 GAN 的新方法是不使用它們的。
但總有一天,我想我們會(huì)再次用到它們的。
6.ProGAN:漸進(jìn)式增長(zhǎng)的生成對(duì)抗網(wǎng)絡(luò)
圖片來源于論文:https://arxiv.org/pdf/1710.10196.pdf
相關(guān)資源推薦:
在訓(xùn)練 GANs 的時(shí)候會(huì)有很多問題,其中最重要的是訓(xùn)練的不穩(wěn)定性。
有時(shí),GAN 的損耗會(huì)波動(dòng),因?yàn)樯善骱团袆e器會(huì)相互破壞另一方的學(xué)習(xí)。其他時(shí)候,在網(wǎng)絡(luò)聚合后損耗可能會(huì)爆炸,圖像開始變得看起來可怕。
ProGAN(代表了生成對(duì)抗網(wǎng)絡(luò)的逐步增長(zhǎng))是一種通過增加生成圖像的分辨率來幫助穩(wěn)定 GAN 訓(xùn)練的技術(shù)。
這里我們會(huì)有一種直覺,那就是生成 4x4 圖像比生成 1024x1024 圖像更容易。此外,將 16x16 圖像映射到 32x32 圖像比將 2x2 圖像映射到 32x32 圖像更容易。
因此,ProGAN 首先訓(xùn)練一個(gè) 4x4 生成器和一個(gè) 4x4 判別器,然后在訓(xùn)練過程中添加對(duì)應(yīng)于更高分辨率的層。這個(gè)動(dòng)畫總結(jié)了我所描述的:
7.WGAN: Wasserstein 生成對(duì)抗網(wǎng)絡(luò)
圖片來源于論文:https://arxiv.org/pdf/1701.07875.pdf
相關(guān)資源推薦:
這一部分也許是這篇文章中最偏理論和數(shù)學(xué)的一部分。作者把大量的證明、推論和一些數(shù)學(xué)術(shù)語塞進(jìn)其中。所以如果積分概率度量和 Lipschitz 連續(xù)性不是你關(guān)心的事情,我不會(huì)在這件事上花太多時(shí)間。
簡(jiǎn)而言之,WGAN(W 代表 Wasserstein)提出了一種新的成本函數(shù),這種函數(shù)有一些非常好的性質(zhì),使得它在數(shù)學(xué)家和統(tǒng)計(jì)學(xué)家中非常流行。
這是舊版的 GANGAN minimax 優(yōu)化公式:
這里是 WGAN 使用的新方法:
在大多數(shù)情況下,這就是在實(shí)踐中使用 WGAN 所需要知道的全部?jī)?nèi)容。
只需剔除舊的成本函數(shù),它近似一個(gè)稱為 Jensen-Shannon 散度的統(tǒng)計(jì)量。然后加入新的成本函數(shù),它近似一個(gè)稱為 1-Wasserstein 距離的統(tǒng)計(jì)量。
原因如下:
圖片來源于論文:https://arxiv.org/pdf/1701.07875.pdf
然而,如果你感興趣,下面是對(duì)它的數(shù)學(xué)原理的快速回顧,而且這也正是 WGAN 論文如此受歡迎的原因。
原始的 GAN 論文表明,當(dāng)判別器為最優(yōu)時(shí),生成器被更新,以使 Jensen-Shannon 散度最小化。
如果你不熟悉 Jensen-Shannon,我來解釋一下。Jensen-Shannon 散度是一種測(cè)量?jī)煞N不同的概率是如何分布的方法。JSD 越大,兩個(gè)分布越「不同」,反之亦然。計(jì)算方法如下:
然而,最小化 JSD 是最好的方法嗎?
WGAN 論文的作者認(rèn)為這可能不是,這是出于一個(gè)特殊的原因——當(dāng)兩個(gè)分布完全不重疊時(shí),你可以發(fā)現(xiàn),JSD 的值保持為 2log2 的常量值。
當(dāng)一個(gè)函數(shù)值為一個(gè)常量值時(shí),它的梯度等于零,而零梯度是不好的,因?yàn)檫@意味著生成器什么也學(xué)不到。
WGAN 作者提出的替代距離度量的是 1-Wasserstein 距離,有時(shí)稱為地球移動(dòng)距離。
圖片來源于論文:https://arxiv.org/pdf/1701.07875.pdf
地球移動(dòng)距離這個(gè)名稱是類比得來的。你可以想象,假設(shè)兩個(gè)分布中的一個(gè)是一堆土,另一個(gè)是一個(gè)坑。地球移動(dòng)距離是指將土堆運(yùn)至坑內(nèi)的成本,其前提是要盡可能高效地運(yùn)輸泥土、沙子、灰塵等。在這里,「成本」被認(rèn)為是點(diǎn)之間的距離×移動(dòng)的土方量。
具體來說(沒有雙關(guān)語),兩個(gè)分布之間的地球移動(dòng)距離可寫為:
其中 inf 是中位數(shù)(最小值),x 和 y 是兩個(gè)分布上的點(diǎn),γ是最佳的運(yùn)輸方法。
不幸的是,它的計(jì)算非常復(fù)雜,難以解決。因此,我們計(jì)算的是完全不同的東西:
這兩個(gè)方程之間的聯(lián)系一開始似乎并不明顯,但通過一個(gè)叫做 Kantorovich-Rubenstein 對(duì)偶的奇特?cái)?shù)學(xué)公式,你可以證明這些 Wasserstein/地球移動(dòng)器距離的公式正試圖計(jì)算相同的事情。
如果你不能在我給出的論文和博客文章中學(xué)到一些重要的數(shù)學(xué)知識(shí),不要擔(dān)心太多。關(guān)于 WGAN 的大部分工作,其實(shí)都只是為公認(rèn)的簡(jiǎn)單想法提供一個(gè)復(fù)雜的(嚴(yán)格的)理由。
8.SAGAN:自注意力生成對(duì)抗網(wǎng)絡(luò)
圖片來源于論文:https://arxiv.org/pdf/1805.08318v1.pdf
相關(guān)資源推薦:
由于 GANs 使用轉(zhuǎn)置卷積來「掃描」特征圖,因此它們只能訪問附近的信息。
單獨(dú)使用轉(zhuǎn)置卷積就像在繪制圖片的時(shí)候,只查看畫筆小半徑范圍內(nèi)的畫布區(qū)域。
即使是可以完美地完成最特殊、最復(fù)雜的細(xì)節(jié)的最偉大的藝術(shù)家們,也需要后退一步,觀察全局。
SAGAN 使用自注意力機(jī)制,由于其轉(zhuǎn)換架構(gòu),近年來它已非常流行。
自注意力讓生成器后退一步,看看「大局」。
9.BigGAN
相關(guān)資源推薦:
四年之后,DeepMind 決定使用 GANs 做以前沒人做過的事。他們使用了一種神秘的深度學(xué)習(xí)技術(shù),這種技術(shù)非常強(qiáng)大,使得當(dāng)前最先進(jìn)的模型在恐懼中顫抖,因?yàn)樗h(yuǎn)遠(yuǎn)超越了當(dāng)時(shí)最先進(jìn)的排行榜上的所有技術(shù)。
我向你介紹了 BigGAN,它是一個(gè)完全不做任何事情的 GAN(但是它運(yùn)行著一組 TPU 集群,不知為何我覺得它應(yīng)該在這個(gè)列表中)。
看起來像開玩笑的是,DeepMind 團(tuán)隊(duì)的確利用 BigGAN 完成了很多工作。除了用真實(shí)的圖像吸引了所有的目光之外,BigGAN 還向我們展示了一些非常詳細(xì)的大規(guī)模訓(xùn)練的結(jié)果。
BigGAN 背后的團(tuán)隊(duì)引入了各種技術(shù),以克服跨多臺(tái)機(jī)器大批量訓(xùn)練 GAN 的不穩(wěn)定性。
首先,DeepMind 使用 SAGAN 作為基線,并附加了一個(gè)稱為譜歸一化的特征。他們將 batch 的大小縮放了 50%,寬度(通道數(shù))縮放了 20%。最初,增加層的數(shù)量似乎沒有幫助。
在嘗試了很多其他方法之后,作者使用「截?cái)嗉记伞箒硖岣卟蓸訄D像的質(zhì)量。
在訓(xùn)練過程中,如果潛在向量在生成圖像時(shí)落在給定范圍之外,則對(duì)其重新采樣。給定范圍是一個(gè)超參數(shù),用ψ表示。較小的ψ縮小了范圍,犧牲多樣性以增加樣品保真度。
那么,所有這些復(fù)雜的調(diào)優(yōu)工作都會(huì)產(chǎn)生什么結(jié)果呢?好吧,有人稱之為 dogball:
BigGAN 還表明,大規(guī)模的訓(xùn)練會(huì)有自己的一系列問題。值得注意的是,通過增加 batch 大小和寬度等參數(shù),訓(xùn)練似乎可以很好地?cái)U(kuò)展,但出于某種原因,訓(xùn)練最終會(huì)崩潰。
如果你覺得分析奇異常值來理解這種不穩(wěn)定性聽起來很有趣,請(qǐng)看這篇論文,在論文中,你會(huì)發(fā)現(xiàn)很多不穩(wěn)定性。
最后,作者還訓(xùn)練了一個(gè) BigGAN 的新數(shù)據(jù)集,叫做 JFT-300,它是一個(gè)類似于 ImageNet 的數(shù)據(jù)集,大概有 3 億張圖片。BigGAN 在這個(gè)數(shù)據(jù)集上的表現(xiàn)更好,這表明更大規(guī)模的數(shù)據(jù)集可能是 GANs 的發(fā)展方向。
在論文的第一版發(fā)表后,過了幾個(gè)月,作者重新嘗試了 BigGAN。還記得我說過增加層數(shù)不起作用嗎?后面發(fā)現(xiàn)這是由于糟糕的架構(gòu)。
該團(tuán)隊(duì)沒有將更多的層塞進(jìn)模型中,而是進(jìn)行了實(shí)驗(yàn),發(fā)現(xiàn)使用深度殘差網(wǎng)絡(luò) bottleneck 是解決問題的方法。
通過上述所有的調(diào)整、縮放和仔細(xì)的實(shí)驗(yàn),BigGAN 以最高 152.8 分的表現(xiàn)完全超越了先前的最先進(jìn)的起步分?jǐn)?shù) 52.52。
如果這都不是進(jìn)步,那么我不知道什么才是進(jìn)步。
10.StyleGAN:基于風(fēng)格的生成對(duì)抗性網(wǎng)絡(luò)
圖片來源于論文:https://arxiv.org/abs/1812.04948
相關(guān)資源推薦:
論文:
代碼:
其他優(yōu)質(zhì)資源:thispersondoesnotexist
StyleGAN(style generative adversarial network)是 NVIDIA 研究院的成果,它與傳統(tǒng)的 GAN 的研究背道而馳,后者側(cè)重于損失函數(shù)、穩(wěn)定性、體系結(jié)構(gòu)等。
如果你想生成汽車的圖像,那么擁有一個(gè)世界級(jí)的、可以愚弄地球上大多數(shù)人的人臉圖像生成器是毫無意義的。
因此,StyleGAN 沒有專注于創(chuàng)建更真實(shí)的圖像,而是改進(jìn)了 GANs 對(duì)生成的圖像進(jìn)行精細(xì)控制的能力。
正如我提到的,StyleGAN 不專注于架構(gòu)和損失函數(shù)。相反,它是一套技術(shù),可以與任何 GAN 一起使用,允許你執(zhí)行各種酷的事情,如混合圖像、在多個(gè)級(jí)別上改變細(xì)節(jié)以及執(zhí)行更高級(jí)的樣式轉(zhuǎn)換。
換言之,StyleGAN 就像一個(gè) photoshop 插件,而大多數(shù) GAN 的進(jìn)展都像是 photoshop 的新版本。
為了實(shí)現(xiàn)這一級(jí)別的圖像樣式控制,StyleGAN 使用了現(xiàn)有的技術(shù),如自適應(yīng)實(shí)例規(guī)范化、潛在的矢量映射網(wǎng)絡(luò)和持續(xù)的學(xué)習(xí)輸入。
很難在不了解細(xì)節(jié)的情況下進(jìn)一步描述 StyleGAN,因此如果你感興趣,請(qǐng)查看我的文章,我在其中演示了如何使用 StyleGAN 生成權(quán)力游戲里面的人物。我對(duì)其中所有的技術(shù)都有詳細(xì)的解釋,這里面有很多很酷的結(jié)果。
結(jié)論
哇,你做到了,祝賀你!你現(xiàn)在知道了這個(gè)領(lǐng)域里面的所有最新突破,包括制作虛假的個(gè)人資料圖片。
但是,在你躺在沙發(fā)上開始無休止的瀏覽推特之前,花點(diǎn)時(shí)間看看你已經(jīng)走了多遠(yuǎn):
接下來是什么?!未勘探區(qū)域!
在攀登了 ProGAN 和 StyleGAN 的山脈,穿越計(jì)算的海洋到達(dá)了 BigGAN 的廣闊領(lǐng)域之后,你很容易在這些地方迷路。
但是,請(qǐng)放大地圖仔細(xì)看看。你看到那片綠色的土地了嗎?看到北部的紅色三角洲了嗎?
這些是未經(jīng)探索的區(qū)域,還有待取得突破。如果你堅(jiān)持信仰一直努力,他們都可以是你的。
再見,我的朋友,還有更大的海洋需要去航行。
結(jié)語:一些有趣的現(xiàn)代研究
到目前為止,如果你已經(jīng)閱讀了我共享的所有資源,那么你應(yīng)該對(duì) GAN 技術(shù)的一些最重要的突破有了扎實(shí)的理解。
但毫無疑問,還會(huì)有更多的技術(shù)。跟上研究是困難的,但這并非不可能。我建議你盡量堅(jiān)持閱讀最新的論文,因?yàn)樗鼈兛赡軙?huì)幫助你的項(xiàng)目產(chǎn)生最好的結(jié)果。
為了幫助你開始,以下是一些前沿研究項(xiàng)目(截至 2019 年 5 月):
你現(xiàn)在可能已經(jīng)聽說了「DeOldify」。如果沒有,跳到這里!但它最近有一個(gè)更新,它引入了一種新的訓(xùn)練技術(shù) NoGAN。你可以在他們的博客和代碼中查看詳細(xì)信息。
如果你沒有 Google 級(jí)的數(shù)據(jù)量,那么從頭再現(xiàn) BigGAN 的結(jié)果是很有挑戰(zhàn)性的。這里有一篇 ICML2019 論文,它提議用更少的標(biāo)簽來訓(xùn)練 BigGAN 模型。
當(dāng)然,GANs 并不是唯一一種基于深度學(xué)習(xí)的圖像生成技術(shù)。最近,OpenAI 推出了一個(gè)全新的模型,叫做稀疏 transformer,它利用 transformer 架構(gòu)來生成圖像。和往常一樣,他們發(fā)布了論文、博客和代碼。
雖然,這不是什么新的研究,但你應(yīng)該聽聽 GANs 的起源故事:
Nvidia 有一個(gè)非??岬捻?xiàng)目,叫做 GauGAN,它可以把隨手亂描的涂鴉變成現(xiàn)實(shí)主義的杰作。這確實(shí)是你需要經(jīng)歷才能理解的事情。所以先看看演示視頻,然后讀他們的博客和論文。
你有沒有想過如何「調(diào)試」一個(gè) GAN?現(xiàn)在有一篇 ICLR 2019 論文提出了一個(gè)有希望的解決方案。
盡管我讓 GAN 看起來很酷,但接下來還有很多工作要做。有一篇優(yōu)秀的總結(jié)文總結(jié)了一些尚未解決的問題。
看起來,有人找到了另一種在真實(shí)世界中用 GAN 的方法。
關(guān)于這一點(diǎn),可以查看 6 月 13 日,Yann LeCun 推薦的文章:https://t.co/IFYJwb30cw。
via:https://blog.floydhub.com/gans-story-so-far/
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。