TripleGAN – 包含判別器、生成器和分類器的三方生成對抗網路

Topic:  Triple Generative Adversarial Nets

Dosudo deep learning newsletter #4

螢幕快照 2017-09-19 下午4.00.28

Editor:  George Wu

Resources:  原始post   中文post   Github

Label:  GAN

生成對抗網路(GANs, Generative Adversarial Nets) 在很多應用上都展現了強大的能力譬如圖像生成以及半監督學習(SSL, semi-supervised learning). 但有些情況可能會造成GANs的效果不好譬如生成器Generator以及分類器Discriminator之間的競爭會造成學習過程不穩定, 以及在SSL問題中Generator無法生成特定類別的圖像或資料. 為了解決這些問題作者提出了一種新型態的生成對抗網路TripleGAN. 除了原有的Generator(G) 以及Discriminator(D)之外, 增加了一個Classifier(C). 讓原本GAN的兩方競爭轉變成判別器、生成器和分類器的三方博弈.

螢幕快照 2017-09-19 下午4.00.44

我們在這裡舉個SSL問題的例子. 假設我們有一組部分標示(partially labeled)的數據(x, y) 其中x是輸入譬如圖像, 然後y是標籤. 目標是預測數據集裡未被標示的標籤y, 並且生成以y為條件的新樣本. 這和傳統的GANs的生成不相同因為傳統generator只負責生成來自相同分布的樣本. 而在TripleGAN中, 因為標籤的資訊不完全, 在這裡我們用聯合分布 p(x, y) 來代表樣本-標籤分布. 所以在 TripleGAN裡面的Generator是種類條件式產生器(class-conditional generator G) 負責生成分佈類似 p(x, y)的圖像 pg(x, y), 而有一個Classifier 是負責把未分類的部分標示數據進行分類,  而Discriminator負責判斷產生出來的(x, y)是否來自於真實分布 p(x, y).  而在共訓練過程中, Discriminator和Generator互相對抗, 而Discriminator和Classifier 也是互相對抗;而Generator和Discriminator則是協助作用。從另外一個角度去看, 如果只考慮G及D則是傳統的CGAN. 如果只考慮C及D則是個半監督分類器。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s