zoukankan      html  css  js  c++  java
  • GAIA

    正文链接:https://arxiv.org/pdf/1807.06650.pdf

    概述:

    我们提出了一种基于Autoencoder(AE)和GAN的网络结构,对隐空间插值进行逆训练得到凸的隐分布。通过使用AE作为GAN的生成器和判别器,我们在判别器上传递一个像素误差函数,产生与原始图像的高低级特征相匹配的非模糊样本的AE。在图像保留区域之间通过判别器训练隐空间分布的真实图片,因此保持与输入网络真实图片的相似性。

    1.介绍

    生成模型快速的成为了一个在心理学,语言学,神经科学用于生成和探索相似空间的重要工具。这种推断推断数据集的抽象和低维表示的能力(如通过降维实现的)以及从这些分布抽样、定量改变复杂刺激空间的能力,为心理物理实验提供了强有力的工具。
    基于AE和GAN两个算法的无监督神经网络,是当前生成模型的流行工具。无监督神经网络方法是用来生成模型的常规方法,因为它们要求很少或者不用通过调整网络结构就能处理新的数据集。然而,现有的基于神经网络的生成模型由于缺乏对生成能力的某些约束,使得从其潜在的生成表示推断结构具有挑战性。

    我们提出了一个新的无监督神经网络结能够对隐空间进行控制,并且提高模型生成能力的凸性。

    1.1 GANs和AEs的背景

    AE是一种生成网络通过输入X(即一组图像),并且被训练用来生成一个G(X)的再现(例如:像素点化错误。这种翻译通常在压缩X变为低维Z后执行,Z中的维数等于压缩层中神经元的数目。Z所处的空间被称为隐空间,并且Z空间所对应的神经网络通常被称为隐层。网络的前半部分。翻译X到Z,被叫做编码器,网络的第二部分,从Z转义到X,被叫做解码器。这两个网络的结合使得AE具有降维(X->Z)和从隐空间(Z)升维的能力(Z->X)。

    GAN结构通常包括两个网络,生成器网络和判别器网络。在生成器网络中输入隐藏值Z(随机噪声),并且被用来训练在训练数据区域X中产生样本G(Z)。判别器收到输入X和G(Z),并且被用来训练去区分真值X和G(Z)的样本,通常通过在一个神经元层中输入0和1。该发生器经过训练,通过“欺骗”将G(Z)样本分类为X样本来对抗鉴别器。直觉上,这导致生成器产生G(Z)样本,这些样本与从分布X中抽取的样本无法区分(至少对鉴别器而言)。因此,鉴别器充当试图再现分布X的生成器产生的样本的“批评者”。

    GANs和AEs都已经在生成模型中变得非常流行,然而它们的生成能力都被生成结构所约束。这里,我们描述了其中的一些限制,并且提出了一种新的生成结构GAIA,通过利用AE和GAN同时弥补每个独立网络的缺陷。我们的方法提供了一种新的解决方案来增加网络的稳定性,潜在空间表示的凸性,在潜在空间表示中保持高维结构,以及逆向生成的数据的双向性。

    1.2 隐空间的凸性

    生成的潜空间使得能够在高维空间中的真实世界信号之间进行平滑插值的强大能力。在低维空间线性的差值能够在回到高维空间时产生可以理解的表示信息。然而,在隐空间中像AEs这种网络结构,线性插值是不必要的,因为潜空间投影没有显式地训练以形成凸集。

    一个凸的点集被分解为一个集合,其中连接任意一对点的线将落在该集合的其余部分中。例如,在图1A中,紫色分布表示投影到二维潜在空间中的数据,而周围空白表示与数据分布不对应的潜在空间区域。这种分布是非凸的,因为连接分布中两个点的线(例如,图1A中的黑点)可以包含数据分布之外的点(红色区域)。在AE中,如果对插值的红色区域进行采样,那么回到高维空间的投影可能不一定对应于X的实际示例,因为Z的区域不属于真正的数据分布。

    克服隐空间中的非凸性的一种方法是强制数据集的潜在表示为预先去掉的分布(例如:正态分布),如可变的自动编码器(VAE)。通过将VAE的隐空间约束为正态分布,鼓励隐空间表示凸集。然而,这种方法在隐空间中预先施加分布,这可能是高维数据集的次优表示。标准GAN潜在分布被直接采样,同样允许为潜伏空间显式地选择任意凸分布。在这两种情况下,对潜在空间进行hardcoding可能不尊重原始分布的高维结构。

    1.3 像素化错误和双向性

    AEs趋向于因为它像素化错误功能的原因趋向于生产模糊图像,通过平滑真实图像中存在的尖锐对比(边缘)来最小化误差。GANs并不会一道图像模糊问题,因为它们并不被用来重新生产输入数据,而是生成似乎属于真实分布X的数据。因为判别器被训练识别图像特征,像模糊强度,也可以在X和G(X)间区分,GANs的判别器强制生成不模糊的图像。然而,生成X的分布数据而不是复制XI的个别实例是有代价的。当AE学习从X到Z和Z到X的翻译时,GAN只学习后者(Z -> X)。换言之,AE的像素级误差函数产生模糊图像,但是是双向的,而GAN的基于鉴别器的误差函数产生清晰的图像并且是单向的。

    2. 生成对抗差值自动编码 ——(GAIA)

    我们的模型,GAIA(图像1 左),在GAN的生成器和判别器部分都使用AEs。该判别器被训练以最小化输入真实图像(X)之间的像素级误差(l1)及其在鉴别器(D(X))中的AE再现,同时最大化由生成器生成的图像(G(X))与其在判别器(D(G(X))中的再现之间的AE误差(D(G(X)):

    (||X - D(X)||1)min - (||G(X) - D(G(X))||1)max

    对生成器进行反向训练,以使输入(X)和输出(D(G(X))图像之间的像素级误差最小化,使得判别器再现生成的图像以尽可能接近原始图像:

    ||G(X) - D(G(X))||1

    使用一个AE作为一个生成器已经在VAE-GAN中使用过,并且一牺牲图像的精确再现为代价,减少AE中像素即误差造成的模糊。相似的,使用AE作为一个判别器也在BEGAN中实现,已经可以明显提高了GAN的稳定性,但是保持单向。

    在GAIA中,我们将这两种体系结构结合起来,允许发生器在通过鉴别器传递的像素误差上进行训练,明确地再现像AE一样的图像,同时产生具有GAN特征的锐利图像。

    除此之外,在图像的潜在空间表示之间进行线性插值:

    Zinterp = interpolate(Z1gen,Z2gan

    其中插值是Z中点对之间的欧几里得插值,取自Z1gen和Z2gan之间的中点附近的高斯分布.中点然后通过鉴别器的解码器,这些中点们被作为GAN误差函数的样本处理:

    ||G(Zinterp) − D(G(Zinterp))||

    判别器被训练用来最大化这个误差,并且生成器被训练用来最小化这个误差。

    总的来说,鉴别器的损失,如在BEGAN中一样,是使实际数据的像素级误差最小,并且使生成的数据(包括插值)的像素级误差最大。

    LDisc = ||X - D(X)||1 + ||G(X) - D(G(X))||1 + ||G(Zinterp) - D(G(Zinterp))||1

    生成器的损失是通过判别器使输入到生成器(D(G(X)))的误差最小化,同时是通过生成器的插值的损失最小化D(G(Zinterp)).

    LGen = ||X - D(G(X))||1 - ||G(Zinterp) - D(G(Zinterp))||1

    总体来讲,生成器和判别器都是AEs,允许我们通过两个AEs来消除像素化误差,允许生成器生成自动编码但不模糊的图像。我们在训练网络时也对生成器中的插值进行训练,目的是明确地训练生成器来产生插值欺骗判别器,结果,我们的所推理出的方法比其他基于GAN的方法更接近于原始数据。

    2.1 高维数据中局部结构的保留

    VAEs和GANs迫使人脸数据集的隐分布进入预定义的分布,例如高斯分布或均匀分布。这种方法具有许多优点,例如如何确保隐空间凸性,从而能够更好地从分布中采样。 然而,这些好处是在高维空间中失去了对原始数据集结构分布的尊重。为了更好地尊重数据集的原始高维结构,我们在数据(Z)的隐空间表示和原始高维数据集(X)之间进行正则化。

    对于呈现给网络的每个minibitch,我们计算样本在X和Z空间中的成对欧几里得距离的对数之间的距离的损失:

    然后,我们将这个误差项应用于生成器,来鼓励隐空间中的minibitch的小批量的成对距离类似于原始高维空间中的小批量的成对距离。使用超参数(α)来平衡结构损失的重点与重建/对抗损失的损失,我们将其设置为学习率的一半(0.0001/2)。

    2.2 对抗网络中的不稳定性

    众所周知,GANs 对训练是具有挑战性的,并且自从GAN的体系结构的概念提出以来,平衡和适当训练GAN的细化技术一直是积极研究的领域。在传统GANs中,需要找到生成器与判别器之间悬链的平衡问题,否则一个网络将压到另一个网络并且不会学习到任何适用于数据集的表示。使用GAIA,需要额外的平衡,例如在再现真实图像和区分生成的图像之间,或在强调自编码与生成高质量隐空间插值的网络生成器之间进行平衡。

    我们提出了一个新的,但是简单的,GAN平衡算法,我们发现这是非常有效的。在我们的网络中,我们使用一个以零为中心的sigmoid函数平衡GAN的损失:

    其中b是用来表示sigmoid2的斜率的超参数,并且d是网络之间平衡的两个值之间的差异。例如,鉴别器和生成器的学习率的平衡基于真实图像和生成图像的损失:

    然后将生成器的损失设置为逆:

    这允许每一个网络在性能较差时赶上另一个网络。然后使用相同的原则来平衡生成器和判别器之间的不同损耗,这可以在算法1中看到。

    2.3 网络结构

    原则上,任何形式的AE网络都可以被在GAIA中使用。在本文展示的试验中,我们使用了黄等人提出的网络体系结构的改进版本,它是使用了残差卷基层组成的一种风格和内容的AE。解码器的每一层使用一半数量的滤波器,并且线性隐层被使用在编码器网络中使用,但是不在解码器中使用。最后在这里所展示的style和content网络的隐神经元的数目最后都是128*128模型中的512.这个网络架构的Python/Tensorflow实现链接在结论部分,所示网络结构的更多细节是在黄等人。

    2.4 特征控制

    我们发现,像几个其他的生成模型,高水平的特征对应于GAIA的隐层之间的变量。通常使用包含特征的图像的Z表示方法来确定高级特征表示。减去数据集中含有属性(Zfeat)和数据集中不包含该属性(Znofeat)的人脸潜在表示的平均值(Zfeat - Znofeat),来获得高级特征向量。然后,将特征向量添加到或从通过生成器的解码器的各个面部的潜在表示中(Zi)减去特征向量,生成包含该高级特征的图像。然而,我们发现这些特征经常在CELEBA-HQ数据集中纠结在一起。例如,添加一个隐矢量使图像看起来更老,是图像看起来更加年轻,使图像对女性有偏见。这可能是因为在CELEBA-HQ 数据集中,年轻男性与老年男性的比例为0.28:1,而年轻女性与老年女性的比例在8.49:1时要大得多。为了克服这个缺点,我们使用一个普通的最小二乘回归训练从特征属性预测Z表示,并使用模型的系数作为特征向量。我们发现,这些特性比单独减法手段的交互作用要小,如图4所示,在图4中,属性向量单独通过解码器网络。

    2.5 相关工作

    ……

    3. 结论

    我们提出了一种新的GAN的结构,他的生成器网络与编码器网络都是AEs。在这个结构中,一个像素损失可以被被没有模糊重建的Autoencoded来判别器来消除。此外,利用GAN的对抗性损失,我们明确地训练生成器AE关于投影到隐空间中的样本之间插值,促进凸的隐空间 表示。这种方法更明确的地适用于使用神经网络隐空间在复杂信号之间进行插值,同时仍然尊重输入数据的高维结构。

    所提出的体系结构仍有许多工作要做,并且这种体系结构的修改可能被证明更有用,例如利用不同的编码器策略,例如逐渐增长的层在整个小批量内插,而不是两点内插,或寻找其他方法更明确地训练凸空间使用对抗损失。为了理解插值采样如何影响GAIA的潜在空间结构,还需要进一步的探索。

    我们的网络架构通过提供新的解决方案来在对抗架构上保持逐像素重建,从而进一步促进生成建模。进一步地,我们在生成上下文中向凸潜在空间表示的方向迈出了一步。这种结构应该被证明对当前有兴趣从平滑的和似是而非的刺激空间中采样的行为科学家都是有用的(例如,Zuidema等。2018)以及为未来的解决方案提供动力,以弥合数据与用于捕获数据的生成模型之间的差距。

    我们的网络使用Tensorflow进行训练,完整的模型、代码和高分辨率图像可以在GitHub上获得。训练好的网络在真实图像之间插值和添加特征向量的视频可以在与本文相关的博客文章中获得。

    重点:在看图像适用的大小(论文中没有提到)(128^2)

  • 相关阅读:
    android项目手势识别GestureDetector
    android项目获取sim卡序列号
    android项目MD5加密
    android项目自定义组合控件添加属性
    android项目自定义组合控件
    C# 斐波那契数列 递归算法_2018Oct
    Unity3D编程学习 小知识_人物移动导航_2018Oct
    As Beginning
    MFC中View显示框架
    混合积判断线段相交
  • 原文地址:https://www.cnblogs.com/19991201xiao/p/10002706.html
Copyright © 2011-2022 走看看