生成对抗网络 (GANs)
编写:张礼俊/SlyneD
校对:毛丽
总校对与审核:寒小阳
CS231N到目前位置,所有对神经网络的应用都是判别式模型,给定一个输入,训练产生一个label输出。从直接对一个图片的分类到句子生成(也是一个分类问题,我们的label是在词空间中,我们会去逐个学习来产生多词label)。在这个作业中,我们会拓展开来,用神经网络来构建一个生成式模型。特别的,我们会学习如何构建模型来生成与训练集类似的图片。
GAN是什么?
在2014年,Goodfellow et al.发表了训练生成模型的一个方法:生成对抗网络(GANs)。在一个GAN中,我们构建两个不同的神经网络。 第一个网络是传统的分类网络叫判别器。 我们会用判别器来判断图片是真实的(属于训练集)还是假的(不在训练集中)。另一个网络,叫做生成器,会把随机噪音作为输入,然后用一个神经网络通过它生成图片。生成器的目标就是为了骗过判别器,让判别器以为生成的图片是真的。
我们可以把这个想成是一个最小最大博弈(minimax game), 生成器 ( G G )反复的想要糊弄判别器,而判别器 (
)则要努力的正确区分真实还是假的。
minimizeGmaximizeDEx∼pdata[logD(x)]+Ez∼p(z)[log(1−D(G(z)))] minimize G maximize D E x ∼ p data [ log D ( x ) ] + E z ∼ p ( z ) [ log ( 1 − D ( G ( z ) ) ) ]
其中 x∼pdata x ∼ p data 是来自于输入数据的样本, z∼p(z) z ∼ p ( z ) 是随机噪音样本, G(z) G ( z ) 是用生成网络 G G 生成的图片, 是判别器的输出,指的是一个输入是真实图片的概率。 在 Goodfellow et al., 他们分析了最小最大博弈并且展示了它和最小化训练数据分布和 G G 的生成样本分布之间的Jensen-Shannon散度的关系。
为了优化这个最小最大博弈,我们会在对于
的目标上采用梯度下降和在 D D 的目标上采用梯度上升之间转换。
1. 更新生成器(