https://blog.csdn.net/TracelessLe/article/details/106452469
Generative Adversarial Nets
Generative Aderverisal Network.pdf

【我只能说想出GAN的人真牛比】

什么是GAN

百度百科:生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。原始 GAN 理论中,并不要求 G 和 D 都是神经网络,只需要是能拟合相应生成和判别的函数即可。但实用中一般均使用深度神经网络作为 G 和 D 。一个优秀的GAN应用需要有良好的训练方法,否则可能由于神经网络模型的自由性而导致输出不理想。

简而言之,就是,生成器和鉴别器互相博弈。

GAN由两个部分组成:

  • 生成器 Generator,例如生成一张新的猫咪图片(不在数据集里)
  • 判别器 Discriminator,例如给定一张图,判断这张图里的动物是猫还是狗

image.png

核心思想:
零和博弈,通过让生成器 Generator和判别器 Discriminator相互对抗,Generator试图生成接近真实的数据,Discriminator试图区分真实的数据和由Generator生成的数据。最终达到一个“平衡”,即Generator生成的数据足够真实,Discriminator只是是随机猜测,无法再区分真实数据与生成数据的区别。

GAN的原理

真实数据集的分布为image.png,对于生成器Generator而言,它的目标是希望能够学习到真实样本的分布,这样就可以随机生成以假乱真的样本。
image.png

给定输入噪声GAN - 图4,现有的 Generator 生成的数据分布假设为GAN - 图5,这是一个由GAN - 图6控制的分布,GAN - 图7是这个分布的参数(如果是高斯混合模型,那么θ就是每个高斯分布的平均值和方差))。然后定义判别器GAN - 图8,其中GAN - 图9表示,x来自GAN - 图10而非GAN - 图11的概率。
我们的目标是训练判断器D以使其能最大可能地区分来自GAN - 图12GAN - 图13的样本,同时训练生成器G以最小化image.png,从而生成真假难辨的数据。


这里就是GAN的核心——数学核心及思想上的核心,纳什均衡

D和G博弈的价值函数GAN - 图15
image.png
这里的价值函数是整个GAN的核心。

其中,GAN - 图17表示D判断真实数据是否是真实的概率,GAN - 图18表示D判断G生成的数据是否是真实的概率。
G希望GAN - 图19尽可能大,此时GAN - 图20会变小,即GAN - 图21
D希望GAN - 图22尽可能大,GAN - 图23尽可能地小,此时GAN - 图24会变大,即GAN - 图25

如何同时满足G和D的努力方向呢?只要把他们加起来就好了。
image.png

交替训练最终达到纳什平衡状态。

image.png这是log(1-x)的图像。

image.png


这里一个小题外话——纳什均衡是普遍的大趋势