障眼法修行指南:GAN是怎樣一步步學(xué)會(huì)“騙人”的?
GAN是一種深度學(xué)習(xí)模型,是無(wú)監(jiān)督學(xué)習(xí)上最具前景的算法之一;本文就來(lái)介紹下這種深度學(xué)習(xí)模型是如何生成以假亂真的圖像,來(lái)“騙人”的。
算法,就像是武林絕學(xué)中的“內(nèi)功”,是計(jì)算機(jī)領(lǐng)域最重要的基石。不過(guò),算法多了也很麻煩。不斷推陳出新的算法是否更新更快更好,大廠各執(zhí)一詞,評(píng)價(jià)褒貶不一。沒(méi)有“內(nèi)功”,不可能成為高手;“內(nèi)功”多了,難免走火入魔?;蛟S搞清楚一種算法是在何時(shí)以何種方式何種面貌進(jìn)化的,能更清晰地理解它的現(xiàn)在和未來(lái)。
今天的算法簡(jiǎn)史,就從火遍整個(gè)AI圈的機(jī)器學(xué)習(xí)模型GAN說(shuō)起。
一、從傳統(tǒng)模型到逼真的GAN2.0,生成算法經(jīng)歷了哪些變化?
生成式對(duì)抗網(wǎng)絡(luò)(GAN, Generative Adversarial Networks )是一種深度學(xué)習(xí)模型,作為在無(wú)監(jiān)督學(xué)習(xí)上最具前景的算法之一,最早是在2014年由學(xué)者Ian J. Goodfellow等人提出的。
在GAN所代表的深度學(xué)習(xí)之前,已經(jīng)有很多生成模型;但這種模型是從概率統(tǒng)計(jì)角度出發(fā)的,指的是用于隨機(jī)生成可觀測(cè)數(shù)據(jù)的模型,很難直接描述和建模,讓科研人員在遇到了不少挑戰(zhàn)。比如說(shuō)傳統(tǒng)的圖像生成模型,將圖像表示為一個(gè)隨機(jī)向量,其中每一維都代表一個(gè)像素值,然后假設(shè)自然場(chǎng)景中的圖像都服從一個(gè)未知的分布規(guī)則,再通過(guò)一些觀測(cè)樣本來(lái)估計(jì)其分布。
顯然,這種難以描述和直接建模的生成模型,讓科研人員遇到了不少挑戰(zhàn)。最為重要的一點(diǎn)是:系統(tǒng)無(wú)從判斷預(yù)測(cè)結(jié)果的質(zhì)量。
而原始版GAN(我們稱(chēng)之為GAN1.0),就在深度學(xué)習(xí)的浪潮下應(yīng)運(yùn)而生。GAN1.0不僅可以利用深層神經(jīng)網(wǎng)絡(luò)模擬任意函數(shù)的能力,讓復(fù)雜的分布判斷得以被建模,而且增加了判別器。
于是“生成器網(wǎng)絡(luò)”和“判別器網(wǎng)絡(luò)”互相博弈,一個(gè)不停地捕捉數(shù)據(jù)產(chǎn)生新樣本,一個(gè)不停提出質(zhì)疑和挑戰(zhàn)來(lái)判斷所生成的樣本是否真實(shí)。通過(guò)自我對(duì)抗不斷改進(jìn),最終達(dá)到很好的輸出結(jié)果。
生成高分辨率名人相,作者Karras et. Al可以說(shuō),GAN開(kāi)啟了生成算法的“實(shí)用時(shí)代”。當(dāng)然,它并非是十全十美的,針對(duì)GAN1.0一些尚未解決的問(wèn)題,還產(chǎn)生了不少變種算法。比如Alec Radford et. Al對(duì)GAN做了一些架構(gòu)上的優(yōu)化,使用超參數(shù)和優(yōu)化器改進(jìn)之后,可以得到足以亂真的臥室圖片。
如果說(shuō)GAN1.0的生成能力已經(jīng)令人五體投地,那么最近英偉達(dá)研究人員推出的升級(jí)版GAN(我們稱(chēng)之為GAN2.0),更是足夠讓人獻(xiàn)上一年份的膝蓋。
GAN2.0采用了基于風(fēng)格的生成器新結(jié)構(gòu),可以將面部細(xì)節(jié)分離出來(lái),通過(guò)模型進(jìn)行單獨(dú)調(diào)整,生成的面部圖像結(jié)果大幅度超越了GAN1.0和其他模型。
之所以如此牛叉,一是因?yàn)镚AN2.0可以更好地感知圖像之間有意義的變化,并對(duì)其進(jìn)行引導(dǎo),讓生成的人臉更逼真,而且還能用于汽車(chē)、動(dòng)物、風(fēng)景圖像的生成。
歷史脈絡(luò)梳理清楚了之后,不難看出,深度學(xué)習(xí)為更高擬真度的生成算法奠定了基礎(chǔ)和可能。而GAN的對(duì)抗性及其應(yīng)用價(jià)值,又讓圖像生成算法成為了一門(mén)人人趨之若鶩的神器。
二、GAN的一小步,圖像生成的一大步
那么,GAN模型發(fā)展到現(xiàn)在,到底經(jīng)歷了什么樣的變化,又從無(wú)到有地獲得了哪些能力呢?主要集中在以下幾個(gè)方面:
- 找重點(diǎn);GAN2.0采用的生成器架構(gòu),提取的圖像風(fēng)格不再是筆劃或顏色空間這種僵硬的數(shù)據(jù),而是圖像的組成和臉部物理特征等泛屬性,因此可以感知到圖像之間哪些變化是有意義的(耳朵的形狀),哪些特征無(wú)需重點(diǎn)關(guān)注(襯衫的顏色),因此比例的控制更細(xì)膩,生成的效果自然也就越逼真。
- 排除法;圖像中很多隨機(jī)且不起重要影響的細(xì)節(jié),比如毛發(fā)、雀斑的具體位置等等,只要符合基本的規(guī)則分布,GAN2.0可以自主將一些隨機(jī)變化剔除。
- 省資源;GAN2.0可以將完整的特征圖像進(jìn)行縮放,這意味著,在沒(méi)有明確指導(dǎo)的自主學(xué)習(xí)環(huán)境下,系統(tǒng)能夠自行判斷使用全局或本地通道,從而大大提高了整體效率。
GAN可以改變圖像中的季節(jié)這背后隱藏著的,正是算法的本源價(jià)值——那就是將嚴(yán)謹(jǐn)?shù)目茖W(xué)求證思維,與務(wù)實(shí)的工程方法相結(jié)合,解決問(wèn)題的一種最佳方案。
而具體到生成任務(wù)上時(shí),算法的“優(yōu)越性”往往體現(xiàn)在三點(diǎn):一是能夠更準(zhǔn)確地判斷和預(yù)測(cè)刺激的位置;二是可以進(jìn)行更小粒度地調(diào)整,讓結(jié)果更自然;最后是更具想象力和創(chuàng)造力,讓算法發(fā)揮的空間更大。
顯然,GAN的發(fā)展正符合人類(lèi)接近生成任務(wù)所面臨的問(wèn)題時(shí),應(yīng)該遵循的基本規(guī)則。
三、GAN身上映射的算法進(jìn)化論
GAN這一算法的進(jìn)化,帶來(lái)了很多熱辣新鮮的想象力。除了我們熟悉的仿真人臉、語(yǔ)義分割、聲音處理等常規(guī)應(yīng)用之外,還有一些因模糊而具有龐大想象空間的炫酷應(yīng)用。
比如,谷歌大腦用GAN讓神經(jīng)網(wǎng)絡(luò)學(xué)會(huì)聯(lián)想。系統(tǒng)可以在完全不相關(guān)的圖像中,發(fā)現(xiàn)一些與狗、房子、魚(yú)等物體的相似之處,然后憑借自己的“想象力”將其呈現(xiàn)出來(lái)。這些奇幻的畫(huà)作,既是一種機(jī)器創(chuàng)作的“先鋒藝術(shù)”,更代表著很多人類(lèi)思維也無(wú)法企及的奇幻世界正在被機(jī)器路徑打開(kāi)。
另外,在GAN的作用下,能自主模仿人類(lèi)動(dòng)作的智能體正在成為可能;以往的算法總是需要海量規(guī)模的數(shù)據(jù)集和大量訓(xùn)練才能夠有比較優(yōu)秀的表現(xiàn);但在模仿學(xué)習(xí)中,智能體無(wú)需獎(jiǎng)勵(lì)機(jī)制就可以自主進(jìn)行學(xué)習(xí)。
更夸張的是:機(jī)器不僅無(wú)需獎(jiǎng)勵(lì),甚至可以憑借“好奇心”這一信號(hào)去主動(dòng)探索,這使得機(jī)器的學(xué)習(xí)成本、探索范圍、學(xué)習(xí)效率都要比其他方式要強(qiáng)得多??偠灾珿AN的進(jìn)化讓我們清晰地感受到了機(jī)器學(xué)習(xí)的模式和成本都在發(fā)生顛覆式的改變。
這背后隱藏著兩個(gè)算法進(jìn)化的核心特點(diǎn):
- 自主學(xué)習(xí),“無(wú)監(jiān)督”比有監(jiān)督更有潛力。從GAN1.0初問(wèn)世的火爆,到GAN2.0的逆天突破,可以看出,能夠在無(wú)需任何監(jiān)督信息的情況下自主完成訓(xùn)練,這樣能夠自我進(jìn)化的算法,才是通用人工智能的基石。
- 效率至上,拋棄效率談智力都是耍流氓。實(shí)驗(yàn)室里的算法未必能夠滿(mǎn)足商業(yè)應(yīng)用的長(zhǎng)期需要,在實(shí)踐中,可能要經(jīng)歷成本昂貴的磨合及試錯(cuò)過(guò)程,必須解決效率問(wèn)題。GAN的進(jìn)化過(guò)程,就是一個(gè)從調(diào)用全棧資源,到懂得合理分配控制空間,懂得“過(guò)日子”的算法才適用于通用智能化的現(xiàn)實(shí)世界。
四、GAN3.0未來(lái)可能的樣子
話(huà)題進(jìn)行到這里,或許我們可以設(shè)想一下,如果未來(lái)還將出現(xiàn)GAN3.0,它會(huì)是什么樣子?這里不妨大開(kāi)腦洞一下:首先,GAN3.0一定是在2.0基礎(chǔ)上各個(gè)維度的再升級(jí),加上機(jī)器“想象力”的加持,效果將不再局限于高精度模擬人臉或者是模擬現(xiàn)實(shí)世界,創(chuàng)造出毫無(wú)違和感的全新物種,成為新“造物主”都是極有可能的。
另外,GAN3.0對(duì)樣本規(guī)模和精度的要求更低,這就使少樣本預(yù)測(cè)成為可能,這也意味著隨著英偉達(dá)、谷歌等不斷開(kāi)發(fā)自己的數(shù)據(jù)集,很多小型公司也有可能掌握迭代和優(yōu)化系統(tǒng)的能力。也許,GAN3.0的提出者,現(xiàn)在還在車(chē)庫(kù)里默默寫(xiě)代碼呢。
這一可能性也帶來(lái)了競(jìng)爭(zhēng)關(guān)鍵點(diǎn)的變化,未來(lái)研究者和使用者PK的重點(diǎn),可能在創(chuàng)造力上。如何應(yīng)用更強(qiáng)大的對(duì)抗生成網(wǎng)絡(luò)解決更復(fù)雜的機(jī)器智能問(wèn)題,考驗(yàn)的并不是算法本身的強(qiáng)弱,而是一種思維和方法論。
常有AI開(kāi)發(fā)者感慨,每次都感覺(jué)用的是別人家的GAN,即便是相同的代碼和數(shù)據(jù)集,自己也從來(lái)沒(méi)有做出過(guò)相同的效果。你和別人之間是不是只差一個(gè)算法,自己心里沒(méi)點(diǎn)數(shù)嗎?
殊途同歸,如果真有GAN3.0,它也會(huì)回歸“算法”的本質(zhì),那就是理解和演繹數(shù)字世界的邏輯思維和工程手段。也因此,掌握了某一個(gè)先進(jìn)的算法,并不意味著就能捧回世界冠軍的冠冕,決定技術(shù)生命力的,是不斷精進(jìn)的“內(nèi)功”。
作者:腦極體,微信公眾號(hào):腦極體
本文由 @腦極體 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自 Unsplash,基于CC0協(xié)議。
- 目前還沒(méi)評(píng)論,等你發(fā)揮!