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

2021-02-15 機器之心

選自StatsBot

作者:Anton Karazeev

機器之心編譯

參與:乾樹、黃小天

生成對抗網絡(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 有助於建立一個更好的機器學習的未來。

原文連結:https://blog.statsbot.co/generative-adversarial-networks-gans-engine-and-applications-f96291965b47

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權

✄---

加入機器之心(全職記者/實習生):hr@jiqizhixin.com

投稿或尋求報導:content@jiqizhixin.com

廣告&商務合作:bd@jiqizhixin.com

相關焦點

  • GAN的原理及在來也的應用
    本文將詳細介紹GAN原理、發展歷程和GAN在來也科技的實踐。01最早期的GANGAN的本質是希望得到一個映射關係G(·),將一個分布z(例如:均勻分布的隨機噪聲向量),映射到指定的分布G(z)上。其中映射使用的參數通過學習得到,這樣一來就得到了一個實現z → G(z)的模型。
  • 【專知薈萃11】GAN生成式對抗網絡知識資料全集(理論/報告/教程/綜述/代碼等)
    :一文讀懂GAN的基本原理[http://www.xtecher.com/Xfeature/view?aid=7496]2.深入淺出:GAN原理與應用入門介紹[https://zhuanlan.zhihu.com/p/28731033]3.港理工在讀博士李嫣然深入淺出GAN之應用篇參考連結:連結: [https://pan.baidu.com/s/1o8n4UDk] 密碼: 78wt4.萌物生成器:如何使用四種GAN製造貓圖參考連結:[https://
  • TF - GAN入門:TensorFlow 2.0 的輕量級 GAN 庫
    自那時起,TF-GAN 便在大量極具影響力的論文和項目中被廣泛應用。具影響力的論文:https://github.com/tensorflow/gan#who-uses-tf-gan今天,各個推出 TF-GAN 的新版本。
  • 深入淺出數據分析書單
    當然正如標題「深入淺出」,在考慮書單的時候儘量都是些淺顯易懂又不缺乏深度的書籍。統計學深入淺出統計學深入淺出系列書籍,使用大量圖片和對話,使得統計理論的學習既有趣又自然。對於入門統計學來說很重要一點就是淺顯易懂,學起來非常輕鬆,當然這本書還挺厚的,不過翻起來很快,打包票不會被勸退。
  • 小平邦彥《微積分入門》:深入淺出、流暢易讀
    內容簡介本書為日本數學家小平邦彥晚年創作的經典微積分著作,有別於一般的微積分教科書,本書突出「嚴密」與「直觀」的結合,重視數學中的「和諧」與「美感」,講解新穎別致、自成體系,論證清晰詳盡、環環相扣,行文深入淺出
  • 深度 | 生成對抗網絡初學入門:一文讀懂GAN的基本原理(附資源)
    近日,Sigmoidal.io 的博客發表了一篇入門級介紹文章,對 GAN 的原理進行了解釋說明。另外,在該文章的最後還附帶了一些能幫助初學者自己上手開發實驗的資源(包含演講、教程、代碼和論文),其中部分資源機器之心也曾有過報導或解讀,讀者可訪問對應連結查閱。你怎麼教一臺從未見過人臉的機器學會繪出人臉?
  • 萬字長文解讀GAN:從基本概念、原理到實際應用
    GAN 的基本介紹生成對抗網絡(GAN,Generative Adversarial Networks)作為一種優秀的生成式模型,引爆了許多圖像生成的有趣應用。GAN 相比於其他生成式模型,有兩大特點:下面,我們圍繞上述兩點展開介紹。
  • GAN快速入門資料推薦:17種變體的Keras開原始碼,附相關論文
    心癢難耐想趕快入門?通過自己動手、探索模型代碼來學習,當然是墜吼的~如果用簡單易上手的Keras框架,那就更贊了。Code:https://github.com/eriklindernoren/Keras-GAN/blob/master/dualgan/dualgan.pyPaper:DualGAN: Unsupervised Dual Learning
  • GAN對抗網絡入門教程
    A Beginner's Guide to Generative Adversarial Networks (GANs) https://skymind.ai/wiki/generative-adversarial-network-gan生成對抗網絡(英語:Generative Adversarial Network,簡稱GAN)是非監督式學習的一種方法,通過讓兩個神經網絡相互博弈的方式進行學習
  • Autodesk Revit土建應用—入門篇,2.2G視頻+項目文件,經典教學
    Autodesk Revit土建實例應用—入門篇,2.2G全套視頻+項目文件,經典教學Autodesk Revit土建應用之入門篇以--教學樓項目為基礎,以實例操作的方式,深入淺出,介紹如何利用當前流行的BIM工具軟體Revit創建教學樓項目的建築、 結構專業模型的全部流程,並利用創建模型進行多種形式的渲染和表達
  • 深入淺出數據分析
    好久沒有更新讀書系列的文章了,今天推薦的這本《深入淺出數據分析》是一本非常適合數據分析行業入門的讀物
  • 教程 | 在Keras上實現GAN:構建消除圖片模糊的應用
    本文將重點介紹如何利用 Keras 將 GAN 應用於圖像去模糊(image deblurring)任務當中。Keras 代碼地址:https://github.com/RaphaelMeudec/deblur-gan此外,請查閱 DeblurGAN 的原始論文(https://arxiv.org/pdf/1711.07064.pdf)及其 Pytorch 版本實現:https://github.com/KupynOrest/DeblurGAN/。
  • 簡單易用 TensorFlow 代碼集,GAN通用框架、函數
    Optionpadding='SAME'pad_typesnRaloss_funcganlsganhingewganwgan-gpdragangan《深度學習之TensorFlow:入門、原理與進階實戰》和《Python帶我起飛——入門、進階、商業實戰》兩本圖書是代碼醫生團隊精心編著的 AI入門與提高的精品圖書。
  • 圖書推薦:深入淺出數據分析
  • GAN(生成對抗網絡)的最新應用狀況
    作者齊國君老師在知乎上寫了一篇文章介紹 LS-GAN,建議感興趣的童鞋也去閱讀一下,地址:https://zhuanlan.zhihu.com/p/25204020回到今天的主題 GAN 的應用上來。GAN 的應用按照大類分為在圖像上的應用、在 NLP 上的應用,以及與增強學習結合。我們分這兩個大類進行介紹。
  • ESL入門版《統計學習導論 基於R應用》中文PDF分享
    此書被廣大人民群眾稱為ISL,沒錯,就是聖經級別讀物The Elements of Statistical Learning(ESL)的入門版本。無論作為統計教材推薦還是R語言教材推薦都稱得上5星的讀物。深入淺出,內容詳細,常常讀完有種恍然大悟的感覺,同時能夠結合R語言介紹,大大的加分。
  • 9本教程掌握SPSS---從入門到精通
    全書共分15章,定位為統計軟體和統計學入門書,針對統計初學者和SPSS初級用戶的需求,以統計理論為主線,詳細介紹了在SPSS中的界面操作、數據管理、統計圖表製作、統計描述和常用單因素統計分析方法的原理與實際操作。其內容完全覆蓋目前國內大部分專業本科統計課程的教學範圍,並結合SPSS的強大功能作了很好的擴展。各章後均附有參考文獻和思考練習題,涉及到統計理論的章節還提供了本章小結。
  • RNN遞歸神經網絡原理介紹+數字識別應用
    +圖片識別應用(附源碼)BP神經網絡+TensorFlow做圖片識別前言:自己學習研究完CNN卷積神經網絡後,很久的一段時間因為要完成自己的畢業設計就把更新博客給耽擱了。介紹CNN卷積神經網絡和RNN遞歸神經網絡都是由BP神經網絡演化而來的。CNN卷積神經網絡主要應用在圖像識別領域;而RNN遞歸神經網絡的改進版LSTM網絡主要應用於自然語言處理中;為什麼我介紹RNN是叫——遞歸神經網絡?這之前是一個困擾我很久的問題。
  • 蒸汽洗車機分類應用原理介紹
    下面我給大家介紹一下蒸汽洗車機分類和應用原理:蒸汽洗車機分為三大類:電加熱蒸汽洗車機、燃氣式蒸汽洗車機、柴油式蒸汽洗車機,其中常用型為燃氣式蒸汽洗車機和電加熱蒸汽洗車機,柴油式蒸汽洗車機一般用於工地,施工現場。蒸汽洗車機的結構為天然氣燃燒爐、蒸汽發生裝置、高壓蒸汽泵、水槍。
  • 深入淺出解析IGBT的工作原理及作用
    打開APP 深入淺出解析IGBT的工作原理及作用 秩名 發表於 2014-09-02 16:38:46   本文通過等效電路分析