何謂 Generative adversarial Networks(GANS) 生成式對抗網路?

許恆修 | Heng-Shiou Sheu
4 min readJun 17, 2019
「圖源自: Orielly Media」

前言

Generative adversarial Networks(GANs)又稱之為生成是對抗網路,主要是由兩個 CNN 所組合而成的神經網路, 其中有兩個組件,Generator 與 Discriminator。 GANs 就像是一組問答系統ㄧ樣,由 Generator 不斷去問問題,接著讓 Discriminator 回答問題。在原本的論文當中,是使用警察跟罪犯的關係作為類比。故事當中,罪犯不斷製造假鈔來欺騙警察的眼睛,每被識破一次,就會重新調整製造假鈔的技術,久而久之,就有辦法製造出足以欺騙能力不夠或是大多數警察的法眼。

應用範圍

GANs 因為具有自我學習的特性,最先拿來用在學習畫畫這件事情上面,讓 AI 本身學會怎麼繪製名畫家風格,例如:莫內, 畢卡索等,延伸應用還包括 Domain 轉換,例如把馬變成斑馬等。

圖源:https://arxiv.org/pdf/1703.10593.pdf

兩大組件介紹 Generator 與 Discriminator

[圖源來自: Orielly]

Generator

誠如一開始所言,Generator 就像是一個不斷想瞞過警方的假鈔製造者,他會先從全部都是雜訊的資料開始學習起來,慢慢的去找出符合的特徵值,而特徵值的學法語參數的調整,則來自 Discriminator 的回饋。實務上為反向的 CNN,輸入的資料一開始為 Random Noise。

Discriminator

Discriminator 就是負責驗證假鈔的警察,負責說這張假鈔的真偽。在架構中就變成回傳可用的參數給 Generator 了。實務上為常見的 CNN。

運作方式

圖源: https://towardsdatascience.com/generative-adversarial-networks-gans-a-beginners-guide-5b38eceece24

整體架構中的兩個組件在工作上是有次序性的

  1. Discriminator 拿 50%真實資料和50%假資料來訓練,就如同經典的 CNN 一樣的訓練過程,在圖片中找尋 feature,每經過一次 epoch,辨識效果會越來越好。
  2. 在經過一次訓練 Discriminator 之後,我們將 Discriminator 中的參數 Freeze 起來。
  3. Generator 丟入 Random Noise,接著產出某張圖片,將之丟入 discriminator 中,同時將之標記為 True image,然後 gradient descent 後的結果回傳到 Generator。
  4. 重複 1~3 步驟,即為整體 GANs 運作過程
  5. 口訣:訓練哪邊, 就凍另一邊。

結論

GANs 就像是問答系統,亦敵亦友的概念,一個人負責蕾肖威,另一個則負責說這和不合理,這是一個 零和遊戲(zero-sum game)。

--

--

許恆修 | Heng-Shiou Sheu
許恆修 | Heng-Shiou Sheu

Written by 許恆修 | Heng-Shiou Sheu

AI研究員 @喬泰科技,軟體工程師@微光國際,業界講師 @FCU 創能學院,Co-Founder @圖靈文本。專注將科技應用於改善生活中,持續性分享軟體架構設計、前沿人工智慧研究、公司治理等觀念。整合科技、人文思維於一體。聯絡 📪 hengshiousheu@gmail.com

No responses yet