学习笔记:生成对抗网络GANs原文的理解

我研究GANs大概有一年时间了,稍后会把自己做的多篇论文笔记逐一发布出来,互相讨论。

参考Goodfellow的论文,论文链接:https://arxiv.org/abs/1406.2661

1.核心内容:
        提出通过一种对抗的方式训练生成模型,论证存在一个解使得生成模型可以很好地模拟真实数据分布。(生成模型的本质是生成与真实数据近似的数据)

2.对抗是如何实现的:

        首先定义两个网络(可以是多层感知机),取名为生成器G和判别器DG的目的是尽量模拟真实数据分布,D的目的是尽量区分数据是来自于真实数据还是生成数据。其实在我看来,D的角色就像是一个二分类器,Dloss function是最大化分类正确率,不同的是Gloss function是尽量使来自于生成器的数据被D 误判。这体现了对抗的思想。

3.阐述loss function

              学习笔记:生成对抗网络GANs原文的理解

    学习笔记:生成对抗网络GANs原文的理解:表示生成器的输入z服从一个噪声分布,通常采取一些简单的分布,如高斯分布、均匀分布。

   学习笔记:生成对抗网络GANs原文的理解:表示一个含参θ网络G,其把一个简单分布映射至数据空间。

   学习笔记:生成对抗网络GANs原文的理解:表示一个含参θd网络D,其输出为一个一维标量,0~1之间,用来指示来自于真实数据的概率。

  对于判别器来说:它的目标是最大化如上的loss function,即对于来自于真实数据的样本,它的输出尽可能趋向于1,对于来自生成数据的样本,它的输出尽可能趋向于0.

  对于生成器来说:它的目标是最小化如上的loss function,即对于自己生成的样本,应尽可能使判别器产生误判,判别器的输出趋向于1。

4.GAN的形象化理解

       学习笔记:生成对抗网络GANs原文的理解

        黑色点画线表示真实数据分布,绿色实线表示由一个噪声分布z经映射G得到的生成数据分布,蓝色点画线表示判别器的输出,从左向右代表着训练过程的推进。

        从图中可以看出,对于两种分布中分割比较明显的数据,判别器可以很轻松地区分出来,对于有交叠部分的数据,判别器不好区分,随着训练进行,生成数据的分布越来越趋向于真实数据分布,此时判别器的概率稳定在0.5左右,相当于胡乱猜测。

算法如下:

学习笔记:生成对抗网络GANs原文的理解

5.GAN的优缺点

        虽然生成对抗网络采取了一种相较于之前马尔科夫链或者近似估计等更加简单的方式,但是我在后续的应用中还是发现存在一些问题,比如说因为是对抗的过程,所以容易出现训练不稳定的情况,或者生成图片单一的情况,并且对模型结构的稍微改动同样会影响生成图片的质量,这个的改进可以参考UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS 一文,同时GAN网络在处理较大像素的图片时也是有点难度的,这同样是一个改进的方向。

转载请注明:http://blog.****.net/xiaohouzi1992/article/details/79470578