讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

AI科技大本營發表於2017-08-23

讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

編譯|AI科技大本營(rgznai100)
參與 | 尚巖奇、周翔

生成式對抗網路(GANs)是一類用於解決無監督學習問題的神經網路,它們可以完成各種任務,例如通過描述生成影象,利用低解析度影象還原出高解析度影象,預測哪種藥物可以治療某一疾病以及檢索包含某一給定模式的影象等。

讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

Statsbot 團隊邀請資料科學家 Anton Karazeev 介紹了 GAN 引擎以及它們在日常生活中的應用。

GAN 是 Ian Goodfellow 2014 年提出的一種神經網路,它們並非是解決無監督學習問題的唯一途徑。在 GAN 之前,更早的還有 Geoffrey Hinton 和 Terry Sejnowski 1985 年提出的玻爾茲曼機(Boltzmann machine)以及 Dana H. Ballard 1987 年提出的自動編碼器(Autoencoders)。這兩種神經網路都是通過學習恆等函式(identity function)f(x) = x 來實現特徵提取,並且依靠馬爾可夫鏈(Markov chain)來訓練和生成樣本。

生成式對抗網路設計之初就是為了避免使用馬爾可夫鏈,因為它的計算成本很高。相比玻爾茲曼機,GAN 的優勢在於它對生成器函式的限制更少(只有少數幾種概率分佈允許馬爾可夫鏈取樣)。

在本文中,我們將向您介紹生成式對抗網路的工作原理以及它們在實際領域中最普遍的應用。本文還提供了一些有用的資源,以便您進一步瞭解這些方法。


GAN 的引擎


在這裡我們用一個類比來解釋 GAN 的概念。

                       讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

假設你想購買一塊高階手錶,如果你以前從未了解過,那麼您很可能無法辨別名牌手錶和冒牌手錶的區別。只有有了相關的 購買經驗,你才不會被賣家欺騙。

上當了次數多年了,你開始能夠分辨大部分的冒牌貨時,賣家就會開始“生產”模擬度更高的冒牌手錶。這個例子解釋了生成式對抗網路的行為:判別器(手錶買家)和生成器(冒牌手錶賣家)。

判別器和生成器這兩種網路相互對抗。這種方法可以確保生成器生成實際物件(例如影象)。生成器被強制生成看起來真實的樣本,判別器則學習辨別生成器生成的樣本是否是實際資料。

讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

判別演算法和生成演算法有什麼區別?簡單來說:判別演算法學習類別間的邊界(這是判別器的任務),而生成演算法則學習類別的分佈(這是生成器的任務)。


GAN 的原理


為了學習生成器的分佈,即資料 x 的 p_g,應先定義輸入噪聲變數 p_z(z)。然後,G(z, θ_g) 將隱空間 (latent space) Z 中 的 z 對映到資料空間中,D(x, θ_d) 輸出一個單一標量—— x 來自於真實資料而不是 p_g。

訓練判別器,使實際資料和生成樣本標籤分配正確的概率最大化。訓練生成器,使 log(1 — D(G(z))) 值最小。也就是說,將判別器得出正確答案的概率最小化。

可以將這樣的訓練任務看作為帶價值函式 V(G, D) 的極小極大演算法:

讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

換句話說——生成器加大力度欺騙判別器,而判別器則為了不被生成器欺騙變得更加挑剔:

“對抗訓練是切片面包之後最酷的事情”— Yann LeCun

當判別器無法區分 p_g 和 p_ data(即 D(x, θ_d) = ½)時,訓練過程停止。生成器和判別器的失誤率之間達成了平衡。


歷史文獻的影象檢索


視覺檢索“Prize Papers”中的相似標記是一個有趣的 GAN 應用例項。“Prize Papers”是海運歷史研究中最有價值的文獻之一。對抗網路使研究重要歷史文獻變得更加容易,這些文獻包含關於船隻捕撈正當性的資訊。

讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

                                                       草圖檢索的對抗訓練

每個問題都包含船商標誌(Merchant Marks)(商人財產的獨特辨識標識)、以及類似於象形文字的速寫式符號的例項。

在獲取每個標誌的特徵表達時,常規機器和深度學習方法(包括卷積神經網路)的應用存在以下幾個問題:

  • 需要大量標記影象;

  • 商家標誌無對應的標籤;

  • 標誌未從資料集分離出來。

這種新方法展示瞭如何用 GAN,從商家標誌影象中提取並學習特徵。學習完每個標誌的特徵表達後,就可以對掃描文件進行視覺檢索。


文字轉影象


已經有研究人員證明了使用自然語言的描述屬性生成對應影象是可行的。但是,文字轉影象的方法可以展示生成模型模擬真實資料樣本的效能。

讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

                                                  生成式對抗網路文字轉影象合成

影象分佈的多模式是影象生成的主要問題。例如,可以準確表達描述內容的正確樣本有很多,而 GAN 可以幫助解決這個問題。

以下面這個任務為例,將藍色輸入圓點對映到綠色輸出圓點上(綠色圓點是藍色圓點可能輸出的結果)。紅色的箭頭代表預測錯誤,意味著藍色圓點在一段時間後會對映到綠色圓點的均值上讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

——這正是導致我們試圖預測的影象變得模糊的原因。

生成式對抗網路不直接使用成對的輸入和輸出。但是,它們學習如何配對輸入和輸出。

以下是一些利用文字描述生成的影象:

讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你                                      生成式對抗網路文字轉影象合成

訓練GAN使用的資料集:

  • Caltech-UCSD-200–2011 是一個由 200 種鳥類的照片構成影象資料集,共有影象 11788張。

  • Oxford-102 Flowers 資料集由 102 種花卉的照片構成,每一種花的影象張數都在 40 至 258 之間。


藥物研發


生成式對抗網路一般被用於處理影象和視訊,但是 Insilico Medicine 的研究人員提出了一種利用 GAN 的人工智慧藥物研發方法。

他們的目標是訓練生成器,使其能從某一藥物資料集中儘可能準確地採集可以治療某一特定疾病的候選藥物樣本。

讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

在完成訓練後,可以使用生成器生成一種治療不治之症的藥物,並使用判別器確定樣本藥物是否真的能治癒該疾病。


腫瘤學分子藥物研發


Insilico Medicine 的另一項研究試圖使用一個界定的引數集生成新的抗癌分子。這項研究的目的是預測藥物反應以及抗癌效果良好的化合物。

研究人員提出了一種基於已有生物化學資料的對抗式自動編碼器(AAE),用於識別和生成新的化合物。

讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

                                                  對抗式自動編碼器

“據我們所知,這是 GAN 方法在抗癌藥物研發中的首個應用。” ——研究人員表示。

在諸如 Cancer Cell Line Encyclopedia (CCLE), Genomics of Drug Sensitivity in Cancer (GDSC), and NCI-60 cancer cell line collection 之類的資料集中,有很多已有的生物化學資料。這些資料集包含不同藥物抗癌實驗的篩選資料。


讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

                                                                  GDSC 網站

該公司將成長抑制(Growth Inhibition)百分率資料(從 GI 可以看出藥物治療後癌細胞數的減少量)、藥物濃度和指紋圖譜作為輸入,訓練對抗式自動編碼器。

分子的指紋圖譜包含固定數量的位點(bit),各位點代表著某種特徵的缺失或存在。

讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你


隱層( latent layer)由 5 個神經元構成,其中一個神經元負責 GI(抗癌細胞的效率),其餘四個採用正態分佈加以區分。編碼器損失函式中新增有一個迴歸項,而且編碼器只能將相同的指紋圖譜對映到相同的 latent 向量,並且通過附加的多重損失獨立地對映輸入濃度。

讀了那麼多GANs的原理,還是不懂怎麼用!兩個案例教教你

在完成訓練後,可以用預期的分佈生成分子,並使用 GI 神經元調整輸出的化合物。

本研究的結論如下:經過訓練的 AAE 模型可以預測出已證明具有抗癌效果的化合物,以及應通過抗癌效果實驗驗證的新化合物。

“實驗結論表明,我們所提出的 AAE模 型利用深度生成式模型,可以大幅改進具有特定抗癌特性的新分子藥物的研發能力和研發效率”


總結


無監督學習是人工智慧的下一個前沿領域,我們正朝著這個方向努力前進。

從生成影象到預測藥物,生成式對抗網路可以應用於多個領域,所以我們需要大力投入這方面的研究。我們相信。生成式對抗網路可以使機器學習的未來更加美好。以下是我們為讀者提供的一些有用資源,藉助這些資源你們可以深入地學習對抗網路。

以下摘自《生成式對抗網路》:

  • GAN 可以使模型理解某些問題可以有很多正確答案(即正確處理多模式資料);半監督學習:當已有的標記資料數量有限時,判別器或者推理網路(inference net)得出的特徵可以改進分類器的效能;

  • 對抗網路可以用來實現確定性多預測深度玻爾茲曼機的某一隨機擴充套件;

  • 將 c 同時作為生成器和判別器的輸入新增到函式中,這樣就可以得出一個條件生成模型p(x|c)。


繼續閱讀

What is a Variational Autoencoder?

https://jaan.io/what-is-variational-autoencoder-vae-tutorial/

Ian Goodfellow about GANs for Text on Reddit

https://www.reddit.com/r/MachineLearning/comments/40ldq6/generative_adversarial_networks_for_text/

“StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks” by Baidu Research

https://arxiv.org/pdf/1612.03242.pdf

“Generative Visual Manipulation on the Natural Image Manifold” by Adobe Research

https://arxiv.org/pdf/1609.03552v2.pdf

“Unsupervised Cross-Domain Image Generation” by Facebook AI Research

https://arxiv.org/pdf/1611.02200.pdf

“Image-to-Image Translation with Conditional Adversarial Networks” by Berkeley AI Research

https://arxiv.org/pdf/1611.07004.pdf


原文地址

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



相關文章