Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

睡不着的iris、菜菜Tom、吴勇、狗小白、钱天培编译

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

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

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

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

不慌!

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

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

来一睹为快吧!skr skr!

点击观看

时长20分钟

带有中文字幕

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

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

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

通过最大化互信息

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

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

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

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

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

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

这篇论文向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

玫瑰是红的

紫罗兰蓝紫色

等我用cycleGAN训练完

所有事情都变样了

接下来 我们看下Cycle GANs。

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

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

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

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

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

请注意

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

我们使所有GANs翻白眼

我们不多说,就是干

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

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

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

GANs应付不了高分辨率

那我们该用什么工具?

逐渐增加复杂度

Like小波变换

Pro GANs使之变得简单

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

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

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

6、DC-GAN

想知道训练GANs的全集

这不是DC漫画

是DCGAN和卷积

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

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

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

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

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

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

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

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

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

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

7、WGANs

这不是魔术

这只是数学

让模型稳定住

模型垮塌都拒绝!

来杯伏特加

邀模型一起嗨

使映射连续

迎接WGAN的到来

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

8、BEGANs

控制多样化

成比例地增长

我不知道怎么押韵

那就让BEGANs出场

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

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

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

9、VAE-GANs

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

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

训练的部分是唯一的旋律

调个头就是VAE-GANs

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

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

10、Sequence GANs

一撮RL少许GAN

加点RNN变炒饭

这论文好似交响乐

Sequence GAN是刚出炉的感觉

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

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

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

大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

入门GANs
7
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

变分自编码器技术

变分自编码器可用于对先验数据分布进行建模。从名字上就可以看出,它包括两部分:编码器和解码器。编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作本征向量(latent vector)。解码器吸收数据的低级表征,然后输出同样数据的高级表征。变分编码器是自动编码器的升级版本,其结构跟自动编码器是类似的,也由编码器和解码器构成。在自动编码器中,需要输入一张图片,然后将一张图片编码之后得到一个隐含向量,这比原始方法的随机取一个随机噪声更好,因为这包含着原图片的信息,然后隐含向量解码得到与原图片对应的照片。但是这样其实并不能任意生成图片,因为没有办法自己去构造隐藏向量,所以它需要通过一张图片输入编码才知道得到的隐含向量是什么,这时就可以通过变分自动编码器来解决这个问题。解决办法就是在编码过程给它增加一些限制,迫使其生成的隐含向量能够粗略的遵循一个标准正态分布,这就是其与一般的自动编码器最大的不同。这样生成一张新图片就比较容易,只需要给它一个标准正态分布的随机隐含向量,这样通过解码器就能够生成想要的图片,而不需要给它一张原始图片先编码。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

控制理论技术

控制理论是工程学与数学的跨领域分支,主要处理在有输入信号的动力系统的行为。系统的外部输入称为“参考值”,系统中的一个或多个变数需随着参考值变化,控制器处理系统的输入,使系统输出得到预期的效果。 控制理论一般的目的是借由控制器的动作让系统稳定,也就是系统维持在设定值,而且不会在设定值附近晃动。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

信号处理技术

信号处理涉及到信号的分析、合成和修改。信号被宽泛地定义为传递“关于某种现象的行为或属性的信息(如声音、图像和生物测量)”的函数。例如,信号处理技术用于提高信号传输的保真度、存储效率和主观质量,并在测量信号中强调或检测感兴趣的组件。我们熟悉的语音、图像都可以看做是一种信号形式。因此,对于语音、图像的增强、降噪、识别等等操作本质上都是信号处理。

生成模型技术

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

WGAN技术

就其本质而言,任何生成模型的目标都是让模型(习得地)的分布与真实数据之间的差异达到最小。然而,传统 GAN 中的判别器 D 并不会当模型与真实的分布重叠度不够时去提供足够的信息来估计这个差异度——这导致生成器得不到一个强有力的反馈信息(特别是在训练之初),此外生成器的稳定性也普遍不足。 Wasserstein GAN 在原来的基础之上添加了一些新的方法,让判别器 D 去拟合模型与真实分布之间的 Wasserstein 距离。Wassersterin 距离会大致估计出「调整一个分布去匹配另一个分布还需要多少工作」。此外,其定义的方式十分值得注意,它甚至可以适用于非重叠的分布。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

信息论技术

信息论是在信息可以量度的基础上,研究有效地和可靠地传递信息的科学,它涉及信息量度、信息特性、信息传输速率、信道容量、干扰对信息传输的影响等方面的知识。通常把上述范围的信息论称为狭义的信息论,又因为它的创始人是香农,故又称为香农信息论。

信息生成对抗网络技术

GAN的一个变种

推荐文章
暂无评论
暂无评论~