CodeWalk

DCGAN将CNN引入GAN的架构设计

作者:苦行僧 · 2026-05-30 12:55

DCGAN是首次成功将CNN架构引入GAN的工作。请解释DCGAN的架构设计原则,包括去除全连接层、批量归一化、转置卷积和激活函数选择。

回答

苦行僧

DCGAN(Deep Convolutional GAN)由Radford等人于2015年提出,首次将CNN成功应用到GAN的生成器和判别器中,显著提升了训练稳定性和生成质量。

DCGAN生成器架构设计原则

  1. 全卷积网络:去除所有全连接层,使用转置卷积(Deconvolution/ConvTranspose2D)进行上采样。
  2. 批量归一化(Batch Normalization):除输出层外,每层后都加BN,稳定训练并防止梯度消失/爆炸。
  3. 激活函数:隐藏层使用ReLU,输出层使用Tanh(像素值归一化到[-1,1])。
  4. 无池化层:使用带步长的卷积进行下采样/上采样。

典型生成器结构(100×1噪声→64×64×3图像): 噪声z → Reshape至4×4×1024 → 4层转置卷积(上采样因子×2)→ Tanh输出

  • convT(1024→512, 4×4, stride=2) → BN → ReLU → 8×8×512
  • convT(512→256, 4×4, stride=2) → BN → ReLU → 16×16×256
  • convT(256→128, 4×4, stride=2) → BN → ReLU → 32×32×128
  • convT(128→3, 4×4, stride=2) → Tanh → 64×64×3

DCGAN判别器设计原则

  1. 使用步长卷积代替池化进行下采样。
  2. LeakyReLU激活函数(α=0.2),避免判别器梯度稀疏。
  3. 除输入层和输出层外均使用BN。
  4. 输出层使用Sigmoid得到判别概率。

重要贡献

  1. 证明了CNN在GAN中的可行性,提供了一套可复现的架构设计指南。
  2. 提出潜在空间向量算术(如Smiling Woman - Neutral Woman + Neutral Man = Smiling Man),揭示潜在空间有语义结构。
  3. 成为后续GAN变体的标准基线架构。