转载自:https://kingsleyhsu.github.io/2017/10/10/AAE/
在本文中,我们提出了一种概率自动编码器——“adversarial autoencoder”(AAE),它使用了最近提出的生成对抗网络(GAN),通过任意先验分布与VAE隐藏代码向量的聚合后验匹配,来实现变分推理。将聚合后的后验与先验相匹配,为了确保从先验空间的任何部分产生的样本均是有意义的。总体而言,decoder学习了一种深层的生成模型,该模型从先验映射到数据分布。我们展示了AAE如何应用于诸如半监督分类、分离样式和图像内容、无监督聚类、维度还原和数据可视化等应用。我们对MNIST、Street View House Numbers和Toronto Face datasets进行了实验,结果表明AAE在生成建模和半监督分类任务中获得了竞争性的结果。
构建可扩展的生成模型来获取像音频、图像或视频这样丰富的分布,是机器学习的主要挑战之一。直到最近,深度生成模型(如受限的玻尔兹曼机(RBM),深度新年网络(DBNs)和深度玻尔兹曼机(DBMs),主要是基于MCMC算法训练的。在这些方法中,随着训练进展,MCMC方法计算log似然梯度变得更加不精确。这是因为来自马尔可夫链的样本不能很快地在模式之间混合。近年来,已经开发出了可以通过直接反向传播训练的生成模型,并避免了MCMC训练带来的困难。例如,变分自编码(VAE)或重要性加权自编码,使用一个识别网络预测潜在变量的后验分布,生成对抗网络(GAN)使用一个对抗的训练过程通过反向传播直接拟合网络的输出的分布和生成矩匹配网络(GMMN)使用一个时刻匹配代价函数来学习数据分布。
在本文中,我们提出了一种通用的方法,称为对抗自编码(AAE),可以将自动编码器转换成生成模型。在我们的模型中,VAE接受了双重训练目标——一个传统的重构误差,以及一个对抗训练标准,它将VAE的潜在表示的潜在表现形式与一个任意的先验分布相匹配。我们证明这个训练标准与VAE训练有很强的联系。训练的结果是encoder学习将数据分布转换为先验分布,同时decoder学习一个深度生成模型,该模型将先验映射到数据分布。
生成对抗网络(GAN)框架在两个神经网络之间建立了一个min-max对抗性的游戏,两个神经网络一个是生成模型,G,和判别模型中D .判别模型D(x)是一个神经网络,计算数据空间中的一个点x的概率,这个样本是来自我们正在试图创建模型的数据分布(正样本),而不是来自生成模型(负样本)。同时,生成器使用一个函数G(z)将样本z从之前的p(z)映射到数据空间。G(z)被训练成最大程度地迷惑判别器,使它相信样本来自于数据分布。生成器通过D(x)梯度来训练,并使用该梯度来修改参数。这个游戏的解决方案可以表示如下:
minGmaxDEx∼pdata[logD(x)]+Ez∼p(z)[log(1−D(z))]minGmaxDEx∼pdata[logD(x)]+Ez∼p(z)[log(1−D(z))]
生成器G和判别器D在两个阶段交替使用SGD:(a)训练判别器从生成器生成的负样本中区分出正样本 (b) 训练生成器尽可能的用生成的样本欺骗判别器。
设x是输入,z为具有深度encoder和decoder的AE的隐编码(隐藏层单元)。 p(z)p(z)是我们要对编码施加的先验分布, q(z|x)q(z|x)是encoding分布,p(x|z)p(x|z)是decoding分布。 pd(x)pd(x)是数据分布, p(x)p(x)是模型分布。 AE的encoding函数q(z|x)q(z|x)的编码函数定义了在AE的隐编码上,q(z)q(z)的聚合后验分布,如下:
q(z)=∫xq(z|x)pd(x)dx(1)(1)q(z)=∫xq(z|x)pd(x)dx
图1 : AAE架构。第一行是一个标准的自动编码器,它从一个隐变量z中重新构造一个图像x。下一行网络训练区分样本是由AAE的隐编码生成还是用户分布的采样。
AAE是一种自动编码器,通过匹配聚合后验q(z)q(z)到任意的先验 p(z)p(z)来实现正则化。 为了做到这一点,如图1所示,对抗网络被附加在AE的隐编码上。对抗网络用来引导q(z)q(z)匹配 p(z)p(z)。 同时,AE试图将重建误差最小化。 对抗网络的生成器是AE的encoder q(z|x)q(z|x)。 encoder确保聚合后验分布可以愚弄判别器,让它认为隐编码 q(z)q(z)来自真实的先验分布 p(z)p(z)。
对抗网络和自动编码器都用分两个阶段SGD联合训练——每个mini-batch执行重建阶段和正规化阶段。 在重建阶段,AE以最小化输入的重建误差来更新encoder和decoder。 在正规化阶段,对抗网络首先更新判别器,以从生成样本(由AE计算的隐编码)中分离出真实样本(使用先验生成的), 然后对抗网络更新其生成器(它是AE的encoder),以便混淆判别器。
一旦完成训练之后,AE的decoder将定义一个生成模型,将p(z)p(z)的聚合先验映射到数据分布。
AAE 的encoderq(z|x)q(z|x)有一下几种可能的选择:
确定性:假设q(z|x)q(z|x)是xx的确定性函数。在这种情况下,encoder类似于标准AE的encoder, q(z)q(z)中唯一的随机源是数据分布pd(x)pd(x)。
高斯后验:这里我们假设q(z|x)q(z|x)是高斯分布,其均值和方差由encoder网络预测: zi∼N(μi(x),σi(x))zi∼N(μi(x),σi(x))。在这种情况下, q(z)q(z)中的随机性来自encoder输出端高斯分布的随机性和数据分布。我们可以使用相同的重新参数化技巧来通过encoder网络进行反向传播。
通用逼近后验:AAE可用于训练q(z|x)q(z|x)作为后验的通用逼近器。假设AAE的encoder网络是采用x和随机噪声ηη (具有固定分布eg高斯)作为输入的函数f(x,η)f(x,η)。我们通过在ηη的不同样本处评估f(x|η)f(x|η),实现从任意后验分布 q(z|x)q(z|x)中采样。换句话说,我们可以假设q(z|x,η)=δ(z−f(x,η))q(z|x,η)=δ(z−f(x,η))和后q(z|x)q(z|x)和聚合后验q(z)q(z)定义如下:
q(z|x)=∫ηq(z|x,η)pη(η)dη ⇒ q(z)=∫x∫ηq(z|x,η)pd(x)pη(η)dηdxq(z|x)=∫ηq(z|x,η)pη(η)dη ⇒ q(z)=∫x∫ηq(z|x,η)pd(x)pη(η)dηdx
在这种情况下,q(z)q(z)中的随机性来自数据分布和在encoder的输入端的随机噪声ηη。在这种情况下,后验q(z|x)q(z|x)不再被约束为高斯,并且encoder可以为给定的xx学习任何后验分布。由于从聚合后验q(z)q(z)中,存在一种有效的采样方法,对抗训练过程可以通过encoder网络f(x,η)f(x,η)的直接反向传播来匹配q(z)q(z)到p(z)p(z)。
选择不同类型的q(z|x)q(z|x)将导致具有不同训练流形的不同种类模型。例如,在q(z|x)q(z|x)是确定性的情况下,网络必须通过只利用数据分布的随机性来匹配q(z)q(z)到p(z)p(z),但是由于数据的经验分布由训练集固定的,并且映射是确定性的,这可能产生不太平滑的q(z)q(z)。然而,在高斯或通用逼近的情况下,网络可以访问附加的随机源,这可以通过平滑q(z)q(z)来帮助对抗正规化阶段。然而,在广泛的超参数搜索之后,我们获得了与每种类型的q(z|x)q(z|x)相似的test-likelihood。所以在本文的其余部分,我们只用q(z|x)q(z|x)的确定性版本来报告结果。
我们的工作在思想上类似于VAE; 然而,当他们使用KL距离惩罚来对在AE的隐编码上,施加先验分布,而我们使用对抗训练来匹配隐编码的聚合后验与先验分布。
VAE 在xx的负对数似然上,最大限度地减少上界:
Ex∼pd(x)[−logp(x)] 等式(1)定义了聚合后验q(z)q(z),我们假设 q(z|x)q(z|x)是高斯,p(z)p(z)是任意分布。变分约束包含项,第一个可以看作AE的重建项,第二和第三个术语可以看做正则化项。没有正则项,该模型只是一个重建输入的标准AE。然而,在存在正则项的情况下,VAE学习与p(z)p(z)兼容的潜在表示。代价函数的二项允许后验分布的大的差异,而第三项最小化聚合后 q(z)q(z)和先前 p(z)p(z)之间的交叉熵。 在等式(2)的KL散度或交叉熵项允许q(z)q(z)选择p(z)p(z)的模式。在AAE中,我们用对抗性训练代替后两项,允许q(z)q(z)与p(z)p(z)的整体分布相匹配。 图2:MNIST AAE和VAE的比较。 AAE的保留图像的隐编码zz适合于(a)2-D高斯和(b)10个2-D高斯的混合。 每种颜色代表相关标签。 同样地VAE,(c)2-D高斯和(d)10个2-D高斯的混合。 (e)在2-D高斯AAE中,沿着每个隐编码维度z均匀采样高斯百分位数所生成的图像。 在本节中,我们在coding分布上,施加指定的先验分布p(z)p(z),对AAE于VAE的能力进行比较。图2a显测试数据的空间zz,数据结果来自于AAE在MNIST上的训练(其中一个球形二维高斯先验分布施加到隐编码zz上)。图2a中学到的流形表现出明显的过度,表明coding空间被被填充并且没有表现出“孔”。实际上,coding空间中的明显过度表明通过在z内插值生成的图像依赖数据流形(图2e)。相比之下,图2c显示了在AAE实验中使用相同架构的VAE的coding空间。我们可以看出,在这种情况下,VAE大致匹配2-D高斯分布的形状。然而,没有数据点映射到coding空间的几个局部区域,表明VAE可能没有像AAE一样捕获数据流形。 图2b和2d表示出了AAE和VAE的coding空间,其中施加的分布是10个2-D高斯的混合。 AAE成功地将聚合后验与先验分布相匹配(图2b)。 相比之下,VAE与混合物10个高斯表现出系统的差异,表明VAE强调匹配分布的模式(图2d)。 VAE和对抗自动编码器之间的一个重要区别是,在VAEs中,为了通过用蒙特卡罗取样的KL距离来反向传播,我们需要访问先验分布的确切函数形式。 然而,在AAE中,我们只需要从先验分布中抽样,以便诱导q(z)q(z)匹配p(z)p(z)。 在2.3节中,我们将展示AAE可以施加复杂的分布(例如,swiss roll分布),而无需访问分布的显式函数形式。 在原始的生成对抗网络(GAN)论文中,使用GANs在神经网络的输出层上的像素级上,施加数据分布。 然而,AAE依靠AE训练来捕获数据分布。 在我们的方法的对抗训练过程中,将一个更简单的分布(例如,与数据分布相对的高斯)施加在较低维度的空间(例如,相对于1000的20),这导致更好的test-likelihood,详情在第3节讨论。 生成矩匹配网络(GMMN)使用最大平均差异(MMD)目标来塑造神经网络输出层的分布。可以将MMD目标解释为最小化模型分布的所有矩与数据分布之间的距离。已经表明,GMMN可以与预先训练dropout 的AE组合以获得更好的似然结果(GMMN + AE)。我们的AAE也依赖于AE来捕获数据分布。然而,我们与GMMN + AE的工作的主要区别在于,我们的方法的对抗训练作为一个正则化,在训练AE时,塑造code 分布;而GMMN + AE模型首先训练一个标准的dropout 的AE,然后在预训练网络的code空间中,匹配一个分布。在第3节中,我们将展示在MNIST和Toronto Face数据集上,通过用联合方式训练的AAE的test-likelihood比GMSN和GMMN + AE的好。 在数据标注的情况下,我们可以在对抗训练阶段结合标签信息,以更好地塑造隐编码分布。 在本节中,我们将描述如何利用部分或完整的标签信息来更加规范自动编码器的潜在表示。 为了演示这种架构,我们回到图2b,其中AAE适合于10个2-D高斯的混合。 我们现在的目标是促使高斯分布混合的每个模式来表示MNIST的一个标签。 图3:通过对判别器网络提供one-hot向量来正则化隐编码。one-hot向量对于未知类的训练点具有额外的标签。 图3展示了这种半监督方法的训练程序。我们向判别网络的输入添加一个one-hot向量,将标签与分布模式相关联。one-hot向量就像是一个开关,选择给定类标的判别网络所对应的决策边界。这个one-hot向量对于为标记的样本有一个额外的类。例如,在施加10个2-D高斯混合但的情况下(图2b和4a),一个one-hot向量包含11个类。前10个类别中的每一个为相应的单独混合分量选择一个决策边界。one-hot向量中的额外类对应于未标记的训练点。当未标记的点送入模型时,额外的类被打开,为高斯分布的完全混合选择决策边界。对抗训练的正方向,我们通过one-hot向量将混合分量(从中抽出正样本)的标签提供给判别器。未标记实例的正样品来自高斯的完全混合,而不是来自特定的类。在负方向,我们通过one-hot向量将训练点图像的标签提供给判别器。 图4:利用标签信息来更好地规范隐编码。第一行:训练coding空间以匹配10个2-D高斯的混合:(a)压缩图像的coding空间zz。 (b)前3个混合分量的流形:每个色板包括通过沿着相应混合分量的轴均匀采样高斯百分位数而产生的图像。 第二行:用swiss roll分布,其他相同。标签以数字顺序映射(即,swiss roll的前10%被分配给数字0等等):(c)压缩图像的coding空间zz。 (d)通过沿着主要swiss roll轴生成的样品。 图4a表示先验训练的AAE的潜在表示,这是在10K标记和40K未标记的MNIST实例上训练的10个2-D高斯混合。 在这种情况下,先验的第ii个混合分量已经以半监督方式分配给第ii类。 图4b显示了前三个混合分量的流形。 请注意,样式表示在每个混合分量中表示一致,与其它类无关。 例如,图4b中所有面板的左上区域对应于直立书写形式,并且这些面板的右下区域对应于数字的倾斜写入风格。 该方法可以扩展到没有参数形式的任意分布——例如通过将MNIST数据集映射到“swiss roll”(其均值沿着swiss roll轴的长度均匀分布的条件高斯分布)。 图4c表示coding空间zz,图4d突出了通过在潜在空间中沿着swiss roll轴行走而产生的图像。 前面部分提出的实验仅显示了定性结果。 在本节中,我们用[Goodfellow et al., 2014]中描述的评估程序来测量AAE作为生成模型捕获数据分布的能力,通过比较该模型在MNIST和Toronto面部数据集(TFD)上生成压缩图像的likelihood 。 图5:在MNIST和Toronto Face dataset(TFD)数据集上,AAE生成的样本。最后一栏显示了在像素级的欧几里得距离上最接近于倒数第二列的训练图像。 我们在MNIST和TFD上训练了一个AAE,其中该模型对底层隐编码施加高维度高斯分布。 图5显示了从这些数据集训练的AAE抽取的样本。 可以在http://www.comm.utoronto.ca/~makhzani/adv_ae/tfd.gif上找到一个显示学习的TFD流形的视频。 为了确定模型是否通过复制训练数据点会过拟合,我们使用这些图的最后一列使用实现最接近倒数第二列是生成模型样本,使用欧几里德距离。 我们通过在hold out测试集上计算其对数似然度来评估AAE的性能。 使用可能性对模型的评估并不直接,因为我们不能直接计算图像的概率。 因此,我们使用先前工作[Bengio等人,2013,2014,Goodfellow等人,2014]中描述的方法计算log似然下界。 我们拟合一个将高斯Parzen窗口(内核密度估计器)到一个模型生成的10000个样本,并计算该分布下的测试数据的可能性。 Parzen窗口的自由参数σσ通过交叉验证选择。 表1:MNIST和Toronto Face数据集上的测试集的log似然。 值越高越好。 在两个数据集上,我们从训练模型中抽取10K或10M样本,log似然的Parzen窗口估计。 对于MNIST,我们在数据记得啊绘制版本上,与其他模型进行比较。 表1将实值MNIST和TFD的AAE的log似然比与许多最先进的方法进行比较,包括DBN [Hinton等,2006],Stacked CAE [Bengio等,2013] Deep GSN [Bengio等人,2014],GAN[Goodfellow等人,2014]和GMMN + AE [Li等人,2015]。 Parzen窗口估计是真实log似然的下界,此边界的紧密度取决于抽取的样本数。 为了与更紧密的下限进行比较,我们另外针对AAE和GAN的1000万个样本评估的Parzen窗口估计。 在所有比较中,我们发现AAE对竞争方法实现了优越的log似然。 然而,读者必须意识到,目前可用于评估生成模型(如GAN)的可能性的指标是非常有缺陷的。 Theis等 [Theis等人,2015]详细介绍了这些指标的问题,包括10K和10M样本Parzen窗口估计。 半监督学习是机器学习中长期存在的概念问题。最近,生成模型已经成为半监督学习最流行的方法之一,因为他们可以有条理地将原始标签信息从许多其他潜在的变异因素中抽离出来。 在本节中,我们首先关注完全监督的场景,并讨论AAE的架构,可以将类标签信息与图像样式信息分开。然后,我们将该架构扩展到第5节中的半监督设置。 图6:通过提供一个one-hot向量给生成模型,将标签信息从隐编码中分离出来。在本例中,隐编码可以代表图像的风格。 为了合并标签信息,我们改变了图1的网络架构,以向decoder提供标签的一个one-hot编码(图6)。decoder利用one-hot向量识别标签和隐编码zz来重构图像。该架构强制网络保留与隐编码zz标签无关的所有信息。 图7:MNIST和SVHN数据集的内容和样式(15 -D高斯)。 图7a示出了隐编码被强制为15-D高斯的MNIST数字上训练网络的结果。 图7a的每一行呈现重建图像,其中隐编码zz被固定到特定值,但是系统地探索标签。重建图像的风格与给定行是一致的。 图7b展示了应用于Street View House Numbers数据集的相同实验[Netzer等,2011]。 可以在http://www.comm.utoronto.ca/~makhzani/adv_ae/svhn.gif上找到显示学习的SVHN风格流形的视频。 在该实验中,one-hot编码表示类标与图像中的中心数字相关联。 每行中的风格信息包含有关最左侧和最右侧数字的标签的信息,因为在one-hot encoding中,最左侧和最右侧的数字不作为标签信息提供。 基于第4节的基础,我们现在使用AAE开发半监督学习模型,利用未标记数据的生成描述来提高仅通过使用标记数据获得的分类性能。 具体来说,我们假设数据由来自分类分布的潜在类变量y以及来自高斯分布的连续潜变量z生成: p(y)=Cat(y)p(z)=N(z|0,I)p(y)=Cat(y)p(z)=N(z|0,I) 图8:半监督AAE:最上面对抗网络对标签表示施加分类分布,底部对抗网络对样式表示强加高斯分布。 在半监督设置中对标记数据进行q(y|x)q(y|x)训练。 我们改变图6的网络架构,以便AAE的推理网络使用编码器q(z,y|x)q(z,y|x)来预测离散类变量yy和连续潜变量zz(图8)。 解码器然后利用类标签作为one-hot编码和连续隐编码zz重构图像。 有两个独立的对抗网络使自动编码器的隐藏表示正规化。 第一个对抗网络对标签表示施加了分类分布。 这个对抗网络确保潜在类变量yy不携带任何样式信息,并且yy的聚合后验分布与分类分布匹配。 第二个对抗网络对风格表示施加高斯分布,确保隐变量zz是连续的高斯变量。 对抗网络以及自动编码器都与SGD共同进行了三个阶段的训练——重建阶段,正则化阶段和半监督分类阶段。 在重建阶段,自动编码器更新编码器q(z,y|x)q(z,y|x)和解码器,以最小化未标记的小批量输入的重建误差。 在正规化阶段,每个对抗网络首先更新其判别网络,以从生成的样本(由自动编码器计算的隐藏代码)中分离出真实样本(使用分类和高斯先验产生)。 对抗网络然后更新其发生器以混淆其判别网络。 在半监督分类阶段,自动编码器更新q(y|x)q(y|x)以最小化标记的小批量的交叉熵代价。 表2:MNIST和SVHN的半监督分类性能(错误率)。 MNIST和SVHN数据集的半监督分类实验的结果报告在表2中。对于具有100和1000个标签的MNIST数据集,AAE的性能明显优于VAE,与VAT[Miyato等,2015 ]和CatGAN [Springenberg,2015]相当,但是比the Ladder networks(Rasmus等,2015)和ADGM [Maaløe等,2016]差。我们还在所有可用的标签上训练了一个监督的AAE模型,并获得了0.85%的错误率。相比之下,具有相同架构的dropout监督神经网络在完整的MNIST数据集上实现了1.25%的错误率,这突出了对抗训练的正则化效应。在具有1000个标签的SVHN数据集上,AAE几乎符合ADGM实现的最先进的分类性能。 值得一提的是,所有的AAE模型都是端对端的训练,而半监督的VAE模型必须一次训练一层[Kingma et al。,2014]。 在上一节中,我们展示了使用有限的标签信息,AAE能够学习强大的半监督表示。 然而,仍然没有回答的问题是,是否可以在没有任何监督的情况下从未标记的数据中学习为“强大”的表示。 在本节中,我们展示了AAE可以以无监督的方式将连续潜在风格变量中的离散类变量分解。 图9:使用具有16个簇的AAE的MNIST的无监督聚类。 每行对应于一个簇,第一个图像是簇心。 (见文字) 我们使用的架构类似于图8,区别在于我们删除了半监督分类阶段,从而不再在任何标记的小批量上训练网络。另一个区别是,推理网络q(y|x)q(y|x)预测一个one-hot,其维度是我们希望数据聚类的类别数。图9说明当聚类数为16时,MNIST上AAE的无监督聚类性能。每行对应一个簇。每行中的第一个图像是簇心,它们是通过将样式变量固定为零生成的数字,并将标签变量设置为16 one-hot向量之一。每行中的其余图像是基于q(y|x)q(y|x)被分类为相应类别的随机测试图像。我们可以看到,AAE已经选择了一些离散样式作为类标签。例如,倾斜的数字1和6(簇16和11)被放置在比直线1和6(簇15和10)分开的簇中,或者网络将数字2分成两个簇(簇4, 6)取决于数字是否用圈写入。 表3:MNIST上AAE无监督聚类性能(错误率)。 我们进行了一个实验来评估AAE的无监督聚类性能。 我们使用以下评估协议:一旦训练完成,对于每个簇ii,我们找到最大化q(yi|xn)q(yi|xn)的验证示例xnxn,并将xnxn的标签分配给簇ii中的所有点。 然后,我们根据每个簇的分配的类标签计算出测试错误。 如表3所示,AAE的分类误差率分别达到9.55%和4.10%,分别为16和30个标签。 我们观察到随着簇数量的增加,分类率提高。 高维数据的可视化在许多应用中是一个非常重要的问题,因为它有助于理解数据的生成过程,并允许我们提取有关数据的有用信息。数据可视化的流行方法是学习附近点对应的相似对象的低维embedding。在过去十年中,已经提出了大量新的非参数降维技术,如t-SNE [Van der Maaten和Hinton,2008]。这些方法的主要缺点是它们没有可用于查找新数据点 embedding的参数编码器。已经提出了诸如参数t-SNE的不同方法(Maaten,2009)来解决这个问题。自动编码器是有趣的替代方案,因为它们提供了这种embedding所需的非线性映射;但众所周知,非正则化自动编码器将流形“断裂”成许多不同的领域,导致相似图像的代码非常不同[Hinton]。 在本节中,我们提出了一种AAE架构,用于降维和数据可视化。 我们将显示在这些自动编码器中,对抗正则化将相似图像的隐藏代码彼此附加,从而防止由自动编码器学习的嵌入中通常遇到的流行断裂问题。 图10:用AAE实现降维:有两个独立的对抗性网络,在潜在的表示上施加分类和高斯分布。最后的n维表示是由首先将一个one-hot的标签表示映射到一个n维的簇头表示,然后将结果添加到一个n维的风格表示。簇心是由SGD学习的,它有额外的代价函数,可以惩罚每两个之间的欧氏距离。 假设我们有一个具有mm类标签的数据集,我们希望将数据集的维数降低为nn,其中nn通常为2或3,用于可视化目的。 我们改变图8到图10的架构,其中最终的表示是通过用nn维风格表示来添加簇心的n维分布式表示来实现的。簇心表示是通过将m维one-hot标签向量乘以m×nm×n矩阵WCWC,其中WCWC的行表示使用SGD学习的mm个簇心表示。 我们引入额外的代价函数,惩罚每两个簇头之间的欧几里德距离。 具体地说,如果欧几里德距离大于阈值ηη,则代价函数为零,如果小于ηη,则代价函数线性地惩罚距离。 图11:在MNIST上与AAE进行半监督和无监督的降维。 图11(a,b)(a,b)显示了具有1000和100个标签的MNIST数据集(m=10)(m=10)上n=2n=2维度的半监督降维的结果。我们可以看到,网络可以实现数字集群的干净分离,并分别获得4.20%和6.08%的半监督分类误差。注意,由于2D约束,分类误差不如高维情况;并且每个集群的风格分布不是很高斯。 图11c示出了在n=2n=2维度中的无监督维数降低的结果,其中簇的数量选择为m=20m=20。我们可以看到,网络可以实现数字聚类和子聚类的相当干净的分离。例如,根据数字是直线还是倾斜,网络已经分配了两个不同的簇到数字1(绿色簇)。网络还将数字6分组成三个群集(黑色簇),具体取决于数字倾斜的程度。此外,网络已经为数字2(红色簇)分配了两个单独的群集,具体取决于该数字是否有圈写入。 这种AAE架构(图10)也可用于将图像embed更大的维度(n>2)(n>2)。例如,图11d示出了具有100个标签的n=10n=10维度的半监督降维的结果。在这种情况下,我们将WCWC矩阵固定为WC=10IWC=10I,因此簇心是10维单纯形的角。学习风格表示为标准偏差为1的10D高斯分布,并直接添加到簇头构建最终表示。一旦网络被训练,为了可视化10D学习表示,我们使用线性变换将10D表示映射到2D空间,使得簇心被映射到均匀地放置在2D圆上的点。我们可以从这个数字中验证,在这种高维度的情况下,样式表示确实已经学会了高斯分布。该模型共有100个标签,实现了3.90%的分类错误率,比AAE架构具有串联风格和标签表示(图8)的分类错误率1.90%要差。 在本文中,我们提出使用GAN框架作为概率自动编码器中离散和连续潜在变量的变分推理算法。 我们的方法称为对抗自动编码器(AAE),是一种生成型自动编码器,可实现真实价值MNIST和多伦多Face数据集的竞争性测试。 我们讨论了如何将这种方法扩展到半监督场景,并表明它在MNIST和SVHN数据集上实现了竞争性的半监督分类性能。 最后,我们演示了对抗自动编码器在解决图像风格和内容,无监督聚类,降维和数据可视化方面的应用。 编码器、译码器和鉴别器各有用ReLU激活函数的两层1000个隐藏单元。最后一层q(z|x)q(z|x)的激活是线性的。权值用高斯分布初始化,标准差为0.01。mini-batch大小为100。autoencoder被训练用欧几里德的代价函数进行重建。在MNIST数据集上,我们在autoencoder的最后一层使用sigmoid激活函数,在TFD数据集上使用线性激活函数。隐编码z的维度分别为8和15,高斯先验的标准差分别为5和10。在TFD上,数据点被均值减去,除以整个训练集的每一个输入维度上的标准偏差,从而使对比度正常化。然而,在获得样本后,我们将图像(通过反转预处理阶段)重新扫描,以得到0到1之间的像素强度,这样我们就可以与其他方法进行比较。 在q(z|x)q(z|x)确定的情况下,隐编码的维数应该与数据的内在维度一致,因为q(z)q(z)中是数据分布唯一的随机源。例如,在MNIST的情况下,隐编码的维度可以在5到8之间,对于TFD和SVHN来说,它可以在10到20之间。对于在代码空间中具有较高维度的AAEs(例如:1000),可以使用概率q(z|x)q(z|x)再参数化的技巧。 编码器、译码器和鉴别器各有两层带ReLU激活函数的1000个隐藏单元。autoencoder的最后一层可以具有线性或sigmoid激活(对于示例可视化来说,sigmoid更好)。代价函数是欧几里得误差的一半。最后一层q(y|x)q(y|x)和q(z|x)q(z|x)分别用softmax和线性激活函数。q(y|x)q(y|x)和q(z|x)q(z|x)共享编码器的前两个1000单元层。风格和标签表示的维度是10。在风格表示法中,我们使用标准偏差为1的高斯分布。在标签表示法上,我们施加了一个分类分布。半监督成本是q(y|x)q(y|x)输出的交叉熵代价函数。我们使用梯度下降法来优化所有的代价函数。自动编码器重建成本的动量值和半监督成本固定为0.9。adversarial网络的发生器和识别器的动量值固定为0.1。对于重建代价,我们使用初始学习率0.01,50次epochs将其降低到0.001,1000个epochs将其降低到0.0001。对于半监督代价,我们使用0.1的初始学习速率,50个epochs将其降低到0.01,1000个epochs将其降低到0.001。对于对抗性网络的区别性和生成成本,我们使用0.1的初始学习速率,50个epochs将其降低到0.01,1000个epochs将其降低到0.001。我们培训5000个时代的网络。我们添加了一个高斯噪声,只对输入层只有0.3的标准偏差,只有在训练时间。在其他任何一层中都不使用任何dropout、l2l2体重衰减或其他高斯噪声的正规化。标记的示例是随机选择的,但我们确保它们在类上均匀分布。在MNIST有100个标签的情况下,第一个epochs后的测试误差为16.50%,50次迭代后的测试误差为3.40%,500个时期后的测试误差为2.21%,5000次后的测试误差为1.80%。在MNIST数据集的情况下,Batch-normalization[Ioffe和Szegedy,2015]没有帮助。 SVHN数据集有大约530K的训练点和26K的测试点。数据点按平均值减去,除以整个训练集的每个输入维度上的标准偏差,使对比度正常化。标签表示的维度是10,对于风格表示,我们使用20维。我们使用梯度下降法来优化所有的代价函数。自动编码器重建成本的动量值和半监督成本固定为0.9。adversarial网络的发生器和识别器的动量值固定为0.1。对于重建成本,我们使用0.0001的初始学习率,250次迭代之后,将其降低到0.00001。在半监督成本中,我们使用0.1的初始学习速率,在250个epochs之后将其降低到0.01。对adversarial网络的区别性和生成成本,我们使用0.01的初始学习率,250个迭代之后将其降低到0.001。我们为1000个迭代训练网络。我们在输入层使用dropout,dropout率为20%。没有其他的dropout,l2l2衰减或高斯噪声正规化被用于其他任何层。标记的示例是随机选择的,但我们确保它们在类上均匀分布。在SVHN有1000个标签的情况下,在第一个epochs后的测试误差为49.34%,50个迭代后的测试误差为25.86%,500个epochs为18.15%,1000次后的测试误差为17.66%。在所有的autoencoder层中都使用了Batch-normalization,包括q(y|x)q(y|x)的softmax层、q(z|x)q(z|x)的线性层以及autoencoder的线性输出层。我们发现,在SVHN数据集上训练AAE网络的过程中,Batch-normalization[Ioffe和Szegedy,2015]是至关重要的。 编码器、译码器和鉴别器各有带ReLU激活函数的两层的3000个隐藏单元。自动编码器的最后一层有一个sigmoid激活函数。代价函数是欧几里得误差的一半。风格和标签表示的维度分别为5和30(簇数量)。在风格表示法中,我们使用标准偏差为1的高斯分布。在标签表示法上,我们设置了分类分布。我们使用梯度下降法来优化所有的代价函数。autoencoder重建成本的动量值固定为0.9。adversarial网络的发生器和识别器的动量值固定为0.1。对于重建成本,我们使用初始学习率0.01,50个epochs将其降低到0.001。对于对抗性网络的区别性和生成成本,我们使用0.1的初始学习率,在50个epochs之后将其降低到0.01。我们训练这个网络1500次迭代。我们在输入层使用dropout,dropout率为20%。没有其他的dropout,l2l2或高斯噪声正规化被用于其他任何层。Batch-normalization仅在autoencoder的编码器层中使用,包括最后一层q(y|x)q(y|x)和q(z|x)q(z|x)。我们发现,Batch-normalization[Ioffe和Szegedy,2015]在训练AAE网络的无监督集群方面至关重要。2.2 与GANs和GMMNs的联系
2.3 在对抗式规则化中结合标签信息
3. AAE可能性分析
4. 有监督的AAE
5. 半监督的AAE
6. 用AAE实现无监督聚类
7. 用AAE实现降维
8. 总结
附录A实验细节
A1 Likelihood实验
A.2 Semi-Supervised Experiments
A.2.1 MNIST
A.2.2 SVHN
A.3 Unsupervised Clustering Experiments