GAN网络理解

GAN网络理解

笔者参考下面资料后,对GAN的理解做了一些简单记录。
资料参考: Understanding Generative Adversarial Networks (GANs)
其他资料:GAN 2014 paper; NIPS 2016 Tutorial: Generative Adversarial Networks

Understanding Generative Adversarial Networks (GANs)

在这里插入图片描述

GAN网络于2014年提出,作为一种新颖的网络结构被广泛使用。GAN网络主要包含两部分,一个为生成器G,一个为判别器D。生成器的目的是通过生成与训练数据相近的数据,来尽可能混淆判别器D的判断,判别器则要尽可能分别该数据是来自G还是真实的训练数据。最终的理想收敛结果为:生成器的生成数据的概率密度分布与真实训练数据相同,判别器对于任一来自G或者训练数据,判断为真实训练数据的概率都为1/2,即G生成的数据足够逼真,使得D完全无法判断是否为真实数据。
GAN网络的loss为:
在这里插入图片描述

1、首先在固定G时,根据梯度下降算法调整D参数,使得loss = V(D)变大。因为对于x~pdata(x),logD(x) = 0, x~pz(z)时,log(1-D(G(z))) = 0为损失函数的极大值。
2、然后在固定D时,调整G参数,使得V(G)变小,因为G的目的是生成数据,使得D(G(z))趋近于1,所以此时的V(G) 只有上式中的后一项,此时log(1-D(G(z))趋向于负无穷,为此时V(G)的极小值。
3、不断经过交替优化,从而可以收敛到“生成器的生成数据的概率密度分布与真实训练数据相同,判别器对于任一来自G或者训练数据,判断为真实训练数据的概率都为1/2”这一理想情况(假设G,V子网络的拟合能力为无穷)。

相关理论推导也证明了,这种“非直接”的生成对抗模型,可以与“直接”的生成模型一样,最后可以使得G生成数据的概率密度函数与真实数据的概率密度函数相等。但这种“非直接”的对抗训练,避免了“直接”生成模型需要知道真实数据的概率密度函数,因为对于复杂的数据,我们通常无法知道其分布的概率密度函数。

猜你喜欢

转载自blog.csdn.net/qq_35898332/article/details/110870536