摘要
我们考虑的问题是如何设计模型来利用最近引入的近似模型平均技术(dropout)。我们定义了一个简单的新模型maxout(之所以这样命名,是因为它的输出是一组输入的最大值,而且它是dropout的一个自然伙伴),旨在促进dropout优化和提高dropout的快速近似模型平均技术的准确性。我们通过经验验证模型成功地完成了这两个任务。我们使用maxout和dropout来演示在四个基准数据集上的最新分类性能:MNIST、CIFAR-10、CIFAR-100和SVHN。
1、简介
Dropout提供了一种廉价而简单的方法,既可以训练大量共享参数的模型集合,又可以近似平均这些模型的预测。Dropout应用于多层感知器和深度卷积网络,提高了从音频分类到超大尺度目标识别等任务的技术水平。虽然dropout在实践中工作得很好,但它之前并没有被证明可以真正地为深层架构执行模型平均。Dropout通常被视为一种不加区分的适用工具,当应用于几乎任何模型时,它都能可靠地产生适度的性能改进。我们认为,与其使用dropout作为应用于任意模型的性能增强,不如直接设计一个模型来增强dropout作为模型平均技术的能力,从而获得最佳性能。使用dropout进行训练与以往的方法如普通的随机梯度下降法有很大的不同。当在参数空间中采取较大的步骤时,Dropout是最有效的。在这种情况下,每次更新都可以看作是对训练集的不同子集上的不同模型的重大更新。对于dropout来说,理想的操作机制是当整个训练过程类似于参数共享约束下的bagging集合。这与理想的随机梯度操作制度有很大的不同,在这种制度下,单个模型通过小步骤稳步前进。另一个考虑是,dropout模型平均只是一个近似值,当应用到深层模型。明确地设计模型来最小化这种近似误差,也可以提高dropout的性能。我们提出了一个简单的模型,我们称之为maxout,它具有优化和模型平均Dropout有益的特点。我们将此模型与dropout结合使用来设置四个基准数据集的最新状态。
2、回顾Dropout
Dropout是一种可以应用于确定性前馈架构的技术,它预测给定输入向量v的输出y。这些架构包含一系列的隐含层h = {h(1),…h (L)}。Dropout训练的整体模型的集合组成的模型包含变量的子集在v和h。同一组参数θ是用于参数化的分布p(y mid v, theta, mu) ,其中M是一个二进制掩码决定哪些变量在模型中。在每个训练实例的演示中,我们通过p(y mid v ; theta, mu) 随机采样不同的mu 。对于p的许多参数化(如最多层感知器),不同子模型的实例化p(y | v;θ,µ)可以通过使用mask对v和h进行逐元素乘积得到。Dropout训练类似于bagging,许多不同的模型在不同的数据子集上训练。Dropout训练不同于bagging,因为每个模型只训练一个步骤,所有模型共享参数。这个培训过程要表现得好像自己是一个整体而不是单个模型,每个更新都必须有巨大的影响,因此,它使被µ适合当前输入引起的v。
当集合需要将所有子模型的预测平均起来进行预测时,函数形式就变得非常重要。以前的大多数工作都是用算术平均数来计算平均值,但是在许多指数型的模型中,如何用dropout来计算还不是很明显。幸运的是,一些模型族给出了一个便宜的几何平均值。当p(y | v;θ)= softmax (vTW b),定义的预测分布的几何平均数重新归一化p (y | v;θ,µ)/ M只是由softmax (vTW / 2 b)。换句话说,指数多个子模型的平均预测可以简单地通过运行权值除以2的完整模型来计算。这个结果完全适用于单层softmax模型。之前关于dropout的工作将相同的方案应用于更深层次的架构,例如多层感知器,其中W/2方法只是对几何平均值的近似。这种近似没有经过数学描述,但在实践中表现良好。
3、Maxout的描述
maxout模型只是一个前馈结构,如多层感知器或深度卷积神经网络,它使用一种新的激活函数:maxout单元。对于输入x in R^{d} (x可以是v,也可以是隐层的状态),maxout隐层实现该函数:
h_{i}(x)=max _{j in[1, k]} z_{i j}
其中z_{i j}=x^{T} W_{ldots i j} b_{i j} 和W in R^{d times m times k} 和b in R^{m times k} 。在卷积网络中,取k个仿射特征图(即,池跨渠道,此外空间位置)。当使用Dropout进行训练时,我们使用Dropout掩码执行elementwise乘法,而在所有情况下,我们都是在对权值进行乘法之前执行的——我们不会将输入丢给max操作符。单个maxout单元可以解释为对任意凸函数进行分段线性逼近。Maxout网络不仅学习隐藏单元之间的关系,而且还学习每个隐藏单元的激活函数。有关其工作原理的图形描述,请参见图1。
Maxout抛弃了传统激活功能设计的许多支柱。它产生的表示完全不是稀疏的(见图2),尽管梯度是高度稀疏的,并且dropout会在训练过程中人为地使有效的表示稀疏化。虽然maxout可能会学习在一边或另一边饱和,但这是一个度量为零的事件(因此它几乎从不从上面开始有界)。当很大一部分参数空间对应于下面有界的函数时,maxout完全不受约束地学习有界。Maxout几乎处处是局部线性的,而许多常用的激活函数都有显著的曲率。考虑到所有这些与标准实践的背离,maxout激活函数竟然能够正常工作似乎有些令人惊讶,但是我们发现它们非常健壮,并且很容易用dropout进行训练,并且实现了出色的性能。
4、Maxout是一个通用的近似器
带有足够隐藏单位的标准MLP是一个通用逼近器。类似地,maxout网络是通用逼近器。假设每个maxout单元可以有任意多个仿射分量,我们证明了只有两个隐藏单元的maxout模型可以任意逼近v∈Rn的任意连续函数。图3展示了证明的基本思想。考虑在Rn上由k个局部仿射区域组成的连续分段线性函数g(v)。
命题4.1
对于任意正整数m和n,存在两组n 1维实值参数向量[W^1_j, b^1_j], j∈[1,k]和[W^2_j, b^2_j], j∈[1,k],使得:
g(v)=h_{1}(v)-h_{2}(v)
也就是说,任何连续的PWL函数都可以表示为两个凸PWL函数的差。证据见(Wang, 2004)。
命题4.2
根据Stone-Weierstrass近似定理,设C为紧支域C subset R^{n} , f: C rightarrow R 为连续函数,epsilon>0 为任意正实数。然后存在一个连续的PWL函数g(取决于epsilon ),对于所有的v in C ,|f(v)-g(v)|<epsilon 。
命题4.3
普遍接近者定理。在紧支域C subset R^{n} 上,任何连续函数f都可以由带有两个maxout隐藏单元的maxout网络任意逼近。
素描的证明:根据命题4.2,任何连续函数都可以由分段线性函数任意逼近。我们现在注意到,命题4.1中给出的分段线性函数的表示形式与一个包含两个隐藏单元h1(v)和h2(v)的maxout网络完全匹配,并且具有足够大的k来实现所需的近似程度。结合这些,我们得出结论:一个双隐单元maxout网络可以很好地逼近紧支域c上的任意连续函数f(v)。一般来说,对于epsilon rightarrow 0 ,我们有k→∞。
5、基准结果
我们在四个基准数据集上评估maxout模型,并在所有数据集上设置最新的状态。
5.1、MNIST
MNIST数据集由28×28像素的手写数字0-9灰度图像组成,包含6万个训练样本和1万个测试示例。对于MNIST任务的置换不变版本,只允许不知道数据的2D结构的方法。在这个任务中,我们训练了一个模型,它由两个紧密相连的maxout层和一个softmax层组成。我们使用dropout对模型进行正则化,并对每个权向量的范数施加约束。除了maxout单元,这是Hinton等人使用的相同架构。我们通过最小化包含最后10,000个训练示例的验证集的错误来选择超参数。为了充分利用整个训练集,我们在最小验证错误处记录了前50,000个示例的日志似然值。然后,我们继续对整个60,000个示例训练集进行训练,直到验证集日志似然值匹配这个数字。我们得到的测试集误差为0.94%,这是我们知道的最好的结果,不使用无监督的前训练。我们在表1中总结了关于排列不变MNIST的最佳发表结果。我们还考虑了不受排列不变性限制的MNIST数据集。在本例中,我们使用了三个卷积的maxout隐藏层(在maxout层的顶部使用空间最大池)和一个紧密连接的softmax层。由于Krizhevsky等人开发的极其快速的GPU卷积库devel,我们能够快速探索超参数空间。我们获得了0.45%的测试集错误率,这在这一类别中设置了一个新的技术状态。(通过对标准图像集的转换来扩展数据集,可以获得更好的MNIST结果)表2给出了一般MNIST数据集的最佳方法的总结。
5.2、CIFAR-10
CIFAR-10数据集由从10个类中抽取的32×32张彩色图像组成,分为50,000张训练图像和10,000张测试图像。我们使用全局对比归一化和ZCA白化对数据进行预处理。我们遵循与MNIST数据集类似的过程,只是做了一个更改。在MNIST上,我们找到了验证集错误方面的最佳训练周期数,然后记录训练集日志似然,并继续使用整个训练集进行训练,直到验证集对数似然达到这个值。在CIFAR-10中,以这种方式继续训练是不可行的,因为学习率的最终值非常小,验证集误差非常高。因此,在验证集的似然值与交叉验证的训练值匹配之前的训练将花费非常长的时间。相反,我们从零开始重新训练模型,并在新的可能性与旧的匹配时停止。我们的最佳模型由三个卷积maxout层、一个全连接maxout层和一个全连接softmax层组成。使用这种方法,我们得到了11.68%的测试集错误,这比目前的水平提高了两个百分点以上。(如果我们没有在验证集上进行训练,我们将获得13.2%的测试集错误,这也比以前的水平有所提高)。如果我们用平移和水平反射来补充数据,我们就可以得到这个任务的绝对状态,误差为9.35%。在这种情况下,再训练期间的可能性永远不会达到验证运行时的可能性,因此我们对与验证运行相同数量的epoch进行再训练。表3总结了CIFAR-10的最佳方法。
5.3、CIFAR-100
CIFAR-100数据集的大小和格式与CIFAR-10数据集相同,但包含100个类,每个类只有十分之一的标记示例。由于时间有限,我们没有在CIFAR-100上广泛交叉验证超参数,而是简单地应用超参数,我们发现在CIFAR-10上运行良好。我们得到了38.57%的测试集误差,这是最先进的。如果我们不使用整个训练集进行再训练,我们将获得41.48%的测试集错误,这也超过了当前的技术水平。表4总结了CIFAR-100上的最佳方法。
5.4、街景屋子数
SVHN数据集由谷歌Street View收集的房屋编号彩色图像组成。数据集有两种格式。我们考虑第二种格式,即每张图像的大小为32×32,任务是对图像中心的数字进行分类。其他数字可能会出现在它旁边,但必须忽略。在训练集有73257位,26032位在测试集和531131另外,不太困难的例子,作为一个额外的训练集建立一套验证,我们选择400个样本训练集的每个类和200年从额外的每个类的样本集。火车的剩余的数字和额外的集是用于培训。对于SVHN,我们根本没有在验证集上进行培训。我们只用它来寻找最佳超参数。我们采用与Zeiler & Fergus(2013)相同的方法进行局部对比归一化预处理。除此之外,我们采用了与MNIST相同的方法。我们的最佳模型由三个卷积的maxout隐藏层和一个密集连接的maxout层以及一个密集连接的softmax层组成。我们获得了2.47%的测试集错误率,这是目前的水平。表5提供了比较方法的摘要。
6、和整流相比
关于我们的结果,一个明显的问题是,我们是通过改进的预处理还是更大的模型来获得它们,而不是使用maxout。对于MNIST,我们没有使用预处理;对于SVHN,我们使用与Zeiler & Fergus相同的预处理。然而,在CIFAR数据集上,我们使用了一种新的预处理形式。因此,我们将maxout与在此数据集上以相同处理和不同模型大小运行的整流器进行比较。通过一个大型的交叉验证实验(见图6),我们发现maxout比整流器有明显的改进。我们还发现,我们的预处理和模型的大小改善整流器和dropout超过以前的状态的艺术结果。跨通道池是一种减少状态大小和参数数量的方法,需要在模型中有一定数量的过滤器。性能似乎与maxout的过滤器数量相关,但与整流器i的输出单元数量相关。整流单元从跨通道合用中获益不大。整流单元在没有跨通道池的情况下性能最好,但滤波器数量相同,这意味着整流器的状态大小和参数数量必须是maxout的k倍左右,才能获得接近maxout的泛化性能。
7、模型平均
在证明maxout网络是有效的模型之后,我们现在分析它们成功的原因。我们首先确定了maxout与dropout的近似模型平均技术高度兼容的原因。Hinton给出的通过将权重除以2来平均子模型的直观理由是,这对单层模型进行了精确的模型平均,即softmax回归。在此特性中,我们还发现,如果将模型扩展到多个线性层,则模型平均仍然是精确的。虽然这与单层具有相同的表示能力,但将权重表示为几个矩阵的乘积可能具有不同的归纳偏差。更重要的是,这表明dropout在更深层次的架构中做了精确的模型平均,前提是它们在每一层的输入空间中是局部线性的,通过应用不同的dropout掩模访问这些空间。我们认为,Dropout训练鼓励maxout单元在训练数据中出现的输入周围有大的线性区域。由于每个子模型都必须对输出进行良好的预测,因此每个单元都应该学习具有大致相同的激活,而不管删除哪个输入。在具有任意选择参数的maxout网络中,改变dropout掩码通常会将有效输入移动到足够远的地方,从而逃离干净输入周围的局部区域,其中隐藏的单元是线性的。更改dropout掩码可以频繁地更改输入映射到分段函数的哪一部分。经过训练的Maxout在每一个单元变化中可能具有最大滤波器的标识,而随着dropout掩码的变化,该标识相对较少。线性操作网络和max(·)可以很好地利用dropout的近似模型平均技术。许多常用的激活函数几乎到处都有显著的曲率。这些观察结果表明,对于包含这些激活函数的网络,dropout的近似模型平均值将不那么准确。为了验证这一点,我们将在MNIST和dropout上训练的最佳maxout模型与在MNIST和dropout上训练的双曲正切网络进行了比较。我们对每个模型的几个子集进行采样,并将这些采样模型的预测的几何平均值与使用权重除以2的dropout技术进行的预测进行比较。我们发现了dropout确实在进行模型平均的证据,甚至在多层网络中也是如此,而且它在maxout的情况下更准确。具体见图7、图8。
8、优化
maxout表现出色的第二个关键原因是它改进了辍学生的套袋式训练阶段。注意,第7节中激励使用maxout的参数也同样适用于经过矫正的线性单元。maxout和最大池在一组经过矫正的线性单元上的唯一区别是maxout在最大中不包含0。表面上看,这似乎是一个小的差异,但我们发现,包括这个常数0是非常有害的优化背景下的Dropout。例如,在MNIST上,MLP的最佳验证集错误是1.04%。如果我们在最大值中包含一个0,这个数字将上升到1.2%以上。我们认为,当训练与辍学,maxout更容易优化比矫正线性单位与跨渠道池。
8.1、优化实验
为了验证maxout的优化性能优于max合并整流线性单元,我们进行了两个实验。首先,我们通过在大型(600,000例)SVHN数据集上训练一个小的(两个隐藏的卷积层,k = 2和16个内核)模型来强调训练算法的优化能力。当使用整流器单元进行训练时,训练误差保持在7.3%。如果我们用maxout单元进行训练,我们会得到5.1%的训练误差。作为另一个优化压力测试,我们尝试在MNIST上训练非常深入和狭窄的模型,并发现maxout在增加深度时比合并整流器更好。详见图9。
8.2、饱和
使用dropout时的优化过程与使用普通随机梯度下降时的优化过程非常不同。SGD通常在学习率较小的情况下效果最好,从而导致目标函数平稳下降,而dropout在学习率较大的情况下效果最好,从而导致目标函数不断波动。Dropout迅速探索了许多不同的方向,并拒绝了那些恶化性能的方向,而SGD则缓慢而稳定地朝着最有希望的方向前进。我们发现,这些不同的操作制度导致不同的结果整流单位。当用SGD进行训练时,我们发现整流单元在0以下5%的时间饱和。当训练退出时,我们很少将单元初始化,但训练逐渐使单元的饱和率提高到60%。因为max(0,z)激活函数中的0是一个常数,这就阻止了梯度通过单元。在没有单位梯度的情况下,训练很难使这个单位重新活跃起来。Maxout不会遇到这个问题,因为梯度总是流经每个Maxout单元—即使Maxout单元为0,这个0也是参数的函数,并且可以对具有负激活的单元进行调整,以使其稍后再次变为正。图10说明了在训练时,有源整流单元的失活速率比无功单元的失活速率大,但是始终处于活动状态的maxout单元在每个方向上的正、负激活速率大致相同。我们假设较高的零点比例和转义困难会影响整流器相对于maxout的优化性能。为了验证这个假设,我们在MNIST上训练了两个mlp,每层都有两个隐藏层和1200个过滤器,每层5个。当我们在max pooling中包含一个常数0时,得到的训练模型并没有利用到第二层中17.6%的滤波器和第二层中39.2%的滤波器。一小部分过滤器通常取池中的最大值,其余时间的最大值为常数0。另一方面,Maxout只使用了2400个过滤器中的2个。在某些训练实例中,网络中每个maxout单元的每个滤波器都是最大的。所有的过滤器都已使用和调整。
8.3、底层梯度和Bagging
与SGD不同的是,dropout需要随着单位选择的改变而明显改变梯度。如果梯度相对于失步掩模近似恒定,则失步简化为SGD训练。在MNIST上对两种不同的mlp进行训练时,通过监测固定数据相对于漏出掩模的差异,我们验证了整流网络受到流向网络下层的梯度流减少的假设。maxout在平均训练步长上输出权值的梯度变化是maxout的1.4倍,而第一层权值的梯度变化是maxout的3.4倍。结合我们之前的结果,maxout允许训练更深的网络,这个更大的方差表明maxout更好地向下传播不同的信息到较低的层,并帮助dropout训练更好地类似于下层参数的套袋。整流网络,随着他们的梯度失去更多的饱和,可能导致辍学训练类似于一般的SGD接近网络的底部。
9、结论
我们提出了一个新的激活函数maxout,它特别适合用dropout进行训练,并且我们已经证明了一个普遍的近似定理。我们已经证明,在深层模型中,dropout可以很好地近似于模型平均。我们已经证明了maxout利用了这种模型平均行为,因为maxout单位的近似比tanh单位更精确。我们已经证明,优化在dropout环境中的行为与在纯SGD情况下非常不同。通过设计maxout梯度来避免诸如未能使用许多模型过滤器之类的缺陷,我们能够训练比使用整流单元更深入的网络。我们还展示了maxout将由于dropout掩码的不同选择而导致的梯度变化传播到网络的最低层,从而确保模型中的每个参数都能充分享受dropout的好处,并更忠实地模拟bagging训练。我们的方法在五个不同的基准测试任务上的最新表现,激发了进一步模型的设计,这些模型明确地打算在与模型平均的廉价近似相结合时表现良好。