Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks

这篇文章最主要的目的是把GAN作为一种representation learning的方法(对GeneratorDiscriminator都是这个目的,而不是生成图片),然后用学到的 features 用于supervised learningclassification等)。做了相关的实验验证(用学到的 features 在其它数据集上进行分类,对学到的features进行可视化)representation learning的效果很好。

Motivation

  • 无标数据比有标数据多得多,如果能利用这些数据提取 features,然后用于supervised任务,会很有帮助

  • 用于supervised learningCNNCV方面取得了取得了很好的成绩,如果用于unsupervised learning是不是也可以取得比较不错的成绩。

  • 最近的GAN很火,那是不是可以把GAN的结构用到CNN中(所以从这个角度看是:用GAN改进CNN,而不是用CNN改进GAN),把CNN改成一种可以用于unsupervised learning任务的结构。

  • convincing evidence 表明:提出的 model 可以 learns a hierarchy of representations from object parts to scenes

1 INTRODUCTION

  • 提出DCGAN,训练更稳定

    • 如何?

    • 为何?

3 Approch and Model Architecture

CNN应用到GAN遇到了很多的问题,但是作者在经过很多的实验后,找到了一些比较好的 tricks,resulted in stable training across a range of datasets and allowed for training higher resolution and deeper generative models。 看下面:

CNN architecture的3个改变

  1. pooling换成strided convolutions,原因:allowing the network to learn its own spatial downsampling

    • Generator: strided convolutions

    • Discriminator: fractional-strided convolutions

  2. 使用global average pooling,但是发现提高了stability,收敛速度变慢。

    • GeneratorDiscriminator都用了

    • 生成数据的那一层当成是FC,因为就是矩阵相乘,然后 reshpae 成一个 4 维的 tensor 作为接下来卷积层的输入。

    • 对于Discriminator,把最后一个卷基层 flatten,输入 single sigmoid 中。

  3. 使用Batch Normalization,尽量的避免Generator崩溃。

    • GeneratorDiscriminator都用了

    • 解决 poor initialization 的问题

    • information flow更通畅

Activation

  • Generator: ReLU activation , Tanh function for output layer

  • Discriminator: leaky rectified activation

4.1.1 DEDUPLICATION

  • 没看懂是什么意思

5.1 CLASSIFYING CIFAR-10 USING GANS AS A FEATURE EXTRACTOR

  • 评价 the quality of unsupervised representation learning 的一个方法是把它们当做features extractor,然后用于supervised learning中,看效果。

Empirical validation of DCGANS capabilities

  • SGD and a small learning rate 根据之前的实验,都没有 evidence 显示会 overfitting

  • 使用 discriminator’s convolutional features from all layers 对其它的数据集进行分类。检验它 extract features 的能力。

    可以试一下,unsupervised learning 的方法 extract features,然后用学到的 features 进行分类。

  • 通过训练一个具有相同结构的CNN,验证 CNN architecture used in DCGAN is not the key contributing factor of the model’s performance

6.3.1

  • Generator学习到了什么? major scene components

待完善。。。。