DropBlock论文笔记

论文:DropBlock: A regularization method for convolutional networks. Golnaz Ghiasi,Tsung-Yi Lin,Quoc V. Le

 

摘要

当深度神经网络被过度参数化,并使用大量的噪声和正则化(如权重衰减和Dropout)进行训练时,它们通常能很好地工作。尽管dropout作为全连接层的正则化技术被广泛使用,但它对于卷积层的效果往往较差。对于卷积层来说,dropout失败的原因可能是由于卷积层中的激活单元是空间相关的,所以即使存在dropout,信息仍然可以在卷积网络中流动。因此需要一种结构化的dropout形式来对卷积网络进行正则化。在本文中,我们引入了DropBlock,这是一种结构化的dropout形式,在一个特征图的连续区域内的单元被一起丢弃。我们发现,除了卷积层外,在跳跃连接(skip connection)中应用dropblock可以提高准确性。此外,在训练过程中逐渐增加的dropped units数量可以提高超参数选择的准确性和鲁棒性。大量的实验表明,DropBlock在正则化卷积网络方面比dropout更好。在ImageNet分类上,带有DropBlock的ResNet-50架构的准确率达到了78.13%,比基线提高了1.6%以上。在COCO检测方面,DropBlock将RetinaNet的平均精度从36.8%提高到38.4%。

 

引言

当深度神经网络具有大量的参数,并使用大量的正则化和噪声进行训练时,如权重衰减和dropout[1],其效果较好。尽管dropout的第一个最大的成功与卷积网络(Alex Net)有关,但最近的卷积架构很少使用dropout。在大多数情况下,dropout主要用于卷积网络的全连接层。

我们认为dropout的主要缺点是它会随机地删除一些特征。虽然这对于全连接层是有效的,但对于卷积层(特征在空间上是相关的)则不那么有效。当特征相关联时,即使有dropout,关于输入的信息仍然可以发送到下一层,这将导致网络过拟合。这表明,需要一种更结构化的dropout形式来更好地正则化卷积网络。

在本文中,我们引入了DropBlock,一种结构化的dropout形式,它对卷积网络的正则化特别有效。在DropBlock中,一个Block中的特征,即一个特征图的相邻区域,一起被删除。由于DropBlock丢弃了相关区域的特征,网络必须在其他地方寻找适合数据的evidence(见图1)。

图片1.jpg 

在我们的实验中,DropBlock在很多模型和数据集上都比dropout好得多。在ResNet-50架构中添加DropBlock将ImageNet上的图像分类精度从76.51%提高到78.13%。在COCO检测上,DropBlock将RetinaNet的AP从36.8%提高到38.4%。

 

相关工作

Dropout提出后,基于它改进了很多方法,如DropConnect [14], maxout [15], StochasticDepth [16], DropPath [17], ScheduledDropPath [8], shake-shake regularization [18], and ShakeDrop regularization [19].这些方法背后的基本原理是向神经网络注入噪声,使它们不会过度拟合训练数据。在卷积神经网络方面,最成功的方法都要求对噪声进行结构化处理[16,17,8,18 - 20]。例如,在DropPath中,神经网络中的整个层都被置零,而不仅仅是一个特定的单元。尽管这些删除层的策略可以很好地用于具有许多输入或输出分支的层,但它们不能用于没有任何分支的层。

我们的方法DropBlock可以在卷积网络的任何地方应用。我们的方法与SpatialDropout[20]密切相关,它从特征图上删除整个通道。我们的实验表明DropBlock比SpatialDropout更有效。

这些针对架构的噪声注入技术的发展并不是卷积网络独有的。事实上,与卷积网络类似,递归网络也需要自己的噪声注入方法。目前,Variational Dropout[21]和ZoneOut[22]是向循环连接注入噪声最常用的两种方法。

我们的方法的灵感来自于Cutout[23],这是一种数据增强方法,其中部分输入示例被置零。DropBlock通过在卷积网络中的每个特征图上应用Cutout。最好在训练初期将DropBlock的比例设置为较小,然后随着时间的推移线性增加。该训练方案与scheduledroppath[8]相关。

 

DropBlock

DropBlock是一个类似于dropout的简单方法。它与dropout的主要区别在于它从一个层的特征图中删除连续的区域,而不是删除独立的随机单元。DropBlock的伪代码见算法1。

图片2.jpg 

图片3.jpg 

DropBlock有两个主要参数block_size和γ。block_size是要删除的块大小。而γ控制要删除多少激活单元,表示drop过程中的概率,也就是伯努利函数的概率。

在不同的特征通道上尝试了一个共享的DropBlock Mask,或者每个特征通道都有自己的DropBlock Mask。算法1对应于后一种算法,在我们的实验中,这种算法的效果更好。

dropout类似,在推理过程中不应用DropBlock。这被解释为评估一个平均预测跨指数大小的子网络集合。这些子网络包括由dropout覆盖的子网络的一个特殊子集,其中每个网络都看不到特征图的相邻部分。

block_size的设置。在不管特征图的分辨率如何,都为所有的特征图设置了一个常量block_size。当block_size = 1时,DropBlock类似于dropout,当block_size覆盖整个特征图时,类似于SpatialDropout。

γ值的设置。我们不显式地设定γ,γ控制特征被删除的数量。假设希望保持每个激活单元的概率为keep_probb。在dropout中,Binary Mask将以均值为1- keep_probb的伯努利分布采样。考虑到block_size*block_size 中的元素都要置为0,所以γ可以计算为

图片4.jpg 

其中keep_probb可以理解为dropout中保留一个unit的概率。有效种子区域(即采样block中心点的区域)的大小是(feat_size - block_size + 1)2,其中feat_size是特征图的大小。DropBlock的主要区别在于,DropBlock会有一些重叠,所以上面的公式只是一个近似值。在我们的实验中,我们首先估计使用的keep_probb(在0.75 ~ 0.95之间),然后根据上述方程计算γ。

Scheduled DropBlock。我们发现,固定keep_prob的DropBlock在训练期间工作的不好,应用较小的keep_prob值会影响一开始的学习。相反,随着时间的推移,逐步将keep_prob从1减少到目标值更鲁棒,并对大多数keep_prob值进行改进。在我们的实验中使用了减少keep_probb值的线性方案,这在许多超参数设置中都能很好地工作。这个线性方案类似于ScheduledDropPath。


上一篇:

首页 所有文章 机器人 计算机视觉 自然语言处理 机器学习 编程随笔 关于