深入淺出:GAN原理與應用入門介紹

2021-01-13 機器之心Pro

本文由機器之心編輯,「機器之心」專注生產人工智慧專業性內容,適合開發者和從業者閱讀參考。點擊右上角即刻關注。

生成對抗網絡(GAN)是一類在無監督學習中使用的神經網絡,其有助於解決按文本生成圖像、提高圖片解析度、藥物匹配、檢索特定模式的圖片等任務。Statsbot 小組邀請數據科學家 Anton Karazeev 通過日常生活實例深入淺出地介紹 GAN 原理及其應用。

生成對抗網絡由 Ian Goodfellow 於 2014 年提出。GAN 不是神經網絡應用在無監督學習中的唯一途徑,還有玻爾茲曼機(Geoffrey Hinton 和 Terry Sejnowski,1985)和自動解碼器(Dana H. Ballard,1987)。三者皆致力於通過學習恆等函數 f(x)= x 從數據中提取特徵,且都依賴馬爾可夫鏈來訓練或生成樣本。

GAN 設計之初衷就是避免使用馬爾可夫鏈,因為後者的計算成本很高。相對於玻爾茲曼機的另一個優點是 GAN 的限制要少得多(只有幾個概率分布適用於馬爾可夫鏈抽樣)。

在本文中,我們將講述 GAN 的基本原理及最流行的現實應用。

GAN 原理

讓我們用一個比喻解釋 GAN 的原理吧。

假設你想買塊好表。但是從未買過表的你很可能難辨真假;買表的經驗可以免被奸商欺騙。當你開始將大多數手錶標記為假表(當然是被騙之後),賣家將開始「生產」更逼真的山寨表。這個例子形象地解釋了 GAN 的基本原理:判別器網絡(手錶買家)和生成器網絡(生產假表的賣家)。

兩個網絡相互博弈。GAN 允許生成逼真的物體(例如圖像)。生成器出於壓力被迫生成看似真實的樣本,判別器學習分辨生成樣本和真實樣本。

判別算法和生成算法有何不同?簡單地說:判別算法學習類之間的邊界(如判別器做的那樣),而生成算法學習類的分布(如生成器做的那樣)。

如果你準備深入了解 GAN

想要學習生成器的分布,應該定義數據 x 的參數 p_g,以及輸入噪聲變量 p_z(z)的分布。然後 G(z,θ_g)將 z 從潛在空間 Z 映射到數據空間,D(x,θ_d)輸出單個標量——一個 x 來自真實數據而不是 p_g 的概率。

訓練判別器以最大化正確標註實際數據和生成樣本的概率。訓練生成器用於最小化 log(1-D(G(z)))。換句話說,儘量減少判別器得出正確答案的概率。

可以將這樣的訓練任務看作具有值函數 V(G,D)的極大極小博弈:

換句話說,生成器努力生成判別器難以辨認的圖像,判別器也愈加聰明,以免被生成器欺騙。

「對抗訓練是繼切片麵包之後最酷的事情。」- Yann LeCun

當判別器不能區分 p_g 和 p_data,即 D(x,θ_d)= 1/2 時,訓練過程停止。達成生成器與判別器之間判定誤差的平衡。

歷史檔案圖像檢索

一個有趣的 GAN 應用實例是在「Prize Papers」中檢索相似標記,Prize Papers 是海洋史上最具價值的檔案之一。對抗網絡使得處理這些具有歷史意義的文件更加容易,這些文件還包括海上扣留船隻是否合法的信息。

每個查詢到的記錄都包含商家標記的樣例——商家屬性的唯一標識,類似於象形文字的草圖樣符號。

我們應該獲得每個標記的特徵表示,但是應用常規機器學習和深度學習方法(包括卷積神經網絡)存在一些問題:

它們需要大量標註圖像;商標沒有標註;標記無法從數據集分割出去。

這種新方法顯示了如何使用 GAN 從商標的圖像中提取和學習特徵。在學習每個標記的表徵之後,就可以在掃描文檔上按圖形搜索。

將文本翻譯成圖像

其他研究人員表明,使用自然語言的描述屬性生成相應的圖像是可行的。文本轉換成圖像的方法可以說明生成模型模擬真實數據樣本的性能。

圖片生成的主要問題在於圖像分布是多模態的。例如,有太多的例子完美契合文本描述的內容。GAN 有助於解決這一問題。

我們來考慮以下任務:將藍色輸入點映射到綠色輸出點(綠點可能是藍點的輸出)。這個紅色箭頭表示預測的誤差,也意味著經過一段時間後,藍點將被映射到綠點的平均值——這一精確映射將會模糊我們試圖預測的圖像。

GAN 不直接使用輸入和輸出對。相反,它們學習如何給輸入和輸出配對。

下面是從文本描述中生成圖像的示例:

用於訓練 GAN 的數據集:

Caltech-UCSD-200-2011 是一個具有 200 種鳥類照片、總數為 11,788 的圖像數據集。Oxford-102 花數據集由 102 個花的類別組成,每個類別包含 40 到 258 張圖片不等。

藥物匹配

當其它研究員應用 GAN 處理圖片和視頻時,Insilico Medicine 的研究人員提出了一種運用 GAN 進行藥物匹配的方法。

我們的目標是訓練生成器,以儘可能精確地從一個藥物資料庫中對現有藥物進行按病取藥的操作。

經過訓練後,可以使用生成器獲得一種以前不可治癒的疾病的藥方,並使用判別器確定生成的藥方是否治癒了特定疾病。

腫瘤分子生物學的應用

Insilico Medicine 另一個研究表明,產生一組按參數定義的新抗癌分子的管道。其目的是預測具有抗癌作用的藥物反應和化合物。

研究人員提出了一個基於現有生化數據的用於識別和生成新化合物的對抗自編碼器(AAE)模型。

「據我們所知,這是 GAN 技術在挖掘癌症藥物領域的首個應用。」- 研究人員說。

資料庫中有許多可用的生物化學數據,如癌細胞系百科全書(CCLE)、腫瘤藥物敏感基因學(GDSC)和 NCI-60 癌細胞系。所有這些都包含針對癌症的不同藥物實驗的篩選數據。

對抗自編碼器以藥物濃度和指紋作為輸入並使用生長抑制率數據進行訓練(GI,顯示治療後癌細胞的數量減少情況)。

分子指紋在計算機中有一個固定的位數表示,每一位代表某些特徵的保留狀態。

隱藏層由 5 個神經元組成,其中一個負責 GI(癌細胞抑制率),另外 4 個由正態分布判別。因此,一個回歸項被添加到編碼器代價函數中。此外,編碼器只能將相同的指紋映射到相同的潛在向量,這一過程獨立於通過額外的流形代價集中輸入。

經過訓練,網絡可以從期望的分布中生成分子,並使用 GI 神經元作為輸出化合物的微調器。

這項工作的成果如下:已訓練 AAE 模型預測得到的化合物已被證明是抗癌藥物,和需接受抗癌活性化合物實驗驗證的新藥物。

「我們的研究結果表明,本文提出的 AAE 模型使用深度生成模型顯著提高了特定抗癌能力和新分子的開發效率。」

結論

無監督學習是人工智慧的下一個藍海,我們正朝著這一方向邁進。

生成對抗網絡可以應用於許多領域,從生成圖像到預測藥物,所以不要害怕失敗。我們相信 GAN 有助於建立一個更好的機器學習的未來。

相關焦點

  • GAN快速入門資料推薦:17種變體的Keras開原始碼,附相關論文
    心癢難耐想趕快入門?通過自己動手、探索模型代碼來學習,當然是墜吼的~如果用簡單易上手的Keras框架,那就更贊了。Code:https://github.com/eriklindernoren/Keras-GAN/blob/master/dualgan/dualgan.pyPaper:DualGAN: Unsupervised Dual Learning
  • 萬字長文解讀GAN:從基本概念、原理到實際應用
    GAN 的基本介紹生成對抗網絡(GAN,Generative Adversarial Networks)作為一種優秀的生成式模型,引爆了許多圖像生成的有趣應用。GAN 相比於其他生成式模型,有兩大特點:下面,我們圍繞上述兩點展開介紹。
  • 深入淺出 Vue 響應式原理!
    這使得狀態管理非常簡單直接,不過理解其工作原理同樣重要,這樣你可以避開一些常見的問題。本文將針對響應式原理做一個詳細介紹,並且帶你實現一個基礎版的響應式系統。接下來我們先介紹兩個重要角色-- 訂閱者 Dep和觀察者 Watcher ,然後闡述收集依賴的如何實現的。訂閱者 Dep1.為什麼引入 Dep收集依賴需要為依賴找一個存儲依賴的地方,為此我們創建了Dep,它用來收集依賴、刪除依賴和向依賴發送消息等。
  • 5分鐘入門GANS:原理解釋和keras代碼實現
    本篇文章包含以下內容介紹歷史直觀解釋訓練過程GAN在MNIST數據集上的KERAS實現>介紹生成式敵對網絡通常也稱為GANs,用於生成圖像而不需要很少或沒有輸入。# Combined network discriminator.trainable = False ganInput = Input(shape=(randomDim,)) x = generator(ganInput) ganOutput = discriminator
  • 深入淺出解析IGBT的工作原理及作用
    打開APP 深入淺出解析IGBT的工作原理及作用 秩名 發表於 2014-09-02 16:38:46   本文通過等效電路分析,通俗易懂的講解IGBT的工作原理和作用,並精簡的指出了IGBT的特點。
  • 超全的GAN PyTorch+Keras實現集合
    本文介紹了主流的生成對抗網絡及其對應的 PyTorch 和 Keras 實現代碼,希望對各位讀者在 GAN 上的理解與實現有所幫助。本文首先將介紹各種 GAN 的論文摘要,然後提供詳細論文和實現的地址。要使用 PyTorch 或 Keras 實現這些 GAN,我們首先需要下載兩個代碼倉庫,並安裝對應所需的依賴包。
  • 深入淺出自動控制
    比較全面地闡述了自動控制的基本理論與應用。共分十章,前八章著重介紹經典控制理論及應用,後兩章介紹線性系統理論和最優控制理論。
  • 生成式對抗網絡GAN的高級議題
    本文現在將討論GAN的一些最酷的應用程式,然後再討論一些更高級的主題,以及GAN的代碼演練,旨在生成名人面孔和動漫角色。GAN應用程式在本節中,本文將簡要介紹一下在數據科學研究過程中發現的一些最有趣的GAN應用。最常見的主題是:(有條件)合成 - 包括字體生成,Text2Image以及3D對象生成。
  • 帶集成驅動和保護功能的高壓GaN FET在工業和電信應用中將功率密度...
    帶集成驅動和保護功能的高壓GaN FET在工業和電信應用中將功率密度提高了一倍   德州儀器(TI)近日宣布推出支持高達10kW應用的新型即用型
  • 高等數學入門——微分的幾何意義及其應用
    例如用ε-δ語言證明函數極限這類高等數學課程不要求掌握的內容,我們不作過多介紹。本系列文章適合作為大一新生初學高等數學時的課堂同步輔導,也可作為高等數學期末複習以及考研第一輪複習時的參考資料。文章中的例題大多為紮實基礎的常規性題目和幫助加深理解的概念辨析題,並適當選取了一些考研數學試題。所選題目難度各異,對於一些難度較大或對理解所學知識有幫助的「經典好題」,我們會詳細講解。
  • RStudio介紹及入門
    Hello,這裡是行上行下,我是喵君姐姐~上一期寫了R語言的入門及安裝,得到了很多小夥伴的喜歡。在忙完了畢業之後,終於有時間可以抽空寫R語言系列的教程啦!那今天就請Ten years old詳細講解一下,RStudio介紹及入門。R是統計領域廣泛使用的工具,屬於GNU系統的一個自由、免費、原始碼開放的軟體,是用於統計計算和統計繪圖的優秀工具。
  • 數據分析的黃金十二宮,從入門到精通,十二類好書,想要拿走
    《麥肯錫圖表工作法》(有)從解決問題的需求出發,在金字塔原理、MECE原則、SCQOR故事展開法等基礎上,歸納了麥肯錫盛行數十年的圖表工作法的技巧,打造了可視化、簡單化、精確化的圖表武器,讓人們可以極快地解決複雜的問題。2.《金字塔原理》介紹了如何利用金字塔原理使讀者理解和運用簡單文書的寫作技巧。
  • 示波器基礎原理入門指南(上)
    現代模擬示波器面世以來,有成百上千的文章描述了示波器的功能、原理、使用方法以及特定的應用案例。本入門指南旨在對數字示波器進行描述,出於實用目的以指導用戶在絕大多數應用場合中使用數字示波器來替代模擬示波器。本入門指南簡要介紹了示波器的起源、模擬示波器到數字示波器的歷史、數字示波器的類型及其主要子系統、示波器關鍵指標以及其測量方法。
  • 如何使用GAN做一個禿頭生產器
    生成對抗網絡介紹  說到圖像生成,就必須說到GAN,它是一種非監督學習的方式,通過讓兩個神經網絡相互博弈的方法進行學習,該方法由lan Goodfellow等人在2014年提出。生成對抗網絡由一個生成網絡和一個判別網絡組成,生成網絡從潛在的空間(latent space)中隨機採樣作為輸入,其輸出結果需要儘量模仿訓練集中的真實樣本。
  • 極驗發布全國首個專注於圖神經網絡的書籍,《深入淺出圖神經網絡...
    從理論研究到應用實踐,可謂是遍地開花,讓人應接不暇。隨著圖神經網絡熱潮的出現,了解和掌握圖神經網絡相關技術原理已經成為未來從事 AI 相關工作的一種趨勢。然而,作為人工智慧的下一個拐點,在此之前,國內乃至全球並沒有圖模型與應用方向的專業書籍。《深入淺出圖神經網絡:GNN原理解析》是對極驗7年來,在AI研發&圖項目實踐等核心工作中寶貴經驗的一次總結。
  • 【深入淺出】晶體矽電池發電原理
    導讀: 天天討論光伏發電,你知道太陽能電池發電的原理嗎?本文分別用文字形式,介紹了晶矽太陽能電池的發電原理。屬於科普級別,非常通俗易懂。天天討論光伏發電,你知道太陽能電池發電的原理嗎?本文分別用文字形式,介紹了晶矽太陽能電池的發電原理。屬於科普級別,非常通俗易懂。
  • 資料| Python入門經典:以解決計算問題為導向的Python編程實踐
    from=leiphonecolumn_res0429內容簡介 《Python入門經典:以解決計算問題為導向的Python編程實踐》是一本系統而科學的Python入門教程,美國密西根州立大學等多所美國知名高校採用其作為程式語言的入門教材,被奉為經典。
  • 《質譜分析技術原理與應用》序
    臺灣質譜學會組織幾位學者撰寫了《質譜分析技術原理與應用》一書,我有幸先睹為快,讀後頗有收穫。這既是一本很好的質譜入門教科書,又是一本系統的專業著作。陣容強大的作者隊伍均來自科研第一線,而且是在質譜研究領域卓有建樹的知名學者。該書內容幾乎涵蓋了當今質譜發展的各個方面,既闡述了質譜技術的原理,又詳細介紹了各種質譜儀器的構造,還專門討論了質譜在諸多領域的應用。
  • AR算法原理及深度學習在計算機視覺中的應用
    但一段時間內,真正掌握識別追蹤核心技術和應用的國內團隊並不多,甚至出現了專門提供AR識別SDK的小公司創業機會。那麼,AR識別技術背後的算法原理是什麼,以及計算機視覺與深度學習在AR中的應用熱點趨勢有哪些?本次分享會從圖像特徵提取、特徵匹配與圖像變換、深度學習算法等方面給你進行深入淺出的技術展現,讓AR識別技術不再成為難以逾越的技術壁壘。