生成对抗网络(一)GAN讲解
原文:Generative Adversarial Nets
收录:NIPS(NeurIPS) 2014 (Conference and Workshop on Neural Information Processing Systems)


 

ABSTRACT

        提出一个通过对抗的过程来评估生成模型的新框架,在此过程中我们同时训练两个模型:①用来捕获数据分布的生成模型G,②用来预测来自训练真实样本,而不是 G 中fake样本的概率的判别模型D,D可被看作是binary classifier

        G的训练过程就是使D产生错误的概率最大化,G不断升级,整个框架相当于一个minimax的双方对抗游戏。
                        生成对抗网络(一)GAN讲解
        上图D则是来判别G生成的image quality是真实的还是G生成的,若判别成G生成的话,之后G就升级,让自己生成的image quality不断趋近于真实quality,使D产生错误的概率增加,达到以假乱真的效果,同时D也会不断升级。


 

1. INTRODUCTION

        生动来理解则是:生成模型G可以被认为是伪造团队,试图生产假币并在不被发现,而判别模型D类似于Cops,试图检测假币。在这个游戏中的竞争使双方不断改进他们的方法,直到真假难分为止;
 
        在这篇文章中,我们探讨一个特例:即生成模型通过将随机噪声传输到多层感知机来生成样本,同时判别模型也是一个多层感知机。我们称这个特例为对抗网络。在这种情况下,我们可以仅使用成熟的反向传播和Dropout算法训练两个模型,生成模型只使用前向传播算法来生成样本,无论train还是generate,GAN都不需要近似推理和马尔可夫链作为前题。


2. Adversarial nets

 
        当模型是多层感知器时,对抗模型框架是最直接应用的。
 

2.1. 符号定义

符号 含义
data 真实数据
pdata 真实数据的分布
z 输入的噪音(G的输入)
pz 原始噪音的分布
pg 经过生成器后的数据分布
G(z ; θg) 生成函数
D(x ; θd) 判别函数,输出一个标量,表示数据x来自data而不是来自G的概率
θg 、θd 参数

2.2. 目标函数解读

                生成对抗网络(一)GAN讲解

  • 从D 升级的角度看,由于输入D的x是real image时,D(x ; θd)最大,所以为了能让D尽可能区分real和fake,则D(x)尽可能大,D(G(z))尽可能小,那么目标函数越大;
  • 从G 升级角度看,恰恰相反,因为G想尽可能骗过D,所以希望和D相反,D(G(z))尽可能大,目标函数尽可能小。

因此,具体D、G升级,怎么操作见2.3. 梯度更新算法。

生成对抗网络(一)GAN讲解
        其中黑线表示pdata(x),绿线表示pg(z),这样说清楚利于理解。

        从左至右看出,最左边的 z 的映射 G(z) 和 data 分布的差异很大,黑线凸起部分D输出概率值高,在下降部分,D的输出概率值也随之下降(D输出值越小说明在这个区间fake越多),这时候D能明显区分real和fake两者;随着训练推进,虚假样本的分布逐渐与真实样本重合,这时候D已经不能分辨,模型也达到最优,D的输出稳定在0.5。


2.3. 梯度更新算法

        下图则是生成对抗网络minibatch随机梯度下降训练,在给定 G 的情况下先最大化 V(D,G) 而更新 D 的参数,然后固定 D ,最小化 V(D,G) 而得到 G。
生成对抗网络(一)GAN讲解


2.4. 全局最优

 
        首先任意给生成器 G ,考虑最优判别器 D,全局最优则是pg = pdata

命题1:先固定G,最优判别器DG(x)D_{G}^{*}(x)为:
                                        生成对抗网络(一)GAN讲解
证明:给定任意生成器G,判别器D的训练标准为最大化目标函数V(G,D):
                生成对抗网络(一)GAN讲解
        但是对于任意的(a,b)∈R2{0,0},函数y=a·log(y)+b·log(1-y)在[0,1]中的aa+bfrac{a}{a+b}处达到最大值,证毕。

所以,目标函数可化为下式:
                生成对抗网络(一)GAN讲解
定理一:当且仅当pg = pdata时,,C(G)达到全局最小。此时,C(G)的值为 - log4。


 

Reference

  1. GAN论文阅读——原始GAN(基本概念及理论推导)
  2. Generative Adversarial Nets(译)
  3. Scott Rome GAN推导
  4. GAN完整理论推导、证明与实现
  5. 李宏毅讲解