DCGAN《Unsupervised representation learning with deep convolutional generative adversarial network》总结
DCGAN来源论文《Unsupervised representation learning with deep convolutional generative adversarial networks》读后总结
前言
这是一些对于论文《Unsupervised representation learning with deep convolutional generative adversarial networks》的简单的读后总结,首先先奉上该文章的下载超链接:DCGAN
这篇文章是由indico Research和Facebook AI Research的人员合作完成的,作者分别是Alec Radford、Luke Metz和Soumith Chintala。其是DCGAN(深层卷积生成对抗网络)的来源文章,该文章通过改进生成对抗网络(GAN)而获得了许多有趣且有意义的结果,其使得计算机拥有了想象力与创造力,例如能生成我们期望得到的图像。
文章主要内容与贡献
该文章的贡献为:
- 提出了深层卷积生成对抗网络(Deep Convolutional Generative Adversarial Nets, DCGAN);
- DCGAN属于无监督学习,但其特征提取能力极强;
- 极大的提升了图像生成的实用性。
提出了深层卷积生成对抗网络(Deep Convolutional Generative Adversarial Nets, DCGAN)
首先先来看一下其网络结构图:
文章中只展示了生成网络的结构图,上图是用于LSUN场景建模的DCGAN生成器。一个100维均匀分布Z被投影到一个小的空间范围卷积表示与许多特征映射。一系列的四个部分跨距卷积(fractional-strided,ps:这个不知道有没有翻译对),然后将这个高层次表示转换为64×64像素图像。值得注意的是,不使用完全连接或汇集层。
其结构有如下特点:
- 用跨距卷积(判别器)和部分跨距卷积(发生器)代替任何池化层
- 在生成器和判别器中使用批规范化(BN)处理,如想深入了解BN,请点击BN来源论文及解说
- 为更深层次的架构移除完全连接的隐藏层
- 生成器中,对除了输出层的其它层都使用ReLU激活函数,输出层使用Tanh激活函数
- 判别器中,对所有层都使用LeakyReLU激活函数。
DCGAN能从未标记的图像中学习到有效的特征,通过反卷积可以可视化网络内部到底发生了什么。
DCGAN属于无监督学习,但其特征提取能力极强
该文章对DCGAN进行了三个数据集的训练:大型场景理解(Large-scale Scene Understanding, LSUN)、Imagenet1k和一个新收集的面部数据集。
除了缩放到Tanh激活函数 [ − 1 , 1 ] [-1,1] [−1,1]的范围外,没有对训练图像进行预处理。所有模型都采用小批量随机梯度下降(mini-batch stochastic gradient descent, SGD)训练,最小批量大小为128。所有权值均由零中心正态分布初始化,标准差为0.02。在LeakyReLU中,所有型号的泄漏斜率都设置为0.2。使用Adam优化器,动量中的 β 1 \beta_1 β1设置为0.5。
使用该文章预训练模型的CIFAR-10分类结果如下所示:
其中,DCGAN没有对CIFAR-10进行预训练,而是在Imagenet-1k上进行预训练,然后将这些特征用于对CIFAR-10图像进行分类。可以发现DCGAN提取的特征实用性很强。
下表是带有1000个标签的SVHN分类:
从下图可以看出:
左图是随机滤波器,由图是经由DCGAN训练之后的滤波器,训练后滤波器大量的特征响应于床(LSUN卧室数据集中的中心对象)。
极大的提升了图像生成的实用性
接下来才是这篇文章有趣的地方。
卧室图片
首先来看下图:
该图得一行一行从左到右的看,是一组连续的图片,图片经由生成网络不断地产生变化,而且变化并不唯一,可以看见大部分变化后的图片都是合理的,看起来都像是一个卧室,有趣的是有事门会变成窗户,窗户又会变成电视,没窗户的地方会出现窗户。
下图展示了可以让神经网络按照人类的想法来更改图片:
其中,顶部行为模型中未修改的样本,底部行为删除“窗口”过滤器生成的相同示例。一些窗户被移除,另一些被转换成具有相似视觉外观的物体,如门和镜子。虽然视觉质量下降,但整体场景组成保持相似,这表明生成器在场景表示与对象表示之间的分离方面做了很好的工作。
人脸图片
上图中,第一组图是用一个微笑的女人减去一个女人再加上一个男人就得到了微笑的男人,生成的9幅图中,并没有出现重大的结构上的不合理,有的图片甚至毫无违和感。第二组图片是给人加上眼镜,即用一个戴眼镜的男人减去一个没戴眼镜的男人再加上一个没戴眼镜的女人就得了戴眼镜的女人的图片,而且生成的9幅图中眼镜颜色有深有浅,违和感更弱。
最后一组图片则是直接将图片叠加取平均值后的结果,简直一塌糊涂。证明了DCGAN的效果是非常好的。
下图是将一个向左的脸变化为向右的脸:
非常的有趣,最右边的脸应该是真实的,可以发现大部分中间图也都是合理的人脸图。
下图是DCGAN和GAN的效果对比图:
由上可见,DCGAN生成的图片更清晰、光滑与合理。
下图是DCGAN产生的更多的人脸图片:
虽然有许多不合理的地方,但是还是有不少成功的图片。
下图是经过ImaGenet-1K数据集训练DCGAN生成的图片:
这些自然图片比人脸要更难生成,且模糊同时大部分不知道是什么。