[Deep Learning] 生成模型

本文是Deep Learning Course总结系列的第五篇,本文的主要内容是对生成模型PixelCNN,PixelRNN,VAE,GANs进行介绍。
本系列前四篇传送门:第一篇 [Deep Learning] 神经网络基础;第二篇 [Deep Learning] 卷积神经网络 CNNs;第三篇 [Deep Learning] 集成学习Ensemble Learning&迁移学习Transfer Learning ;第四篇 [ [Deep Learning] 循环神经网络RNN ](//www.greatytc.com/p/5c22b41e9f07)。

生成模型分类

无监督学习包括聚类K-means、降维PCA、特征学习Antoencoders、密度估计、生成模型(图片生成、超分辨率、图片着色、时间序列数据模拟和计划[增强学习]、潜在特征推断)等,其中生成模型的分类历史如下图所示:


生成模型分类

Explicit生成模型假设参数空间已知或可以近似估计,然而真实数据的分布往往是十分复杂的。

PixelRNN & PixelCNN

由 Google 提出的 PixelRNNPixelCNN从左到右,从上到下,逐步生成一个个像素,最终生成整张图像。它的基本原理是训练数据的概率最大化最优化,以之前生成的像素作为输入,输出对于下一个像素的值的统计分布的预测,然后从分布采样出下一个像素。

PixelRNN

PixelCNN

改进方向

由于逐个生成像素,PixelRNN & PixelCNN的最大问题是速度太慢,但Pixel 系列的思想尤其适合生成音频和文字,例如 WaveNet,它用此前生成的音频采样作为输入,生成下一个采样,不断重复此过程,最终可生成高质量的语音和音乐。

AE & VAE

  • 自动编码机(Auto Encoder):针对非标签化数据学习其低维特征表示
    通过编码器降维关注更为重要的特征(下采样downsampling),使用解码器恢复图像(上采样upsampling)并使用L2损失函数判断重构图像和原图像的相似度。由于AE 中没有更先进的判别网络,AE 的优化目标实际只是让 x 和 G(E(x)) 尽量在像素上接近。这并不是个好目标,因此 AE 生成的图像往往很模糊、质量低。但AE生成的图像更均匀,光滑,训练过程更稳定,这也是它可以与GAN后续结合的优点。


    Antoencoders特征降维
  • VAE:VAE(Variational Auto-Encoder)能解决 AE 的一个缺点:AE 的 G 只能保证将由 x 生成的 z 还原为 x。如果我们随机生成 1 个 z,经过 AE 的 G 后往往不会得到有效的图像。而 VAE 可让 E 生成的 z 尽量符合某个指定分布,例如标准差为 1 的多维正态分布。那么此时只需从这个分布采样出 z,就能通过 G 得到有效的图像。
    VAE的优缺点及改进方向

作为生成模型的AE也可以用于分类问题:编码器和Softmax函数结合适用于样本量不足的分类监督学习,能够避免样本量不足时的过拟合问题。


Autoencoders应用于分类问题

对上述几种方法的对比总结:


三种方法对比
GAN

GAN模型于2014年由Ian Goodfellow提出[1],GAN使用博弈的思想由一个生成器和一个判别器构成,生成器G从给定噪声z中(一般是指均匀分布或者正态分布)产生合成数据,判别器D分辨生成器的的输出和真实数据,在训练过程中,双方不断优化自己,直到D无法再区分真实数据和G产生的数据,到达纳什均衡。:
\min_G\max_D V(G, D) = \mathbb{E}_{x\sim p_{data}(x)}[logD(x)] + \mathbb{E} _{z\sim p_z(z)}[log(1-D(G(z)))]

其中优化D的部分:当x来自真实数据集data时,D(x)应该越接近1越好,而当处理G产生的数据G(z)时,D(G(z))应该越接近0越好,所以式子中,log(D(x)),log(1-D(G(z)))应该越大越好;

而G作为生成器,它所要做的就是迷惑D,让D将自己生成的数据误认为成来自真实数据集的数据,所以D(G(z))应该越接近1越好,即log(1-D(G(z)))应该越小越好。然而当优化G时,由于在学习初期,G的表现较差,D很容易区分出G产生的数据,即D(G(z))=0, 导致log(1-D(G(z)))可能会出现饱和的问题。在出现这种问题时,可以转而用最大化log(D(G(z)))来优化G。


GAN优化

GAN自提出以来,就存在着训练困难、不易收敛、生成器和判别器的loss无法指示训练进程、生成样本缺乏多样性等问题。从那时起,很多研究人员就在尝试解决,并提出了改进方案,切实解决了部分问题,如生成器梯度消失导致的训练困难。当然也还有很多问题亟待解决,如生成样本的评价指标问题。

DCGAN (Deep Convolutional GAN)

朴素GAN在生成器和判别器在结构上是通过以多层全连接网络为主体的多层感知机(Multi-layer Perceptron, MLP) 实现的,然而其调参难度较大,训练失败相当常见,生成图片质量也相当不佳,尤其是对较复杂的数据集而言。由于卷积神经网络比MLP有更强的拟合与表达能力,2015年Alex Radford提出使用卷积架构取代GAN中的全连接层[2]。DCGAN去掉了池化层,采用批标准化(Batch Normalization, BN)等技术,并强调了隐藏层分析和可视化技术对GAN训练的重要性和指导作用。

GAN卷积架构

GAN卷积架构

WGAN (Wasserstein GAN)

对于GAN的全局最优解,固定G优化D,D的最佳情况为:


根据D(x)的全局最优解可以得出:当判别器过优时,生成器的loss可以近似等价于优化真实分布与生成器产生数据分布的JS散度。然而JS对于两个完全没有overlap的情况无法收敛。具体推导可参考:https://zhuanlan.zhihu.com/p/39398823。WGAN阐述了朴素GAN因生成器梯度消失而训练失败的原因,并用Wasserstein距离替代了Jensen-Shannon散度,在理论上解决了梯度消失问题。

此外,WGAN还从理论上给出了朴素GAN发生模式坍塌(mode collapse)的原因,本质上是过拟合到某一点
模式坍塌的几种解决方案包括正则化、增加label(半监督GAN)、fe
ature matching
WGAN从实验角度说明了WGAN在这一点上的优越性。

虽然WGAN基本解决了训练失败的问题,但是无论是训练过程还是是收敛速度都要比常规 GAN 更慢。
WGAN-GP增加梯度惩罚项

Progressive GAN
BIgGAN
GraphSGAN
CVAE-GAN

CVAE-GAN包括4 个神经网络:
E:编码器(Encoder),输入图像 x,输出编码 z。
如果还给定了类别 c,那么生成的 z 就会质量更高,即更随机,因为可移除c中已包含的信息。
G:生成器(Generator)。输入编码 z,输出图像 x。
如果还给定了类别 c,那么就会生成属于类别 c 的图像。
C:分类器(Classifier)。输入图像 x,输出所属类别 c。
D:辨别器(Discriminator)。输入图像 x,判断它的真实度。

CVAE-GAN结构

CVAE 生成的图像中规中矩,但是模糊,CGAN 生成的图像清晰,但有时会有明显错误,所以 两者互补相结合后网络共有三个目标: 对于从 x 生成的 z,G 应能还原出接近 x 的 x'(像素上的接近)。这来自 AE 的思想。G 生成的图像应可由 D 鉴别为属于真实图像。这来自 GAN 的思想。G 生成的图像应可由 C 鉴别为属于 c 类别。这与 InfoGAN 的思想有些相似。
最终的z在不同 c 下的效果:
换脸效果

不同 c,代表不同的明星。相同 z,代表其他的一切语义特征(如表情,角度,光照等等)都一模一样。通过保持 z,改变 c,可轻松实现换脸效果。由于 CVAE-GAN 生成的样本质量很高,还可用于增强训练样本集,进行语义插值等。

cGAN (conditional GAN)

为了生成指定标签的数据,在CGAN中,生成器不仅要输入随机数,还需要将之与标签类别做拼接(concat,一般要将标签转换成如one-hot或其它的tensor),再将其输入生成器生成所需要的数据。此外,对判别器,也需要将真实数据或生成数据与对应的标签类别做拼接,再输入判别器的神经网络进行识别和判断。

InfoGAN(MutualInformation)本质上也可以看作是一种cGAN。它将原先生成器上输入的z进行分解,除了原先的噪声z以外,还分解出一个隐含编码c。其中c除了可以表示类别以外,还可以包含多种变量。以MNIST数据集为例,还可以表示诸如光照方向,字体的倾斜角度,笔画粗细等,这使得生成过程具有一定程度的可控性,生成结果也具备了一定的可解释性。

pix2pix

生成器输入除随机数z以外,将图片x(如灰度图,素描图等)作为条件进行拼接,输出的是转换后的图片(如照片)。而判别器输入的是转换后的图片或真实照片,特别之处在于,文章发现,判别器也将生成器输入的图片x作为条件进行拼接,会极大提高实验的结果,其结构图如下所示(此处结构图隐去了生成器的随机数z):


pix2pix
cycleGAN、DiscoGAN & DualGAN

Pix2Pix训练需要相互配对的图片x与y,然而,这类数据是极度缺乏的,对此CycleGAN提出了无需配对数据的图像翻译方法。CycleGAN基于循环一致性(Cycle-Consistent),两类图像经过两次相应的映射后,又会变为原来的图像,简单有效地解决了这一问题。
而与CycleGAN十分类似的DiscoGAN、DualGAN与其最大区别在于DiscoGAN使用最简单直白的CNN编码器和解码器,使用全连接网络当转换器;CycleGAN使用了ResNet充当转换器;DualGAN则是使用类似WGAN的形式来表示。

StarGAN

StarGAN作为CycleGAN的推广,将两两映射变成了多领域之间的映射,能够通过一个生成器解决所有跨域类别问题。


  1. Goodfellow, Ian J., et al. "Generative adversarial nets." International Conference on Neural Information Processing Systems MIT Press, 2014:2672-2680.

  2. Radford et al, “Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks”, ICLR 2016

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,820评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,756评论 2 374
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,901评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,718评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,592评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,437评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,836评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,483评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,770评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,801评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,588评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,427评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,852评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,064评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,363评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,843评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,055评论 2 338

推荐阅读更多精彩内容