雷锋网 AI 科技评论按:本文作者 Damian Bogunowicz,于去年在慕尼黑大学获得硕士学位,主攻机器人、认知和智能专业方向,他在参与一个研究项目的过程中阅读了大量计算机视觉深度学习相关论文,并从 Reddit 网站上「What are best papers regarding GANs for 2018 you read?」这一话题讨论受到启发,挑选出来 2018 年度三篇最佳 GAN 论文,并整理成文进行发布。雷锋网 AI 科技评论编译如下。
今年我很荣幸能参与到一个研究项目中,它要求我熟悉大量计算机视觉深度学习相关论文,让我深入到这个领域中学习,在此过程中,对于该领域在近两三年时间里所取得进步,我深为震撼。同时,图像修复、对抗样本、超分辨率或 3D 重建等所有不同的子领域从最新进展中获益颇丰,让人兴奋并激励人心。然而,现在人们对生成式对抗网络(GAN)这一神经网络进行了大量炒作(在我看来,这一定是有原因的)。我认同这些模型非常好,同时我也一直在留意关于 GAN 的一些新观点。
受 Reddit 网站上「What are best papers regarding GANs for 2018 you read?」这一话题讨论(话题讨论网址: https://www.reddit.com/r/MachineLearning/comments/a8th4o/d_what_are_best_papers_regarding_gans_for_2018/)的启发,我决定对 2018 年度最有趣的 GAN 相关论文进行简要回顾。这个清单是主观性非常高的——我选择的研究论文不仅是当前最新的,也是最酷、并能给人惊喜的。在本文的第一章,我会介绍三篇论文。顺便一提,如果你对于此前的 GAN 相关论文感兴趣,这篇文章(阅读地址:https://medium.com/nurture-ai/keeping-up-with-the-gans-66e89343b46)将会对你有所帮助,作者提到的其中一篇论文甚至就是我今天要介绍的最佳论文。
1.《GAN 剖析:可视化和理解生成式对抗网络》(GAN Dissection: Visualizing and Understanding Generative Adversarial Networks)——即使生成式对抗网络周围充斥着大量炒作,不过显而易见,这种技术迟早会进行商用。然而,正因为我们对它们的内部机制了解甚少,我认为它仍然很难去开发一个可靠的产品。这篇论文朝未来迈进了一大步,到那个时候,我们可以真正地掌控生成式对抗网络。各位一定要去看看论文作者们制作的超棒的交互式 demo,它的结果十分惊艳。
2.《基于样式的生成式对抗网络生成器架构》(A Style-Based Generator Architecture for Generative Adversarial Networks)——英伟达的研究团队经常能提出开创性的概念(2018 年很棒的图像修复论文:https://www.youtube.com/watch?v=gg0F5JjKmhA,使用神经网络进行图形渲染的最新 demo:https://www.youtube.com/watch?time_continue=2&v=ayPqjPekn7g)。这篇论文也不例外,另外,展示他们研究结果的视频简直令人着迷。
3.《进化的生成式对抗网络》(Evolutionary Generative Adversarial Networks)——这篇论文可读性非常高并且十分巧妙。进化算法与生成式对抗网络的结合——这注定就会很厉害。
《GAN 剖析:可视化和理解生成式对抗网络》(GAN Dissection: Visualizing and Understanding Generative Adversarial Networks)
-
摘要
这篇文章于 2018 年 11 月 26 日被收录。作者创建了一个很不错的项目网站,交互式 demo 也在该网站上,大家可前往下方地址观看:
-
主要思路:
毋庸置疑,生成式对抗网络证明了深度神经网络有多大的能力。机器学习生成效果惊人、高分辨率的图像这种方式是美好的,就仿佛它像我们一样理解这个世界。不过,正如其他出色的统计模型一样,它们最大的缺陷就是缺乏可解释性。这项研究为理解生成式对抗网络带来了非常重要的进展,它让我们找到对从属于级别 c 的特定目标负责的生成器中的单位。作者们称,我们可以观察到生成器的一个层,并且找到该层的单元的子集,在生成的图像中,这些单元决定 c 级别目标的生成。作者通过引入剖析(dissection)和干预(intervention)这两个步骤,为每一层级搜索出了一组「具有因果关系」的单元。此外,它可能是首次为理解生成式对抗网络的内部机制提供系统分析的一项工作。
-
方法:
生成器 G 可以看做是一个潜在向量 z 到一个生成图像 x 的映射:。我们的目标是理解内部表示 r,它是生成器 G 中某个特定层的输出。
我们希望通过观察级别 c 中的目标来更近地观察 r。而我们知道 r 包含了特定目标生成的编码信息,我们的目标就是理解该信息是如何在内部被 encode 到 r 中的。作者声称,有一种方法可以将这些单元从为级别 c 目标的生成负责的 r 中提取出来。
在这里,是特定层中所有单元的集合,U 表示场景单元(具有因果关系的单元),P 表示像素位置。问题是,怎样表示这一分离?作者提出了两个步骤,作为理解生成式对抗网络「黑盒」的工具:剖析(dissection)和干预(intervention)。
用 Dissection 测量单元 u 和 级别 c 之间的一致性
剖析(dissection):我们想要确定这些在 r 中有明确表示的场景级别。这一目标主要通过比较两张图像来实现。我们通过计算 x 得到第一张图像,然后让它贯穿于语义分割网络中运行,这就会返回与场景(例如树)级别相关的像素位置图片: 。第二张图像通过计算图片: 生成,接着对该图像进行上采样处理,从而使其与图片: 的维度匹配;之后又对其进行阈值处理,从而针对特定单元「触发」哪些像素这一难以抉择的问题作出决策。最终,我们计算出两个输出的空间一致性——值越高,单元 u 对级别 c 的具有因果关系的影响就越大。通过为每一单元执行这一操作,我们最终可以找出,哪些层级在 r 架构中有明确的表示。
用干预测量单元集 U 在级别 c 上具有因果关系的影响
干预(intervention):在这一步骤中,我们确定了相关的级别。现在,我们尝试为每一级别找到最佳分离效果。这就意味着一方面,我们消除(抑制)弱的单元,以期让场景级别从生成图像中消失;而另一方面,我们又放大具有因果关系的单元对于生成图像的影响。通过这种方式,我们可以了解到它们对于显示场景级别 c 起到了多大的作用。最终,我们将级别 c 从两张图像中分割出来并进行比较。它们语义映射的一致性越小,级别的分离效果就越好,也就是说我们完全「证明出」了树对一张图像的影响,而第二张图像仅仅包含了一片丛林。
-
结果:
a) 由渐进式的生成式对抗网络生成的教堂图像; b) 给定预训练的渐进式生成式对抗网络,我们确定了对生成「树」这一场景级别负责的单元;c) 我们或者可以抑制将树从图像上「去掉」的那些单元…; d) 或者增大图像中树的密度。
结果表明,我们在理解网络的内部概念方面的工作做得比较好,这些想法可以帮助我们改善网络的表现。了解哪些图像特征来自于神经网络的哪些部分,对于可解释性、商用以及更深入的研究都是非常有价值的。
a) 为了排除故障,我们可以确定引入工艺品的那些单元… ;b) 和 c)可以 将它们去掉,来「修复」生成式对抗神经网络
目前可以解决的一个问题就是生成图像中的人为视觉效果。即便是一个被训练得很好的生成式对抗神经网络,有时也可能会生成一个很糟的不切实际的图像,而研究者们此前也并不知道这些错误的原因。现在,我们可以将这些错误与决定人为视觉效果的神经元集关联起来考虑,通过确定和抑制这些单元,研究者可以提高生成图像的质量。
通过将某些单位设置为固定平均值,以门为例,我们可以确定门将会显示在图像上的某个地方。自然而然地,这就不会违反已知的分布统计信息(我们无法强制让门出现在天空中)。现实中的另一局限是,一些目标与一些位置的固有关联度太高,想要将它们从图像中去掉是不可能的。举一个例子:研究者无法将椅子从会议厅移除,而仅仅能减小它们的密度或者尺寸。
《基于样式的生成式对抗网络生成器架构》(A Style-Based Generator Architecture for Generative Adversarial Networks)
-
摘要
这篇论文于 2018 年 12 月 12 日被收录。作者们确认论文中所提出的方法的代码,不久后就会对外发布。此外,对于想要了解更多关于这一方法的信息但不想阅读全篇论文的读者,前两天发布的一篇博文对这篇论文进行了概述,大家可前往如下地址查看:
-
主要思路:
这篇论文针对 GAN 框架提出了另一种观点。更特别地,它从样式—迁移设计中汲取灵感,创建了一个生成器架构,它能学习生成图像中的高级属性(例如在人脸或者背景上训练时的年龄、身份,质量差的图像的拍摄视角、样式)以及随机变量(人脸的雀斑、头发细节或者在质量差的图像上训练时的发色、皮肤纹理)。该生成器不仅能学习自动分离这些属性,还能让研究者用非常直观的方式控制合成。
-
方法:
传统的生成式对抗神经架构(左边)VS基于样式的生成器(右边)。在新的框架中,有两个网络部分:映射网络 f 和合成网络 g。前者将一个潜在代码 f 映射到一个中间的潜在空间中,这个潜在空间对样式信息进行解码。后者利用生成的样式和高斯噪声来创建新的图像。 区块「A」是学到的仿射变换; 区块「B」将学到的每个通道规模化的因素应用到噪声输入上。
在传统的生成式对抗网络方法中,生成器使用一些潜在的代码作为输入,然后输出一个从属于它在训练阶段所学到的分布的图像。论文作者舍弃了传统方法的设计,而是创建一个基于样式的生成器,它由两个部分组成:
1. 一个全连接网络(fully connected network),它表示非线性映射 f :
2. 一个合成的网络(synthesis network)g。
全连接网络(fully connected network)——通过转换一个标准的潜在向量图片: ,我们获得了一个中间的潜在向量图片: ,这个中间的潜在空间 可以有效控制生成器的样式。附注一点,作者确保可以避免从 的低密度区域取样,虽然这会造成 w 中的变量损失,但是据说最终提高了图像的平均质量。现在,一个从中间的潜在空间取样的潜在变量 w 被输入到 区块「A」(学到的仿射变换)并被转化成样式 。这个样式最终通过每一个卷积层的自适应的实例正则化(adaptive instance normalization,AdaIN,大家可前往 https://arxiv.org/abs/1703.06868 查看相关论文)被输入到合成网络。自适应的实例正则化操作被定义为:
合成的网络(synthesis network)——自适应的实例正则化操作通过将每一个特征映射 正则化来变更它们,然后使用来自样式 y 的组成部分将其规模化并进行转移。最终,生成器的特征映射也同样被喂养一个直接的方式(a direct means),以包含无相关的高斯白噪声的单通道图像的形式,来生成显性噪音输入的随机细节。
总而言之,虽然显性噪声输入可能被视作合成网络生成过程的「种子」,从 取样的潜在代码试图将某种风格注入到一个图像中。
-
结果:
论文作者再次讨论了英伟达在 2017 年论文中(论文地址:https://arxiv.org/abs/1710.10196)提出的渐进式生成式对抗神经网络(Progressive GAN)架构。虽然他们保留了这一架构和超参数的主要部分,但是根据新的设计对生成器进行了「更新」。该论文最令人印象深刻的特征就是样式混合。
可视化样式混合的影响。一个由潜在代码产生的图像(源)可以覆盖另一个图像(目标)的特征集,这样就覆盖了与粗糙的空间分辨率(低分辨率特征映射)相对应的层。这样的话,就可以对目标图像的高级特征产生影响。
这个新的生成器架构能够将不同的样式,注入到合成网络不同层的相同图像中。在训练期间,我们通过映射网络运行了两个潜在代码和,并获得了和两个向量。完全由生成的图像表示目标。作为一个高分辨率的生成图像,它实际上无法与真实的分布区分开来。仅由注入的生成的图像表示源。现在,在目标图像生成期间,我们通过使用在某些层注入代码。这项执行用那些源来覆盖呈现在目标中的样式子集。源对目标的影响由层的位置进行控制,这些层是使用源的潜在代码所「培育」的。分辨率与特定层的关联度越低,源对目标的影响就越大。以这种方式,我们可以决定对目标图像产生多大程度的影响:
粗糙的空间分辨率(分辨率)—高层级方面(例如头发样式、眼镜或年龄);
中等样式分辨率(分辨率)—更小规模的脸部特征(头发样式细节、眼睛);
精细的分辨率(分辨率)—仅仅改变头发颜色、肤色的色调或皮肤纹理等小细节。
作者将他们的方法深入应用到汽车、卧室甚至猫的图像中,并得到了令人惊喜的结果。我现在依旧感到困惑的是:为什么网络网络决定影响猫图像中的猫爪定位,而不关心车图像中车轮的旋转呢?
这个令人惊喜的框架可以更深入地应用到不同的数据集上,例如汽车、卧室图像等。
《进化的生成式对抗网络》(Evolutionary Generative Adversarial Networks)
-
摘要
这篇论文于 2018 年 1 月 03 日被收录。
-
主要思路:
在传统设置中,通过利用反向传播交替更新生成器和判别器,来训练生成式对抗网络。这两层的 minmax 博弈通过利用目标函数中的交叉熵机制来实现。《进化的生成式对抗网络》作者提出了基于进化算法的可选择的生成式对抗网络框架。他们用进化问题的形式,重新表述了损失函数。生成器的任务是在判别器的影响下经受不断的变异。根据「优胜劣汰」法则,研究者认为生成器最终的生成以这种方式「进化」,从而学到正确的训练样本分布。
-
方法:
原始的 GAN 框架(左边)vs E-GAN 框架 (右边)。在 E-GAN 框架中,生成器「种群」在动态环境(判别器 D)中进化。算法设计到三个阶段:变异、评估和选择。最好的「子代」被保留到下一次迭代中。
进化算法试图在一个给定的环境(这里是判别器)中进化生成器「种群」(population)。每一个来自群的个体代表在生成式网络参数空间可能存在的解决方案。这个进化过程可以归结为三个步骤:
1. 变异(Variation):生成器个体根据一些变异特性进行自我修改,来产生它的「子代」(children)、、……
2. 评估(Evaluation):每个「子代」通过使用依赖于判别器当前状态的适应度函数来进行评估。
3. 选择(Selection):我们评估了每个「子代」,然后判断它对于适应度函数来说是否足够好。如果是,就继续保留;如果不是,就将其舍弃。
这些步骤涉及到两个应该进行更详细探讨的概念:变异和适应度函数。
变异(Mutation)——在「变异」步骤中引入到「子代」上的变化就是变异,这一概念是从最初的生成式对抗网络训练目标中受到的启发。论文作者区分出来了三种最有效的变异类型。它们是 minmax mutation(最小最大化变异,启发了 Jensen-Shannon 散度的最小化)、heuristic mutation(启发式变异,增加了反向的 Kullback–Leibler 散度项)以及 least-squares mutation(最小二乘变异,受最小二乘 GAN 的启发,最小二乘 GAN 论文地址:https://arxiv.org/abs/1611.04076)
适应度函数(Fitness function)——适应度函数使用进化算法让我们知道怎样靠近给定的「子代」,来实现设定的目标。在这里,适应度函数由两个元素组成:质量适应度分数和多样性适应度分数。前者可以确保生成器产生的输出能够「骗过」判别器,后者则关注生成样本的多样性。因此,一方面,不仅需要教这些子代(offsprings)去接近于原始分布,还要教他们保持多样性并避免模式崩溃陷阱。
作者们声称,他们的方法解决了许多著名的问题。进化的生成式对抗网络不仅能够在稳定性和抑制模式崩溃方面的表现更好,还能够减轻对超参数和架构(对收敛性至关重要)的细致选择上的负担。最终,作者表示进化的生成式对抗网络比传统的生成式对抗网络框架收敛得更快。
-
结果:
这个算法不仅仅在合成数据上进行测试,同时也对照了 CIFAR-10 数据集和 Inception score。作者修改了深度卷积对抗生成网络(DCGAN,论文地址:https://arxiv.org/abs/1511.06434)等当下流行的生成式对抗网络方法,并将他们在现实的数据集上进行了测试。结果表明,可以训练进化的生成式对抗网络从目标数据分布中生成多样的、高质量的图像。据作者称,在每一个「选择」步骤中保留一个「子代」,就足以成功穿过参数空间找到最优的解决方案。我发现进化的生成式对抗网络的特质非常有趣。此外,通过检查空间的连贯性,我们发现从潜在的噪音空间到图像空间,该网络确实学到了有意义的图像投影。通过在潜在的向量间插值,我们可以得到能从语义上流畅地更改有意义的脸部属性的生成图像。
潜在空间的线性插值。生成器从 CelebA 数据集学到图像分布。 对应于从向量生成图像,而则对应着从向量 生成的图像。通过改变 alpha,我们可以在潜在空间插入很好的结果。
文中所有图像来自于在文中提到的相关论文。
题图来源:https://www.saatchiart.com
via:https://dtransposed.github.io/blog/Best-of-GANs-2018-(Part-1-out-of-2).html 雷锋网(公众号:雷锋网)AI 科技评论编译
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/134835.html