GANs有嘻哈:一次学完10个GANs明星模型(附视频)

GANs有嘻哈:一次学完10个GANs明星模型(附视频)

如果要选一个近两年深度学习最火的方向,GANs(生成对抗网络)可绝对是大热门。

以“左右互搏”的观念为人所知,GANs从概念开始就让人激动不已。不过从GANs被提出的第一天起,深度学习圈就出了个“大坑”,而且越挖越大、完全没有被填满的趋势。

瞅一瞅GANs大家族的成员:InfoGANs,relativistic GANs,SAGAN…,成百上千,而且这个列表还在不停增加。这也让想要持续了解GANs的同学们有心无力。

61f4f9c34c38dd21ce65a0041f473db59219b463

不慌!

文摘字幕组本次的新作,就将系统介绍GANs家族的新成员,让你一次学完10个GANs明星模型。

当然,本期视频作者很皮的在每个GAN家族的介绍前都加入了自己的土味儿说唱,文摘菌在翻译的时候为了保持押韵也很努力了!希望你在这些不太押韵的rap中学习到尽可能多的知识点!

来一睹为快吧!skr skr!

点击观看

时长20分钟

带有中文字幕

333362f2b023af7247c2d77a551118666545e815

1、互信息对抗网络(InfoGANs)

0ae24f8d5edc6c4e9a358faf4d30aee47facf79e

隐向量映射为什么没啥帮助?

因为向量和图像没有走同步

通过最大化互信息

互信息对抗网络(InfoGANs)使之变得可能

首先,我们来看看互信息对抗网络(InfoGANs)

(文摘菌:这也太滥竽充数了吧……)

InfoGANs很好运用了互信息的概念,试图以完全非监督的方式学习分解特征。互信息定义为,在知道一个变量信息后,对另一变量所学的额外信息量, 它就像基于天气预报信息所得的板球晃动的增益信息。

这里我们要在隐向量与生成的图像之间,使互信息最大化,这意味着隐向量和图像应近似映射,这导致图像的知识直接对应隐向量的知识,而不像常规的生成对抗网络,同一张图像会对应或者缠绕于多个隐空间的多个隐向量。我觉得这是信息论在生成对抗网络的一种非常漂亮的应用。

2、相对生成对抗网络(Relativistic GANs)

2101c51b384263101d3a480f9fbc899ae15a008b

这篇论文向GAN的众神提出挑战

新的粉丝在reddit和推特上引起慌乱

不止粉丝, 连lan Goodfellow也立站

相对生成对抗网络说我来的有点晚

(文摘菌:单押X4!)

下面讲讲相对生成对抗网络(Relativistic GANs)。这里面的想法让人非常鸡冻,甚至连GANs之父Ian Goodfellow本人都得发推称赞。

作者恰如其分指出GANs中有趣的一点:鉴别器在学习区分真实图片的过程极其槽糕。事实上,它说这个问题在初次发表的论文中就应该处理好。

鉴别器把所有的结果图像归为0或1两类,这将导致系统不稳定。实际情况下,真假图像的值在0.5之间徘徊,甚至是生成器带来的0.5~0.55的微小扰动,都会容易导致假的图像比起真的图像更加真实。这种非常不稳地的映射类似于一个倒立摆系统。

因此论文指出类似于WGANs (Wasserstein GANs) 或者BEGAN等,鉴别器中的损失应该是相对的, 这样生成器学会了扩展,鉴别器也就被真数据的异常与假货之间的最大化差别所击垮了。

论文得出了两种方案 并可以被应用于大部分现有的架构。鉴别器不再判别真实数据的概率,而是给真假图像赋予一个临界值 使得关键差值的sigmoid函数最大化。这被称为RSGAN。

另一个变体叫相对平均标准GAN (relativistic average standard GAN)。它试图考虑真假图像的损失值。对于假图像而言 损失是最小化假图像关键值与真实图像均值的临界值之差,反之亦然。这样我们就能够提高临界点的全局稳定性,同时允许生成器挑选出整体损失函数。生成器受限于只能对其中一个上述参数项起作用, 但在常规的GANs中,生成器忽略了其中一项。

3、Cycle GANs

aa5800ee0b34c270cf6a6e85f3b03573335e6e11

玫瑰是红的

紫罗兰蓝紫色

等我用cycleGAN训练完

所有事情都变样了

接下来 我们看下Cycle GANs。

Cycle GANs所采用了一种非常神奇的学习方法。

ceb5cde79a8387c5c21d16031dfd9ba6a108d74b

学习直接域迁移非常有趣,比如把马映射到斑马的例子在Twitter和其他媒体平台上屡见不鲜。

我们的目标是,学习X到Y的G映射的过程中,生成器不是选取一些隐向量来映射,而是使用图像直接转换。

现在我们使用普通的对抗损失来构建一个映射G,从生成的图像X映射到真实图像Y。类似地, 我们也有一个学习反向映射的互补, 但这有一定可能我们会完全丢失原始图像的一些特性,所以我们需要有约束性。因此,我们对正向和反向映射操作都引入了循环约束。整个损失函数包含原始的相关映射,原始反向映射,以及循环映射步骤。这是一个简单且有效的域迁移的观点。

4、自注意力生成对抗网络(SAGAN)

479d571b05f9fdd18131a4b438cb37574cdf9504

请注意

这是SAGAN(自注意力生成对抗网络)

我们使所有GANs翻白眼

我们不多说,就是干

自注意力生成对抗网络(SAGAN)是最近由Han Zhang和Ian Goodfellow本尊研究提出的。

这篇文章里, Ian提出将注意力机制引入生成对抗网络的生成器和鉴别器。它通过对所有深度的特征应用1×1卷积,以一个点表示受关注区域。随后,将多个对原始特征映射的softmax相乘,从而促进注意力区域的特征输出,使得注意力图得到了改善。1×1卷积滤波器能够学习得出最佳结果,相较其他的生成对抗网络 SAGAN需要学习的方式非常少。

5、渐进生成对抗网络(progressive GANs)

eb6cf2148939dc1c282a2c2d0479d20cc378eaac

GANs应付不了高分辨率

那我们该用什么工具?

逐渐增加复杂度

Like小波变换

Pro GANs使之变得简单

再来看看渐进生成对抗网络(progressive GANs)。这个点子让人回想起传统好用的小波变换算法, 它渐进式增加学习任务的复杂度,这个过程和教小孩东西类似。

我们首先学习到4×4分辨率的图像。该图像是在原始图像基础上高度压缩而来, 然后慢慢对生成器和鉴别器添加层次,使其能够学习16×16分辨率的图像,直到我们生成完整的1024×1024分辨率的图像。

是不是很酷? 新添加的层次被视为一个残差块,并随着样本分辨率占比逐步减少,超分辨率块的权重慢慢增加。这就是为什么我们要记住多分辨率分析和信号处理这些传统概念。鬼知道它们哪天就派上用场了!

6、DC-GAN

e64894a14757d7631d7bc95a698e8112682d8e93

想知道训练GANs的全集

这不是DC漫画

是DCGAN和卷积

DC-GAN是一篇说明如何训练一个卷积GAN规则的文章。

(1)用带有步长的卷积层替换判别器中的池化层和生成器中的反卷积层。

作者的想法是:让模型自己学习下采样的过程 而不是我们人为地。在积聚和静态选择时下采样。

(2)在最初的卷积层中放弃全链接层。

它们混淆了特征的局部信息,结果这让特征难以区分 。

(3)在生成器和判别器中使用批归一化方法。

它能让学习过程更加平稳,使得数据归一化到均值为0方差为1,它甚至可以有效减少模式坍塌(mode collapse)的问题。但是注意,你要避免在生成器的最后和判别器引入较大样本震荡和模型不稳定的开始时使用批归一化。

(4)在判别起中使用leaky Relu并且在生成器中使用Relu,但是在最后一层中要使用tanh来更快速的学习。

它同时还强调了隐空间的能力,这个能力体现在它可以在空间中执行矢量运算并在图像空间中展示这种变换是有意义的。

最有趣的一个实验是一个绘制图像实验。生成器可以通过抑制生成器输出的窗口的边界框来生成没有窗口的图像,这是通过在倒数第二个卷积层学习一个窗口映射实现的。这个模型下一步在蒙版区域填补一面墙或者特定的物体,结果非常的惊人。

7、WGANs

27ebd951e7351e7905bf3eda1206b3b186285868

这不是魔术

这只是数学

让模型稳定住

模型垮塌都拒绝!

来杯伏特加

邀模型一起嗨

使映射连续

迎接WGAN的到来

WGANs因其模型的设计和运作方式让人惊叹。这里的critic用来估计生成图像和真实图像之间的距离,模型优化参数的过程中会使这个距离最小化。最有意义的事情是,critic能够有效的衡量不同分布之间EMD距离的差异性,并且能消除模式坍塌问题。这是因为生成器没有通过判别器向某一点或者模式优化 而是向着某一分布优化。EMD距离有相关性并且保证了。概率映射在一定限制条件下连续可微。

8、BEGANs

87bc769fde32ba791c7451f51976fc86c4801aca

控制多样化

成比例地增长

我不知道怎么押韵

那就让BEGANs出场

在BEGANs中我们将编码器和解码器看作一个判别器。这里的目标是使真假图片构成的自编码器损失分布使得EMD距离更近。一方面,它可以匹配真图片和假图片的分布,此外重构损失能够直接影响每一个像素点,不像WGANs一样限制lipchitz条件。WGANs考虑距离的下限并且优化它,但是在WGANs中我们对图片分布中的距离建模。

这里我们使用自编码器损失进行建模,损失的下限是基于这两个概率值的损失函数分布的平均值的差的绝对值,BEGANS会最大化这个差异来训练判别器,同时最小化这个差异来训练生成器。它还引入了多样性系数 这个系数大致等于预期损失和原始图像的预期损失的比。理想上这个值应该是1,但是我们并不想导致其和原始图像有相似的分布,因而保证均值稍稍低于原始图像。

如果我们保持这个值接近0,生成图像的多样性会更低. 因为生成模型更专注于生成真实图像,。受比例控制理论的启发, 我们更新这个比例,在训练的过程中引入一个参数kt,这样我们能够在训练的过程中维持多样性比例。模型收敛的点是被清晰定义好了的,生成器和判别器的更新是并行的。此外, 我们也没有限制Lipchitz条件,这也就是为什么BEGANs非常有意思以及必读的原因。

9、VAE-GANs

a214c8e23db6b3b8041249f7154053da27565927

VAE在编码器中引入了随机性

催赶着隐空间,让它变有序

训练的部分是唯一的旋律

调个头就是VAE-GANs

变分自编码器是一个非常棒的想法,它能够保证学习到的隐空间是平滑的,这是因为解码器使用的是随机排列的编码向量。

我们可以将解码器部分看作GANs的阅读器。伴随原始损失,我们同样有多样性损失。在原始损失中,我们最大化x在z条件下的期望 这个值正常情况下应该是随机的。我们使用一个正则项限制VAE中的隐空间的可视性,这使得它趋近于标准正态分布。对于解码器,或者也可以说成生成器,我们添加两项使得解码器可以被单独优化。另一方面,判别器通过制造生成图像和原始图像的隔阂进行优化。

10、Sequence GANs

5fc79eeb51ba185715e4062cbf69d2d5ae789bc1

一撮RL少许GAN

加点RNN变炒饭

这论文好似交响乐

Sequence GAN是刚出炉的感觉

Sequence GANs是一种非常有意思的GAN神经网络,它成功的结合了强化学习、序列学习和GAN。他将序列看作强化学习的决策过程,它将生成器当作一个agent,把判别器当作critic。

论文中用蒙特卡洛搜索的策略梯度学习序列。它遵从增强的策略,生成器是一个RNN,而判别器是一个CNN。使用CNN而不是RNN的原因是,CNN作为判别器能取得更好的效果。

我们基于序列训练判别器,它之后会被拿来和真实的序列进行比较。此外,生成器会从当前状态产生多种序, 我们对每一种序列赋上判别器的打分,然后我们基于期望的每一组状态和动作的组合的收益来学习策略。这对人们研究强化学习和时间序列模型和应用是一个很好的开端。

原文发布时间为:2018-08-10

本文作者:睡不着的iris、菜菜Tom、吴勇、狗小白、钱天培

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“大数据文摘”。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101495.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号