Generative Adversarial Nets

GAN原文
code


同时训练两个模型:generative model G 学习逼近真实数据的分布,目标是使得生成的样本让D无法识别是来自真实的数据还是G生成的数据,discriminative model D 评估样本来自真实数据的可能。当G学习到足够好以致D无法判别时,D(x)=1/2。

为了使generator’s distribution pg 逼近真实数据data x
定义一个输入噪声变量pz(Z)
G,D都为multilayer perceptrons 参数各为θg,θd.
G伴随噪音z生成的样本为:G(z;θg)
D(x;θd)输出为一个单独的变量scalar
D(x)代表x来自真实数据x的可能而不是pg
将训练D使其区分样本是来自data x还是 G,最大化log(D(x))
同时最小化G:log(1-D(G(z))) ,G(z)生成的样本:x'
在log(D(x'))最大化的同时log(1-D(x'))就必须最小化:即二者形成一个极大极小的竞争:其中IEx~pdata(x) 为根真实数据分布从真实数据中取x,IEz~p(z)亦然

竞争函数

在最初D可以轻易分辨x来自data x或G,使得最小化log(1-D(G(z))) 饱和
因此可以先训练D(G(z))

训练过程

训练过程中:蓝色虚线代表D的分布,绿色实线代表G的分布pg,黑色圈代表真实数据的分布。z是代表噪音,x代表数据。z志向x的区域即代表当前G(z)生成的样本落在x中的哪个区域.(a)是初始状态的时候,D还是能较好好分辨出data x与G(z).(b)经过训练D已经能很好区分样本来自于data x还是G(z).(c)训练G使得G逼近真实数据的分布。此时D可再训练调整D的分布重复上述过程...(d)为最后结果即G生成的样本逼近真实的数据,D(x)=1/2

DG梯度更新
最佳D*


竞争函数代入最佳D*
pg可逼近pdata
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。