我们提出了一种新颖的架构,即“堆叠式自动编码器”(SWWAE),它集成了判别和生成途径,并提供统一的监督,半监督和无监督学习方法,而不依赖于训练期间的采样。 SWWAE的实例化使用卷积网(Convnet)(LeCun等人(1998))来编码输入,并使用反卷积网(Deconvnet)(Zeiler等人(2010))来产生重建。 目标函数包括重建项,它们使Deconvnet中的隐藏状态与Convnet中的隐藏状态类似。 每个汇集层产生两组变量:馈送到下一层的“什么”,以及馈送到生成解码器中相应层的互补变量“where”。
学习模型的理想特性是能够在单一架构和单个学习过程的有监督,无监督或半监督模式下进行训练。另一个理想的特性是利用有利的判别和生成模型的能力。一种流行的方法是以分层方式预先训练自动编码器,然后以监督的判别方式微调整个编码器堆栈(前馈路径)(Erhan等人(2010); Gregor &LeCun(2010); Henaff等人(2011); Kavukcuoglu等人(2009; 2008; 2010); Ranzato等人(2007); Ranzato&LeCun(2007))。这种方法无法为无监督和监督学习提供统一的机制。另一种为所有三种训练模式提供统一框架的方法是深度博兹曼机器(DBM)模型(Hinton等人(2006); Larochelle&Bengio(2008))。 DBM中的每一层都是受限制的boltzmann机器(RBM),这可以看作是一种自动编码器。深RBM具有所有理想的性质,但是由于在训练期间依赖于取样,它们表现出较差的收敛性和混合性质。堆叠自动编码器的主要问题是不对称。由前馈路径实现的映射通常是多对一的,例如将图像映射到不变特征
或类标签。相反,由反馈(生成)途径实现的映射是一对多的,例如,将类标签映射到图像重建。处理此问题的常见方法是将重建映射视为概率。这是RBM和DBM的方法:通过抽样来设想从类别标签生成图像所需的缺失信息。这种采样方法可以带来有趣的可视化,但对于训练大规模网络是不切实际的,因为它往往会产生高噪声梯度。
如果从前馈路径的输入到输出的映射是一对一的,则两个方向上的映射将是明确定义的函数,并且在重建时不需要采样。 但是,如果内部表示要具有良好的不变性属性,则希望从一个层到下一个层的映射是多对一的。 例如,在Convnet中,通过最大池和子采样层实现不变性。
我们的模型试图满足两个目标:(i) - 学习编码不变性和等效性的分解表示,(ii) - 我们希望利用标记和未标记数据来在统一框架中学习这种表示。我们在这里提出的方法的主要思想非常简单:每当一个层实现多对一映射时,我们就会计算一组能够进行重构的互补变量。我们的模型示意图如图1(b)所示。在Convnets的最大池层中,我们将最大池“开关”的位置视为重建所需的补充信息。我们提出的模型包括一个前馈Convnet,以及一个反馈Deconvnet。这个架构中的每个阶段都是我们所说的“什么地方自动编码器”。编码器是卷积层,具有ReLU,后跟最大池层。 max-pooling的输出是“what”变量,它被送到下一层。互补变量是最大池“切换”位置,可以看作“哪里”变量。 “what”变量通过关于位置的不完整信息向下一层通知内容,而“where”变量通知相应的反馈解码器关于有趣(显性)特征所在的位置。反馈(生成)解码器通过使用“where”“解开”“what”来重建输入,并通过重建卷积层运行结果。这种“无处不在”的卷积自动编码器可以在不需要替代优化的情况下进行堆叠和训练(Zeiler et al。(2010))。每层的重建惩罚限制了反馈路径的隐藏状态接近前馈路径的隐藏状态。系统可以以纯粹监督的方式进行训练:前馈路径的底部输入被给予输入,反馈路径的顶层被给予期望的输出,并且解码器的权重被更新以最小化重建费用的总和。如果仅使用顶级成本,则模型将恢复为纯监督的backprop。如果使用隐藏层重建成本,则可以将模型视为具有重建正则化的监督。在无监督模式下,顶层标签输出不受约束,只是从前馈路径的输出中复制。该模型成为堆叠卷积自动编码器。与boltzmann机器(BM)一样,基础学习算法在监督模式和无监督模式之间不会发生变化,我们可以通过钳制或松开某些变量来在不同的学习模式之间切换。当我们的模型面临大量未标记数据和相对少量的标记数据时,我们的模型尤其适用。不需要采样(或对比发散方法)的事实使模型具有良好的缩放特性;它本质上只是特定架构中的backprop。
先前以不同方式定义了“什么”和“何处”的概念。 提出了一种称为“转换自动编码器”的相关方法(Hinton等人(2011)),其中引入了“胶囊”单元。 在该工作中,通过向网络提供特定变换状态的参数,训练两组变量以分别封装“不变性”和“等效性”。 我们的工作以更无人监督的方式进行,因为它不需要真正的潜在状态,同时仍然能够在“what”和“where”中编码类似的表示。 开关信息也可以通过一些可视化工作来使用,例如Zeiler等。 (2010),虽然这样的工作只有生成通过,并且仅使用前馈通过作为初始化步骤。
类似的定义已被应用于学习不变特征(Gregor和LeCun(2010); Henaff等人(2011); Kavukcuoglu等人。(2009; 2008; 2010); Ranzato等。(2007年); Ranzato&LeCun(2007); Makhzani&Frey(2014); Masci等人。(2011))。 其中,大多数作品仅仅为无监督的特征学习提供了亮点,因此未能统一不同的学习方式。 然而,在(Ranzato等人(2007); Ranzato&LeCun(2007))中提出了另一种相关的分层结构,因为该结构以分层贪婪的方式训练,其性能与联合训练的模型不具有竞争性。
在联合损失最小化和半监督学习方面,我们的工作可以与Weston等人联系起来。 (2012)和Ranzato&Szummer(2008),其主要优点是可以使用Deconvnet扩展Convnet,从而可以利用未标记的数据。 潘恩等人。 (2014)以分层方式分析了类似架构的正则化效应。
最近的一项工作(Rasmus等人(2015b),Rasmus等人(2015a))已被提议采用深度自动编码器来支持监督学习,其中采用完全不同的策略来利用同一级编码器之间的横向连接 - 然而,解码器对。 在该工作中,解码器从编码器接收整个预合并的激活状态,而来自SWWAE的解码器仅从相应的编码器级接收“何处”状态。 此外,由于梯形网络中缺少解开机制,因此仅限于重建生成路径(?模型)内的顶层,这会失去“阶梯”结构。 相比之下,SWWAE并没有遭受这种必要性。
我们考虑图1(b)所示的SWWAE的损失函数由三部分组成:
汇编编码器中的层将信息分成“什么”和“何处”组件,如图1(a)所示,“什么”基本上是最大值,“where”携带argmax,即在局部坐标下定义的最大激活开关 每个集合区域的框架。 “what”分量通过编码器向上馈送,而“where”通过横向连接馈送到反馈解码路径中的同一级。 解码器使用卷积和“解除”操作来近似反转编码器的输出并重现输入,如图1所示。解开层使用“where”变量通过将“what”放入位置来解开特征映射 表示保留的开关。 我们使用负对数似然(NLL)损失进行分类,使用L2损失进行重建; 例如,
其中LL2rec表示输入级的重建损失,LL2M表示中间重建损失。在我们的表示法中,x表示输入(无下标),xi(带下标)分别表示Convnet的特征映射激活。类似地,x和xm分别是Deconvnet的输入和激活。整个模型架构如图1(b)所示。请注意,我们可以使用LL2来表示LL2rec和LL2M的加权和。
最近,Goroshin等人。 (2015)在每个池区域内引入了max和argmax运算符的软版本:
其中z(x; y)表示在特征图和x上的激活; y表示将归一化值从-1到1的空间位置.Nk代表第k个汇集区域。请注意,这是一个始终设置为非负的超参数。它以这样的方式对软汇集进行参数化:软汇集越接近最大汇集,而小近似于均值汇集。我们在解开阶段使用插值来处理由“where”传达的连续值。
软汇集和拆开可以无缝地嵌入到SWWAE模型中,并且它具有这样的优点,即它可以通过p反向传播,相比之下,argmax“开关”位置的硬最大池是不可区分的。 此外,软池操作员可以更准确地表示位置信息,从而使特征能够捕获有关输入的精细细节,如我们的可视化实验所示(参见第4.2节)。
正如我们所提到的,SWWAE为所有三种学习模式提供了统一的学习框架,所有这些都在一个体系结构和单一学习算法中,即随机梯度下降和反向提升。 在这些方式之间切换可以如下实现:
对于有监督的学习,我们可以通过将L2设置为0来掩盖整个Deconvnet路径,并且SWWAE可以回归到vanilla Convnet。
对于无监督学习,我们可以通过设置LNLL = 0来使Convnet顶部的完全连接层与softmax分类器无效。在此设置中,SWWAE相当于深度卷积自动编码器。
对于半监督学习,损失的所有三个术语都是活跃的。 Deconvnet的梯度贡献可以解释为保留正则化器的信息。
先前在Erhan等人中研究了使用重建作为正则化器的想法。 (2010),虽然它使用无人监督的预训练作为其设置。就此而言,SWWAE与无监督的预训练有关,因为两种范式都试图通过强制模型重建来提供更好的泛化。无监督学习作为正则化器的一个论点是监督损失驱动模型P(Y j X),而无监督预训练捕获P(X)的输入分布;学习P(X)有助于学习P(Y j X)(Erhan et al。(2010))。但是,我们认为将此声明应用于无人监督的训练前设置似乎并不令人信服。可以说,仅使用P(X)来初始化学习P(Y j X)的模型具有非常弱的效果;即,来自学习P(Y j X)的梯度完全重写初始权重,从而消除了可能从学习P(X)获得的任何正则化效果。我们认为联合培训是一种更有效的策略,即SWWAE;我们的方法试图在训练期间联合模拟P(Y j X)和P(X)。不同规范者之间的比较
如附录所示。
此外,与多项损失共同进行的培训有助于避免崩溃或学习琐碎的代表性。 首先,自动编码器的一个常见问题是它们只学习身份函数; 例如,复制输入以获得完美的重建。 另一方面,稀疏自动编码器(Makhzani&Frey(2014),Makhzani&Frey(2013))获得了众所周知的简单解决方案:在隐藏层上增加L1惩罚可能会缩小编码器权重并扩大解码器的规模 重量,以便重建,同时实现小型激活。 我们认为避免这种微不足道的解决方案的直接方法是包括一个监督损失,它直接优化了一个非平凡的,有用的标准,有助于将数据分解为语义相关的变异因素。
添加中间L2重建术语的原因如下。 首先,它防止特征平面被混洗,以便保证从编码器ith传送的“where”映射与来自解码器的“what”相匹配。 否则,解散可能会看到带有随机播放顺序的“what”和“where”,因此无法正常工作。 其次,特别是当训练分类丢失时,中间术语不允许上层变为空闲而只有较低层忙于重建的场景,在这种情况下,来自那些失业层的过滤器不是正规化的。 关于中间L2项的相关分类性能比较见附录。 第三,作为与分层自动编码器训练的对应关系,SWWAE中的每个中间编码器/池/解池/解码器单元与中间L2项相结合,可以看作是单层卷积自动编码器(Masci等人。(2011))。
我们使用以下符号来描述我们的架构(假设平方内核),例如: (16)5c-(32)3c-2p-10fc,其中’(16)5c’表示具有16个特征映射的卷积层,而内核大小设置为5. 2p表示2 * 2汇集层,10fc表示完全连接 连接10个隐藏单元的图层。 符号中省略了ReLU。
我们通过使用“where”与不使用“where”来显示重建的差异来解决“where”的必要性。 上采样是一种替代方式来进行解放,但没有梦想“在哪里”,在“什么”与“何处”无关,因此它被复制到所有位置。 图2显示了一组从MNIST测试集中采样的重建数字,这些数字由训练有素的SWWAE使用MNIST训练集生成。 我们使用的架构是:(16)5c-(32)3c-Xp,实验的池大小从2到16不等。注意我们在本实验中使用硬最大池,并且在无人监督模式下训练架构。
一方面,由于解放所产生的世代明显比上采样更清晰,更清洁,这个实验表明“哪里”是重建所需的关键信息; 人们几乎无法获得良好的重建图像而不保留“在哪里”。 另一方面,该实验也可以被视为使用SWWAE用于生成目的的实例。
在本节中,我们通过使用变换自动编码器提出的可视化方法(Hinton等人(2011))检查“what”和“where”之间的关系,其中培训了许多“胶囊”以学习表示由等变和不变的组成部分组成。类似地,我们的模型表示中的“what”和“where”分别对应于不变和等变的组件。实验配方如下。 (1)使用训练集中的水平和垂直翻译的MNSIT数字训练SWWAE; (2)将来自测试集的未翻译数字输入SWWAE并获得“什么”(R)和“哪里”(R2); (3)水平或垂直翻译同一组数字并将其输入SWWAE并相应地缓存“what”和“where”; (4)绘制从翻译的数字与未翻译的数字之间的“什么”和“何处”之间的关系,如图3所示。我们使用的体系结构是:(32)5c-(32)3c-2p-(32)3c- 16p,我们使用= 309的软池/解池。(5)由于这个实验需要大的池大小,因此我们绘制图4中的代,以确保SWWAE在如此大的池设置下正常工作。
我们从图3中得出结论,“什么”和“何处”的行为很像Hinton等人的胶囊的不变性和等效性。(2011年)。 一方面,“哪里”学习高度本地化的表示。 R ^ 2“where”中的每个元素对水平/垂直方向上的像素级别平移具有近似线性的响应,并且学习对另一个的不变。 另一方面,“什么”学会在本地稳定,表现出对输入级翻译的强不变性。
图3:散点图描绘了通过转换输入产生的特征响应。 横轴表示未翻译的数字图像的一个特征平面的“什么”或“哪里”输出; 垂直轴表示如果该图像在水平或垂直方向上被+3或-3像素平移,则来自相同特征平面的“什么”或“何处”输出。 从左到右,数字分别为:第一个(a):水平翻译数字与原始数字的“什么”; 第二个(b):水平翻译数字与原始数字的“位置”; 第三个(c):垂直翻译的数字与原始数字的“什么”; 第四(d):垂直翻译数字与原始数字的“何处”。 请注意,圆圈用于表示+3平移,三角形表示-3。 在“where”相关图中,x和y分别表示“where”的两个维度。
图4:胶囊仿真实验中重建的MNIST数字。 顶行显示原始输入; 第二行显示了那些原始输入的重建; 底部两行分别显示正向和负向水平平移数字的重建。
图5:Validation-error v.s. L2用于SWWAE半监督实验的一系列数据集。 左(a):MNIST。 右(b):SVHN。 不同的曲线表示使用的标签的数量不同。
表1:SWWAE与具有1000个标签的SVHN的其他最佳公布结果之间的比较。
首先,我们通过对MNIST和SVHN进行半监督和监督实验来获取SWWAE对分类的影响。我们试图证明引入一组具有一组重建损失的Deconvnet可以帮助推广并提供有效的解决方案。 利用未标记的数据。 请注意,在分类实验中,我们使用硬版本池,因为它在分类方面表现优于软对应。
我们首先为两个数据集构建半监督数据集。 MNIST数据集由10个不同类别(0到9)的大小为32x32的图像组成,具有60,000个训练样本和10,000个测试样本。 我们按照以前的数据准备工作:从训练集中随机选择标记样本,而其余样本没有标签使用标记子集的大小分别为100,600,1000,3000,我们确保每个类具有相同的位数 在标记集中选择。 SVHN数据集包括73,257个用于训练的数字,26,032个用于测试的数字和53,1131个不太困难的额外训练样本。 同样地,我们为SVHN构建标记数据集,其包含1000个样本,均匀分布在10个类中,从非额外训练集中随机选择。 为了获得可靠的结果,我们将每个实验运行几轮,在每轮之前刷新数据集,并且我们将所有轮次的性能平均作为最终评估。
我们通过绘制验证错误v.s来处理SWWAE在两个数据集上的“单独”的规则效应。 图5中的L2(L2M和L2rec在本实验中相同)。“并行”是指不应用其他众所周知的正则化器。
我们在SVHN测试集上进一步评估SWWAE,并选择由验证错误指示的超参数。 表1显示了结果。 我们还以纯监督方式(使用所有可用标签)评估SVW上的SWWAE,我们发现在相同配置下SWWAE与香草Convnet产生的测试误差从5.89%降低到4.94%。 我们用于MNIST和SVHN的架构分别是(64)5c-2p-(64)3c-2p-(64)3c-2p-10fc和(128)5c-2p-(128)3c-(256)3c-2P-(256)3C-2P-10fc。 有关MNIST的更多探索见附录。
STL-10包含较大的96x96像素图像和相对较少的标记数据(5000个训练样本,100,000个未标记样本和8,000个测试样本)。训练集映射到10个预定义的折叠,每个折叠1000个图像。因此,STL 10在每个折叠中具有100:1的未标记样品量与标记样品的比率。我们遵循STL-10的测试协议,我们首先通过验证错误调整每个折叠的超参数,并让最佳执行的模型预测测试集。通过将测试分数平均10倍来报告最终得分。对于STL-10,我们可以将批量标准化(Ioffe&Szegedy(2015))和SWWAE结合起来。此外,我们进行空间批量标准化,保留每个特征图的平均值和标准偏差,同时根据自己的统计数据独立标准化。我们设计了VGG风格(Simonyan&Zisserman(2014))深网,(64)3c-4p-(64)3c-3p-(128)3c(128)3c-2p-(256)3c-(256) 3c-(256)3c-(512)3c-(512)3c-(512)3c 2p-10fc并且每个卷积层之后是空间批量归一化层,其应用于Convnet和Deconvnet路径。结果如表2所示。
表2:SWWAE与STL-10上其他最佳公布结果的比较。
表3:与最佳公布的单模型结果相比,SWWAE对CIFAR-10和CIFAR-100的准确性。 我们的结果是通过常见的实验设置获得的,我们只采用对比度归一化,小型平移和水平镜像进行数据预处理。
对数据集CIFAR-10和CIFAR-100进行采样并从8000万个微小图像数据集中进行标记(Torralba等人(2008))。 两个数据集都包含60,000个32x32图像,这些图像是8000万个图像的一小部分。 与之前的分类实验相反,该实验涉及与标记数据量相关的实质上更丰富的未标记数据。 我们使用VGG风格网络执行SWWAE(Simonyan&Zisserman(2014))? 128)3c(256)3c-2p-(256)3c(512)3c-2p-(512)3c-(512) 3c-2p-(512)3c(512)3c-2p-128fc-10fc,其中每个卷积被捆绑,然后在Convnet和Deconvnet中进行空间批量归一化(Ioffe和Szegedy(2015))。 对比度归一化,小型转换和水平镜像,用于数据预处理。 结果如表3所示。
整个系统可以被视为与去卷轴配对,在各种半监督和监督任务上产生了良好的准确性。 我们设想这种架构在视频相关任务中也可能是有用的,其中未标记的样本比比皆是。
MNIST在两个方面。首先,在验证集,我们比较SWWAE对其他正则化方法,为了使对比更加逼真,更接近实际用途如表4所示的触摸性能,我们添加差(Hinton等人(2012))完全连接的层作为这组比较的默认值。比较中的正则化器包括卷积层上的丢失和隐藏层上的L1稀疏性惩罚。此外,我们还对无人值守的SWWAE进行了训练,然后分别训练了一个带有标记样本的softmax分类器;这种不相交训练的架构用“unsup-sfx”表示。我们同样尝试使用SWWAE作为监督的训练前的办法,其次是微调的标记数据带动整个Convnet部分,所有这一切都被“UNSUP-PRETR”表示。注意,如果在顶部训练softmax分类器时Convnet部分被冻结,则读取“unsup-pretr”和“unsup-sfx”之间的区别。另外,“noL2M”是为SWWAE仅在输入水平训练的实验而编写的。 L2M = 0并且通过验证错误选择L2rec。其次,我们使用SWWAE选择SWWAE的超参数,并将其与表5中的最佳公布结果进行比较。注意,对于MNIST的实验MNIST训练集; MNIST训练集,因为其余部分被验证为验证集。 SWWAE配置是(64)5c-2p-(64)3c-2p-(64)3c-2p-10fc。
表4:与MNIST数据集上的其他正则化方法和不相交训练方法的比较。 分数是验证错误率(%)。 默认情况下,在完全连接的层中添加Dropout。
表5:SWWAE与半监督环境中MNIST数据集上其他最佳公布结果之间的测试错误率(以%表示)的比较。
作为半监督设置的结果,我们对激光标记数据集进行了SWWAE培训,其中我们发现SWWAE在相同配置下获得了0.71%的更好的测试误差率,而Convnet获得了0.76%。
我们认为SWWAE的工作效果不如梯形网络Rasmus等。 (2015a)对于SWWAE来说,MNIST数字过于简单。 假设我们有一个单层SWWAE,其中有一个池和解析层。 由于MNIST是一个粗略的二进制数据集(0/1),因此在解开阶段,解码不一定要求来自“什么”的信息用于重建; 也就是说,它可以通过在“where”指示的位置上固定1来获得完美的重建。 因此,我们认为重建MNIST数据集会导致编码路径上的正则化不足。 然而,这种现象不会发生在其他自然图像数据集上,例如CIFAR或STL-10,我们在SWWAE中显示出良好的结果。