17.GAN

GAN简介

GAN,即生成对抗网络。是一种现在被广泛使用的深度学习模型。随着时间的推进,各种各样的GAN出现了...

工作原理

GAN由两部分组成,分别是生成器(Generator)和鉴别器(Discriminator)。生成器的任务是生成看起来自然真实的、和原始数据相似的实例。判别器的任务是判断给定的实例看起来是自然真实的还是人为伪造的。

  • 生成器:生成器利用一个向量可以生成对应的东西,比如生成图片或者语句,它们之间有一个唯一对应关系。

这个输入的向量里的每一维可以是有意义的,比如在生成图片时,第一维可以控制头发的长度等等。

  • 判别器:判别器负责给生成器生成的图片打分,它会学习给真实的图片打高分,给生成器生成的假图片打低分。

  • 生成器与判别器结合:生成器与判别器结合,最终能生成与真实图片相差无几的假图片。迭代过程就是生成器不断生成,判别器不断打低分。

这种关系就类似老师和学生,学生写了一个作业不断给老师看,老师不断挑出毛病进而让学生改正,最终学生的作业越来越好。

算法

大致算法如下图:

实例展示

训练让机器自己生成动漫人物图片。

我们可以看到必须要迭代训练50000次左右才能有能看的结果,值得注意的是,这次训练用到了几万张真正的动漫人物。

当然运气好就可以达到下面这样。