• 实验项目名称:

生成对抗网络GAN及DCGAN实验

  • 实验学时:

3

  • 实验原理:

生成对抗网络模型主要包括两部分:生成模型和判别模型。 生成模型是指我们可以根据任务、通过模型训练由输入的数据生成文字、图像、视频等数据。

  • 实验目的:

学习掌握生成对抗网络(GAN)和深度卷积生成对抗网络(DCGAN)和BIGGAN基本原理;利用DCGAN和BIGGAN进行图片生成。

  • 实验内容:

通过PC上位机连接服务器,登陆SimpleAI平台,熟悉并利用DCGAN算法进行MNIST数字手写体图像生成。在此基础上,通过查找资料,分析BIGGAN网络,分别使用DCGAN和BIGGAN两种网络进行图像生成和对比。

  • 实验器材(设备、虚拟机名称):

PC,Pycharm,TensorFlow

 

  • 实验步骤:
  1. 原始数据集的搜集

首先我们需要用爬虫爬取大量的动漫图片,原文是在这个网站:http://safebooru.donmai.us/中爬取的。我尝试的时候,发现在我的网络环境下无法访问这个网站,于是我就写了一个简单的爬虫爬了另外一个著名的动漫图库网站:konachan.net - Konachan.com Anime Wallpapers。

  1. 头像截取

截取头像和原文一样,直接使用github上一个基于opencv的工具:nagadomi/lbpcascade_animeface。

  1. 训练
  • 实验结果及分析:

 

结果

1epoch跑完(只有一点点轮廓):

生成对抗网络GAN及DCGAN实验

5epoch之后的结果:

生成对抗网络GAN及DCGAN实验

10epoch

生成对抗网络GAN及DCGAN实验

200epoch,仔细看有些图片确实是足以以假乱真的:

生成对抗网络GAN及DCGAN实验

 

 

  • 实验结论:

GAN网络可以自主生成某种特定图片或视频,是人工智能的重大进步,也存在一些缺点:

[1]解决不收敛的问题。所有的理论都认为 GAN 应该在纳什均衡上有卓越的表现,但梯度下降只有在凸函数的情况下才能保证实现纳什均衡。当博弈双方都由神经网络表示时,在没有实际达到均衡的情况下,让它们永远保持对自己策略的调整是可能的。        

[2]难以训练(目标函数难构建)。GAN模型被定义为极小极大问题,没有损失函数,在训练过程中很难区分是否正在取得进展。GAN的学习过程可能发生崩溃问题,生成器开始退化,会生成同样的样本点,无法继续学习。当生成模型崩溃时,判别模型也会对相似的样本点指向相似的方向,训练无法继续。    

[3]判别器D效果越好,生成器梯度消失越严重,最后难训练。

 

  • 总结及心得体会:

GAN网络还有很大的发展前景,是人工智能的重要发展方向。