前言
昨天實作了簡單的GAN之後,今天我們來介紹GAN第一個常見的種類-DCGAN!
正文
DCGAN全名為Deep Convolutional Generative Adversarial Networks,是一種生成對抗網路(GAN)的變種,專門用於生成逼真的圖像。他與前面的CAE一樣,DCGAN引入了卷積神經網路(CNN)的概念,以有效地生成高解析度的圖像。
以下是論文中DCGAN的核心架構
-
用步進卷積替換池化層(鑑別器)和分數步進卷積(fractional-strided convolutions)(生成器): 在鑑別器中,將池化層替換為步進卷積,以維持圖像的空間分辨率。在生成器中,使用分數步進卷積,以實現圖像的放大。
-
在生成器和鑑別器中使用批次正規化(batch normalization): 批次正規化有助於穩定訓練過程,防止梯度爆炸或消失問題,因此建議在兩個模型中都使用它。
-
去除深度架構中的全連接隱藏層: 在更深的網絡中,不建議使用全連接隱藏層,而是專注於卷積和步進卷積層。
-
在生成器中使用ReLU激活函數(Rectified Linear Unit): 除了輸出層外,建議在生成器的所有層中使用ReLU激活函數,以促進訓練中的非線性學習。輸出層可以使用Tanh函數,將像素值縮放到合適的範圍。
-
在鑑別器中使用LeakyReLU激活函數: 在鑑別器的所有層中使用LeakyReLU激活函數,這有助於處理梯度消失問題,並提高鑑別性能
以下是以生成64*64的圖為例:
卷積的部分可以參考第14天的CAE:[DAY14] Convolutional Autoencoder(CAE)的理論
總結
今天稍微介紹了DCGAN的理論,明天將會實作DCGAN,那我們明天見!