66

[译] 2018 年最佳 GAN 论文

 5 years ago
source link: https://mp.weixin.qq.com/s/f9FXkBI-zSbGTribeloRwg?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

JNr6J3V.jpg!web

今年,我很高兴参与一个研究项目,这项研究项目要求我熟悉大量计算机视觉深度学习领域的出版物。这让我深入了解了这个领域,我对过去2 - 3年所取得的进展感到惊讶。令人兴奋和鼓舞的是,像图像修复,对抗性示例,超分辨率或3D重建这些子领域从最近的进展中受益匪浅。

然而,有一种神经网络,它受到了大量的宣传和炒作 — 生成性对抗网络(Generative Adversarial Networks,GANs)。我也认为这种模型是非常吸引人的,并且我也一直在寻找一些GAN的新思路。

受Reddit网站上讨论区的启发,我决定快速地浏览一下2018年关于GAN最有趣的文章。这份名单非常的主观 — 我选择的研究论文不仅是最高水平的,而且也都非常的有趣。在第一章中,我将讨论其中的三篇。顺便说一下,如果你对以前的GAN论文感兴趣,这一篇文章可能会有所帮助,作者在文中提到的一篇论文排在了我的名单上的第一位。

1.GAN 解析:可视化和理解生成性对抗网络  —  考虑到 GAN 的大肆宣传,很明显这项技术迟早会被商业化应用。然而,因为我们对其内部机制了解的不多,所以我认为要生产一个可靠的产品仍然很困难。不过这项工作仍然向未来迈出了巨大的一步,在未来我们能够真正控制 GAN 。因此,一定要看看他们伟大的交互演示,结果是令人震惊的;

2. 一种用于生成性对抗网络的基于生成器体系结构  – NVIDIA (英伟达)的研究团队会定期地提出一些具有开创性的概念( 2018 年的 关于图像修复的论文 ,近期的用 神经网络进行图形绘制 的演示)。这篇论文也不例外,加上显示结果的视频就更有吸引力了;

3. 进化生成性对抗网络  —  这是一个真正简单易懂的文章。进化算法和 GAN 一起  —  这肯定很有趣

1.GAN 解析 可视化和理解生成性对抗网络 GAN Dissection: Visualizing and Understanding Generative Adversarial Networks

详解

该论文已于 2018 11 26 日提交。作者以交互式演示的方式创建了一个非常不错的 项目网站

主要思想:

GAN 无疑证明了深度神经网络的强大。机器学习生成令人震惊的、高分辨率图像的方式是非常美妙的,就仿佛它像我们一样了解这个世界。但是,和其它的那些出色的统计模型一样, GAN 最大的缺陷是缺乏可解释性。这项研究为理解 GAN 迈出了非常重要的一步。它允许我们在生成器中找到 负责 生成某些属于 class  c 的对象单元。作者们声称,我们可以检查生成器的一个层,并找到导致在生成图像中形成 c 对象的单元子集。作者们通过两个步骤:解剖和干预,为每个类寻找一组 因果 单元。另外,这可能是第一项工作,为了解 GAN 的内部机制提供了系统的分析。

方法:

生成器 G 可以被看作是从潜在的向量 z 到一个生成的图像 x=G(z) 的映射。我们的目标是理解参数 r ,一种内部的表示,它是生成器 G 的特定层的输出。

IB3MB3j.png!web

关于 c 类的对象,我们想仔细看下参数 r 。我们知道参数 r 包含关于一个这些特定对象生成的编码信息。我们的目标是了解这个信息是如何在内部编码的。作者们声称有一种方法可以从参数 r 中提取这些单元,而 r 负责生成类 c 的对象。

UNVZRvR.png!web

这里, nueiInr.png!web是特定层中所有单元的集合,参数 U 是目标单元,参数 P 是像素位置。问题来了,如何进行这种分离?作者们提出了两个步骤,这两个步骤是理解 GAN 黑盒子的工具。就是解析和干预。

VbMbIru.jpg!web

一个单元 u 和一个类 c 之间的解析测量一致性

解析  —  我们要识别那些有趣的类,它们在 r 中有一个明确的表示方法。这基本上是通过比较两个图像来完成的。首先通过计算 x 获得第一个图像,然后通过语义分割网络来运行。这将返回与目标类别(例如:树木)相对应的像素位置。第二个图像是通过用 r u ,p 进行上采样,因此它与 s c (x) 的维度相匹配,然后再对其进行阈值处理,以便对被这个特定单元所 发亮 的像素做出艰难的决定。最后,我们计算了两个输出之间的空间一致性。值越高,单元 u 对类 c 的因果效应就越大。通过对每个单元执行这个操作,我们最终应该找出哪些类在 r 的结构中有一个明确的表示方法。

6JBvAbE.jpg!web

干预测量一组单元 U 对类 c 的因果效应

干预  —  在这一点上,我们已经确定了相关的类。现在,我们试图为每个类找到最好的分离方式。这意味着,一方面我们抑制非受迫单元,希望目标类将从生成的图像上消失。另一方面,我们扩大了因果单元对生成图像的影响。这样我们就可以了解到他们对目标类 c 的存在有多大的贡献。最后,我们从两个图像中分割出类 c 并进行对比。语义图之间的一致性越小越好。这意味着在一个图像上,我们完全 排除 了树木的影响,而第二个图像只包含一片树林。

结果:

6JBNRnf.jpg!web

a Progressive GAN 生成的教堂图像  b )根据所给的预训练的 Progressive GAN ,我们确定了负责生成 类的单元  c )我们可以阻止那些单元 删除 图像中的树  d )扩大图像中树的密度。

上述结果表明,我们对网络内部的机制有了很好的理解。这些见解可以帮助我们改善网络行为。了解图像的哪些特征来自于神经网络的哪个部分,对于理解说明、商业应用和进一步的研究都是非常有价值的。

BzquuqU.jpg!web

a )出于调试的目的,我们可以确定那些有伪影的单元 …… b )和 c )把它们去掉了,以 修复 ”GAN

一个可以解决的问题是在生成的图像中有看得见的伪影。即使是一个训练很好的 GAN 有时也能产生一个极其不现实的图像,而这些错误的原因以前是未知的。现在我们可以将这些错误与导致视觉伪影的神经元联系起来。通过识别和阻止这些单元,可以提高生成的图像质量。

通过将某些单元设置为固定的平均值(例如,门),我们可以确保门将出现在图像中的某个位置。当然,这不会违反学过的分布统计(我们不能强迫门出现在空中)。另一个限制来自于这样一个事实,即一些对象与某些位置之间的联系是非常的紧密,以至于无法将它们从图像中消除。举个例子:不能简单地把椅子从会议室里删除掉,那样只会降低它们像素的密度或尺寸。

2.一种用于生成性对抗网络的基于生成器体系结构 A Style-Based Generator Architecture for Generative Adversarial Networks

详述

该论文已于 2018 12 12 日提交,代码很快就将会发布。另外,对于那些想更多了解这种方法但并不想阅读论文的人来说,博客上发表了一篇很好的 总结文章

主要思想:

这项工作提出了关于 GAN 框架的另一个观点。更具体地说,它从样式转换设计中吸取灵感,创建了一个生成器架构,在生成的图像中可以学习高级属性(如年龄、在人脸或背景上训练时的身份、相机视角)和随机变化(雀斑、头发细节)。它不仅学习自动分离这些属性,而且还允许我们以非常直观的方式控制合成。

amimQvB.jpg!web

补充的结果回顾视频

RNB3e23.jpg!web

传统的 GAN 架构(左)与基于样式的生成器(右)。在新的框架中,我们有两个网络组件:映射网络 f 与综合网络 g 。前者将一个潜在的代码映射到一个中间的潜在空间 W W 对样式的信息进行编码。后者利用生成的样式和高斯噪声来创建新的图像。块 “A” 是一个训练过的仿射转换,而块 “B” 将训练过的每个通道的比例因子应用于噪声的输入。

在经典的 GAN 方法中,生成器以一些潜在的代码作为输入,并输出一个图像,这属于它在训练阶段所学习到的分布。作者们通过创建一个基于样式的、由两个元素组成的生成器来背离这种设计:

1. 一个全连接的网络,代表着非线性映射  f:Z→W

2. 一个综合网络 g

全连接的网络  —  通过变换一个标准化的潜在向量 z Z ,我们得到了一个中间的潜在向量 w=f(z) 。中间的潜在空间 W 有效地控制了生成器的样式。作为旁注,作者确保避免从 W 的低密度区域采样。虽然这可能造成 w 的变化损失,但据说最终会导致更好的平均的图像质量。现在,一个从中间的潜在空间采样的潜在向量 w 被输入到块 “A” (训练的仿射变换)中,并转换成样式 y=(y s ,y b ) 。最后通过每个卷积层的 自适应实例标准化 adaptive instance normalization AdaIN )将该风格添加到合成网络中。 AdaIN 操作是这样定义的:

ze6Bfmf.png!web

合成网络  — AdaIN 的操作通过对其进行标准化来改变每个特征图 x i ,然后使用来自样式 y 的分量进行比例缩放和移位。最后,生成器的特征映射也被提供了一个直接的方式来生成随机细节  —  显式的噪声输入  —  以包含不相关高斯噪声的单通道图像的形式。

综上所述,虽然显式的噪声输入可以被视为在合成网络中生成过程的 种子 ,但从 W 抽取的潜在代码试图向图像添加某种样式。

结果:

作者们从 2017 年的 Progressive GAN 开始重新审视 NVIDIA 的架构。虽然他们掌握了大部分的架构和超参数,但是生成器正在根据新的设计进行 升级 。论文内容最令人印象深刻的特点是样式的混合。

NN7Fri6.jpg!web

上图是可视化样式混合的效果。通过让一个潜在的代码(来源)生成一个图像,我们可以覆盖另一个图像(目标)的特征子集。这里,我们覆盖对应于粗糙空间分辨率(低分辨率特征图)的层。这样我们就可以影响目标图像的高级特征了。

这种新奇的生成器结构使其有能力在合成网络的不同层向同一图像添加不同的样式。在训练过程中,我们通过映射网络运行两个潜在代码 z1 z2 ,并接收相应的 w1 w2 两个向量。完全由 z1 生成的图像被称为目标。这是一个生成的高分辨率图像,几乎与实际的分布区区分不出来。仅通过添加 z2 而生成的图像被称为来源。现在,在使用 z1 生成目标图像的过程中,在某些层,我们可以添加 z2 的代码了。此操作将用那些来源来覆盖目标中存在的样式子集。来源对目标的影响是由层的位置来控制的,这些层正被来源的潜在代码进行 培育 。与特定层对应的分辨率越低,来源对目标的影响越大。这样,我们就可以决定要在多大程度上影响目标图像:

粗糙空间分辨率(分辨率 4*4 8*8  —  高级方面,如:发型、眼镜或年龄;

·中间样式分辨率(分辨率 16*16 32*32  —  较小比例的面部特征,如:发型样式的细节、眼睛;

·精细分辨率(分辨率 64*64 1024*1024 只需修改一些小细节,如:头发颜色、肤色色调或皮肤结构;

作者们将他们的方法进一步应用到汽车、卧室甚至是猫的图像中,得到了令人震惊的结果。我仍然困惑为什么网络的决定会影响到猫的图像中爪子的位置,而不会关心汽车图像中车轮的转动

我发现真正令人惊奇的是,这个框架可以进一步应用于不同的数据集,比如汽车和卧室的图像。

3.进化生成性对抗网络 Evolutionary Generative Adversarial Networks

细节

该论文已于 2018 3 1 日提交。

主要思想:

在传统设置中, GAN 通过交替更新生成器和使用反向传播的识别器进行训练。利用在目标函数中的交叉熵机制,实现了双人 minmax  游戏。 E-GAN 的作者们提出了一种基于进化算法的可替代 GAN 框架。他们以进化问题的形式重新声明了损失函数。生成器的任务是在识别器的影响下承受不断地突变。根据 适者生存 的原则,我们希望最新一代生成器以这样的方式 进化 ,从而学会正确的训练样本分布。

方法:

ABJzimn.jpg!web

原始的 GAN 框架(左)与 E-GAN 框架(右)。在 E-GAN 框架中,全部的 生成器在一个动态环境中进化  —  即识别器 D 。该算法涉及三个阶段:变化、评估和筛选。最好的子版本被保留下来以供下一次迭代的时候使用。

进化算法试图在一个给定的环境(这里是指识别器)中进化全部的生成器。生成器中的每个个体都代表了生成网络参数空间中的一个可能的解决方案。进化过程归结为三个步骤:

1. 变化:通过根据一些突变属性而自我修改,生成器的单个 G θ 生成其子集 G θ 0 , G θ 1 , G θ 2 , . . .

2. 评估:每个子级都将使用一个适应函数进行评估,该函数取决于识别器的当前状态;

3. 筛选:我们对每个子级进行评估,并决定它在适应函数的方面是否足够好,如果是,它将被保留,否则就会被丢弃;

上述这些步骤涉及到两个应该被详细讨论的概念:突变和适应函数:

突变  —  这些是在 变化 步骤中给子级引入的改变。最初的 GAN 训练目标激发了他们的灵感。作者们区分了三种最有效的突变类型。它们是 minmax 突变(鼓励将 Jensen-Shannon 分歧最小化)、启发式突变(添加了反向 Kullback-Leibler 分歧项)和最小二乘突变(受 LSGAN的 启发);

适应函数   —  在进化算法中,一个适应函数告诉我们一个给定的子级离达到设定的目标有多接近。这里,适应函数包括两个要素:质量适应得分和多样性适应得分。前者确保了生成器能够提供欺骗识别器的输出,而后者则关注生成样本的多样性。因此,一方面,培育子版本不仅要很好地接近原始分布,而且还要保持多样性,并且避免模式崩溃的陷阱。

作者们声称他们的方法解决了多个众所周知的问题。 E-GAN 不仅在稳定性和抑制模式崩溃方面做得更好,还减轻了选择超参数和架构(对收敛至关重要)的压力。最后,作者们声称 E-GAN 比传统的 GAN 框架收敛得更快。

结果:

该算法不仅对合成数据进行了测试,而且还对 CIFAR-10 的数据集和 Inception 进行了测试。作者们修改了流行的 GAN 方法,如 DCGAN ,并在实际的数据集上对其进行了测试。结果表明,通过训练 E-GAN ,可以从目标数据分布中生成各种高质量的图像。根据作者们的想法,在每一个筛选步骤中只保留一个子级就足以成功地将参数空间遍历到最优的解决方案。我发现 E-GAN 的这个属性非常有趣。另外,通过对空间连续性的仔细检查,我们可以发现, E-GAN 的确从潜在的噪声空间到图像空间学习了一种有意义的预测。通过在潜在向量之间进行插值,我们可以获得平稳地改变有语义意义的人脸属性的生成图像。

YZvUveB.jpg!web

在潜在空 ZFrqqqV.png!web中线性地插值。生成器已经从 CelebA 数据集中学习了图像的分布。 α=0.0 对应着从向量 z 1 生成一个图像,而 α=1.0 则意味着图像来自向量 z 2 。通过改变 alpha 的取值,我们可以在潜在的空间内进行插值,效果非常好。

了解更多扫描二维码关注:

EjE3YvA.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK