Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks
Introduce
最近几年,对抗生成网络(GAN)在深度学习方面掀起了一股热潮,学术期刊会议上,关于对抗网络的文章层出不穷。从最开始goodfellow的gan,到 LapGan, Adversarial Autoencoders,LSTM gan,dcgans等等,gan开始在深度学习的各个领域扩散。想深入了解对抗生成网络的相关文章,请参考此链接。
本篇博客主要介绍一下Laplacian Pyramid of Adversarial Networks。本篇论文和Gan不同之处在于网络的设计。原始的Gan网络一个生成网络,一个判别网络,生成网络一般来说用一个符合高斯分布或者均匀分布的噪声作为网络的输入,生成图片,判别网络将生成网络的输出作为网络的输入进行判别是否真实。LapGan则是用一个串联的网络,构成laplacian pyramid,生成从粗糙到精细的图片。
Approach
GAN
GAN网络主要有两个组成,生成网络G和判别网络D。生成网络主要是捕捉数据的分布,生成一个图片。判别网络的作用就是区别生成网络的输出结果是否伪造,如果输入一个真实的图片,那么判别网络输出应该比较高,如果是生成的图片,那么判别网络的输出应该比较低。两个网络相当于一个博弈的过程,目标函数如下所示:
生成网络想要欺骗判别网络,最小化 Ez∼PNoise(z)[log(1−D(G(z)))] 。判别网络想不被欺骗要最大化 Eh∼pData(h)[logD(h)] 。通过上述目标函数约束,使用bp算法,就可以更新参数,完成训练。
LAPGAN
一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合,从塔顶到塔底图像分辨率越来越高。用d(.)表示downsample,u(.)表示upsample。首先构建图像I的高斯金字塔
G(I)=[I0,I1,...,IK]
。
I0=I
,K表示金字塔的层数。
一幅图像的金字塔如图所示:
定义
hj
如下:
LAPGAN的主要就是采用了图像金字塔,首先生成粗糙的图片,然后在粗糙图片的基础上,生成高分辨率的图片。
金字塔有K层,表示有K个对抗网络,分别生成k个不同层次的图像,其中设定第K+1层为0。生成网络有所不同之处在于,将高层金字塔图像也作为输出,和噪音一起生成低层的图像,相当于一个CGAN(conditional generative adverarial net)。通过上述网络,就可以生成最后的高分辨率的图像。
Experiment
作者在三个数据集上做了实验:
- CIFAR-10 图片大小32*32,总共10类,tu’p
- STL 图片大小96*96,总共10类
LSUN ~10M图像,大小下采样到64*64,10个场景。
最后贴一张LSUN数据集上的实验结果:
Conclusion
LAPGAN主要是利用了laplace pyramid,和CGAN结合一起,用低分辨率的图片作为condition,生成高分辨率的图像。
Reference
Emily Denton Soumith Chintala Arthur Szlam Rob Fergus Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks