Abstract: In recent years, supervised learning with convolutional networks (CNNs) has seen huge adoption in computer vision applications. Comparatively, unsupervised learning with CNNs has received less attention. In this work we hope to help bridge the gap between the success of CNNs for supervised learning and unsupervised learning. We introduce a class of CNNs called deep convolutional generative adversarial networks (DCGANs), that have certain architectural constraints, and demonstrate that they are a strong candidate for unsupervised learning. Training on various image datasets, we show convincing evidence that our deep convolutional adversarial pair learns a hierarchy of representations from object parts to scenes in both the generator and discriminator. Additionally, we use the learned features for novel tasks - demonstrating their applicability as general image representations
•表征(representation)、特征(feature)、编码(code)

好的表征
具有很强的表示能力,即同样大小的向量可以表示更多信息
使后续的学习任务变得简单,即需要包含更高层的语义信息
具有泛化性,可以应用到不同领域
表征学习的方式
—— Interpretation is the process of giving explanations to Human
•
决策树就是一个具有良好可解释性的模型
•
使用特征可视化方法
•
使用数据分析,可以找到数据中一些具有代表性和不具代表性的样本
•
NIPS 2017会议上,Yann LeCun:人类大脑是非常有限的,我们没有那么多脑容量去研究所有东西的可解释性




•
所有的pooling层使用strided卷积(判别器)和fractional-strided卷积(生成器)进行替换
•
使用Batch Normalization
•
移除全连接的隐层,让网络可以更深
•
在生成器上,除了输出层使用Tanh外,其它所有层的激活函数都使用ReLU
•
判别器所有层的激活函数都使用LeakyReLU
•
训练图像的预处理,只做了到 [-1, 1] 的值域缩放
•
使用mini-batch随机梯度下降来训练网络, batch size大小为128
•
采用均值为0 标准差为0.02的正态分布,来对所有权重进行初始化
•
对于LeakyReLU激活函数,leak的斜率设置为0.2
•
优化器使用Adam,而不是此前GAN网络用的momentum
•
Adam的学习速率使用0.0002,而非原论文建议的0.001
•
Adam的参数momentum term β1,原论文建议的0.9会导致训练震荡和不稳定,将其减少至0.5可以让训练更加稳定

•
没有使用 Data Augmentation
•
在LSUN上训练一个3072-128-3072的自编码器,用它从图像中提取128维特征,再经过ReLU层激活后作为图像的语义hash值
•
对生成图像和训练集使用上面的编码器,提取128维的语义hash值,进行重复性检测
•
检测到了大约275000左右数量的重复数据(LSUN数据集大小为300多万)

Unsupervised representation learning
CIFAR-10
•
在Imagenet-1k上训练DCGAN
•
使用判别器所有层的卷积特征,分别经过最大池化层,在每一层上得到一个空间尺寸为4*4的特征,再把这些特征做flattened和concatenated,最终得到28672维的向量表示
•
用一个SVM分类器,基于这些特征向量和类别label进行有监督训练

•
使用与CIFAR-10实验相同的处理流程
•
使用10000个样本来作为验证集,将其用在超参数和模型的选择上
•
随机选择1000个类别均衡的样本,用来训练正则化线性L2-SVM分类器
•
使用相同的生成器结构、相同的数据集,从头训练有监督CNN模型,并使用验证集进行超参数搜索

•
在latent space上walking,可以判断出模型是否是单纯在记住输入(如果生成图像过渡非常sharp),以及模式崩溃的方式
•
如果在latent space中walking导致生成图像的语义变化(例如添加或删除了对象),我们可以推断模型已经学习到了相关和有趣的表征

•
为了研究模型是如何对图像中的特定物体进行表征的,尝试从生成图像中把窗口进行移除
•
选出150个样本,手动标注了52个窗口的bounding box
•
在倒数第二层的conv layer features中,训练一个简单的逻辑回归模型,来判断一个feature activation是否在窗口中
•
使用这个模型,将所有值大于0的特征(总共200个),都从空间位置中移除

•
vector(”King”) - vector(”Man”) +vector(”Woman”)的结果和向量Queen很接近
•
对单个样本进行操作的结果不是很稳定,而如果使用三个样本的平均值,结果就会好很多

• 提出了一套更稳定的架构来训练生成对抗性网络
• 展示了对抗性网络可以很好的学习到图像的表征,并使用在监督学习和生成式的建模上
• 模式崩溃问题仍然存在
• 可以再延伸应用到其他领域,例如视频(做帧级的预测)和声频(用于语音合成的预训练特征)
• 可以对latent space进行更进一步的研究