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

相关文章

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互