对抗生成网络(Generative Adversarial Net)

好久没有更新博客了,但似乎我每次更新博客的时候都这么说(泪)。最近对生活有了一些新的体会,工作上面,新的环境总算是适应了,知道了如何摆正工作和生活之间的关系,如何能在有效率工作的同时还能继续做自己感兴趣的事情。心理上,我依然故我般的做那个简单的技术boy,生活态度偏理想化但可以直面现实……

突然想到这是一片技术博客,还是不多说自己的事情了,说一说甚嚣尘上的对抗网络吧。

引入

Discriminative Model的繁荣发展

最近,深度学习在很多领域的突破性进展想必不用我多说了。但大家似乎发现了这样的一个现实,即深度学习取得突破性进展的地方貌似都是discriminative的模型。

所谓的discriminative可以简单的认为是分类问题,比如给一张图片,判断这张图片上有什么动物;再比如给定一段语音,判断这段语音所对应的文字。

在discriminative的模型上,有很多行之有效的方法,如反向传播,dropout,piecewise linear units等技术。

Generative Model

其实,这篇论文很早之前就看了,但我对生成模型在AI里的地位一直不能特别直观的感受。最近才慢慢的理解。

从细节上来看,生成模型可以做一些无中生有的事情。比如图片的高清化,遮住图片的一部分去修复,再或者画了一幅人脸的肖像轮廓,将其渲染成栩栩如生的照片等等。

再提高一层,生成模型的终极是创造,通过发现数据里的规律来生产一些东西,这就和真正的人工智能对应起来了。想想一个人,他可以通过看,听,闻去感知这世界,这是所谓的Discriminative,他也可以说,画,想一些新的事情,这就是创造。所以,生成模型我认为是AI在识别任务发展相当成熟之后的AI发展的又一个阶段。

借东风

但是现在,生成模型还没有体会到深度学习的利好,在Discriminative模型上,成果如雨后春笋,但在生成模型上,却并非如此。原因如下:

  • 在最大似然估计及相关策略上,很多概率计算的模拟非常难
  • 将piecewise linear units用在生成模型上比较难

那么,是不是生成模型就借不了深度学习发展的东风了呢?我只能说,有的时候,不得不曲线救国。

对抗网络

基本思想

假设有一种概率分布M,它相对于我们是一个黑盒子。为了了解这个黑盒子中的东西是什么,我们构建了两个东西G和D,G是另一种我们完全知道的概率分布,D用来区分一个事件是由黑盒子中那个不知道的东西产生的还是由我们自己设的G产生的。

不断的调整G和D,直到D不能把事件区分出来为止。在调整过程中,需要:

  • 优化G,使它尽可能的让D混淆。
  • 优化D,使它尽可能的能区分出假冒的东西。

当D无法区分出事件的来源的时候,可以认为,G和M是一样的。从而,我们就了解到了黑盒子中的东西。

简单的例子说明

且看上面四张图a,b,c,d. 黑色的点状线代表M所产生的一些数据,红色的线代表我们自己模拟的分布G,蓝色的线代表着分类模型D。

a图表示初始状态,b图表示,保持G不动,优化D,直到分类的准确率最高。

c图表示保持D不动,优化G,直到混淆程度最高。d图表示,多次迭代后,终于使得G能够完全你和M产生的数据,从而认为,G就是M。

形式化

将上述例子所描述的过程公式化,得到如上公式。公式中D(x)表示x属于分布M的概率,因而,优化D的时候就是让V(D,G)最大,优化G的时候就是让V(D,G)最小。

其中,x~pdata(x) 表示x取自真正的分布。

z~pz(z) 表示z取自我们模拟的分布。G表示生成模型,D表示分类模型。

上述即是G和D的训练过程。其中在每次迭代中,梯度下降K次来训练D,然后梯度下降一次来训练G,之所以这样做,是因为D的训练是一个非常耗时的操作,且在有限的集合上,训练次数过多容易过拟合。

证明

这篇论文中的思想就如上所述,但是有意思的是还有两个证明来从理论上论证了对抗网络的合理性。

命题一

第一个证明是,当G固定的时候,D会有唯一的最优解。真实描述如下:

证明如下:

  • 首先,对V(G,D)进行变换

  • 对于任意的a,b ∈ R2 \ {0, 0}, 下面的式子在a/(a+b)处达到最优。

得证!

定理一

根据证明一,可以对V(G,D)中最大化D的步骤进行变换。

从而得到定理

直接带入pg=pdata可得-log4,当入pg!=pdata时,得到

命题二

命题二原文如下:

这个定理的证明需要用到凸函数的某个似乎是很明显的定理,即,通过凸函数的上确界的次导数可以找到函数在最大值时的导数。这个理论应用到G和D中就是在G不变时,D是拥有唯一的最优值的凸函数,因而可以得到。 但因为我对凸优化理论尚不熟悉,所以没有理解透彻这个地方。

实验

早期的训练中,D可以很轻松的分辨出来G和M中不同的样本,从而会饱和,所以用logD(G(z))来代替log(1-D(G(z)),这样可以为早期的学习提供更加好的梯度。

实验就是去拟合Guassian Parzen Windown,具体细节略过。结果如下:

优势和劣势

优势:

  • Markov链不需要了,只需要后向传播就可以了。
  • 生成网络不需要直接用样本来更新了,这是一个可能存在的优势。
  • 对抗网络的表达能力更强劲,而基于Markov链的模型需要分布比较模糊才能在不同的模式间混合。

劣势:

  • 对于生成模型,没有直接的表达,而是由一些参数控制。
  • D需要和G同步的很好才可以。

各种生成模型的对比如下:

参考

时间: 2024-08-29 00:53:49

对抗生成网络(Generative Adversarial Net)的相关文章

对抗生成网络 Generative Adversarial Networks

1. Basic idea 基本任务:要得到一个generator,能够模拟想要的数据分布.(一个低维向量到一个高维向量的映射) discriminator就像是一个score function. 如果想让generator生成想要的目标数据,就把这些真实数据作为discriminator的输入,discriminator的另一部分输入就是generator生成的数据. 1. 初始化generator和discriminator. 2. 迭代: 固定generator的参数,更新discrimi

跟我学算法-对抗生成网络

对抗生成网络,通过对分别两个矛盾的函数,进行各自的训练,已达到两个函数都能实现各自的最优化,得到的参数就是一个较好的参数 两个对抗函数: 函数一:是判别损失函数,使得判别式的准确率越来越大, 及self.D1被判断为1, self.D2被判断为0 self.loss_d = tf.reduce_mean(-tf.log(self.D1) - tf.log(1-self.D2)) 函数二: 是造假损失值,及其self.D2越接近1越好,就是被判断为正确的概率越大越好 self.loss_g = t

深度卷积对抗生成网络(DCGAN)

本文是参考文献[1]的论文笔记. 卷积神经网络在有监督学习中的各项任务上都有很好的表现,但在无监督学习领域,却比较少.本文介绍的算法将有监督学习中的CNN和无监督学习中的GAN结合到了一起. 在非CNN条件下,LAPGAN在图像分辨率提升领域也取得了好的效果. 与其将本文看成是CNN的扩展,不如将其看成GAN的扩展到CNN领域.而GAN的基本算法,可以参考对抗神经网络. GAN无需特定的cost function的优势和学习过程可以学习到很好的特征表示,但是GAN训练起来非常不稳定,经常会使得生

对抗生成网络GAN

该方法常用于: 图像生成 图像修复,训练用了MSE+Global+Local数据,其中Global+Local判别式用于全局+局部一致性. 图像超分辨率重构 GAN的基本原理,主要包含两个网络,G(Generator)和D(Discriminator),含义如下:(以图像生成为例) G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z). D是一个判别网络,判别一张图片是不是"真实的".它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如

生成对抗网络 Generative Adversarial Networks

转自:https://zhuanlan.zhihu.com/p/26499443 生成对抗网络GAN是由蒙特利尔大学Ian Goodfellow教授和他的学生在2014年提出的机器学习架构. 要全面理解生成对抗网络,首先要理解的概念是监督式学习和非监督式学习.监督式学习是指基于大量带有标签的训练集与测试集的机器学习过程,比如监督式图片分类器需要一系列图片和对应的标签("猫","狗"-),而非监督式学习则不需要这么多额外的工作,它们可以自己从错误中进行学习,并降低未来

Generative Adversarial Nets——解析

摘要 本文提出了一个通过对抗过程来预测产生式模型的新框架.在新框架中我们同时训练两个模型:一个用来获得数据分布的生成模型G,和一个用来估计样本来自训练数据而不是G的概率的判别模型D,G的训练过程是最大化D产生错误的概率,让其无法判断一个图像是由生成模型产生的,还是来自训练样本.这个框架相当于一个极小化极大的双方博弈.在任意函数G 和D 的空间中存在唯一的解,其中G恢复训练数据分布,并且D处处都等于12. 在G和D 由多层感知器定义的情况下,整个系统可以用反向传播进行训练.在训练或生成样本期间不需

走进生成对抗式网络(GAN)摘记

自从OpenAI的Ian J.Goodfellow大神发的开创性文章GAN以后,GAN的发展是膨胀式的,工业界的各个大牛也随之加入GAN蓬勃发展的大军中.除了OpenAI之外,工业界好多公司都参与到了GAN的研究中,包括了Facebook.Google.Apple等公司.其中一个发表比较的多的就是Facebook的Soumith Chintala,他参与发表了DCGAN.LPGAN.WGAN以及SSGAN,其中WGAN也是得到了大量的关注,该文详细的对GAN的缺陷进行了深入解析,然后提出了具有里

论文阅读:Single Image Dehazing via Conditional Generative Adversarial Network

Single Image Dehazing via Conditional Generative Adversarial Network Runde Li? Jinshan Pan? Zechao Li Jinhui Tang? School of Computer Science and Engineering, Nanjing University of Science and Technology 研究方向: Dehazing,cGAN motivation 对于直接通过算法复原有雾的图像

SEGAN: Speech Enhancement Generative Adversarial Network

论文分析: 论文原文地址 一.引言 经典的语音增强(speech enhancement)方法有谱减法(spectral subtraction).维纳滤波(Wiener filtering).统计模型(statistical model-based methods)和子空间算法(subspace algorithms). 论文结合GAN网络提出了SEGAN,并通过实验发现,SEGAN主要优势有以下三点: 1.提供一个快速语音增强过程,没有因果关系是必要的,因此没有像RNN那样的递归操作. 2.