UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS(DCGAN)
(记录)
Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks
用于无监督表征学习的深度卷积生成式对抗网络
原先的GAN方法训练不稳定,会产生无意义的输出。理解可视化GAN学习了什么,以及中间表示(中间结构发生了什么)都比较困难。本论文提出了DCGAN模型 优点:
(1)We propose and evaluate a set of constraints on the architectural topology of Convolutional GANs that make them stable to train in most settings;
(2)We use the trained discriminators for image classification tasks, showing competitive performance with other unsupervised algorithms.
(3)We visualize the filters learnt by GANs and empirically show that specific filters have learned to draw specific objects.
(4)We show that the generators have interesting vector arithmetic properties allowing for easy manipulation of many semantic qualities of generated samples.
相关工作:
一.相关工作
1.从未标记的数据中进行学习
(1)数据聚类
(2)hierarchical clustering of image patches
(3)auto-encoders
(4)separating the what and where components of the code
(5)ladder structures
这些方法从图像像素中学到了好的特征分布
(6)Deep belief networks
2.生成自然图像
现有的方法各有各的优点与不足(主要在不足)
3.VISUALIZING THE INTERNALS OF CNNS
二.方法和模型结构
方法核心:Core to our approach is adopting and modifying three recently demonstrated changes to CNN architectures
The first is the all convolutional net (Springenberg et al., 2014) which replaces deterministic spatial pooling functions (such as maxpooling) with strided convolutions, allowing the network to learn its own spatial downsampling. We use this approach in our generator, allowing it to learn its own spatial upsampling, and discriminator
Second is the trend towards eliminating fully connected layers on top of convolutional features
Third is Batch Normalization (Ioffe & Szegedy, 2015) which stabilizes learning by normalizing the input to each unit to have zero mean and unit variance
模型结构:
• 所有的pooling层使用strided卷积(判 别器)和fractional-strided卷积(生成 器)进行替换
• 使用Batch Normalization
• 移除全连接的隐层,让网络可以更深
• 在生成器上,除了输出层使用Tanh外, 其它所有层的激活函数都使用ReLU
• 判别器所有层的激活函数都使用 LeakyReLU
原文:
Architecture guidelines for stable Deep Convolutional GANs
• Replace any pooling layers with strided convolutions (discriminator) and fractional-strided convolutions (generator).
• Use batchnorm in both the generator and the discriminator.
• Remove fully connected hidden layers for deeper architectures.
• Use ReLU activation in generator for all layers except for the output, which uses Tanh.
• Use LeakyReLU activation in the discriminator for all layers.
三.对抗训练
We trained DCGANs on three datasets, Large-scale Scene Understanding (LSUN) (Yu et al., 2015), Imagenet-1k and a newly assembled Faces dataset.
图像生成:
1. 训练参数
• 训练图像的预处理,只做了到 [-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可以让训练更加稳定
LSUN
• 没有使用 Data Augmentation
• 在LSUN上训练一个3072-128-3072的自编码器,用 它从图像中提取128维特征,再经过ReLU层激活后 作为图像的语义hash值
• 对生成图像和训练集使用上面的编码器,提取128维 的语义hash值,进行重复性检测
• 检测到了大约275000左右数量的重复数据(LSUN 数据集大小为300多万)
FACES
• 从DBpedia上获取人名,并保证他们都是当代人
• 用这些人名在网络上搜索,收集其中包含人脸的图 像,得到了来自1万人的300万张图像
• 使用OpenCV的人脸检测算法,截取筛选出较高分辨 率的人脸,最终得到了大约35万张人脸图像
• 训练时没有使用 Data Augmentation
Imagenet
• 32 × 32 min-resized center crops
• 训练时没有使用 Data Augmentation
无监督表征学习
CIFAR-10
• 在Imagenet-1k上训练DCGAN
• 使用判别器所有层的卷积特征,分别经过最大池化层,在每一层上得到一个空间尺寸为4*4 的特征,再把这些特征做flattened和concatenated,最终得到28672维的向量表示
• 用一个SVM分类器,基于这些特征向量和类别label进行有监督训练
StreetView House Numbers(SVHN)
• 使用与CIFAR-10实验相同的处理流程
• 使用10000个样本来作为验证集,将其用在超参数和模型的选择上
• 随机选择1000个类别均衡的样本,用来训练正则化线性L2-SVM分类器
• 使用相同的生成器结构、相同的数据集,从头训练有监督CNN模型,并使用验证集进行超参数搜索
模型可视化 Model visualization
• 在大型图像数据集上训练的有监督CNN 模型,可以提取出很好的图像feature
• 希望在大型图像数据集上训练的无监督 模型DCGAN,也能学习到不错的层级结 构特征
• 使用对判别器的最后一个卷积层使用特 征可视化 • 判别器学习到了卧室的典型部分,例如 床和窗户
• 使用随机初始化还未经训练的模型来作 为对照
隐空间分析
隐变量空间漫游
• 在latent space上walking,可以判断出模型是否是单纯在记住输入(如果生成图像过渡非常 sharp),以及模式崩溃的方式
• 如果在latent space中walking导致生成图像的语义变化(例如添加或删除了对象),我们可以 推断模型已经学习到了相关和有趣的表征
Latent space 去除特定的对象
• 为了研究模型是如何对图像中的特定物体进行表征的,尝试从生成图像中把窗口进行移除
• 选出150个样本,手动标注了52个窗口的bounding box • 在倒数第二层的conv layer features中,训练一个简单的逻辑回归模型,来判断一个feature activation是 否在窗口中
• 使用这个模型,将所有值大于0的特征(总共200个),都从空间位置中移除
人脸样本上的矢量运算
• vector(”King”) - vector(”Man”) + vector(”Woman”)的结果和向量Queen很接近
• 对单个样本进行操作的结果不是很稳定,而如果使 用三个样本的平均值,结果就会好很多
总结展望
• 提出了一套更稳定的架构来训练生成对抗性网络
• 展示了对抗性网络可以很好的学习到图像的表征,并使用在监督学 习和生成式的建模上
• 模式崩溃问题仍然存在
• 可以再延伸应用到其他领域,例如视频(做帧级的预测)和声频 (用于语音合成的预训练特征)
• 可以对latent space进行更进一步的研究
We think that extending this framework to other domains such as video (for frame prediction) and audio (pre-trained features for speech synthesis) should be very interesting.
补充:
摘要(核心要点):
1. 希望能让CNN在无监督学习上,达到与监督学习一样的成功
2. 通过架构约束,构建了深度卷积生成对抗网络(DCGAN)
3. 证明了DCGAN是目前先进的无监督学习网络
4. 证明了DCGAN的生成器和判别器学习到了从物体细节到整体场景的多层次表征
5. 证明了DCGAN判别器提取的图像特征具有很好的泛化性
研究背景
1. 表征学习
2.模型可解释性
3. LSUN
加州大学伯克利分校发布,包含 10 个场景类别和 20 个对象类别,主要包含了卧室、客厅、 教室等场景图像,共计约 100 万张标记图像
4.SVHN
街景门牌号码数据集,与MNIST数据集类似,但具有更多标签数据(超过600,000个图像), 从谷歌街景中收集得到
研究意义
•早期的GAN在图像上仅局限MNIST这样 的简单数据集中,DCGAN使GAN在图像 生成任务上的效果大大提升
• DCGAN几乎奠定了GAN的标准架构,之 后GAN的研究者们不用再过多关注模型 架构和稳定性,可以把更多的精力放在 任务本身上,从而促进了GAN在16年的 蓬勃发展
• 开创了GAN在图像编辑上的应用