1. 引言
在对抗网络中,生成模型与判别相竞争,判别模型通过学习确定样本是来自生成模型分布还是原始数据分布。生成模型可以被认为是类似于一组伪造者,试图产生假币并在没有检测的情况下使用它,而判别模型类似于警察,试图检测假币。 在这个游戏中的竞争驱动两个团队改进他们的方法,直到假冒与真正的物品难以分别。
生成模型和判别模型对抗的结果是,两者都提升了自己的能力。生成模型提高了模拟原始数据分布的能力,判别模型提高了分辨的能力。
GAN之所以叫生成对抗网络,是因为判别模型和生成模型都是用的神经网络模型,如果选择其他模型的话,可能就要叫GAXX了
2. 生成模型
2.1 GAN是生成模型的一种
“生成模型”表示任何一种可以接受训练集(从一个分布$$ p_{data} $$
采样的样本)学会表示该分布的估计的模型。其结果是一个概率分布$$p_{model}$$
。有些时候,模型会显式地估计$$p_{model}$$
,比如说图上半部分所示。还有些时候,模型只能从 $$p_{model}$$
中生成样本,比如说图下半部分。有些模型能够同时这两件事情。虽说 GANs 经过设计可以做到这两点,我们这里把精力放在 GANs 样本生成上。
- 作者虽然说GANs可以都做,但是现在的应用一般都是在样本生成上
- 关于判别模型和生成模型的区别,请参考《统计学习方法》第17-18页
2.2 GAN与其他生成模型的对比
上图是作者将要与GAN比较的集中生成模型
GANs是针对其他生成式模型的缺点进行设计的:
作者原话:GANs were designed to avoid many disadvantages associated with other generative models,相当直白,毫不客气
- 相对于FVBN,可以并行生成样本,而不是随 x 的维度变化的运行时间。
- 相对于玻尔茨曼机,生成器函数的设计只有很少的限制。在玻尔茨曼机中,只有很少概率分布能够给出易解的 Markov chain 采样。而非线性ICA中生成器必须是可逆的而且隐含编码 z 必须要和样本 x 有着同样的维度。
- 相对于玻尔茨曼机和GSNs,不需要 Markov chain。
- 不需要有变分界,在 GANs 框架中可用的特定模型族已经证实是通用近似子,所以 GANs 其实是渐进一致的。某些 VAEs 被猜想是渐进一致的,但还没有被证实。
- 主观上判断 GANs 能够产生比其他方法更好的样本。(仅仅是主观,ian 本人也说,这事儿没法衡量什么是「好」或「不好」)
- 同时,GANs 也有新的缺点,训练 GANs 需要找到博弈的 Nash 均衡,这个其实是一个比优化目标函数更加困难的问题。
3. 生成对抗网络
GANs 的基本思想是设置两个参与人的博弈。其中一个是生成器(generator)。生成器的目的产生来自和训练样本一样的分布的样本(制作跟真币一样的假币)。另外一个判别器(discriminator)。判别器检查这些样本来确定他们是真实的还是伪造的(识别真币和假币)。判别器使用传统的监督学习技术进行训练,将输入分成两类(真实的或者伪造的)。生成器训练的目标就是欺骗判别器。
博弈中的两个参与人由两个函数表示,每个都是关于输入和参数可微分的。判别器是一个以 x (真实数据)作为输入和使用 θ(D) 为参数的函数 D 定义。生成器由一个以 z(噪音数据即假数据) 为输入使用
双方的