GAN之父在NIPS 2016上做的报告:两个竞争网络的对抗(含译文下载)

2024-02-01 10:59

本文主要是介绍GAN之父在NIPS 2016上做的报告:两个竞争网络的对抗(含译文下载),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GAN之父在NIPS 2016上做的报告:两个竞争网络的对抗


作者:Ian Goodfellow
翻译:七月在线DL翻译组
译者:范诗剑 汪识瀚 李亚楠
审校:管博士 寒小阳 加号
责编:翟惠良 July
声明:本译文仅供学习交流,有任何翻译不当之处,敬请留言指正。转载请注明出处。
下载:https://ask.julyedu.com/question/7664


前言

    今年春节前,萌生一个想法,深度学习越发火热,但一些开创性的论文多半来自国外,如果组织一些朋友把这些英文论文翻译成中文,是不是可以让信息流通的更快、更顺畅?

    说干就干。春节前两周组建好七月在线DL翻译组,然后翻译组的小伙伴们即开始翻译,有一组更是在春节期间翻译了GAN之父在NIPS 2016上做的长达60页的报告,当时着实震惊了一把。而且,这篇报告中的GAN也不过是2016年刚火起来,如此,本报告兼具经典和最新,值得好好学习一下。


    下面,我们就来看看GAN之父到底在这篇长达60页的论文当中说了些啥。

    事情回到2016年的NIPS上,Ian Goodfellow做了主题为《生成对抗网络(Generative Adversarial Networks)》的报告,当时他的报告包括以下主题:
  1. 为什么生成式模型是一个值得研究的课题
  2. 生成式模型的工作原理,以及与其他生成模型的对比
  3. 生成式对抗网络的原理细节
  4. GAN相关的研究前沿
  5. 目前结合GAN与其他方法的主流图像模型
关于原英文精辟演示文稿请点击——
PDF版:www.iangoodfellow.com/slides/2016-12-04-NIPS.pdf
KeyNote版:www.iangoodfellow.com/slides/2016-12-04-NIPS.key


一句话描述GAN——

    GAN之所以是对抗的,是因为GAN的内部是竞争关系,一方叫generator,它的主要工作是生成图片,并且尽量使得其看上去是来自于训练样本的。另一方是discriminator,其目标是判断输入图片是否属于 真实训练样本
    更直白的讲,将generator想象成假币制造商,而discriminator是警察。generator目的是尽可能把假币造的跟真的一样,从而能够骗过discriminator,即生成样本并使它看上去好像来自于真实训练样本一样。

如下图中的左右两个场景:


为什么要研究GAN

    你或许会这么以为:对于计算机视觉领域该模型虽然能提供更多的图像,但这恰恰是真实世界并不缺少的


GAN的基本原理

生成对抗网络是一种生成模型(Generative Model),其背后最基本的思想就是从训练库里获取很多的训练样本(Training Examples),从而学习这些训练案例生成的概率分布。
- 生成模型为高维分布的表示与处理提供了一个绝佳的测试机会——此类高维分布往往是工程应用中的重要研究对象;

- 生成式模型能以多种方式嵌入至强化学习中;

- 生成模型可以接受缺失训练数据,或者可以被用来预测缺失数据。生成对抗模型,使得机器学习可以处理复合式问题。


基于GAN的应用

——iGAN(交互式生成对抗网络)

    用户可以绘制一幅草稿,然后iGAN会使用GAN模型来生成最相似的合理图像。

——IAN(自省对抗网络)


——图对图变换

    将单幅卫星图像变为地图;将涂鸦转化为相片级别图像等;由于许多这样的转换都存在超过一种的正确输出,为保证模型训练的正确性,使用生成模型就有了必要性。


GAN之最大似然估计的模型


GAN的损失函数


DCGAN——深度的卷积GAN


GAN的tips和tricks——(下文简称t&t)

    很难具体的说哪些技巧更有效,实际情况是,它们可以在某些任务中提升效果,也可能在另一些任务中起相反作用。因此这些技巧可以拿来尝试,但不要把它们当成是某种最优方法。具体包括:使用标签参与训练;单边标签平滑;将batch normalization虚拟化;是否平衡G和D(小编理解:作者目前的观点是,GANs主要是估计两个概率密度分布的比值,而只有当鉴别器足够完美时才有可能正确估值。所以这里更应该强化D函数)。
关于怎样训练GAN模型,详见GitHub库:http://github.com/soumith/ganhacks

t&t1.使用标签参与训练

t&t2.单边标签平滑

    GAN的工作方式是让discriminator估算两个概率密度分布的比值,但是深度神经网络倾向于生成过高置信度的结果,容易走极端,这对模型是不利的。尤其是基于对抗生成的网络,它的分类器倾向线性推断并产生出置信度极高的结果。

t&t3.将batch normalization虚拟化



后记

  • 关于我们。七月在线DL翻译组是由一群热爱翻译、热爱DL、英语六级以上的研究生或博士组成,有七月在线的学员,也有非学员。本翻译组翻译的所有全部论文仅供学习交流,宗旨是:汇集顶级内容 帮助全球更多人。目前已经翻译数十篇顶级DL论文,详见:https://ask.julyedu.com/question/7612
  • 加入我们。如果你过了英语六级、是研究生或博士、且熟练DL、热爱翻译,欢迎加入我们翻译组,微博私信@研究者July
  • GAN课程。为了帮助更多人更好的了解、学习、入门GAN,今年上半年,我们七月在线亦会开《生成对抗网络班》,从头到尾详解GAN的原理及其实战应用,敬请期待。
    七月在线July、二零一七年三月七日。

这篇关于GAN之父在NIPS 2016上做的报告:两个竞争网络的对抗(含译文下载)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/667062

相关文章

Python下载Pandas包的步骤

《Python下载Pandas包的步骤》:本文主要介绍Python下载Pandas包的步骤,在python中安装pandas库,我采取的方法是用PIP的方法在Python目标位置进行安装,本文给大... 目录安装步骤1、首先找到我们安装python的目录2、使用命令行到Python安装目录下3、我们回到Py

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

使用国内镜像源优化pip install下载的方法步骤

《使用国内镜像源优化pipinstall下载的方法步骤》在Python开发中,pip是一个不可或缺的工具,用于安装和管理Python包,然而,由于默认的PyPI服务器位于国外,国内用户在安装依赖时可... 目录引言1. 为什么需要国内镜像源?2. 常用的国内镜像源3. 临时使用国内镜像源4. 永久配置国内镜

java两个List的交集,并集方式

《java两个List的交集,并集方式》文章主要介绍了Java中两个List的交集和并集的处理方法,推荐使用Apache的CollectionUtils工具类,因为它简单且不会改变原有集合,同时,文章... 目录Java两个List的交集,并集方法一方法二方法三总结java两个List的交集,并集方法一

Python如何快速下载依赖

《Python如何快速下载依赖》本文介绍了四种在Python中快速下载依赖的方法,包括使用国内镜像源、开启pip并发下载功能、使用pipreqs批量下载项目依赖以及使用conda管理依赖,通过这些方法... 目录python快速下载依赖1. 使用国内镜像源临时使用镜像源永久配置镜像源2. 使用 pip 的并

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问