Generative Adversarial Nets
Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio
0.概览
我们推出了一个通过对抗过程来估计生成模型的新的结构,在这个结构中,我们同时训练两个模型:一个是探索数据分布的生成模型G,另一个则是用来估计数据是否来自训练数据而非G生成结果中概率的判别模型D,G的训练程序用来最大化D犯错误的概率。这一结构模拟了MiniMax二人博弈,在任意G和D的空间中,存在唯一的解决方案使得G能够恢复训练数据的分布情况,此时的D总等于。在G和D使用多层感知机定义的情况下,整个系统可以使用反向传播进行训练。在训练或生成样本时,不需要马尔可夫链或事展开的近似推理网络,实验通过对生成样品进行定性并量化评估来证明这一框架的能力。
1.引言
深度学习迅速发展,助力与发现更为丰富的层次模型[2],它们表示AI在投入应用时遇到的各种数据概率分布模型,像是自然图像,包含语音的音频波形和自然语言语料库中的符号。截止目前为止,深度学习中最引人注意的成就常常涉及到判别模型,它通常是把那些高维度、高丰富度的感官输入映射到类标签的模型[14,22],这些惊人的成就主要基于反向传播和丢失算法,使用分段线性单元[19,9,10],而这些单元具有很好的梯度。深度生成模型的影响没那么大,因为在最大似然估计和相关方法中出现了很多难以处理的概率的计算,而且难以在生成环境中用上分段线性单元的优势。我们推出了一种新的生成模型估计程序,可以避免这些难题。
代码和使用的超参数都放在这里了:https://www.github.com/goodfeli/adversarial
在我们推出的对抗性网络框架中,生成模型和对抗模型进行对抗:判别模型学习给定的样本是来自于模型分布还是数据分布,而生成模型可以被认为一种类似于造假者的角色,它尝试去生产假币并在不经过检验的情况使用这些假币,而攀比模型像是警察,尝试检测伪币。在这个博弈过程中的竞争使得两个团队改进他们的方法,直到假币和真的难以区别。
这个框架可以为多种模型和优化算法提供训练算法,在这篇文章中,我们探讨了生成模型通过多层感知机传递随机噪声来生成样本的特殊情况,在这种情况下,判别模型也使用了多层感知机。我们把这种特殊情况称为对抗性网络,在这种情况下,我们可以仅仅使用那些比较成熟的反向传播和丢失算法[17]来训练这两个模型,而且,我们也只使用了前向传播来生成来自生成模型的样本,用不着近似推理或是马尔可夫链。
2.相关工作
使用带有隐含变量的无向图模型来代替定向图模型,例如受限玻尔兹曼机(RBM)[27,16],深度玻尔兹曼机[26]及其众多变体。这些模型中存在一些相互作用,可以被表示为一种非标准化函数的乘积,通过随机变量的所有状态的全局总结/积分进行归一化。尽管可以通过马尔可夫链蒙特卡洛方法(MCMC)进行评估,但是,当情况涉及到不是最平凡的应用范例而是那些稍微有点复杂的范例时,分区函数的数量还有梯度都难以处理,对于依赖MCMC的学习算法来说,这就是一个很大的问题[3,5]
深度置信网络(DBNs)[16]是一种包含单个无项层和多个定向层的混合模型,虽然存在高速近似分层训练标准,但是DBNs会引起涉及到无向和定向模型的计算上的困难。
对于不接近或是约束对数似然的替代标准,例如得分匹配[18]和噪声对比估计(NCE)[13],这两者都需要把学习的概率密度指定为一种归一化常数,值得注意的是,在许多具有多层隐含变量(例如DBN或是DBM)的模型中,甚至得不出易于处理的非标准化概率密度。另一些模型,例如去噪自编码器[30]和压缩的自编码器,其学习规律与RBM中使用的分数匹配十分相似。在NCE中,采用判别训练标准来拟合生成模型,然而,生成模型本身不是特意为了拟合的判别模型,而是用来将生成的数据和样本区别成固定的噪声分布。因为NCE使用固定的噪声分布,所以在模型甚至只是一小部分上观察变量上学习到大致正确的分布后,学习速度就明显慢了下来。
还有一点,一些技术并不涉及到明确定义的概率分布,而是训练生成模型从所学要的分布中进行抽样,这些方法的优点是可以把这种方式设计成为通过反向传播进行训练的方式,最近,在这一领域有一些突出的进展,包括生成随机网络结构(GSN)[5],它拓展了广义的去噪自编码器[4],二者都可以看作是定义的参数化的马尔可夫链——即对机器的参数进行学习,生成马尔可夫链的一个步骤。和GSN相比,对抗性网络框架并不需要对马尔可夫链进行采样,因为对抗网络在生成期间不需要建立反馈回路,所以能够更好地利用分段线性单元[19,9,10],这就提高了反向传播的性能,但是,反馈回路在使用时存在着无界激活的问题,近来通过反向传播进行训练生成器的例子包括关于变分贝叶斯[20]和随机反向传播[24]的自编码工作。
网友评论