8. DCGAN
2019/11/10
GAN, 又称生成对抗网络, 也是 Generative Adversarial Nets 的简称
我们知道自然界的生物无时无刻都不在相互对抗进化,生物在往不被天敌发现的方向进化, 而天敌则是对抗生物的进化去更容易发现生物。 二者就是在做一个博弈。
GAN网络和生物对抗进化一样, 也是一个博弈的过程。 我们通过网络的Generator去生成图片, 通过Discriminator去判别图片是否是网络生成的还是真实图片。Generator 和 Discriminator相互对抗, Generator在往生成图片不被Discriminator发现为假的方向进化, 而Discriminator则是在往更准确发现图片为Generator生成的方向进化。 这是二者的一个博弈过程。
DCGAN: 将CNN应用于GAN。
DCGAN:论文地址:
https://arxiv.org/abs/1511.06434
DCGAN
论文中的网络结构:
DCGAN详情:
1.使用转置卷积代替池化
2.使用Batch_Normalization在Generator和Discriminator, 但是Generator输出层不使用
3.移除卷积网络后的全连接层
4.Generator各个隐含层的激活函数使用relu, 输出层使用tanh
Discriminator每一层都使用leaky_Relu, alpha=0.2
5.使用AdamOptimizer进行梯度下降, learning_rate=0.0002, beta1=0.5
DCGAN实例:
使用DCGAN生成二次元图片
项目地址:
数据说明:
第一种: 原始数据, 每张图片为90X90
第二种: 自己处理后的数据, 为一个mat文件, 包含了大概12800张64X64的图片
生成的mat文件过大, 这里我只给出原始数据, 可以不使用mat文件, 直接对图片进行大小转换