Unsupervised Representation Learning With Deep Convolutional Generative Adversarial Networks

  2019-10-21 


《Unsupervised Representation Learning With Deep Convolutional Generative Adversarial Networks》
Alec Radford&Luke Metz ,Soumith Chintala
ICLR 2016

  • Unsupervised representation learning 无监督表示学习领域(聚类,AE,DBN)

  • Generative image models生成模型(参数化模型,非参数化模型)

    Variational sampling approach (2013) 模糊

    GAN(2014) 噪点多,难以理解

    A recurrent network approach(Gregor et al.,2015, a deconvolution network approach(Dosovitskiy et al.,2014) 未用生成器监督

  • VISUALIZING THE INTERNALS OF CNNS 通过反卷积和最大池化可以找到网络中每个卷积核学到的内容 (Zeiler & Fergus, 2014) ,对输入使用梯度下降可以推断出卷积核的理想子集(Mordvintsev et al.).

APPROACH AND MODEL ARCHITECTURE

Core to our approach is adopting and modifying three recently demonstrated changes to CNN architectures.

模型采用CNN

  1. all convolutional net (Springenberg et al., 2014)

    不使用池化层

    在判别模型中用步长卷积 (strided convolutions )替代

    在生成模型中用转置卷积/微步卷积(fractionally-strided convolutions)替代

    这样可以允许生成和判别模型学习自己空间的下采样,使得网络可微。

  2. trend towards eliminating fully connected layers on top of convolutional features 不使用FC层,替而代之使用global pooling(全局池化层)

    目的是减轻运算量,提高了模型的稳定性,但不利于收敛速度。

  3. Batch Normalization 批归一化 (Ioffe & Szegedy, 2015) (BN现在已经是非常常用的工具了)

    有效解决GANs训练中常遇到的梯度消失问题,也解决初始化问题,并防止生成模型把所有样本都收敛到一个点

    但不要对生成模型的输出层和判别模型的输入层使用,否则会导致模型不稳定

  4. activation 激活函数的选择

    生成模型中使用ReLU,除了输出层用tanh

    判别模型使用Leaky ReLU,尤其在高分辨率模型中效果非常好

生成模型结构:

0

实验结论与方法总结

  1. 对于无监督表示学习算法通常的验证方法: apply them as a feature extractor on supervised datasets and evaluate the performance of linear models fitted on top of these features. 在监督学习数据集中,将训练好的模型当成特征提取器,使用线性模型用来匹配特征以衡量性能(相当于将监督学习训练好的模型作为判别器)

    作者使用在ImageNet-1K上训练得到的生成模型,使用所有层的所有CNN特征作为输入,将每一层的CNN特征使用最大池化的方式降到4×4,扁平化成一个28672维的向量,输入到L2-SVM中,明显DCGAN效果优于其他无监督表示模型

  2. 对于隐空间,可以对经过生成模型之前的初始向量进行差值的方式探索隐空间

  3. 如果图像急剧变化,可能是因为没有学习到特征,只是记住了图像;如果缓慢渐变,说明学习到了特征

  4. 在标签数据较少的情况下,DCGAN效果最好。

  5. 使用 guided backpropagation ( Striving for Simplicity: The All Convolutional Net Springenberg et al.,2014)可视化判别模型中的特征

  6. GAN中可以类似word2vec一样进行向量运算,直接对输入生成模型的那个向量进行加减

    如vector(”King”)-vector(”Man”)+vector(”Woman”)

  7. 去除掉某物体

    对窗户特征进行dropout


补充:

全局平均池化:global average pooling(GAP)

$W×H×C\to1×1×C$

即将一个Channel变成成一个值,原Channel每个位置的权值为$\frac{1}{W×H}$

GAP的真正意义是:对整个网路在结构上做正则化防止过拟合。其直接剔除了全连接层中黑箱的特征,直接赋予了每个channel实际的内别意义。

反卷积/转置卷积/微步卷积(fractionally-strided convolutions)

判别模型输入维度>输出维度,需要用卷积,下采样;

但生成模型输入维度<输出维度,就需要用卷积的逆过程,也就是反卷积,也就是上采样

反卷积的输出公式:

$O=S(I-1)+K-2P$

(O=output, S=Stride,I=Input,K=Kernel,P=Padding)

上采样(upsampling)

一般两种方法:

①图像缩放,如双线性插值

②逆卷积/转置卷积


且听风吟