【GAN】三、DCGAN論文詳解

寫在前面

在前面一篇博客:【GAN】二、原始GAN論文詳解中我們主要介紹了原始GAN模型的網絡結構,訓練方法以及相關GAN網絡架構中的數學結論。那麼在這篇博客中,我們將主要介紹原始GAN之後的又一種模型——DCGAN。DCGAN將GAN與CNN相結合,奠定後幾乎所有GAN的基本網絡架構。DCGAN極大地提升了原始GAN訓練的穩定性以及生成結果質量。

DCGAN的論文連接爲:UNSUPERVISED REPRESENTATION LEARNINGWITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS

對於DCGAN的實戰,可以參照GAN系列的第一篇博客:【GAN】一、利用keras實現DCGAN生成手寫數字圖像


一、DCGAN網絡架構

DCGAN主要是在網絡架構上改進了原始GAN,DCGAN的生成器與判別器都利用CNN架構替換了原始GAN的全連接網絡,主要改進之處有如下幾個方面:

  1. DCGAN的生成器和判別器都捨棄了CNN的池化層,判別器保留CNN的整體架構,生成器則是將卷積層替換成了反捲積層(fractional-strided convolution)或者叫轉置卷積層(Convolution Transpose)。
  2. 在判別器和生成器中在每一層之後都是用了Batch Normalization(BN)層,有助於處理初始化不良導致的訓練問題,加速模型訓練,提升了訓練的穩定性。
  3. 利用1*1卷積層替換到所有的全連接層。
  4. 在生成器中除輸出層使用Tanh(Sigmoid)激活函數,其餘層全部使用ReLu激活函數。
  5. 在判別器所有層都使用LeakyReLU激活函數,防止梯度稀。

下面是DCGAN的生成器網絡架構圖。

在這裏插入圖片描述
接下來我們給出DCGAN的訓練細節:

  1. 將訓練圖像數據進行標準化處理,範圍爲[-1,1],由於像素值範圍爲0-255,因此將圖像減去均值127.5之後再除以127.5即可。
  2. 建議使用Adam優化算法進行優化參數,學習率爲0.0002而不是0.001,Adam優化算法的β1=0.5\beta_{1}=0.5,β1=0.9\beta_{1}=0.9會導致訓練振盪與不穩定。
  3. 權重隨機初始化,數據分佈服從N(0,0.02)N(0,0.02),LeakyReLU的斜率爲0.2,batch_size = 128。

二、實驗結果

在LSUN數據集上的實驗結果
在這裏插入圖片描述
DCGAN的矢量計算表示:
在這裏插入圖片描述


後記

至此,DCGAN的相關內容全部介紹完了,對於DCGAN的實戰,可以參照GAN系列的第一篇博客:【GAN】一、利用keras實現DCGAN生成手寫數字圖像

在接下來我們將將介紹CGAN即條件GAN,條件GAN的提出使得GAN根據某種條件進行生成圖片,即可以使得GAN無監督算法轉變成了有監督算法。

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