Generative Adversarial Nets
NIPS2014
问题
- 之前的一些工作在最大释然估计和近似推理(related strategies)中会遇到很多难以解决的概率计算困难
- 'and due to difficulty of leveraging the benefits of piecewise linear units in the generative context '(这里不是很理解,应该跟训练,反向传播有关)
本文提出了一种新的生成模型,解决了以上问题
方法
-
训练两个网络
- 一个生成模型:将随机噪声传输到多层感知机来生成假的样本
- 一个判别模型:也是通过多层感知机实现,将生成的假样本和真实的样本输入训练
- 可以用反向传播和dropout训练两个模型,生成模型在生成样本时只用前向传播算法
- 并且不需要近似推理和马尔科夫链作为前提
-
目标 :
-
KaTeX parse error: \tag works only in display equations
-
D ( x ) D(x) D(x) 是D output for real data $x $
-
D ( G ( z ) ) D(G(z)) D(G(z)) 是D ouput for generated fake data G ( z ) G(z) G(z)
-
Discriminator想最大化目标函数,让 D ( x ) D(x) D(x) 接近1(real) , D ( G ( z ) ) D(G(z)) D(G(z)) 接近0(fake)
-
Generator想最小化目标函数,让让 D ( G ( z ) ) D(G(z)) D(G(z)) 接近1(real)
-
初期,G的生成效果很差,D会高置信度来拒绝生成样本,因为它们跟真实数据明显不同,所以 log ( 1 − D ( G ( z ) ) ) \log (1-D(G(z))) log(1−D(G(z))) 会饱和
-
因此我们选择最大化 log D ( G ( z ) ) \log D(G(z)) logD(G(z)) (即最大化D出错的概率)而不是最小化 l o g ( 1 − D ( G ( z ) ) ) log (1-D(G(z))) log(1−D(G(z))) 来训练G
- 该目标函数使G和D在动力学稳定点相同,并且在训练初期,该目标函数可以提供更强大的梯度(CS231n 2017课程里有讲)
-
这个极大极小问题的全局最优解为 p g = p d a t a p_g=p_{data} pg=pdata 此时D无法区分训练数据分布和生成数据分布,即 D ( x ) = 1 2 D(x)=\frac{1}{2} D(x)=21 ,论文4.1给出证明(就求了一个导,令等于0,解出来 D G ∗ ( x ) = p d a t a ( x ) p d a t a ( x ) + p g ( x ) D_G^*(x)=\frac{p_{data}(x)}{p_{data}(x)+p_g(x)} DG∗(x)=pdata(x)+pg(x)pdata(x) 即得证
-
(1) 式等价于:
C ( G ) = m a x D V ( G , D ) C(G)=max_DV(G,D) C(G)=maxDV(G,D)
= E x ∼ p d a t a ( x ) [ log D G ∗ ( x ) ] + E x ∼ p z [ log ( 1 − D ∗ ( G ( z ) ) ) ] =\mathbb{E}_{x\sim p_{data}(x)}[\log D^*_G(x)]+\mathbb{E}_{x\sim p_{z}}[\log (1-D^*(G(z)))] =Ex∼pdata(x)[logDG∗(x)]+Ex∼pz[log(1−D∗(G(z)))]
= E x ∼ p d a t a ( x ) [ log D G ∗ ( x ) ] + E x ∼ p g [ log ( 1 − D ∗ ( x ) ) ] =\mathbb{E}_{x\sim p_{data}(x)}[\log D^*_G(x)]+\mathbb{E}_{x\sim p_{g}}[\log (1-D^*(x))] =Ex∼pdata(x)[logDG∗(x)]+Ex∼pg[log(1−D∗(x))]
= E x ∼ p d a t a ( x ) [ log p d a t a ( x ) p d a t a ( x ) + p g ( x ) ] + E x ∼ p g [ log p g ( x ) p d a t a ( x ) + p g ( x ) ] =\mathbb{E}_{x\sim p_{data}(x)}[\log \frac{p_{data}(x)}{p_{data}(x)+p_g(x)}]+\mathbb{E}_{x\sim p_{g}}[\log \frac{p_{g}(x)}{p_{data}(x)+p_g(x)}] =Ex∼pdata(x)</
-