生成对抗网络 Generative Adversarial Networks

转自:https://zhuanlan.zhihu.com/p/26499443

生成对抗网络GAN是由蒙特利尔大学Ian Goodfellow教授和他的学生在2014年提出的机器学习架构。

要全面理解生成对抗网络,首先要理解的概念是监督式学习和非监督式学习。监督式学习是指基于大量带有标签的训练集与测试集的机器学习过程,比如监督式图片分类器需要一系列图片和对应的标签(“猫”,“狗”…),而非监督式学习则不需要这么多额外的工作,它们可以自己从错误中进行学习,并降低未来出错的概率。监督式学习的缺点就是需要大量标签样本,这非常耗时耗力。非监督式学习虽然没有这个问题,但准确率往往更低。自然而然地希望能够通过提升非监督式学习的性能,从而减少对监督式学习的依赖。GAN可以说是对于非监督式学习的一种提升。

第二个需要理解的概念是“生成模型”, 如下图所示生成图片模型的概念示意图。这类模型能够通过输入的样本产生可能的输出。举个例子,一个生成模型可以通过视频的某一帧预测出下一帧的输出。另一个例子是搜索引擎,在你输入的同时,搜索引擎已经在推断你可能搜索的内容了。

基于上面这两个概念就可以设计生成对抗网络GAN了。相比于传统的神经网络模型,GAN是一种全新的非监督式的架构(如下图所示)。GAN包括了两套独立的网络,两者之间作为互相对抗的目标。第一套网络是我们需要训练的分类器(下图中的D),用来分辨是否是真实数据还是虚假数据;第二套网络是生成器(下图中的G),生成类似于真实样本的随机样本,并将其作为假样本。

详细说明:

D作为一个图片分类器,对于一系列图片区分不同的动物。生成器G的目标是绘制出非常接近的伪造图片来欺骗D,做法是选取训练数据潜在空间中的元素进行组合,并加入随机噪音,例如在这里可以选取一个猫的图片,然后给猫加上第三只眼睛,以此作为假数据。

在训练过程中,D会接收真数据和G产生的假数据,它的任务是判断图片是属于真数据的还是假数据的。对于最后输出的结果,可以同时对两方的参数进行调优。如果D判断正确,那就需要调整G的参数从而使得生成的假数据更为逼真;如果D判断错误,则需调节D的参数,避免下次类似判断出错。训练会一直持续到两者进入到一个均衡和谐的状态。

训练后的产物是一个质量较高的自动生成器和一个判断能力较强强的分类器。前者可以用于机器创作(自动画出“猫”“狗”),而后者则可以用来机器分类(自动判断“猫”“狗”)。

最后这里给出一个生成对抗网络的列表

参考资料

[1] https://www.linkedin.com/pulse/gans-one-hottest-topics-machine-learning-al-gharakhanian

[2] Generative Models

[3] 深度 | 一篇文章带你进入无监督学习:从基本概念到四种实现模型(附论文)

时间: 2024-10-12 22:50:07

生成对抗网络 Generative Adversarial Networks的相关文章

对抗生成网络 Generative Adversarial Networks

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

PyTorch实现简单的生成对抗网络GAN

生成对抗网络(Generative Adversarial Network, GAN)包括生成网络和对抗网络两部分.生成网络像自动编码器的解码器,能够生成数据,比如生成一张图片.对抗网络用来判断数据的真假,比如是真图片还是假图片,真图片是拍摄得到的,假图片是生成网络生成的. 生成对抗网络就是让生成网络和对抗网络相互竞争,通过生成网络来生成假的数据,对抗网络判别该数据是真是假,最后希望生成网络生成的数据以假乱真骗过判别器. 以下程序主要来自廖星宇的<深度学习之PyTorch>的第六章,本文对原代

《生成对抗网络GAN的原理与应用专题》笔记

视频教程的链接:http://campus.swarma.org/gpac=8 一.什么是GAN 框架简述 GAN全称是Generative Adversarial Nets,中文叫做"生成对抗网络". 在GAN中有2个网络,一个网络用于生成数据,叫做"生成器".另一个网络用于判别生成数据是否接近于真实,叫做"判别器". 下图展示了最简单的GAN的结构以及工作原理. 模型中最左侧的随机向量是为了让生成器产生不同的输出,而增加的扰动项.这些扰动决定

在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN

Generative Adversarial Network 是深度学习中非常有趣的一种方法.GAN最早源自Ian Goodfellow的这篇论文.LeCun对GAN给出了极高的评价: "There are many interesting recent development in deep learning-The most important one, in my opinion, is adversarial training (also called GAN for Generativ

Speech Bandwidth Extension Using Generative Adversarial Networks

论文下载地址.博客园文章地址. 摘要 语音盲带宽扩展技术已经出现了一段时间,但到目前为止还没有出现广泛的部署,部分原因是增加的带宽伴随着附加的工件.本文提出了三代盲带宽扩展技术,从矢量量化映射到高斯混合模型,再到基于生成对抗性网络的深层神经网络的最新体系结构.这种最新的方法在质量上有了很大的提高,并证明了基于机器学习的盲带宽扩展算法在客观上和主观上都能达到与宽带编解码器相当的质量.我们相信,盲带宽扩展现在可以达到足够高的质量,以保证在现有的电信网络中部署. 关键词:盲源带宽扩展,人工带宽扩展,生

StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation - 1 - 多个域间的图像翻译论文学习

Abstract 最近在两个领域上的图像翻译研究取得了显著的成果.但是在处理多于两个领域的问题上,现存的方法在尺度和鲁棒性上还是有所欠缺,因为需要为每个图像域对单独训练不同的模型.为了解决该问题,我们提出了StarGAN方法,这是一个新型的可扩展的方法,能够仅使用一个单一模型就实现多领域的图像翻译.StarGAN这样的统一模型的结构允许在单个网络上同时训练带有不同领域的多个数据集.这使得StarGAN的翻译图像质量优于现有的模型,并具有将输入图像灵活地翻译到任意目标域的新能力.通过实验,验证了该

[论文理解] On the &quot;steerability&quot; of generative adversarial networks

On the "steerability" of generative adversarial networks Intro 本文提出对GAN的latent space进行操作的一种方法,通过对latent space的编辑实现生成域外样本,操控生成样本的基本属性,如控制生成样本的位置.光照.二维旋转.三维旋转等等. 文章的主要贡献为: 证明并实现了通过在latent space中的"walk"能够实现类似人类世界中相机的运动.颜色变换等操作,这些操作是通过自监督的

论文笔记之:UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS

UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS  ICLR 2016  摘要:近年来 CNN 在监督学习领域的巨大成功 和 无监督学习领域的无人问津形成了鲜明的对比,本文旨在链接上这两者之间的缺口.提出了一种 deep convolutional generative adversarial networks (DCGANs),that have certai

正在涌现的新型神经网络模型:优于生成对抗网络

http://www.17bianji.com/lsqh/35130.html 是以,它会让人想起残差前馈收集(residual feed-forward network),但在实际中,强迫这些收集向前传播误差并不克不及让它们在更高财揭捉习到有效的层次表征.是以,它们不克不及基于更上层的表征来竽暌剐效地履行其它义务,例如分类.瓜分.动作辨认.要明白这些限制,还须要更多的实验. 新一代深度神经收集正在出现.它们演变自前馈模型,之前我们曾作过具体分析,参阅机械之心文┞仿 <重磅 | 神经收集架构演