关于GAN的训练技巧的二三事

GAN的生成效果十分出众,但其训练过程的困难程度也十分出众,在“Deep Learning with Python”一书中,Keras之父Francois Chollet称这些训练技巧为炼金术而不是科学,他在书中列举了部分,摘录如下:

  1. 我们使用 tanh作为生成器最后一层的激活,而不用 sigmoid,后者在其他类型的模型中更加常见。
  2. 我们使用正态分布(高斯分布)对潜在空间中的点进行采样,而不用均匀分布。
  3. 随机性能够提高稳健性。训练GAN得到的是一个动态平衡,所以GAN可能以各种方式“卡住”。在训练过程中引入随机性有助于防止出现这种情况。我们通过两种方式引入随机性:一种是在判别器中使用dropout,另一种是向判别器的标签添加随机噪声。
  4. 稀疏的梯度会妨碍 GAN 的训练。在深度学习中,稀疏性通常是我们需要的属性,但在GAN 中并非如此。有两件事情可能导致梯度稀疏:最大池化运算和ReLU 激活。我们推荐使用步进卷积代替最大池化来进行下采样,还推荐使用LeakyReLU 层来代替ReLU 激活。LeakyReLU 和ReLU 类似,但它允许较小的负数激活值,从而放宽了稀疏性限制。
  5. 在生成的图像中,经常会见到棋盘状伪影,这是由生成器中像素空间的不均匀覆盖导致的
    (见图8-17)。为了解决这个问题,每当在生成器和判别器中都使用步进的Conv2DTranpose或Conv2D 时,使用的内核大小要能够被步幅大小整除。关于GAN的训练技巧的二三事_第1张图片

你可能感兴趣的:(机器学习)