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

【新智元导读】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相似。它鼓励和原始数据的负对数似然分布相似的输出。有了这个新型损失函数,生成器能确保输出更大分辨率、看起来真实的图像,并且保持和低分辨率版本相似的像素空间。

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2016-10-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据派THU

机器学习Top10算法,教你选择最合适的那一个!

本文共3800字,建议阅读6分钟。 选什么算法?本文为你梳理TOP10机器学习算法特点。

12420
来自专栏数据科学学习手札

(数据科学学习手札30)朴素贝叶斯分类器的原理详解&Python与R实现

  要介绍朴素贝叶斯(naive bayes)分类器,就不得不先介绍贝叶斯决策论的相关理论:

543130
来自专栏机器学习算法与Python学习

支持向量机(SVM) (2)

在上一次的介绍中,我们稍微了解到了关于support vector machine 的一些入门知识。今天,我们将真正进入支持向量机的算法之中,大体的框架如下: ...

38670
来自专栏算法channel

2000字总结3种项目和面试中常用的集成学习算法

俗话说,“三个臭皮匠,顶个诸葛亮”,多个比较弱的人若能有一种方法集中利用他们的智慧,也可以达到比较好的效果,这就是集成学习的思想。

8500
来自专栏AI派

一份机器学习模型离线评估方法的详细手册

读完分类与回归算法的评估指标以及排序算法的评估指标之后,你已经知道了机器学习中分类、回归以及排序算法相关的评估指标。在这篇给大家介绍一些机器学习中离线评估模型性...

18020
来自专栏量子位

机器学习萌新必学的Top10算法

在机器学习领域里,不存在一种万能的算法可以完美解决所有问题,尤其是像预测建模的监督学习里。 ? 比方说,神经网络不见得比决策树好,同样反过来也不成立。 最后的结...

37860
来自专栏量子位

一篇文章搞懂人脸识别的十个概念

作者:汪铖杰 首发于 腾讯云技术社区 量子位 已获授权编辑发布 优图实验室研究人脸技术多年,不仅在技术方面有很好的积累,而且在公司内外的业务中有众多应用。笔者作...

420100
来自专栏企鹅号快讯

基于深度学习的行人重识别研究综述

AI 科技评论按:本文为浙江大学罗浩为 AI 科技评论撰写的独家稿件,得到了作者本人指点和审核,在此表示感谢。 前言:行人重识别(Person Re-ident...

75780
来自专栏SIGAI学习与实践平台

人脸检测算法综述

人脸检测是目前所有目标检测子方向中被研究的最充分的问题之一,它在安防监控,人证比对,人机交互,社交和娱乐等方面有很强的应用价值,也是整个人脸识别算法的第一步。在...

1.1K10
来自专栏机器之心

学界 | Hinton提出泛化更优的「软决策树」:可解释DNN具体决策

选自arXiv 机器之心编译 参与:刘晓坤、黄小天 近日,针对泛化能力强大的深度神经网络(DNN)无法解释其具体决策的问题,深度学习殿堂级人物 Geoffrey...

34970

扫码关注云+社区

领取腾讯云代金券