GAN(Generative Adversary Network)网络导论介绍,小白绝对也能看懂的博文

        GAN全称为Generative Adversary Network,被誉为如今最酷炫的网络之一。那么它的神奇之处在哪里呢?GAN网络使得计算机有一种创造性,能根据现有的条件,比如一些二维图片、一个语句库“创造出”从来没有的图片和句子。如下图所示,通过调整网络的一些参数,我们改变图像人物中头发的长度和颜色,甚至创造出完全不一样的图像。灵魂画手,你也可以拥有。

网络结构介绍

        一个GAN 框架,最少(但不限于)拥有两个组成部分,一个是生成模型 G(Generator),一个是判别模型 D(Discriminator)。在训练过程中,会把生成模型生成的样本和真实样本随机地传送一张(或者一个 batch)给判别模型 D。判别模型 D 的目标是尽可能正确地识别出真实样本(输出为“真”,或者1),和尽可能正确地揪出生成的样本,也就是假样本(输出为“假”,或者0)。这两个目标分别对应了下方的目标函数的第一和第二项。而生成模型的目标则和判别模型相反,就是尽可能最小化判别模型揪出它的概率。这样 G 和 D 就组成了一个 min-max game,在训练过程中双方都不断优化自己,直到达到平衡——双方都无法变得更好,也就是假样本与真样本完全不可区分。


数学建模过程

D(Discriminator)

1.从库中抽取出m个例子

2.建立m个噪声分布

3.得到m幅生成图像

4.求出目标函数V1,并用梯度下降求出V1的最大值。这里的V1是什么意思呢?要使V1最大,那么要最大,也就是使得真实图片判断值最大。同时使得最小,也就是使得Generator输出的图片判断值最小。这体现了G和D之间相互抗衡的关系。当然这只是目标函数的一种形式,还有别的形式可以让输出更加真实。

G(Generator)

1.建立m个噪声分布,可与之前的不同

2.建立G(Generator)的目标函数V2。G的目的就是使得自己输出的图片让D判断为真实图片。因此V2最大的同时,要最大,也就是D对来自G的图片判断值最大。


训练过程

GAN的训练思路大概为,固定住D网络,不断调整G网络的参数,使得输出值最大。再固定住G,调整D,让它能够辨识出G网络生成样本是假的。如此循环下去,直到D辨识不出来为止。


参考文献

本文参考了李宏毅深度学习课件以及香港理工大学博士李嫣然的博客。


猜你喜欢

转载自blog.csdn.net/tiaojingtao1293/article/details/81045069
今日推荐