论文阅读之 Unsupervised Representation Learning With Deep Convolutional Generative Adversarial Networks
1. Introduction
这篇论文主要有以下几个方面的贡献:
- 作者对卷积GAN的拓扑结构提出并评估了一系列的限制, 使得卷积GAN在大部分的设置下能够稳定的训练. 作者把这种结构称作 Deep Convolutional GANs(DCGAN)
- 作者将训练好的的判别器用于图像识别任务, 展示了与其他非监督算法的有竞争性的表现
- 他们对GAN学习到的filter进行了可视化, 实验表明特定的filter学习到了去生成特定的物体
- 我们展示了生成器具有有趣的矢量算术属性,使得能够允许容易地操纵生成的样本的语义性质。
3. Approach and model architecture
相较于原始的GAN, 作者主要做了以下几个改变:
- 用步长卷积(判别器)和反卷积(生成器)代替池化层.
- 在生成器和判别器中都使用batch normal.
- 移除全连接层.
- 生成器的所有层都是使用ReLU激活函数, 除了输出层使用Tanh激活函数.
- 判别器的所有层都使用LeakyReLU激活函数.
论文中的所用的网络结构如下:
判别器的网络结构与此对称. 代码如下, 结构略有不同, 最终生成的是32 * 32 * 3 的图片, 仅供参考:
def generator(z, reuse=False, training=True):
with tf.variable_scope('generator', reuse=reuse):
# 1 * 1 * 100 -> 4 * 4 * 512
h0 = tf.layers.conv2d_transpose(z, 512, [4, 4], strides=(1, 1), padding='valid', name='g_h0_dconv')
h0 = leaky_relu(tf.layers.batch_normalization