前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习研究总结:生成对抗网络(附 3 篇 arXiv 最火论文)

深度学习研究总结:生成对抗网络(附 3 篇 arXiv 最火论文)

作者头像
新智元
发布2018-03-23 17:56:11
1.1K0
发布2018-03-23 17:56:11
举报
文章被收录于专栏:新智元新智元

【新智元导读】Yann LeCun曾说:“对抗训练是切片面包发明以来最令人激动的事情”。这篇文章中,作者回顾基于 Ian Goodfellow 在2014 年的开创性工作的 3篇论文。这3篇论文都是过去一年来在arXiv.org上讨论十分热烈的论文,包括Twitter Cortex团队几周前发表的论文。

生成对抗网络概述

我在此前的一篇博文(9 Deep Learning Papers You Should Know About)中简要地提到过Ian Goodfellow有关生成式对抗网络的论文。这些网络的要点是:有两个模型,一个是生成模型(generative model),一个是判别模型(discriminative model)。判别模型的任务是判断给定的图像看起来是自然的还是人为伪造的(图像来源于数据集)。生成模型的任务是生成看起来自然真实的、和原始数据相似的图像。这可以看做一种零和或两个玩家的纸牌游戏。本文采用的类比是生成模型像“一个造假团伙,试图生产和使用假币”,而判别模型像“检测假币的警察”。生成器(generator)试图欺骗判别器(discriminator),判别器则努力不被生成器欺骗。模型经过交替优化训练,两种模型都能得到提升,直到到达一个“假冒产品和真实产品无法区分”的点。

对抗网络的拉普拉斯金字塔(Laplacian Pyramid)

对抗网络最重要的用法之一是经过充分训练生成器之后生成看起来自然的图像。下面这些是Goodfellow在2014年的论文中生成器输出的一些样本。

如图所见,生成器在生成数据和人脸时效果很好,但使用CIFAR-10数据集时,生成的图像就十分模糊。

为了解决这个问题,Emily Denton, Soumith Chintala, Arthur Szlam 以及Rob Fergus合作发表了论文《利用对抗网络拉普拉斯金字塔的深度生成图像模型》(Deep Generative Image Models using Lapalacian Pyramid of Adversarial Networks)。这篇论文的主要贡献一种网络架构,它制作的高质量合成图像由人类检查时,40%的时候与真实图像难以区分。

方法

在介绍论文前,让我们回顾一下在GAN中生成器的任务。生成器需要生成大型、复杂,还要真实度能骗过经过训练的判别器的图像。这可不是简单的任务。为了解决这个问题,该论文的作者们使用多个CNN模型在扩大的规模中连续生成图像。论文作者之一的Emily Denton在LAPGAN的演讲中说:

“生成低分辨率的图像很简单。根据低分辨率图像生成分辨率高一点的图像也不算难。”

该论文的方法是建一个拉普拉斯金字塔生成模型。拉普拉斯金字塔是由连续疏密度的一系列滤波图像组成的图像表征。这个金字塔表征的每一层包含特定规模的图像信息。它是一种原始图像的分解。

让我们回顾一下一个样本GAN的输入和输出。生成器接收分布的噪声矢量输入,然后输出图像。判别器得到这张图像(或一张来自训练数据的真实图像),然后输出一个判断该图像“真实度”的标量。现在让我们看看附条件的GAN(conditional GAN,CGAN)。其它内容都相同,不过判别器和生成器得到的输入是另外一些信息,这些信息的形式是一些分类标签,或另一张图像。

网络架构

论文作者提出一套convnet模型,金字塔的每一层都包含与之关联的convnet。这和传统GAN结构的变化是,传统GAN只能由一个生成器CNN生产整个图像,而新的模型由一系列的CNN通过渐渐增加分辨率(即经过金字塔)连续生成图像,把图像由粗糙变精致。每一层都有独自的CNN,由两个部分训练。一个是低分辨率图像,另一个是噪声矢量(这是传统GAN的唯一输入)。这就是多种输入的CGAN的原理。输出的图像会被作为样本再次输入给金字塔的下一层。这种方法很有效,因为每一层的生成器都能利用不同的分辨率信息,以在连续的层里合成更精细的图像。

根据对抗文本生成图像

这篇论文发表于去年6月,探讨的是将如何文本表征转换为图像。例如,向网络中输入的可以是“粉色花瓣的花”,输出的是具有这些特征的合成图像。所以这项任务涉及两个主要组件。一个是利用自然语言处理来理解输入的描述,另一个是能输出准确、自然的图像表征的生成网络。作者提出需要注意的点是,从文字到图像的任务要比从图像到文字困难得多(Karpathy的论文也提过)。这是因为像素构造的量多得难以置信,以及我们也没法真的把任务分解成只是预测下一个单词(这是图像到文字的方式)。

方法

作者采用的方法是训练一个由循环文本编码器创建的、基于文本特征的GAN。生成器和判别器在各自的网络架构中都利用这些特征。这是使GAN在输入描述和生成图像之间产生联系的关键。

网络架构

让我们先看生成器。我们用噪声矢量z以及一个文本编码作为这个网络的输入。文本编码是压缩输入描述的信息的一种方式,它接着会与噪声矢量串联到一起(如下图所示)。然后,Deconv层被用于把输入矢量转换为合成图像。

判别器接收图像,使其通过一系列的conv层(包括BatchNorm和leaky ReLUs)。当空间维度终于到达4×4时,网络就执行我们前面提到的文本编码的深度串联。然后,经过另外2个conv层,输出的(仍然是)对图像真实性的评分。

训练

关于这个模型有趣的一点是它被训练的方式。仔细看这个模型,会发现生成器需要完成两个任务。一个是它需要生成自然的、足以乱真的图像,另一个是该图像必须要与给定的文本描述关联。那么,判别器也需要考虑这两项任务,确保拒绝“假的”或不自然的图像,以及和文本描述不匹配的图像。为了建这样的多功能模型,作者用三种数据训练它:{真实的图像,正确的文本},{不真实的图像,正确的文本}和{不真实的图像,不正确的文本}。最后一种训练数据类型需要判别器学习拒绝文图不匹配的图像(哪怕它们看起来很真实)。

使用 GAN 的超解析

Twitter Cortex的团队几周前发表的这篇论文是该领域快速创新的一个证明。这篇论文提出的模型是一个超解析度生成对抗网络(super-resolution generative adversarial network,SRGAN),我们将直接用这个缩写。它的主要贡献是一个全新的损失函数(比旧的MSE好),能使网络从大幅降低采样率的图像中还原出逼真的图像质感和细节。

方法

让我们先看看这个新的感知损失函数。这个损失函数可以分为两部分:对抗损失和内容损失。对抗损失鼓励看起来真实的图像(看起来和原图无差),内容损失确保新解析的图像与原本的低分辨率图像有相似的特征。

网络架构

让我们先从给定的一张图像的高分辨率版本和低分辨率版本开始。我们想训练生成器以让它能把输入的低分辨率图像,输出尽可能高分辨率的图像。输出的被称为超解析图像。然后判别器会被训练来分辨这些图像。生成器的网络架构使用一组包含ReLUs和BatchNorm和conv层的B残块。当低分辨率图像经过这些块,两个deconv层能让它增大分辨率。再看判别器,我们有8个卷积层能引入S激活函数,输出图像真实(高解析)还是人造(超解析)可能性。

损失函数

现在让我们回到新的损失函数。它实际上是单独损失函数的加权和。首先是内容损失。它实际上是新合成图像(即网络的输出)的特征地图(在训练前的VGG网络中)和真实高分辨率训练图像间的欧氏距离损失(Euclidean distance loss)。就我理解,主要的目标是确保两个图像的内容在放入训练对抗网络前,各自的特征看起来相似(如果有不同想法请在文章下面评论)。另一个主要的损失函数作者定义为对抗损失。这和普通的GAN相似。它鼓励和原始数据的负对数似然分布相似的输出。有了这个新型损失函数,生成器能确保输出更大分辨率、看起来真实的图像,并且保持和低分辨率版本相似的像素空间。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档