前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GAN Model

GAN Model

作者头像
用户1145562
发布2020-10-23 16:06:36
1.2K0
发布2020-10-23 16:06:36
举报
文章被收录于专栏:LC刷题LC刷题LC刷题

简介

gan,全名Generative Adversarial Nets,翻译成中文,生成对抗网络。顾名思义,有生成过程,有对抗过程的一种net model。

这种模型大致工作流程:

有一生产者,也可以称其为造假者,他的工作是生成类似于源数据的数据,比如与古董真假难辨的伪造古董。生产者在这里就扮演了伪造古董的“工艺大师”。

有一对抗者,形象一点称其为鉴别者,他的工作就是判断某一数据是否来源于源数据,比如说,判断某一可能是古董的工艺品是不是真的古董。对抗者在这里就充当了“鉴宝大师”。

“工艺大师”和“鉴宝大师”相互竞争(对抗),驱使着他们各自变得更加优秀(前者生成真假难辨的古董,后者对再怎么真假难辨的古董也能分辨出来)。

gan的目的就是让这个“工艺大师”能够生成无限接近于(相似于)源数据的数据。对于工艺大师,就是生成“古董”。

gan数学表达

假设源数据集(古董数据)分布:p_{data}

假设生成的数据集(伪造的古董)分布:p_{g}(x_i,\theta_g),定义一个先验噪声p_z(z),经过多层感知机处理,噪声经过G(z,\theta_g)处理得到x,即x = G(z,\theta_g).

假设D(x)表示x来自源数据集p_{data}被鉴别为真(古董)的概率,那么D(G(z))则可以表示为x = G(z,\theta_g)来自于p_g而被鉴别为真(古董的概率)。

  1. 趋于0。因此可以这样表达:
\mathop{max}\limits_{D} E_{x\sim p_{data}}[logD(X)]+E_{z\sim p_z}[log(1-D(G(z)))]
  1. 趋于1,产生误判。因此可以这样表达:
\mathop{min}\limits_{G}E_{z\sim p_z}[log(1-D(G(z)))]
  1. 结合以上两者,可以归纳为一个公式
\mathop{min}\limits_{G}\mathop{max}\limits_{D} E_{x\sim p_{data}}[logD(X)]+E_{z\sim p_z}[log(1-D(G(z)))]

gan数学表达的全局最优解

将上式记为

\mathop{min}\limits_{G}\mathop{max}\limits_{D} V(G,D) = \mathop{min}\limits_{G}\mathop{max}\limits_{D} E_{x\sim p_{data}}[logD(X)]+E_{z\sim p_z}[log(1-D(G(z)))]
\mathop{=====}\limits^{将期望用积分表达}\int_xp_{data}(x)log(D(x))dx+\int_zp(z)log(1-D(G(z)))dz
\mathop{===}\limits^{将z换成x}\int_x[p_{data}(x)log(D(x))+p_glog(1-D(x)]dx

求其全局最优解,将G固定,求此时的\mathop{max}\limits_{D}V(D)

\mathop{max}\limits_{D}V(D)=\mathop{max} \int_x[p_{data}(x)log(D(x))+p_glog(1-D(x)]dx

对上式中的D求偏微分,使其偏微分为0,于是有

\frac{\partial}{\partial D}[V(D)]=\int_x\frac{\partial}{\partial D}[p_{data}(x)log(D(x))+p_glog(1-D(x)]dx
=\int_x\frac{\partial}{\partial D}[p_{data}\frac{1}{D(x)}+p_g\frac{1}{1-D(x)}]dx=0

解得有:D_G^* = \frac{p_{data}}{p_{data}+p_g}

再将D_G^* = \frac{p_{data}}{p_{data}+p_g}代回\mathop{min}\limits_{G}\mathop{max}\limits_{D} V(G,D) ,此时有

\mathop{min}\limits_{G}V(G,D)=E_{x\sim p_{data}}[log\frac{p_{data}}{p_{data}+p_g}]+E_{x\sim p_g}[log(1-\frac{p_{data}}{p_{data}+p_g})]

关于求解上式,有一个叫KL散度的东西,相对熵,衡量两个概率P(x),Q(x)分布的距离:如下

D_{KL}(P||Q) = \sum\limits_{i=1}logP(x)\frac{P(x)}{Q(X)}=E_{P(x)}[log\frac{P(x)}{Q(x)}]

其中

在本式中,除以2处理

\mathop{min}\limits_{G}V(G,D)=\mathop{min}\limits_{G}E_{x\sim p_{data}}[log\frac{p_{data}/2}{(p_{data}+p_g)/2}]+E_{x\sim p_g}[log(\frac{p_g/2}{(p_{data}+p_g)/2})]
=\mathop{min}\limits_{G}E_{x\sim p_{data}}[log\frac{p_{data}}{(p_{data}+p_g)/2}]+E_{x\sim p_g}[log(\frac{p_g}{(p_{data}+p_g)/2})]-log4
=\mathop{min}\limits_{G} KL(p_{data}||\frac{p_{data}+p_g{}}{2})+KL(p_g||\frac{p_{data}+p_g{}}{2})-log4\geq -log4

p_g==p_{data}时,取全局最优最小值。

论文中实现生成对抗伪算法

algorithm
algorithm

gan论文 视频讲解

实验

略。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-192,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • gan数学表达
  • gan数学表达的全局最优解
  • 论文中实现生成对抗伪算法
  • 实验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档