一个生成模型G:学习到数据分布,使得D犯错概率最大
一个判别模型D:判别一个样本是来自真实数据还是G
存在一个特解,使得G可以涵盖住真实训练数据分布,D的判别概率始终是\(\frac{1}{2}\)
对于MLP定义的G和D,可以使用反向传播训练整个系统,而不需要使用任何的马尔科夫链或者是展开的近似推理网络。
导论
迄今为止,大多数深度学习伟大的成功都是在判别模型上,将高维复杂的输入映射到一个类别标签。
而生成模型则有着很多的困难,如很难在极大似然估计和相关策略中进行概率计算,并且生成模型的上下文中难以利用分层线性单元的优势。
本文提出了一个新的规避了这些困难的生成模型。
GAN框架能够给很多模型和优化问题提供一种训练方法。
对抗网络
为了从数据 \(x\)
上学习到生成器的分布 \(p_g\)
,我们先给定一个先验输入噪声 \(p_z(z)\)
然后利用 \(G(z;\theta_g)\)
将z映射到数据空间,其中G是一个多层感知机。
再定义一个 \(D(x;\theta_d)\)
:计算x来自真实数据而不是生成器生成的分布\(p_g\)的概率。
训练D以最大化分类正确率,并且同时训练G以最小化\(\log(1-D(G(z)))\)
最终的评估函数:
\[ \min _{G} \max _{D} V(D, G)=\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] \tag{1} \]
训练过程中,不会在一次训练循环里直接完成D的优化,那在有限数据集里会导致过拟合。因此,我们会在优化K次D和优化1次G中交替进行。只要G变化的足够缓慢,这将有助于保持D在它最优解的附近。
这个策略类似于SML/PCD[2]中,为了避免样本在马尔科夫链中学习迭代时burning的方式。,
实际上,公式(1)可能不能给G提供足够的梯度以供学习。在训练的初期,G效果很差,D可以轻易的分辨出数据的真假。此时 \(\log(1-D(G(z)))\) 变得饱和:即接近极限了已经,变化很小。相比于训练G以最小化 \(\log(1-D(G(z)))\) ,我们可以训练G以最大化\(\log(D(G(z)))\) ,这个目标函数可以有相同的结果但是有更好的梯度。
理论
生成器G隐式地定义了一个概率分布 \(p_g = G(z)\)——即从 \(z \sim p_z\) 中的采样结果。因此,我们希望训练算法在充分的环境下,可以最终收敛出一个不错的估计器来估计 \(p_{data}\) 。
接下来会证明这个minimax过程对于 $p_g = p_{data} $ 有一个全局最优解。然后会证明公式(1)可以通过训练算法来获得最优解。
训练算法
GAN的小批量随机梯度下降训练。
K:超参数,表明在判别器D上经过的step。
for number of training iterations do
for \(k\) steps do
- 从先验噪声 \(p_{g}(z)\) 中采样出m大小的小批量样本 \(\left\{z^{(1)}, \ldots, z^(m)\right\}\)
- 从真实数据分布 \(p_{\text {data }}(\boldsymbol{x})\) 中采样出m大小的小批量样本 \(\left\{\boldsymbol{x}^{(1)}, \ldots, \boldsymbol{x}^{(m)}\right\}\)
- 通过随机梯度下降更新判别器D:
\[ \nabla_{\theta_{d}} \frac{1}{m} \sum_{i=1}^{m}\left[\log D\left(\boldsymbol{x}^{(i)}\right)+\log \left(1-D\left(G\left(z^{(i)}\right)\right)\right)\right] \]
end \(k\) for
从先验噪声 \(p_{g}(z)\) 中采样出m大小的小批量样本 \(\left\{z^{(1)}, \ldots, z^(m)\right\}\)
通过随机梯度下降更新生成器G:
\[ \nabla_{\theta_{g}} \frac{1}{m} \sum_{i=1}^{m} \log \left(1-D\left(G\left(z^{(i)}\right)\right)\right) \]
end train iterations for
证明 \(p_g = p_{data}\) 的全局最优解
首先证明:固定G时,D的最优解为
\[ D_{G}^{*}(x)=\frac{p_{\text {data }}(x)}{p_{\text {data }}(x)+p_{g}(x)} \]
给定任何G,D,训练目标都是最大化 \(V(G, D)\) :
\[ \begin{aligned} V(G, D) &=\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] \\ 期望展开&=\int_{\boldsymbol{x}} p_{\text {data }}(\boldsymbol{x}) \log (D(\boldsymbol{x})) d x+\int_{\boldsymbol{z}} p_{\boldsymbol{z}}(\boldsymbol{z}) \log (1-D(g(\boldsymbol{z}))) d z \\ 换元z到x&=\int_{\boldsymbol{x}} p_{\text {data }}(\boldsymbol{x}) \log (D(\boldsymbol{x}))+p_{g}(\boldsymbol{x}) \log (1-D(\boldsymbol{x})) d x \end{aligned} \]
求积分最大值可以转化为求被积函数最大值:
\[ \begin{aligned} V(G,D)&=\int_{\boldsymbol{x}} p_{\text {data }}(\boldsymbol{x}) \log (D(\boldsymbol{x}))+p_{g}(\boldsymbol{x}) \log (1-D(\boldsymbol{x})) d x \\ &\leq \int_{\boldsymbol{x}} \max _{y} p_{\text {data }}(\boldsymbol{x}) \log (y))+p_{g}(\boldsymbol{x}) \log (1-y) d x \end{aligned} \]
并且因为固定G求D的最优,因此不涉及D的都可看作常数项即:
\[ \begin{aligned} f(D(x)) &= p_{\text {data }}(\boldsymbol{x}) \log (D(\boldsymbol{x}))+p_{g}(\boldsymbol{x}) \log (1-D(\boldsymbol{x})) \\ &= a \log D + b \log (1-D) \\ 即 f(y) &= a \log y + b \log (1-y) \end{aligned} \]
其中 $ a,b (0,1) $ 。为了求最优解,对该式计算 \(y\) 的一阶导可得 \(y=\frac{a}{a+b}\),继续求该位置的二阶导可得:
\[ f^{\prime \prime}\left(\frac{a}{a+b}\right)=-\frac{a}{\left(\frac{a}{a+b}\right)^{2}}-\frac{b}{1-\left(\frac{a}{a+b}\right)^{2}}<0 \]
因此最优D为:
\[ \begin{aligned} D_{G}^{*}(x)&=\frac{p_{\text {data }}(x)}{p_{\text {data }}(x)+p_{g}(x)} \\ P_G=P_{data}时,&= \frac{1}{2} \end{aligned} \]
定理1:\(C(G)\) 当且仅当 \(p_g = p_{data}\) 时取得全局最小值 -log4
证明:
结合公式(1)和$ D $的最优解,可知 $ C(G) $ 有如下表达式 :
$$ \[\begin{aligned} C(G)&=\int_{x} p_{\text {data }}(x) \log \left(\frac{p_{\text {data }}(x)}{p_{G}(x)+p_{\text {data }}(x)}\right)+p_{G}(x) \log \left(\frac{p_{G}(x)}{p_{G}(x)+p_{\text {data }}(x)}\right) \mathrm{d} x \\ p_g = p_{data} 时 , C(G) &=- log 4 \end{aligned}\]$$
为了检查这个 -log4 是不是最优值,构造方程:
$$ \[\begin{aligned} C(G) &=\int_{x}(\log 2-\log 2) p_{\text {data }}(x)+p_{\text {data }}(x) \log \left(\frac{p_{\text {data }}(x)}{p_{G}(x)+p_{\text {data }}(x)}\right) \\ &+(\log 2-\log 2) p_{G}(x)+p_{G}(x) \log \left(\frac{p_{G}(x)}{p_{G}(x)+p_{\text {data }}(x)}\right) \mathrm{d} x \\ \\ &=-\log 2 \int_{x} p_{G}(x)+p_{data}(x) \mathrm{d} x +\int_{x} p_{data}(x)\left(\log 2+\log \left(\frac{p_{data}(x)}{p_{G}(x)+p_{\text {data }}(x)}\right)\right) \\ &+p_{G}(x)\left(\log 2+\log \left(\frac{p_{G}(x)}{p_{G}(x)+p_{data}(x)}\right)\right) \mathrm{d} x \\ \\ C(G)&=-\log 4+\int_{x} p_{\text {data }}(x) \log \left(\frac{p_{\text {data }}(x)}{\left(p_{G}(x)+p_{\text {data }}(x)\right) / 2}\right) \mathrm{d} x \\ &+\int_{x} p_{G}(x) \log \left(\frac{p_{G}(x)}{\left(p_{G}(x)+p_{\text {data }}(x)\right) / 2}\right) \mathrm{d} x \end{aligned}\]$$
后面两个积分式即是KL散度(一种衡量分布差异的方法):
KL散度为非负值,具有非对称性,且KL散度为0当且仅当两个离散分布处处相同。
\[ D_{\mathrm{KL}}(P \| Q)=\mathbb{E}_{\mathrm{x} \sim P}\left[\log \frac{P(x)}{Q(x)}\right]=\mathbb{E}_{\mathrm{x} \sim P}[\log P(x)-\log Q(x)] \]
\[ C(G)=-\log 4+K L\left(p_{\text {data }} \mid \frac{p_{\text {data }}+p_{G}}{2}\right)+K L\left(p_{G} \mid \frac{p_{\text {data }}+p_{G}}{2}\right) \]
由于KL散度的非负性质,我们可以得到-log4即为\(C(G)\)的全局最小值。进一步需要证明 \(p_G=p_{data}\) 是取值的唯一点。
因为KL散度是非对称的,因此构造两个相反的KL散度相加,它们的和就是对称项,即可以表示为JS散度:
\[ JSD(P \| Q) = \frac{1}{2}KL(P \|(P+Q)/2) +\frac{1}{2}KL(Q \|(P+Q)/2) \]
因此 \(C(G)\) 可表示为:
\[ C(G)=-\log 4 +2 JSD(p_{data}|p_G) \]
根据JS散度非负,且只有 $p_G=p_{data} 时 , JSD=0 $。 综上所述,得证。
实验效果
优缺点
缺点:
- 对 \(p_g (x)\) 没有显式的表达。
- G不能在更新D之前训练过多,要不然会发生模型崩溃问题。
模型崩溃Mode collapse 是指 GAN 生成的样本单一。当G发现一种样本可以欺骗到D时,就只会生成那一种mode的样本。判别网络最后会判别来自该 mode 的样本是假的。最后,生成网络 G 会简单地锁定到另一个 mode。该循环会无限进行,就会限制生成样本的多样性
优点:
- 只需要反向传播,不需要马尔科夫链,不需要推理网络
- 多种多样的模型可以结合在GAN的框架中。
- 不会直接使用真实数据样本去更新G,而是只能通过判别器的梯度引导。换句话说,生成器不会直接copy原始输入。
Other
为什么要distribution?
为了同样的输入能够产生不同的输出
JS散度的问题?
如果两个分布完全不重叠,JS散度值始终是 log 2,改进有Wasserstein
distance...
参考文献
[1]Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[J]. Advances in neural information processing systems, 2014, 27.
[2]Younes, L. (1999). On the convergence of Markovian stochastic algorithms with rapidly decreasing ergodicity rates. Stochastics and Stochastic Reports, 65(3), 177–228.
[3]GAN完整理论推导与实现, 机器之心, https://www.jiqizhixin.com/articles/2017-10-1-1