《Conditional Generative Adversarial Nets》論文解析

最近看了下deepnude的原理,其git上說的是使用了pixel2pixel技術,也就是說是這一篇:

《Image-to-Image Translation with Conditional Adversarial Networks》

這是加里福利亞大學在CVPR 2017上發表的一篇論文,講的是如何用條件生成對抗網絡實現圖像到圖像的轉換任務。 
  > 原文鏈接:https://arxiv.org/abs/1611.07004 
  > 論文主頁:https://phillipi.github.io/pix2pix/,其中包含了PyTorch、Tensorflow等主流框架的代碼實現

 

所以我看了眼這篇文章,發現這篇文章其原理是由CGAN啓發的,所以我們今天來看看CGAN是怎麼一回事。

CGAN(條件GAN)全名:《Conditional Generative Adversarial Nets》

CGAN的論文網址請移步:https://arxiv.org/pdf/1411.1784.pdf

 

首先簡要介紹一下GAN,具體介紹請移步:https://blog.csdn.net/wenqiwenqi123/article/details/86178376

GAN主要包括兩個網絡,生成器和判別器,生成器的目的就是將隨機輸入的高斯噪聲映射成圖像(“假圖”),判別器則是判斷輸入圖像是否來自生成器。換句話說就是生成器努力矇蔽判別器,而判別器努力不被生成器矇蔽。最優結果就是判別器最終的判別概率爲0.5,無法分辨出哪張圖是真實的哪張圖是生成器生成的。

生成器爲G,判別器爲D。假設真實數據爲x,生成器輸入的噪聲分佈爲,那麼生成器生成的圖爲,數據在判別器上的結果爲

那麼GAN的目標函數如下:

 

說完GAN,開始說CGAN:原始的GAN的生成器只能根據隨機噪聲進行生成圖像,至於這個圖像是什麼(即標籤是什麼我們無從得知),判別器也只能接收圖像輸入進行判別是否圖像來使生成器。因此CGAN的主要貢獻就是在原始GAN的生成器與判別器中的輸入中加入額外信息。額外信可以是任何信息,例如標籤。因此CGAN的提出使得GAN可以利用圖像與對應的標籤進行訓練,並在測試階段 利用給定標籤生成特定圖像。

在CGAN的論文中,網絡架構使用的MLP(全連接網絡)。在CGAN中的生成器,我們給定一個輸入噪聲和額外信息,之後將兩者通過全連接層連接到一起作爲隱藏層輸入。同樣地,在判別器中輸入圖像和 額外信息也將連接到一起作爲隱藏層輸入。CGAN的網絡架構圖如下所示:

 

那麼,CGAN的目標函數可以表述成如下形式:

下面是CGAN論文中生成的手寫數字圖像的結果,每一行代表有一個標籤,例如第一行代表標籤爲0的圖片。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章