论文阅读之 Generative Adversarial Nets
简介:
Goodfellow 的这篇paper发布于2014年,提出了一种新的模型——生成对抗模型。这个模型其实就是训练两个相互对抗的网络,一个是训练一个生成器(Generator),另一个是训练一个判别器(Descriminator)。
这两个网络是相互对抗的,生成器的目的是尽量产生接近真实图片的生成图片,其衡量标准就是判别器,生成器要让判别器无法判断一张图片是来自真实图像的分布还是是由生成器学习到的分布。
用数学语言描述整个博弈过程的话,就是:假设我们的生成模型是 G ( z ∣ θ g ) G(z|\theta_g) G(z∣θg),其中 z z z是一个随机噪声,而 G G G将这个随机噪声转化为数据类型 x x x,仍拿图片问题举例,这里 G G G的输出就是一张图片。 D D D是一个判别模型,对任何输入 x x x, D ( x ∣ θ d ) D(x|\theta_d) D(x∣θd)的输出是0-1范围内的一个实数,用来判断这个图片是一个真实图片的概率是多大。令 p r p_r pr和 p g p_g pg分别代表真实图像的分布与生成图像的分布,我们判别模型的目标函数如下:
max D V ( D , G ) = E x ∼ p d a t a ( x ) [ l o g D ( x ) ] + E z ∼ p z ( z ) [ l o g ( 1 − D ( G ( z ) ) ) ] \max_DV(D,G) = \mathbb{E}_{x∼p_{data}(x)}[logD(x)]+\mathbb{E}_{z∼p_z(z)}[log(1−D(G(z)))] DmaxV(D,G)=Ex∼pdata(x)[logD(x)]+Ez∼pz(z)[log(1−D(G(z)))]
类似的生成模型的目标是让判别模型无法区分真实图片与生成图片,生成模型的目标函数如下:
min G E z ∼ p z ( z ) [ l o g ( 1 − D ( G ( z ) ) ) ] \min_G\mathbb{E}_{z∼p_z(z)}[log(1−D(G(z)))] GminEz∼pz(z)[log(1−D(G(z)))]
那么整个的优化目标函数如下:
min G max D V ( D , G ) = E x ∼ p d a t a ( x ) [ l o g D ( x ) ] + E z ∼ p z ( z ) [ l o g ( 1 − D ( G ( z ) ) ) ] \min_G\max_DV(D,G) = \mathbb{E}_{x∼p_{data}(x)}[logD(x)]+\mathbb{E}_{z∼p_z(z)}[log(1−D(G(z)))] GminDmaxV(D,G)=Ex∼pdata(x)[logD(x)]+Ez∼pz(z)[log(1−D(G(z)))]
这个最大最小化目标函数如何进行优化呢?最直观的处理办法就是分别对 D D D和 G G G进行交互迭代,固定 G G G,优化 D D D,一段时间后,固定 D D D再优化 G G G,直到过程收敛。
一个简单的例子如下图所示:假设在训练开始时,真实样本分布、生成样本分布以及判别模型分别是图中的黑线、绿线和蓝线。可以看出,在训练开始时,判别模型是无法很好地区分真实样本和生成样本的。接下来当我们固定生成模型,而优化判别模型时,优化结果如第二幅图所示,可以看出,这个时候判别模型已经可以较好的区分生成数据和真实数据了。第三步是固定判别模型,改进生成模型,试图让判别模型无法区分生成图片与真实图片,在这个过程中,可以看出由模型生成的图片分布与真实图片分布更加接近,这样的迭代不断进行,直到最终收敛,生成分布和真实分布重合。
分析:
生成器 G G G隐式的定义了一个概率分布 p g p_g pg,下面说明优化这个目标函数能够使 p g p_g pg收敛为 p d a t a p_{data}