深度学习【39】DCGAN

LAPGAN利用的是多个GAN一步一步的生成大的图片,而且LAPGAN的G网络和D网络的设计不是很优。DCGAN提出了只需要一个GAN就能够直接生成64*64的图片,并且给出了G网络和D网络的设计要点。DCGAN还发现了输入网络的Z向量,有着跟word2vec相似的功能,Z向量能够描述一张图片的语义。

DCGAN网络结构设计要点:

1、在D网络中用strided 卷积(stride>1)代替pooling层,在G网络中用fractional-strided 卷积代替上采样层。
2、在G和D网络中使用BN层
3、不要使用全连接层作为输出(LAPGAN中有)
4、G网络中除了输出层(tanh)都使用ReLu**函数
5、D网络中都使用LeakyReLu**函数

网络结构图:

深度学习【39】DCGAN
DCGAN先利用全连接层将100维的z向量,变成4*4*1024的向量,然后reshape成4*4*1024的张量。然后使用ractionally-strided convolutions一步步上采样到64*64的图片。

训练细节:

1、预处理环节,将图像scale到tanh的[-1, 1]。
2、mini-batch训练,batch size是128.
3、所有的参数初始化由(0, 0.02)的正态分布中随即得到
4、LeakyReLU的斜率是0.2.
5、虽然之前的GAN使用momentum来加速训练,DCGAN使用调好超参的Adam optimizer。
6、learning rate=0.0002
7、将momentum参数beta从0.9降为0.5来防止震荡和不稳定。

z向量的语义表现:

深度学习【39】DCGAN

smiling woman那张图是由上面的三张图的z向量取平均(z1)生成的。neutral woman(z2),neutral woman(z3)也一样。而 smiling man则是由z1-z2+z3=z4向量生产的图片(9张,在z4向量加入了+-0.25的噪声)。
深度学习【39】DCGAN
上图是不同姿势的过度。

论文还做了一些实验证明G和D网络的有效性。如G网络是否能够控制物件的生成?D网络学到的特征是什么?