生成对抗网络(Generative Adversarial Networks)

1. GAN生成对抗网络的原理及实现

模型结构及优化

目标函数:

其中,$\mathbf{x}$为服从分布$p_{data}\left(\mathbf{x}\right)$的样本数据,$\mathbf{z}$为服从先验分布$p_\mathbf{z}\left(\mathbf{z}\right)$的输入随机噪声变量,生成器$G\left(\cdot\right)$为多层感知机表示的输入随机噪声变量到数据空间的映射函数,$G\left(\mathbf{z}\right)\sim p_G$服从从样本数据$\mathbf{x}$学习到的分布$p_G$,判别器$D\left(\cdot\right)$为多层感知机表示的区分数据分布$p_{data}$还是生成器分布$p_G$的判别函数。

优化问题:

给定任意生成器$G$,判别器$D$的训练目标是最大化目标函数$V\left(G,D\right)$

得最优判别器

将最优判别器$D_G^{*}\left(\mathbf{x}\right)$代入,得目标函数

优化问题:

由于$p_{data}$和$p_G$两个分布的JS散度是非负的,当且仅当$p_{data}=p_G$时JS散度等于$0$,目标函数$C\left(G\right)$的最小值为$C^{*}=-2\log2$,即生成器完整的复现了数据的生成过程。

小批量随机梯度下降训练算法

生成对抗网络的小批量随机梯度下降训练算法:
输入:数据分布$p_{data}\left(\mathbf{x}\right)$,输入噪声先验分布$p_\mathbf{z}\left(\mathbf{z}\right)$,训练轮次$n$,判别器训练步数$k$,小批量$m$;
输出:判别器$D\left(\mathbf{x};\theta_d\right)$和生成器$G\left(\mathbf{z};\theta_g\right)$

  1. for 训练轮次$n$ do
    1.1 for 判别器训练步数$k$ do
    1.1.1 从输入噪声分布$p_\mathbf{z}\left(\mathbf{z}\right)$生成$m$个小样本噪声样本$\left\{\mathbf{z}^{\left(1\right)},\cdots,\mathbf{z}^{\left(m\right)}\right\}$
    1.1.2 从数据分布$p_{data}\left(\mathbf{z}\right)$生成$m$个小样本数据$\left\{\mathbf{x}^{\left(1\right)},\cdots,\mathbf{x}^{\left(m\right)}\right\}$
    1.1.3 通过增加随机梯度更新判别器

    1.2 end for
    1.3 从输入噪声分布$p_\mathbf{z}\left(\mathbf{z}\right)$生成$m$个小样本噪声样本$\left\{\mathbf{z}^{\left(1\right)},\cdots,\mathbf{z}^{\left(m\right)}\right\}$
    1.4 通过降低随机梯度更新生成器

  2. end for

2 深度卷积生成对抗网络

模型架构特点

  1. 判别器中使用跨步卷积(strided convolutions)替换池化层;生成器中使用微步卷积(fractional-strided convolutions)替换池化层;
  2. 判别器和生成器都使用批归一化;
  3. 判别器和生成器都移除全连接隐层;
  4. 生成器中的所有层都使用ReLU激活函数,但输出层除外,后者使用Tanh激活函数;
  5. 判别器中的所有层都使用LeakyReLU激活函数。

3. 生成对抗网络的改进及发展

对数据分布$p_{data}$和生成分布$p_G$加入噪声

当数据分布$p_{datea}$与生成分布$p_G$的支撑集是高维空间中的低维流形时,$p_{data}$与$p_G$重叠部分测度为$0$的概率为$1$,即分布$p_{data}$与分布$p_G$没有重叠或重叠非常少。而当分布$p_{data}$与分布$p_G$没有重叠或重叠非常少时,JS散度为常量,很难衡量两个分布的距离。使得生成器$G\left(\mathbf{z}\right)$的梯度为$0$,造成梯度消失。

目标函数:

其中,$p_{data+\epsilon}$为加入噪声后的数据分布,$p_{G+\epsilon}$为加入噪声后的生成分布。

使用Wasserstein距离进行分布度量

Wasserstein距离(Earth-Mover距离):

其中,$\Gamma\left(p_{data},p_G\right)$为分布$p_{data}$与$p_G$的所有可能的联合分布集合,$d\left(\mathbf{x},\mathbf{y}\right)$为$\mathbf{x}$和$\mathbf{y}$之间的欧氏距离。

wd

由于Wasserstein距离可表示为

其中,$|f|_L$为函数$f$的Lipschitz常数。

所以可得

其中,$f_w$为由参数$w$表示的函数。

WGAN生成器损失:

WGAN判别器损失:

4参考资料:

《Generative Adversarial Nets》

《UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS》

《Wasserstein GAN》


Deep Learning      GAN

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

Transfer_Learning 下一篇