GAN学习总结二-理论推导

GAN学习总结二-理论推导

本文从理论角度总结一下GAN的理论,主要参考李宏毅老师的GAN课程,可参考GAN完善理论推导与实现

​ 如下图 Generator是一个network,从Normal的分布中取出数据z送入G中,产生出x, x = G ( z ) x=G(z) x=G(z);当输入很多的数据时,产生出一个分布 P G ( x ) P_G(x) PG(x) 目的是使得该分布与 P d a t a ( x ) P_{data}(x) Pdata(x) 的分布越近越好,其中 P d a t a ( x ) P_{data}(x) Pdata(x) 是给定数据的分布, x x x表示高纬向量,表示图像。可得到图中的 G ∗ = arg ⁡ min ⁡ G Div ⁡ ( P G , P d a t a ) G ^ { * } = \arg \min \limits_{ G } \operatorname { Div } \left( P _ { G } , P _ { d a t a } \right) G=argGminDiv(PG,Pdata),其中 D I V ( P G , P d a t a ) DIV(P_G,P_{data}) DIV(PG,Pdata)表示 P G P_G PG P d a t a P_{data} Pdata的散度,现在问题是 P d a t a P_{data} Pdata P G P_G PG的数据分布是都不知道的,因此,DIV也是没法计算出来的?
在这里插入图片描述

P G P_G PG P d a t a P_{data} Pdata的分布我们不知道,但可以从给定的数据集中sample出数据,如下图,从G产生出的图像认为是 P G P_G PG中采样得到的值。
在这里插入图片描述

训练一个D,即寻找一个最优化的D,使得 V ( D , G ) V(D,G) V(D,G)达到一个最大值,固定的G时,优化如下公式:

V ( G , D ) = E x ∼ P d a t a [ log ⁡ D ( x ) ] + E x ∼ P c [ log ⁡ ( 1 − D ( x ) ) ] V ( G , D ) = E _ { x \sim P _ { d a t a } } [ \log D ( x ) ] + E _ { x \sim P _ { c } } [ \log ( 1 - D ( x ) ) ] V(G,D)=ExPdata[logD(x)]+ExPc[log(1D(x))] 使该式值最大;
在这里插入图片描述
​ 如下图:当给定一个G时,寻找一个 D ∗ D^* D使得 V ( G , D ) V(G,D) V(G,D)最大,如下为推导过程,当给定一个x时,需要求一个 D ∗ D^* D使得 P data ( x ) log ⁡ D ( x ) + P G ( x ) log ⁡ ( 1 − D ( x ) ) P _ { \text {data} } ( x ) \log D ( x ) + P _ { G } ( x ) \log ( 1 - D ( x ) ) Pdata(x)logD(x)+PG(x)log(1D(x))最大:
在这里插入图片描述

​ 利用求导求 f ( D ) = alog ⁡ ( D ) + blog ⁡ ( 1 − D ) \mathrm { f } ( D ) = \operatorname { alog } ( D ) + \operatorname { blog } ( 1 - D ) f(D)=alog(D)+blog(1D)导数求得使该式子的最大值,最后得到的 D ∗ ( x ) = P d a t a ( x ) P d a t a ( x ) + P G ( x ) D ^ { * } ( x ) = \frac { P _ { d a t a } ( x ) } { P _ { d a t a } ( x ) + P _ { G } ( x ) } D(x)=Pdata(x)+PG(x)Pdata(x) f ( D ) f(D) f(D)最大;同时将求得的 D ∗ ( x ) D^*(x) D(x)代入下式:
V = E x ∼ P data [ log ⁡ D ( x ) ] + E x ∼ P G [ log ⁡ ( 1 − D ( x ) ) ] \begin{aligned} V & = E _ { x \sim P _ { \text {data} } } [ \log D ( x ) ] + E _ { x \sim P _ { G } } [ \log ( 1 - D ( x ) ) ] \end{aligned} V=ExPdata[logD(x)]+ExPG[log(1D(x))]
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
最终得到的 m a x V ( G , D ) maxV(G,D) maxV(G,D)符合Jensen–Shannon divergence (JS散度)

结论:根据原始GAN定义的判别器loss,我们可以得到最优判别器的形式;而在最优判别器下,我们可以把原始GAN定义的生成器loss等价变换为最小化真实分布 P d a t a P_{data} Pdata与生成分布 P G P_G PG之间的JS散度,我们越训练判别器,它就越接近最优,最小化生成器的loss也就越近似于最小化 P d a t a P_{data} Pdata P G P_G PG之间的JS散度。

参考:

https://zhuanlan.zhihu.com/p/25071913

https://zhuanlan.zhihu.com/p/29837245[GAN完善理论推导与实现]

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值