GAN——生成式对抗网络

GAN的定义

  GAN是一个评估和学习生成模型的框架。生成模型的目标是学习到输入样本的分布,用来生成样本。GAN和传统的生成模型不同,使用两个内置模型以“对抗”的方式来使学习分布不断接近输入样本分布。两个模型一个是生成式模型(Generative model),用来生成样本;另一个是判别式模型(Discriminative model),用来判断样本是否真实而不是来自生成模型。生成模型并不直接学习输入样本的分布,而是通过“欺骗”判别模型的方式提高输入分布的逼近程度;判别模型则是使用生成样本和真实样本来提高判别准确率。

  对于生成模型$G$和判别模型$D$,GAN的要实现的就是:

$\min\limits_{D}\max\limits_{G} V(D,G)$

$ V(D,G) = E_{x\sim p_{data}}[\log_{}D(x)] + E_{z\sim p_z}[\log_{}(1-D(G(z)))]$

  其中$p_z$是随机数$z$的分布,通常是均匀分布。$G(z)$就是基于这个随机数,生成的样本。$D(x)$就是样本$x$为真实样本的概率。使用随机梯度的方法进行优化的过程如下:GAN——生成式对抗网络

  每次分别随机拿到$m$个真实和生成样本用来对函数($\theta_d$、$\theta_g$分别包含在$D$和$G$中)

$\displaystyle f(\theta_d) = \frac{1}{m}\sum\limits_{i=1}^{m}[\log_{}D(x^{(i)})+\log_{}(1-D(G(z^{(i)})))]$

  梯度上升,也就是优化判别模型;再生成$m$个样本用来对函数

$\displaystyle g(\theta_g) = \frac{1}{m}\sum\limits_{i=1}^{m}[\log_{}(1-D(G(z^{(i)})))]$

  梯度下降也就是优化生成模型。最终二者都达到最优。

  以下是拟合的过程图:

GAN——生成式对抗网络

  黑点线是样本$x$的真实分布,绿线是样本$x$的生成模型分布,蓝虚线是判别模型判断$x$属于真实的概率,下方的$z$是均匀分布随机数$z$到生成样本$x$的映射。

  a图是初始化时,判别模型$D$和生成模型$G$都很差。

  b图是取样本来更新$D$,$D$在此刻变为最优。也就是说,在当前的$G$下,对于每个$x$,都能正确得出它是真实样本的概率:

$\displaystyle D(x) = \frac{p_{data}}{p_{data}+p_g}$,

  证明在后面,不过想想也是这么一回事。比如看绿线和黑点线中间的交叉点,此时$x$的真实概率为0.5。

  c图是更新$G$,$G$在此刻$D$的基础上变得不错了。

  d图是一直迭代到最后,$G$和真实分布一模一样,而$D$的判断概率全是0.5。但是,一模一样也不是很好。因为样本集总是有限的,并不能完全契合样本全体的分布,所以如果生成分布和样本集分布一模一样的话可能会过拟合。

全局最优

  对任意给定的$G$,最优的$D$对每个样本$x$,都有:

$D_G^*(x) = \displaystyle  \frac{p_{data}}{p_{data}+p_g}$

  因为要最大化$\theta_d$的函数:

$\displaystyle V(G,D) = \int_x p_{data}(x)\log_{}(D(x)) + p_g(x)\log_{}(1-D(x))dx$  

  也就是对于每个$x$,积分函数都取最大值。而函数

$h(y) = a\log_{}(y)+b\log_{}(1-y),a\ge 0,b\ge 0$

  在

$\displaystyle y^*=\frac{a}{a+b}$

  时最大。因为$0< y < y^*$时$h'(y)$大于零,而$y^*< y < 1$时$h'(y)$小于零。因此得证。

  假如$G$训练到了最优,也就是输出分布与输入样本分布相同,即$p_{data}=p_g$,而$D$也最优时,有:

$\displaystyle V(D,G) = E_{x\sim p_{data}}\left[\log_{}\frac{p_{data}(x)}{p_{data}(x)+p_g(x)}\right] + E_{x\sim p_g}\left[\log_{}\frac{p_{g}(x)}{p_{data}(x)+p_g(x)}\right]$

$\displaystyle = E_{x\sim p_{data}}\left[\log_{}\frac{1}{2}\right] + E_{x\sim p_g}\left[\log_{}\frac{1}{2}\right]=-\log_{}4$

参考文献

  Generative Adversarial Networks
上一篇:变老 - 4 - Interpreting the Latent Space of GANs for Semantic Face Editing- 1 - 论文学习(人脸编辑)


下一篇:人工智能中小样本问题相关的系列模型演变及学习笔记(二):生成对抗网络 GAN