生成式对抗网络(Generative Adversarial Networks,GANs)

Posted Joe-Han

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成式对抗网络(Generative Adversarial Networks,GANs)相关的知识,希望对你有一定的参考价值。

1. 简介

首先简要介绍一下生成模型(Generative model)与判别模型(Discriminative mode)的概念:

  • 生成模型:对联合概率进行建模,从统计的角度表示数据的分布情况,刻画数据是如何生成的,收敛速度快,例如朴素贝叶斯,GDA,HMM等。
  • 判别模型:对条件概率 P(Y|X) 进行建模,不关心数据如何生成,主要是寻找不同类别之间的最优分类面,例如LR,SVM等。

判别模型在深度学习乃至机器学习领域取得了巨大成功,其本质是将样本的特征向量映射成对应的label;而生成模型由于需要大量的先验知识去对真实世界进行建模,且先验分布的选择直接影响模型的性能,因此此前人们更多关注于判别模型方法。生成式对抗网络(Generative Adversarial Networks,GANs)是蒙特利尔大学的Goodfellow Ian于2014年提出的一种生成模型, 在之后引起了业内人士的广泛关注与研究。

GANs中包含了两个模型,一个是生成模型 G ,另一个是判别模型D,下面通过一个生成图片的例子来解释两个模型的作用:

  • 生成模型 G :不断学习训练集中真实数据的概率分布,目标是将输入的随机噪声转化为可以以假乱真的图片(生成的图片与训练集中的图片越相似越好)
  • 判别模型D:判断一个图片是否是真实的图片,目标是将生成模型 G 产生的“假”图片与训练集中的“真”图片分辨开。

GANs的实现方法是让D G 进行博弈,训练过程中通过相互竞争让这两个模型同时得到增强。由于判别模型D的存在,使得 G 在没有大量先验知识以及先验分布的前提下也能很好的去学习逼近真实数据,并最终让模型生成的数据达到以假乱真的效果(即D无法区分 G 生成的图片与真实图片,从而G D 达到某种纳什均衡)。

2. 生成对抗网络

GANs中生成模型和判别模型的选择没有强制限制,在Ian的论文中,判别模型 D 和生成模型G均采用多层感知机。GANs定义了一个噪声 pz(x) 作为先验,用于学习生成模型 G 在训练数据x上的概率分布 pg G(z) 表示将输入的噪声 z 映射成数据(例如生成图片)。D(x)代表 x 来自于真实数据分布pdata而不是 pg 的概率。据此,优化的目标函数定义如下minmax的形式:


原论文在参数的更新过程,是对 D 更新k次后,才对 G 更新1次。上式中的minmax可理解为当更新D时,需要最大化上式,而当更新 G 时,需要最小化上式,详细解释如下:

  • 在对判别模型D的参数进行更新时:对于来自真实分布 pdata 的样本 x 而言,我们希望D(x)的输出越接近于1越好,即 logD(x) 越大越好;对于通过噪声 z 生成的数据G(z)而言,我们希望 D(G(z)) 尽量接近于0(即 D 能够区分出真假数据),因此log(1D(G(z)))也是越大越好,所以需要 maxD

  • 在对生成模型 G 的参数进行更新时:我们希望G(z)尽可能和真实数据一样,即 pg=pdata 。因此我们希望 D(G(z)) 尽量接近于1,即 log(1D(G(z))) 越小越好,所以需要 minG 。需要说明的是, logD(x) 是与 G(z) 无关的项,在求导时直接为0。

原论文中对GANs理论上的有效性进行了分析,即当固定 G 更新D时,最优解为 D(x)=生成对抗网络(Generative Adversarial Network,GAN)

对抗生成网络 Generative Adversarial Networks

机器学习-白板推导系列(三十一)-生成对抗网络(GAN,Generative Adversarial Network)

Tensorflow生成对抗网络(Generative Adversarial Networks)实战案例

深度学习Generative Adversarial Networks ,GAN生成对抗网络分类

深度学习Generative Adversarial Networks ,GAN生成对抗网络分类