Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in neural information processing systems. 2014: 2672-2680.
GitHub: https://github.com/goodfeli/adversarial
Abstract:
GAN 是一个通过对抗过程来估计生成模型的框架。我们同事训练两个模型:a generative model G G G 来你和数据的概率分布,a discriminative model D D D 来判断数据来自真实数据还是生成数据。训练是一个两人游戏的最大最小化过程, G G G最大化 D D D判断错误的概率, D D D最大化判断正确的概率。在任意的函数空间内, G G G和 D D D的解唯一存在,此时 G G G完全你和训练数据的分布, D D D的的结果永远为1/2。当 G G G和 D D D被定义为 multilayer perceptrons 时,可以通过 backpropagation 训练。在训练过程中完全不需要 Markov chains or unrolled approximate inference networks。
Introduction
在论文发表之前的 deap learning 中,判别模型有了很强大的应用,但是生成模型进展不大,本文把神经网络应用在生成模型,并且有很好的效果。
Adversarial nets
为了通过数据 x x x来学习分布 p g p_g pg,我们定义一个先验的输入噪声变量分布 p z ( z ) p_z(z) pz(z),然后把先验的随机变量 z z z映射到数据空间 G ( z ; θ g ) G(z;\theta_g) G(z;θg)。同样的我们定义另外一个 multilayer perceptron D ( x ; θ d ) D(x; θ_d) D(x;θd),输出 x x x是否来自真实数据的概率。我们通过最大化分辨真实数据和生成数据来训练 D D D,通过最小化 l o g ( 1 − D ( G ( z ) ) ) log(1-D(G(z))) log(1−D(G(z)))来训练 G G G。
换句话说, G G G和 D D D相当于玩一个 two-player minimax game with value function V ( G , D ) V(G,D) V(G,D):
m i n G m a x D V ( G , D ) = E x ∼ P d a t a ( x ) [ l o g D ( x ) ] + E z ∼ p z ( z ) [ l o g ( 1 − D ( G ( z ) ) ) ] min_Gmax_DV(G,D)=E_{x\sim P_{data}(x)}[logD(x)]+E_{z\sim p_z(z)}[log(1-D(G(z)))] minGmaxDV(G,D)=Ex∼Pdata(x)[logD(x)]+Ez∼pz(z)[log(1−