我们提出一种通过对抗性过程来估计生成式模型的新框架,我们同时训练两个模型:一个捕获数据分布的生成式模型
深度学习的承诺 (promise) 是发现丰富的、有层次的模型 [2],这些模型表示人工智能应用中遇到的各种数据的概率分布,比如自然图像、包含语音的音频波形和自然语言语料库中的符号。到目前为止,深度学习中最惊人的成功已经涉及到判别式模型,这些模型通常将一个高维的、富有感官的输入映射到一个类别标签。这些惊人的成功主要是基于反向传播和 dropout 算法,使用具有特别好梯度的分段线性单元。由于在最大似然估计和相关策略中的许多难以近似的棘手的概率计算,以及在生成环境中难以利用分段线性单元的好处,深度生成式模型的影响较小。我们提出一种新的生成式模型估计程序来避开这些困难。
在提出的对抗网络框架中,生成式模型是与一个对手对抗的:一个判别式模型,它学习判定一个样本是来自模型分布还是数据分布。生成式模型可以被认为是一个造假的团队,试图产生假的假币并使用它而不被发现,而判别式模型类似警察,试图发现假币。这场比赛的竞争促使两支队伍改进它们的方法,直到仿冒品与真品难以区分。
ps: 最终希望生成式模型能胜过判别式模型,然后能生成与真实分布一致的数据。
这个框架可以为多种模型和优化算法提供特定的训练算法。在本文中,我们探讨了当生成式模型通过将一个随机噪声传递给一个多层感知机来生成样本,并且判别式模型同样是一个多层感知机的特殊情况。我们把这种特殊情况称为对抗网络。在这种情况下,我们可以只使用非常成功的反向传播和 dropout 算法训练两个模型,并只使用前向传播从生成式模型中采样。不需要近似推理或者马尔可夫链。
直到最近,大多数关于深度生成式模型都集中在为概率分布函数提供参数规范的模型上。然后可以通过最大化对数似然来训练模型。在这一系列模型中,也许最成功的是深度玻尔兹曼机。这类模型通常具有难以处理的似然函数,因此需要对似然梯度进行无数次近似。这些困难推动了 "生成式机器"——模型不显式地表示似然,但能从期望的分布中生成样本。生成随机网络是生成式机器的一个例子,它可以用精确的反向传播来训练,而不是玻尔兹曼机器所需的无数次近似。这项工作通过消除生成随机网络中使用的马尔可夫链,扩展了生成式机器的思想。
我们的工作通过使用以下的观察将梯度反向传播给生成过程:
$$
\large \lim_{\sigma \rightarrow 0} \nabla_x \mathbb{E}_{\epsilon \sim \mathcal{N}(0,\sigma^2 \boldsymbol{I})} f(\boldsymbol{x} + \epsilon) = \nabla_x f(\boldsymbol{x})
$$
ps: 即
在我们开展这项工作时,我们不知道 Kingma 和 Welling [18] 和 Rezende 等人 [23] 已经研究出了更通用的随机反向传播规则,允许模型通过具有有限方差的高斯分布来反向传播,并反向传播到协方差参数和均值。这些反向传播规则可以让模型学习生成器的条件方差,我们在本工作中把它当作超参数。Kingma 和 Welling 和 Rezende 等人使用随机反向传播训练变分自编码器 (VAEs)。像生成式对抗网络一样,变分自编码器将一个可微分生成器网络与第二个神经网络配对。不像生成式对抗网络,VAE 中的第二个神经网络是一个执行近似推理的识别模型。GANs 需要通过可视单元进行微分,因此不能对离散数据进行建模,而 VAEs 需要通过隐藏单元进行微分,因此不能有离散的潜在变量。存在着其他的 [12, 22] 类似 VAE 的方法,但与我们的方法的关系不太密切。
先前的工作 [29,13] 也采用了使用一个判别式准测来训练一个生成式模型的方法。这些方法使用的准则是深度生成式模型难以处理的。深度模型甚至很难近似这些方法,因为它们涉及到概率的比率,不能用降低概率边界的变分近似来近似。噪声对比估计 (NCE) 涉及通过学习使模型在从固定噪声分布中区分数据有用的权重来训练生成式模型。使用先前训练过的模型作为噪声分布,可以训练一系列质量不断提高的模型。这可以被视为一种非正式的竞争机制,在精神上类似于对抗性网络游戏中使用的正式的竞争。NCE 的关键限制是它的 "鉴别器" 是由噪声分布和模型分布的概率密度的比率来定义的,因此需要评估和反向传播两个密度的能力。
先前的一些工作使用了一般意义上的两个神经网络对抗的概念。最相关的工作是可预测性最小化。在可预测性最小化中,神经网络中的每个隐藏单元都被训练成不同于第二个网络的输出,第二个网络是在给定其他隐藏层神经元的值的情况下预测那个隐藏层神经元的值。本项工作在三个重要方面不同于可预测性最小化:1) 在这项工作中,网络之间的竞争是唯一的训练准则,它本身足以支撑训练网络。可预测性最小化仅是一个正则器,它促进网络中的隐藏单元在完成其他任务时保持统计上的独立性;这不是首要的训练准则。2) 竞争的本质不同。在可预测性最小化中,两个网络的输出进行比较,其中一个网络试图使两个网络的输出相似,而另外一个网络试图使两个网络的输出不同。所讨论的输出是一个标量。在 GANs 中,一个网络产生一个多样的、高维的向量作为另外一个网络的输入,并试图选择一个使另外一个网络不知道如何处理的输入。3) 学习过程的规范不同。可预测性最小化被描述为一个最小化目标函数的优化问题,并学习逼近目标函数的最小值。GANs 是基于极大极小博弈而不是优化问题的,它有一个价值函数,一个 agent 寻求最大化,而另外一个寻求最小化。博弈终止于一个鞍点,这个鞍点对于一方的策略是最小值,对于另一方的策略是最大值。
生成式对抗网络有时会与 "对抗样本" 这个概念混淆。对抗样本是指直接在分类网络的输入上使用基于梯度的优化找到的样本,以便找到与数据相似但被错误分类的样本。这与当前的工作不同,因为对抗样本不是一种用于训练一个生成式模型的机制。相反,对抗样本主要是一种分析工具,以有趣的方式展示神经网络行为,经常自信地以高置信度对两张图像进行不同分类,即使它们之间的差异对于人类观察者来说是难以察觉的。这种对抗样本的存在表明生成式对抗网络的训练可能是低效的,因为它们表明现代判别式模型在不模拟任何人类可感知的类别属性时,就能自信地识别出类别。
对抗建模框架的最简单的应用是当生成器和鉴别器都是多层感知机。为了学到生成器在数据
实际上,等式 1 可能无法提供足够的梯度让
生成器
我们将在 4.1 节中展示极大极小博弈对于
图 1: 通过同时更新鉴别分布 (D,蓝色虚线) 来训练生成式对抗网络,使
算法 1 生成式对抗网络的小批量梯度随机下降训练。应用于判别器的 steps
for 训练迭代次数 do
for k steps do
- 从噪声先验
- 从数据生成分布
- 通过 ascending (上升?) 它的随机梯度来更新鉴别器:
$$ \large \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( \boldsymbol{z}^{(i)} \right) \right) \right) \right] $$ end for
- 从噪声先验
- 通过 descending (下降?) 它的随机梯度来更新生成器: $$ \large \nabla_{\theta_d} \frac{1}{m} \sum_{i = 1}^m \log \left( 1 - D \left( G \left( \boldsymbol{z}^{(i)} \right) \right) \right) $$ end for
基于梯度的更新可以使用任何标准的基于梯度的学习规则。在我们的实验中我们使用了 momentum。
我们首先考虑对于任意给定生成器 G 最优的鉴别器 D。
命题 1. 对于某一固定的 G,最优的鉴别器 D 是:
$$
\large D_{G}^*(\boldsymbol{x}) =\frac{p_{data}(\boldsymbol{x})}{p_{data}(\boldsymbol{x}) + p_g(\boldsymbol{x})} \tag{2}
$$
证明. 对于任意给定的生成器 G,D 的训练准则是最大化
ps: 利用极值定理,求解函数的导数为 0,可以求得函数的极大值
注意,D 的训练目标可以被解释为最大化估计条件概率
$$ \large \begin{aligned} C(G) &= \max_{D} V(G,D) \ &= \mathbb{E}{x \sim p{data}} [ \log D^G(\boldsymbol{x}) ] + \mathbb{E}{z \sim p_z} [ \log(1 - D^G(G(\boldsymbol{z})))] \ &= \mathbb{E}{x \sim p_{data}} [ \log D^G(\boldsymbol{x}) ] + \mathbb{E}{x \sim p_g} [ \log(1 - D^G(\boldsymbol{x}))] \ &= \mathbb{E}{x \sim p_{data}} \left [ \log \frac{p_{data}(\boldsymbol{x})}{p_{data}(\boldsymbol{x}) + p_{g}(\boldsymbol{x})} \right ] + \mathbb{E}{x \sim p{g}} \left [ \log \frac{p_{g}(\boldsymbol{x})}{p_{data}(\boldsymbol{x}) + p_{g}(\boldsymbol{x})} \right ] \end{aligned} \tag{4} $$
定理 1. 当且仅当
证明. 对于
通过从 $C(G) = V(D_G^, G)$ 减去这个表达式,我们可以得到:
$$
\large C(G) = -\log(4) + KL \left (p_{data} \bigg\Vert \frac{p_{data} + p_g}{2} \right) + KL \left( p_g \bigg\Vert \frac{p_{data} + p_g}{2} \right) \tag{5}
$$
其中 KL 是 Kullback–Leibler divergence (KL 散度或者相对熵)。我们在前面的表达式中认识到模型的分布和数据生成过程之间的 Jensen-Shannon divergence (JS 散度):
$$
\large C(G) = -\log(4) + 2 \cdot JSD(p_{data} \Vert p_g) \tag{6}
$$
由于两个分布之间的 JS 散度总是非负的,且如果它们相等,则为 0,我们已经证明了 $C^ = - \log(4)$ 是
命题 2. 如果 G 和 D 有足够的容量,在算法 1 的每一步,鉴别器在给定 G 的情况下,允许达到其最佳值,并且更新
证明. 考虑
实际上,对抗网络通过函数
表 1: 基于 Parzen 窗口的对数似然评估。MNIST 上报告的数字是测试集上样本的平均对数似然,并计算了各个样本的平均标准差。在 TFD,我们在计算了跨越数据集每一折 (flods) 的标准差,并利用每折验证集选择不通的
我们在一系列数据集上训练了对抗网络,包括 MNIST、the Toronto Face Database (TFD) 和 CIFAR-10。生成式网络混合使用 ReLU 激活和 sigmoid 激活,而判别器使用 maxout 激活。Dropout 被用于训练鉴别器网络。虽然我们的理论框架允许在生成器的中间层使用 dropout 和其他噪声,但我们仅将噪声用作生成器网络最底层的输入。
我们通过将一个 Gaussian Parzen 窗口拟合到 G 生成的样本来评估
图 2: 来自模型中的样本的可视化。最右边一列展示了最相近的训练样本,以证明模型没有记忆训练集。样本是随机抽取的,不是精细挑选的。与大多数其他深度生成式模型的可视化不同,这些图像展示了来自模型分布的真实样本,而不是在给定条件均值下隐藏层的样本。此外,这些样本是不相关的,因为采样过程不依赖马尔可夫链混合。a) MNIST b) TFD c) CIFAR-10 (全连接模型) d) CIFAR-10 (卷积的鉴别器和 "转置卷积"的生成器)
图 3: 通过在整个模型的
与以前的建模框架相比,这个新框架有其优点和缺点。缺点主要是
上述优点主要是计算上的。对抗模型还可以从生成器网络中获得一些统计优势,生成器不直接使用数据样本进行更新,而只使用流经判别器的梯度进行更新。这意味着输入组件不会直接复制到生成器的参数中。对抗网络的另外一个优点是,它们可以表示非常尖锐甚至退化的分布,而基于马尔可夫链的方法要求分布有点模糊,以便链能够在模式之间混合。
表 2: 生成式建模中的挑战:a summary of the difficulties encountered by different approaches to deep generative modeling for each of the major operations involving a model.
这个框架可以进行许多直接的扩展:
- 将
$\boldsymbol{c}$ 同时作为 G 和 D 的输入,可以得到条件生成式模型$p(\boldsymbol{x} | \boldsymbol{c})$ 。 - 通过训练辅助网络在给定
$\boldsymbol{x}$ 的情况下预测$z$ ,可以学习近似推理。这与通过 wake-sleep 算法训练的推理网络类似,但其优点是在生成器网络训练完毕后,推理网络可以被训练为固定的生成器。 - 可以通过训练一组共享参数的条件模型来近似建模所有的条件 $\large p(\boldsymbol{x}S | \boldsymbol{x}{S\mkern-10mu/} )$ ,其中
$S$ 是$\boldsymbol{x}$ 索引的子集。本质上,可以使用对抗网络来实现确定性 MP-DBM 的一个随机扩展。 - 半监督学习:当标记数据有限时,来自鉴别器或推理网络的特征可以提高分类器的性能。
- 效率提高:通过设计更好的方法来协调 G 和 D,或者在训练过程中确定更好的分布来采样
$\bold{z}$ ,可以大大加速训练。
本文证明了对抗建模框架的可行性,表明这些研究方向可以被证明是有用的。