您當前的位置:首頁 > 攝影

GAN(生成對抗網路)有一本實戰書出版了,瞭解下?

作者:由 人郵非同步社群 發表于 攝影時間:2021-03-12

什麼是GAN

GAN是一類由兩個同時訓練的模型組成的機器學習技術:一個是

生成器

,訓練其生成偽資料;另一個是

鑑別器

,訓練其從真實資料中識別偽資料。

生成

(generative)一詞預示著模型的總目標——生成新資料。GAN透過學習生成的資料取決於所選擇的訓練集,例如,如果我們想用GAN合成一幅看起來像達•芬奇作品的畫作,就得用達•芬奇的作品作為訓練集。

對抗

(adversarial)一詞則是指構成GAN框架的兩個動態博弈、競爭的模型:生成器和鑑別器。生成器的目標是生成與訓練集中的真實資料無法區分的偽資料——在剛才的示例中,這就意味著能夠創作出和達•芬奇畫作一樣的繪畫作品。鑑別器的目標是能辨別出哪些是來自訓練集的真實資料,哪些是來自生成器的偽資料。也就是說,鑑別器充當著藝術品鑑定專家的角色,評估被認為是達•芬奇畫作的作品的真實性。這兩個網路不斷地“鬥智鬥勇”,試圖互相欺騙:生成器生成的偽資料越逼真,鑑別器辨別真偽的能力就要越強。

網路

(network)一詞表示最常用於生成器和鑑別器的一類機器學習模型:神經網路。依據GAN實現的複雜程度,這些網路包括從最簡單的前饋神經網路(第3章)到卷積神經網路(第4章)以及更為複雜的變體(如第9章的U-Net)。

GAN是如何工作的

支撐GAN的數學理論是較為複雜的(我們將在後面幾章中集中探討,特別是第3章和第5章),幸運的是,我們有許多現實世界的示例可以做類比,這樣能使GAN更容易理解。前面我們討論了一個藝術品偽造者(生成器)試圖愚弄藝術品鑑定專家(鑑別器)的示例。偽造者製作的假畫越逼真,鑑定專家就必須具有越強的辨別真偽的能力。反過來也是成立的:鑑定專家越善於判斷某幅畫是否是真的,偽造者就越要改進造假技術,以免被當場識破。

還有一個比喻經常用來形容GAN(Ian Goodfellow經常喜歡用的示例),假幣制造者(生成器)和試圖逮捕他的偵探(鑑別器)——假鈔看起來越真實,就需要越好的偵探才能辨別出它們,反之亦然。

用更專業的術語來說,生成器的目標是生成能最大程度有效捕捉訓練集特徵的樣本,以至於生成出的樣本與訓練資料別無二致。生成器可以看作一個反向的物件識別模型——

物件識別演算法

學習影象中的模式,以期能夠識別影象的內容。生成器不是去識別這些模式,而是要學會從頭開始學習建立它們,實際上,生成器的輸入通常不過是一個隨機數向量。

生成器透過從鑑別器的分類結果中接收反饋來不斷學習。鑑別器的目標是判斷一個特定的樣本是真的(來自訓練集)還是假的(由生成器生成)。因此,每當鑑別器“上當受騙”將假的影象錯判為真實影象時,生成器就會知道自己做得很好;相反,每當鑑別器正確地將生成器生成的假影象辨別出來時,生成器就會收到需要繼續改進的反饋。

鑑別器也會不斷地改善,像其他分類器一樣,它會從預測標籤與真實標籤(真或假)之間的偏差中學習。所以隨著生成器能更好地生成更逼真的資料,鑑別器也能更好地辨別真假資料,兩個網路都在同時不斷地改進著。

表1。1總結了GAN的兩個子網路的關鍵資訊。

GAN(生成對抗網路)有一本實戰書出版了,瞭解下?

實戰書是哪一本?

GAN(生成對抗網路)有一本實戰書出版了,瞭解下?

GAN實戰

本書旨在引導對生成對抗網路(GAN)有興趣的人從頭開始學習。本書從最簡單的例子開始,介紹一些最具創新性的GAN的實現和技術細節,進而對這些研究進展做出直觀的解釋,並完整地呈現所涉及的一切內容(不包括最基本的數學和原理),讓最前沿的研究變得觸手可及。

本書的最終目標是提供必要的知識和工具,讓你不僅能全面瞭解對GAN迄今為止取得的成就,還能有能力自由選擇開發新的應用。生成對抗這一模式充滿潛力,等著像你這樣懷有進取心、想在學術研究和實際應用中做出點成就的人去挖掘!歡迎你加入我們的GAN之旅。

適合人群

本書適合已經有一些機器學習和神經網路相關經驗的讀者閱讀。下面列出了理想情況下讀者應該提前知悉的內容。儘管本書盡力讓內容顯得通俗易懂,但你至少應該對下面70%的知識有信心。

能夠執行書中的Python程式,不需要精通Python,但至少應該有兩年的Python工作經驗(最好有全職的資料科學家或軟體工程師工作背景)。

瞭解面向物件的程式設計、如何使用物件以及如何找出它們的屬性和方法;理解典型的Python物件(如Pandas DataFrame)和非典型物件(如Keras層)。

瞭解機器學習理論的基礎知識,如訓練集和測試集的分割、過擬合、權重和超引數,以及監督學習、無監督學習和強化學習。熟悉準確率和均方誤差等指標。

瞭解基本的統計學和微積分的知識,如機率、密度函式、機率分佈、微分和簡單的最佳化。

瞭解基本的線性代數知識,如矩陣、高維空間,還應該瞭解主成分分析的概念。

瞭解深度學習的基礎知識,如前饋網路、權重和偏置、啟用函式、正則化、隨機梯度下降和反向傳播。

需要基本熟悉或自學基於Python 的機器學習庫——Keras。

以上要求不是危言聳聽,而是為了確保你能充分利用本書所講的內容。當然,不管怎樣,你都可以學習,但是之前瞭解的內容越少,需要你線上檢索學習的內容就越多。如果你感覺上面的要求不足為懼,那就開始學習吧!

《GAN實戰》程式碼說明

本書有許多包含原始碼的示例,放在有編號的列表中或者內嵌在普通文字中。這兩種情況下原始碼的格式都是以等寬字型樣式顯示的。有時也用加粗樣式突出顯示程式碼,表示與先前所示程式碼不同(有所更改),例如向現有程式碼行中新增新功能。

本書對大部分原始碼做了格式化,以適應本書頁面的排版。此外,若正文中有對程式碼的解釋說明,則通常會刪除原始碼中的註釋。為了突出重要概念,清單都給出了註釋。本書示例的程式碼可以從非同步社群本書詳情頁的“配套資源”處下載。

本書使用資料科學教育的標準用具——Jupyter Notebook,所以你應先掌握這個工具的用法。這對於中級Python學習者來說應該不難。訪問GPU或者使其所有功能正常執行有時候會遇到困難,特別是在Windows系統,所以有些章節提供了谷歌Colaboratory(縮寫為Colab)Notebook。這是谷歌的免費平臺,並預先封裝了必要的資料科學工具以及有限時長內免費的GPU。你可以直接在瀏覽器中執行這些程式碼,也可以將其他章節的程式碼上傳到Colab——它們是相容的。

線上資源

GAN是一個擁有良好(儘管是零散的)資源的活躍領域。有學術傾向的人可以在arXiv官方網站找到相關的最新論文。arXiv是康奈爾大學擁有和運營的學術論文電子預印本線上儲存庫。

本書作者都是 Medium 寫作平臺的活躍撰稿人(特別是以技術為核心的出版物

Towards

Data Science

Hacker Noon

),你可以在那裡找到他們寫的最新內容。

本書內容結構

本書力求在理論和實踐之間取得平衡。全書分為如下三部分。

第一部分生成對抗網路(GAN)與生成模型導論

這部分介紹生成學習和GAN的基本概念,並實現幾種GAN最典型的變體。

第1章介紹了生成對抗網路(GAN),並在高層面上對其工作原理進行闡述。透過學習本章內容,你會了解到GAN是由兩個獨立的神經網路(生成器和鑑別器)組成的——它們透過動態競爭進行訓練。掌握本章的知識可為理解本書其餘部分的內容奠定基礎。

第2章討論了自編碼器,它在許多方面被視為GAN的前身。鑑於生成學習的新穎性,增加這一章內容有助於將GAN置於更廣闊的背景下。本章給出了第一個程式碼教程,用於構建一個自編碼器來生成手寫數字——我們在後面幾章的GAN教程中也會探索相同的任務。如果你已經熟悉自編碼器的相關內容或想直接研究GAN,可以跳過這一章。

第3章深入研究了GAN和對抗性學習背後的理論。本章解釋了GAN和傳統神經網路的主要區別,即討論了它們的代價函式和訓練過程上的差異。在本章結尾的程式碼教程中,我們將應用所學知識在Keras中實現GAN,並訓練它生成手寫數字。

第4章介紹了卷積神經網路和批歸一化。本章實現了一種先進的GAN結構,它使用卷積網路作為其生成器和鑑別器,並利用批歸一化處理來穩定訓練過程。

第二部分 GAN的前沿主題

在第一部分的基礎上,這部分深入研究了GAN的基礎理論,並實現了一系列高階的GAN架構。

第5章討論了許多訓練GAN的理論和實踐障礙以及克服這些障礙的方法。本章根據相關的學術論文和演講全面概述了訓練GAN的首選做法,還涵蓋了用於評估GAN效能的選項以及需要擔心這個問題的原因。

第6章探索了漸進式增長生成對抗網路(PGGAN),一種生成器和鑑別器的前沿訓練方法。PGGAN透過在訓練過程中新增新的層獲得了非常好的影象質量和解析度。本章給出了真實的程式碼示例,並使用TensorFlow Hub(TFHub)從理論上和實踐上來解釋它的作用原理。

第7章繼續探索基於核心GAN模型的創新。你會了解到透過半監督學習僅使用一小部分帶標籤的訓練樣本就可提高分類準確率的巨大實際意義。使用本章實現了半監督生成對抗網路(SGAN),並解釋了它是如何使用標籤將鑑別器轉換成一個健壯的多類分類器的。

第8章展示了另一種在訓練中使用標籤的GAN架構。透過在訓練生成器和鑑別器時使用標籤或者其他條件資訊,條件生成對抗網路(CGAN)解決了生成器的主要缺點之一——無法明確指定要合成的樣本。本章最後實現了一個CGAN,用於直接檢視目標資料的生成。

第 9 章討論了最有趣的 GAN 架構之一:迴圈一致性生成對抗網路(CycleGAN)。此技術可以將一幅影象轉換成另一幅影象,例如將馬的影象轉換成斑馬的影象。本章介紹了CycleGAN的架構並解釋其主要組成和創新點,並在教程中用CycleGAN把蘋果轉換成了橙子(也可以將橙子轉換成蘋果)。

第三部分 何去何從

這一部分討論瞭如何應用GAN和對抗學習以及在何處應用它們。

第10章介紹了對抗樣本。對抗樣本是一種故意欺騙機器學習模型使其犯錯的技術。本章從理論和實際層面討論了它們的重要性,並探討了它們和GAN的關係。

第11章介紹了GAN的實際應用,探索瞭如何將前幾章介紹的技術用於醫學和時尚領域的實際用例:在醫學領域,如何使用GAN來擴充小資料集以提高分類準確率;在時尚領域,GAN是如何推動個性化定製發展的。

第12章總結了迄今為止GAN的主要收穫,討論了GAN的相關道德倫理考量,並介紹了一些新興的GAN技術。

為什麼要學GAN

自發明以來,GAN一直被學術界和工業界的專家們譽為“深度學習中最重要的創新之一”。Facebook的人工智慧研究主管Yann LeCun甚至表示,GAN及其變體是“過去20年來深度學習中最酷的想法”。[2]

這種興奮是合情合理的。機器學習領域的其他進展可能在科研人員中人盡皆知,但對於門外漢來說,可能疑惑多於興奮,GAN激起了從研究人員到大眾的極大興趣——包括《紐約時報》、BBC、《科學美國人》以及許多其他知名媒體機構,甚至可能就是GAN的某項成果驅使你來購買這本書的呢。(對吧?)

最值得關注的可能是GAN創作超現實主義意象的能力。圖1。4所示的人臉都不是真人的,都是假的,這展示了 GAN 合成足以和真實照片以假亂真影象的能力。這些人臉是用漸進式增長生成對抗網路生成的,相關內容參見第6章。

GAN(生成對抗網路)有一本實戰書出版了,瞭解下?

(來源:

Progressive Growing of GAN for Improved Quality, Stability and Variation

,by Tero Karras et al。, 2017。)

圖1。4這些逼真但虛假的臉是由在高解析度名人肖像照片集上訓練過的漸進GAN生成的

GAN另一個引人矚目的成就是

影象到影象的轉換

(image-to-image translation)。與把句子從漢語翻譯成西班牙語的方式類似,GAN可以將影象從一種風格轉換為另一種風格。如圖1。5所示,GAN可以把馬的影象轉換為斑馬的影象,把一張照片變成莫奈的畫作,而這幾乎不需要任何監督,也不需要任何標籤。使這一切成為可能GAN的變體是

迴圈一致性生成對抗網路

(CycleGAN),相關內容參見第9章。

更實用些的GAN應用同樣令人著迷。線上零售的巨頭亞馬遜(Amazon)嘗試利用GAN提供時尚建議:透過分析無數的搭配,系統能學會生成符合給定的任意風格的新產品。[3]在醫學研究中,GAN透過合成樣本增強資料集,以提高診斷準確率。[4] 在掌握了訓練GAN及其變體的細節之後,我們將在第11章詳細地探討這兩個應用。

GAN(生成對抗網路)有一本實戰書出版了,瞭解下?

(來源:

Unpaired Image-to-Image Translation Using Cycle-Consistent Adversarial Networks

, by Jun-Yan Zhu et al。, 2017。)

圖1。5透過使用名為CycleGAN的GAN變體,可以將莫奈的畫作變成照片,或將圖片中的斑馬變成馬;反之亦然

GAN也被視為實現

通用人工智慧[5]

的重要基石。它是一種能夠匹敵人類認知能力的人工系統,能獲取幾乎任何領域的專業知識——從走路所需的運動技能到語言表達技能,甚至於寫詩所需的創作技能。

然而,擁有生成新資料和新影象的能力使得GAN有時也會很危險。關於假新聞的傳播及其危險性已經是老生常談,GAN生成可信假影片的能力也令人不安。在2018年一篇關於GAN的文章的結尾處——這篇文章的標題很貼切“如何成為一個人工智慧”——《紐約時報》記者 Cade Metz和Keith Collins談到了令人擔憂的前景:GAN可能被用來製造和傳播易使人輕信的錯誤資訊,比如虛假的世界各國領導人發表宣告的影片片段。《麻省理工學院科技評論》舊金山分社社長Martin Giles也表達了他的擔憂,他在2018年發表的《GAN之父:賦予機器想象力的人》一文中提到,在技術嫻熟的駭客手中,GAN可能會以前所未有的規模被用來探索和利用系統漏洞。這些憂慮促使我們討論GAN的應用在道德倫理上的考量(第12章)。

GAN可以為世界帶來許多好處,但是任何技術創新都是一把雙刃劍。對此,我們必須懷有一種哲學意識:“除掉”一種技術是不可能的,所以確保像你這樣的人瞭解這項技術的迅速崛起及其巨大的潛力是很重要的。

本書也僅能觸及應用GAN可實現功能的一些皮毛,但是,我們希望這本書能夠為你提供必要的理論知識和實踐技能,使你能夠繼續從各個方面探索自己最感興趣的領域。

事不宜遲,讓我們開始吧!

標簽: GAN  生成器  鑑別器  生成  學習