用于数据增强的Dropout

原文: https://arxiv.org/pdf/1506.08700.pdf

Dropout通常被解释为打包压缩大量共享参数的模型。研究人员证明,在网络中使用dropout也可以解释为在没有领域知识的输入空间中的一种数据增强。他们提出了一种将网络中的dropout噪声投影回输入空间的方法,从而生成训练数据的增广版本,并证明了在增广样本上训练确定性网络的结果相似。最后,基于观测结果提出了一种新的dropout噪声方案,在不增加计算量的情况下,改进了dropout结果。
一、导论

噪声通常被视为本质上不受欢迎的。这个词本身就有一个非常负面的含义。因此,在神经科学中,许多早期的数学模型都是以任何手段来分辨噪声,这并不令人惊讶。几十年前,随机共振(Wiesenfeld et al., 1995)在神经科学模型中的应用引发了对随机波动及其在大脑中作用的神经科学的新兴趣。关于神经元噪声的理论正在蓬勃发展,以前的确定性模型通过噪声的加入而得到了改进(Yarom & Hounsgaard, 2011)。 当涉及到发展学习算法时,生物大脑一直是一个很强的灵感。考虑到在学习过程中大脑中发生的大量噪音,人们可能会怀疑这是否有任何有益的影响。最近,机器学习中的许多技术都利用噪声来提高性能,即去噪自动编码器(incent et al., 2008)、dropout(Hinton et al., 2012)和其亲属-drop Connect(Wan et al., 2013)。这些成功的研究表明,神经元噪声在学习过程中起着重要的作用,应该对其进行更深入的研究。 使用dropout可以看作是训练大量具有共享参数的神经网络,并在测试时应用套袋以获得更好的泛化(Baldi & Sadowski, 2013)。二值噪声也可以看作是防止神经元协同适应,从而进一步提高了模型的泛化能力。在这篇论文中,研究人员提出了另一种观点,并提出像dropout这样的噪声方案隐含地包含了一种复杂的数据增强形式。在第三节中,他们提出了一种在确定性网络中复制掉噪声的数据生成方法,并在第五节中证明了该方法没有明显的准确性损失。最后,利用数据增强的思想,研究人员在第四节中提出了一种利用随机噪声水平来改进样本多样性的dropout扩展。这种简单的扩展提高了不同网络结构的分类性能,在MNIST置换不变分类任务上获得了竞争性的结果。
二、对dropout的解释

使用dropout的主要目的是对我们正在训练的神经网络进行正则化。该技术包括随机丢弃神经元的概率p,这些随机修改的网络结构被认为避免了神经元的协同适应,使随后的两个神经元无法单独依赖彼此(Srivastava et al., 2014)。对于dropout最被接受的解释是,在测试时隐含地压缩大量共享参数的神经网络(防止过拟合)。假设h(x) 是di维输入x的线性投影到dh维空间:

(1)

有a(h) 和a˜(h)两种带噪声激活函数,满足伯努利分布 M ∼ B(ph) ,rect(h)表示矩形函数:

(2)

(3)

式(3)表示训练时带Dropout的激活函数,式(2)表示测试时的激活函数。Srivastava et al. (2014)建议调整 a(h) 和 p的比例,达到对单位神经元激活的逼近平均。
三、从数据增强角度考虑问题

在许多先前的工作中,以下的知识已经广为人知,通过使用域特定变换来增加数据有助于学习更好的模型((LeCun et al., 1998; Simard et al., 2003; Krizhevsky et al., 2012; Ciresan et al., 2012))。在此工作中,研究人员在数据增强的上下文中分析Dropout。考虑到分类的任务,给定一组训练样本,目标是学习映射功能,该映射功能将每个输入映射到其相应的输出标签。为了推广,映射功能需要能够正确地映射训练样本,而且能够正确地映射从数据分发中提取的任何其它样本。这意味着它不仅必须映射由训练样本表示的输入空间子区域,而且还必须映射自然分布的所有高概率子区域。学习这种映射功能的一种方式是通过增加训练数据以使得它覆盖自然分布的较大部分。基于域的数据增强有助于人为地增强训练数据覆盖,这使得能够训练更好的映射功能。研究人员假设基于噪声的正则化技术导致在每个隐藏层增加训练数据覆盖的类似效果,并且该工作呈现多个实验观察以支持他们的假设。比如,可以将噪声投影回输入空间。给定a˜(h),有x ∗ ,我们有:

(4)

如同Goodfellow et al. (2014b)提到的对抗样本的例子,x ∗ 可以通过基于随机梯度下降的最小化损失函数 L获得:

(5)

式(5)可以通过堆叠n层神经网络进行泛化。

(6)、(7)

现在我们可以一次计算对应于所有隐藏层激活的反向投影,从而将损失L降到最小。

(8)

论文通过反证法表明,一个不太可能找到单个X,=x(1),=x(2),=···=x(n),这显著地降低了L。在附录第8.1小节中详细说明了证明。幸运的是,通过提供多个输入(x,x(1),x(2),例如。、x(n)n),其中n是隐藏层的数目。由于每个X(i)类型是由第i个隐藏层定义的表示空间中的变换的后投影,所以它建议查看Droppit作为复杂的数据增强过程,该程序在关于不同级别的表示的训练示例周围采样数据。这就告诉人们是否可以确定性地在X(i)上训练网络而不是使用Dropout的问题。答案并不重要,因为1. 使用(x, x(1)∗ , x(2)∗ , . . . , x(n) ∗ )作为输入,dropout并非同时高效地在每层工作的。 局部随机性可以防止共适应,每层只有一个x (i) ∗ 。仅有这些,可能不足以避免共适应。2. 线性投影的梯度将有很大的不同。在退出的情况下,∂h/∂W(I)总是等于它的输入变换,即˜f(i−1)(X),而确定性的训练版本将根据f(i−1)(x(1)∗)更新W(I)。….,f(i−1)(x(N)∗。虽然论文证明了单个x∗最小化8对于大型网络是很难找到的,但第5节中实验表明,对于一个相对较小的两个隐层网络,可以在合理的近似范围内这样做。研究人员进一步证明,通过将噪声投影回输入空间,进行dropout复制,这不会造成严重的精度损失。四、改进增强的集合在处理基于域的变换时,研究人员直观地寻找最丰富的变换集。在计算机视觉中,例如,平移、旋转、缩放、剪切和弹性变换经常被组合。从数据增强的角度来看,这种直觉提出了以下问题:考虑到所使用的噪声方案在输入空间中应用了一些变换,哪一个将产生最丰富的变换集?对于像Dropout这样的噪声范式,有两个重要的影响因素:~m的概率分布和用于编码h(X)的神经网络的特性。修正概率分布是改进变换集合最直接的方法,也是论文研究的重点。然而,神经网络的特征在转换过程中起着关键的作用,论文结尾部分将概述一些可能的途径。在使用Dropout的同时,神经元下降的比例非常接近概率P。它自然地满足二项分布的期望。所引起的变换与M可采取的值不同。尽管如此,它们的大小与神经元下降的比例一样恒定。这意味着,每个变换将在低维空间里把样本移位到相对恒定的距离,但却在高维空间中在随机方向上移位。 改变变换幅度的一个简单方法是用一个随机变量代替p。让ph ∼ U(0, ph) ,而Mhij ∼ B(ρh),其中h定义隐层, i 表示样本,j代表神经元。 对每层神经元使用同样的ρ式很重要的,如果不这样,我们得到分布Mhij ∼ B(ρh/2)。为了补偿测试期间激活水平的变化,通常应用缩放。也可以简单地在训练期间应用逆缩放,将等式3转换为

(9)

随机Dropout的公式,用ρ取代p

(10)

这里不需要做缩放。

图1显示了因Dropout和随机Dropout而下降的神经元比例的密度函数之间的差异。随机Dropout引起的变换明显比常规Dropout引起的变换更多样化。

图1:Dropout神经元比例的密度函数在p周围是非常近的。这导致了由DropOut引起的变换幅度的低变化。另一方面,随机Dropout在pN下具有恒定的密度函数,n是神经元的数目,因为它满足ρ ∼ U(0, p)。因此,它的变换比标准Dropout更好。这在直觉上是合乎需要的,因为变化的平移距离在恒定的大距离上是优选的。
五、实验

1.投影回输入空间的可视化

将投影到输入空间中的噪声可视化,有助于理解Dropout会导致什么样的转换。非监督模型比有监督的全链接神经网络学习更多的一般特征,从而产生更直观的变换。由于这个原因,我们训练了隐藏层上有下拉的自动编码器来生成转换的样本。该自动编码器非常类似于去噪自动编码器,唯一的区别是,伯努利掩码被应用到隐藏的激活,而不是输入。因此,没有噪声显式地应用于输入。对模型进行了300个epoch的训练,最小batch-size为100,p=0.4,MNIST的学习率为0.001,CIFAR-10为0.0001,MNIST为0.7,CIFAR-10为0.5。对于CIFAR-10,我们进行了PCA降维预处理,保留了781个特征。对于MNIST和CIFAR-10,做10次epoch迭代,学习率为100(笔误?)。图5很好地展示了x∗与自然输入空间的距离,可以清楚地看到这些类仍然是可区分的。为了帮助理解每个特性如何影响转换,研究人员为给定的输入分离出五个最活跃的特性,并分别固定它们。对固定的每个特性,使用梯度下降计算x∗。图3显示了为MNIST找到的结果。人们可以认为,噪声降低的特征只是从输入中删除。结果发现,去除这个特征会影响其他神经元的激活。正因为如此,功能在输入中被相当地破坏,使得其他高度依赖于同一子区域的特性仍然具有相同的激活级别。

图2.可视化的MNIST以及CIFAR-10数据集上的噪声样本

图3. 在MNIST中,特征对Dropout引起的转换的影响的可视化。第一列表示来自MNIST数据集的原始样本。第二列表示每个给定原始示例上最活跃的五个特性。最后一列表示通过将噪声反投影到输入空间而产生的噪声样本,同时将所选特性保持为0。我们可以看到,这些特性并不是简单地从输入中删除的,而是以这样一种方式破坏的,即高度依赖于同一子区域的其他特性仍然具有相同的激活级别。

图4. MNIST和CIFAR-10数据集在MLP架构使用不同Dropout方案的错误百分比。第1行:使用Dropout的实验。第二行:使用噪声反投影的实验。第1栏:CIFAR-10;第2栏:MNIST

图5. MNIST和CIFAR-10数据集上随机Dropout产生的噪声样本

2. Dropout和噪声样本的等效性

研究人员在MNIST和CIFA R-10数据集上进行了一系列全连接的前馈神经网络实验,研究了用相应的噪声输入代替Dropout的效果。每个网络由两个隐藏层和校正的线性单元组成,然后是一个Softmax层。一共实验了四种不同的体系结构,每一种在隐藏层中有不同数量的单元:2500-2500,2500-1250,1500-1500和1500-750。MNIST数据集由60000个训练样本和10000个测试样本组成。研究人员将训练集分成50000个样本进行训练,10000个样本进行验证。对每个网络迭代501个epoch,并根据验证误差选择最佳模型。之后,最好的模型被进一步训练在60000个样本的完整训练集上(训练验证分裂),训练150个epoch。最后75个epoch的平均误差百分比拿来进行比较。研究人员还使用上述相同的网络体系结构对CIFAR-10置换不变任务进行了实验。数据集包括50000个训练样本和10000个测试样本。实验采用非白化的PCA降维进行预处理,保留781个特征。然后采用与MNIST实验相同的方法来训练网络和比较性能。在每个epoch,为每个训练样本生成一个x∗。实验证明,对于一个两层隐层网络,可以同时为整个网络找到良好的x-∗近似。因此,我们只训练x和x∗,而不是x,x(1)∗和x(2)∗,因为它提高了速度。为了简单起见,每个epoch训练x,而不训练x*。所有x∗都是在一个epoch开始时用模型的参数值生成的。使用随机梯度下降法发现有噪声的输入X。为第一隐藏层和第二隐藏层的300.0的学习速率完成20个学习步骤。这些实验的结果如图4所示。结果提示,通过将噪声投射回输入并对该生成的数据进行确定性训练,可以复制Dropout的某种机制。在准确性方面没有显著下降,在CIFAR-10的情况下,它甚至比Dropout略胜一筹。这似乎验证了某种假设,即Dropout可以被看作数据增强。

3. 更丰富的噪声范式

研究人员对MNIST和CIFAR-10数据集进行了一系列完全连接的前馈神经网络的实验,以比较Dropout现象。每个网络由两个具有整流线性单元的隐藏层组成,之后是SoftMax层。在论文里,用三种不同的网络体系结构进行了实验,每个网络架构具有不同数量的隐藏层单元:2500-625、2500-1250和2500-2500。对每个网络进行培训,并按照上一节所述的方式对每个网络进行验证。首先,研究人员通过训练具有0.5的固定隐藏噪声水平的网络和从0.0到0.7变化的输入噪声水平来评估辍学率噪声方案,每个实验的增量为0.1。在第二实验中,研究人员将输入噪声水平固定在0.2,并且隐藏噪声水平从0.0变化到0.7,再次以0.1的增量变化。在最后一组实验中,他们使用在输入和隐藏层使用相同噪声电平的随机压降噪声方案。这种情况下的噪声电平是范围[0,x],其中x从0.0到0.8变化,增量为0.1。图6中报告了与所有数据集的所有实验相对应的分类性能。

图6:使用不同损坏方案的MLP架构在MNIST和CIFAR10数据集上训练得到的错误百分比。第1行:CIFAR-10的实验。第2行:MNIST实验。第1列:使用具有不同输入噪声并固定隐藏噪声0.5的Dropout。第2栏:使用不同隐藏噪声并固定输入噪声0.2的Dropout。列-3:使用具有不同噪声范围[0,x]的随机Dropout,用于隐藏和输入层。
六、相关工作

这篇文章发表的时候,还没有人从数据增强的角度讨论Dropout。Gal & Ghahramani (2015)从贝叶斯逼近角度解释过Dropout。Poole et al. (2014) 用了不同的噪声方案,并在自动编码器的不同位置上应用;输入、激活前和激活后。他们取得了比去噪自动编码器实验更好的结果,并且支持在MNIST分类任务中加入高斯噪声,这比基准线上加Dropout性能好。Bachman et al. (2014)强调了对Dropout的bagging解释,并提出了一种名为伪集成学习和相关正则化的泛化方法,这使得训练半监督网络成为可能。13——15年的一些研究工作,受模拟退火的启发,去Schedule噪声,认为这会有助于监督和非监督任务(Geras & Sutton, 2014; Chandra & Sharma, 2014; Rennie et al., 2014)。本文提出了一种替代方案,可以避免调度噪声,这会使模型无法适应缓慢变化的噪声分布,而是使用随机噪声。Geras & Sutton (2014) 在无监督的自动编码器上也使用了类似的方法,这是对输入操作,而非对特征,他们之前认为这方法不太管用。最后,Graham et al. (2015)工作与随机噪声有关,因为它们的子矩阵乘法和随机噪声水平ρ都在诱导单层神经元之间的独立性。他们发现,如果使用足够多不同的子矩阵模式,独立性就不会受到损害。
七、结论

本论文提出并证明了一种把Dropout当作先验知识的数据增强的解释。研究人员描述了一种新的生成样本的方法,即将掉出的噪声投影到输入空间中。实验的结果表明,神经网络可以在这样的含噪样本上进行训练,并且仍然取得了很好的效果。当然,要在较大的网络(比如ImageNet)上进行实验,以确定这一观测是否只是相对较小网络的一种特殊性质。此外,对经过训练的网络进行分析,以确定在深层神经网络上使用每层噪声反向投影时是否仍然避免了共适应。在这份工作中,可能取代Dropout的名单仅仅是随机Dropout,这远远不是详尽无遗的。如第四节所述,模型的特点和应用的噪声方案是修正由噪声引起的数据增强的重要旋钮。使用半监督代价可以通过迫使网络学习更多的一般特征来影响隐式变换。还可以对一个网络进行关于从另一个网络生成的x个∗样本的训练,类似于生成对抗网络(Goodfellow et al., 2014a)

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Google photo

您正在使用您的 Google 账号评论。 注销 /  更改 )

Twitter picture

您正在使用您的 Twitter 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s