机器之心原创
作者:思源
生成对立网络这一 ML 新成员现在现已枝繁叶茂了,截止本年 5 月份,现在 GAN 至少有 300+的论文与变体。而本文测验凭借机器之心 SOTA 项目整理生成对立网络的架构与丢失函数开展途径,看看 GAN 这一咱们族都有什么样的重要进程。
为了取得这种大局概览,咱们探究了 SOTA 项目中图画生成范畴的尖端模型。依据机器之心的 SOTA 模型计算,在图画生成范畴 58 个顶尖模型中,有 32 个模型在命名中带了「GAN」。这仍是包含了生成对立网络、变分自编码器和流模型三大生成形式的成果。
由此可见,GAN 最近两年构建的变体十分多,咱们难以理清它的开展主线。为此,通过 SOTA 项目了解 GAN 的开展全景,也不失为一个好办法。
图画生成 SOTA 排名:https:///sota/tech-task/3070d792-9832-48aa-bb1c-3b899fc3c100
由于图画生成范畴的 SOTA 排名触及十分多的数据集与衡量办法,咱们并不能直观展现不同 GAN 的开展道路。可是通过计算最干流的一些处理计划,咱们仍是能从模型架构与丢失函数两方面介绍 GAN 的开展。
图注:模型由浅到深、机制由简略到杂乱、图片质量由低到高的开展进程,其间 SinGAN 取得了 ICCV 2019 最佳论文。图片改编自 arXiv:1906.01529。
图注:不同生成对立网络所选用的丢失函数,它们针对 GAN 的不同缺陷提出了自己的处理计划。
生成对立这个思维能够很早
咱们都知道生成对立网络是 Ian Goodfellow 在 2014 年提出来的,它在图画生成上得到了令人冷艳的作用。自身生成对立的思维十分简略了解,能够总结为「茅与盾」这几个字。略微详细一点的话,咱们能够看看 Goodfellow 在原论文中给出的一个事例:
图注:生成对立网络的扼要学习进程,选自 arXiv: 1406.2661。
GAN 首要分为生成器与判别器,如上图所示生成器会将初始的随机散布 z 映射到 x,并得到绿色的随机散布。而判别器会判别黑点的实在散布与绿线散布是不是共同,只需判别器能分辩出来,那就它就能辅导生成器持续更新。如蓝色虚线所示,较高的方位标明判别器以为样本来自实在散布,较低方位则来自生成散布。直到蓝色虚线一向处于中心方位,那么它分辩不出两个散布的不同,上图从 a 到 d 展现的便是 GAN 的学习进程。
虽然这种生成对立的思路是通过 GAN 来发扬光大的,可是之前其实就有比较类似的思维。Olli Niemitalo 在 2010 年就在博客写到:「与生成器一起练习一个分类器网络,以随机或替换次序向该网络输入生成数据和原始数据。然后,分类器依据周围图画的语境猜想该输入是原始数据 (1) 或生成数据 (0)。一起,生成器网络测验从分类器中取得高分 (1)。」
此外,Jurgen Schmidhuber 也标明,GAN 与他 1992 年提出的 Predictability Minimization(PM)十分类似,GAN 和 PM 的首要区别只在于方向相反。在 Jurgen 本年的一篇概述论文中(arXiv: 1906.04493),他标明 PM 模型与 GAN 都是建模给定数据的无监督技能,它们都运用依据梯度的对立网络来完成极小极大博弈。
图注:PM 模型与 GAN 的工作流,其包含了各种变体。其间 PM 模型通过极小极大战略练习一个编码器,然后得到高质量的中心表征,该表征是能够生成为对应样本。而 GAN 看起来正好相反,它依据随机的中心表征,学习一个能生成实在样本的编码器。选自 arXiv: 1906.04493。
如上所示,PM 模型运用依据梯度的极小极大战略学习数据的编码器,然后使中心表征与数据的散布保持共同。而 GAN 却运用依据梯度的极小极大战略直接学习给定中心表征的解码器。因而,PM 模型编码器的输入类似于 GAN 解码器的输出,PM 模型编码器的输出类似于 GAN 解码器的输入。
此外,GAN 测验依据其它给定类型的散布迫临实在数据散布,一般能够给定高斯或二项散布等。而 PM 模型测验通过多变量阶乘(factorial)二项散布究竟实在散布。
总的而言,虽然 GAN 为咱们所熟知,但之前也有沿着极小极大博弈做生成模型的思路。1992 年的 PM 模型虽然不是那么为人所知,但它的思维仍是十分先进的。
GAN 的丢失函数演进
除了中心思维外,另一个重要的问题是咱们该怎么拉近实在图画散布与生成散布之间的间隔。好像上文黑色点线和绿色实线相同,GAN 的学习实质便是令生成散布迫临不知道的实在散布。要做到这一点,丢失函数就必不可少了,GAN 的丢失函数会衡量两个散布之间的间隔,并尽或许拉近它们。
在 14 年 Goodfellow 等研讨者提出来的 GAN 中,它运用 KL 散度衡量这种间隔。机器之心之前曾详细推导过这种依据 KL 散度的学习进程,感兴趣的读者能够查阅该文章。可是原版 GAN 的练习并不安稳,最开端的对立阶段或许一向生成随机噪声,终究收敛的成果也很或许只生成少数类别的许多重复图画。
为了处理这一系列问题,生成对立网络后续也就有了一系列的丢失函数立异。上文按时刻次序展现了不同的丢失函数,其间有一些耳熟能详的丢失函数,例如 Wasserstein 间隔、最小二乘间隔、几许间隔或相对间隔等等。
整体而言,不同的丢失函数首要从梯度消失问题、图画质量和样本多样性三个方面提高 GAN 的作用。不同的衡量办法也会有其共同的视点,例如 WGAN-GP 就特别重视梯度消失问题与图画质量,Spectral normalization GAN 关于处理梯度消失与样本多样性是最高效的。
图注:比较原始 GAN 选用的 KL 散度,不同丢失函数能取得的功能增益,选自 arXiv: 1906.01529。
Wasserstein 间隔
W 间隔又称之为推土机间隔,直观了解的话,实在图画散布是一堆土,生成散布也是一堆土,而 W 间隔便是将生成散布的一堆土沿着某种途径移动到实在散布方位所做的功。当然这种途径对 W 间隔是最优的,所做的功也是最小的。在 WGAN 论文中,研讨者将该间隔描绘为:
其间 Π(P_r, P_g) 标明一切联合散布的调集,而 γ(x, y) 的边际散布别离标明 p_r 与 p_g,它们别离代表实在图画散布与生成散布。比较原版 GAN 选用的 KL 散度与 JS 散度,推土机间隔即便在 p_r 与 p_g 之间彻底没有重复的情况下,也能反映实在间隔。而 JS 散度只会给出固定值 log2,因而也就没有梯度来拉近散布。
图注:两个散布 P_r 与 P_g 之间的 W 间隔与 JS 间隔,在θ小于或大于 0 时,两个散布没有穿插,JS 散度只能给出定值 log2,而 W 间隔能反映两个散布的实在间隔。选自 arXiv: 1701.07875。
相对间隔
另一种十分有意思的间隔是相对间隔,在 2018 年研讨者提出这种间隔后,Ian Goodfellow 在小型数据集上测验了这种 Relativistic GAN,他标明这种相对间隔有很好的特点。之前 GAN 首要期望添加假造图画看起来很实在的概率,而 Relativistic GAN 一起期望下降实在数据看起来为真的概率。
下面展现了 Relativistic GAN 的丢失函数,其间 f_1、f_2、g_1、g_2 都是标量到标量的函数。
看起来这个丢失很杂乱,但实际上并不难了解,其最为重要的当地在于 C(x_r) - C(x_f),正是这种减法带来了相对性。而一般 GAN 衡量的仅仅 C(x_r) 或 C(x_f),它们是肯定的。
正常情况下,GAN 只需求判别器最大化实在样本的概率,行将 D(x) 面向 1,而 RGAN 会要求衡量给定一张实在图画,它在多大程度上比随机生成的样本更实在,行将 D(x) 面向 0.5。
图注:右图在练习生成器中,判别器将假数据识别为真的概率面向 1。而抱负情况下,真识别为假和假识别为真的概率应该面向中心。选自 arXiv: 1807.00734。
GAN 的图画生成演进
除了拉近散布间隔这一取胜法宝,模型的才能也十分重要。模型的才能越强,就标明它能构建更杂乱的生成散布,能更好地拟合实在散布。因而模型越深越杂乱,它生成的图画质量就越高。在 14 年原版 GAN 中,Goodfellow 选用最简略的浅层全衔接网络作为判别器与生成器的架构,它能够在 MNIST 等低分辩率的数据集上取得很好的作用。
已然全衔接可行,那么很天然的主意是运用深度卷积网络加强它的才能,后续 LAPGAN 运用卷积网络由低像素向高像素层级地生成;DCGAN 运用转置卷积的空间上采样才能生成更高分辩率的图画。如下图所示为 GAN 的代表性架构演进:
后边依据不同的使命,生成对立网络架构也有更多的改变。在 17 年提出来的 BEGAN 中,它为判别器加上了一个自编码器。与一般的 GAN 比较,BEGAN 衡量生成散布与自编码器丢失函数的间隔,而不是直接衡量生成散布与实在图画散布之间的间隔。通过这种修正,模型能协助生成器生成自编码器简略重建的数据,因而前期练习愈加高效。
此外,Progressive GAN 或 Self-attention GAN 等模型都有其共同的当地,PGGAN 一点点添加分辩率,这类似于通过简略小使命走向终究的生成方针;SAGAN 用自注意力机制构建生成器与判别器,能学到生成图画的大局依靠性关系。一切这些立异,都为更实在的图画生成打下了根底。
BigGAN 信任读者们现已十分了解了,它在 SAGAN 的根底上证明,通过添加批量巨细和模型杂乱度,咱们能极大地提高生成的图片质量。从 BigGAN 提出以来,咱们看到的生成图片真的能诈骗人类的判别,StyleGAN 现已创建了一匹极端实在的「假人类」。但 StyleGAN 在论文中标明,它并没有构建新办法以安稳 GAN 的练习,也没有引进新的架构,它仅仅引进了一种生成作用十分好的 GAN。
SinGAN
终究,谈到生成对立网络架构,那就要介绍一下这几天发布的 ICCV 2019 最佳论文,它提出了一种新的 Unconditional GAN。该模型能捕捉图画块(patch)的内部散布,然后生成高质量、多样化的样本,并承载与练习图画相同的视觉内容。
咱们先看一些生成样本,模型在通过左边单张图片的练习后,它就能生成实在的图片,这些生成样本都能描绘实在图画的大局结构与精密纹路。
图注:SinGAN 的生成作用,选自 arXiv: 1905.01164。
咱们能够看到,上面事例的不同之处在于,生成图画的横纵比或标准是可变的。这首要在于 SinGAN 包含了一个全卷积金字塔 GAN,金字塔的每一层担任学习不同份额的图画块散布。
详细而言,给定单张图片 x,SinGAN 能捕捉图片的内部计算信息。与一般的 GAN 不同,SinGAN 的练习样本是图片块,而不是整张图画。SinGAN 期望取得纹路之外的图画信息,然后生成更一般的天然图画,这就要求模型能捕捉到不同标准的杂乱图画结构。
为此,研讨者提出了如下架构的 SinGAN,它由一系列分层的 patch-GAN 组成,不同的 GAN 担任捕捉不同标准的图画块散布。整个模型都选用了较小的感触野,然后约束模型的才能,并避免模型记住单张图片的某些特征。
图 4:SinGAN 的多标准生成流程,模型由 GAN 的一种金字塔计划组成,每一层都是一个生成对立网络,它们从下到上学习着不同标准的图画生成作用。SinGAN 的练习和揣度进程都是从粗粒度到细粒度的方向进行,选自 arXiv: 1905.01164。
如上都是拿图画生成举例,这些技巧许多都能迁移到其它范畴,例如图画转化、图画修正、图画超分辩率和表征学习等等。当然这些范畴也有更多令人赞不绝口的生成对立网络,例如 CycleGAN、FaceSwap、BigBiGAN 等等,这些范畴的顶尖模型就等待读者自行探究机器之心 SOTA 项目了。
机器之心「SOTA模型」:22大范畴、127个使命,机器学习 SOTA 研讨一扫而光。