『DropBlock: A regularization method for convolutional networks』论文笔记

一 为什么读这篇

覃辉心心念的,Google Brain最新出的一篇。都知道dropout可以抑制过拟合,不过卷积网络里好像没怎么见到dropout的身影,特别是ResNet的网络结构里,压根没有dropout出现,从本文的题目就可以看出来,本篇提出的DropBlock就是专为CNN提供的。

二 截止阅读时这篇论文的引用次数

2018.11.24 0次。毕竟10月30号才出的

三 相关背景介绍

本文已经被2018年的NIPS接收,作者是来自Google Brain的3个学者。一作Golnaz Ghiasi是个妹子。二作是来自台湾的Tsung-Yi Lin,同时他也是RetinaNet的一作,看来质量有保证了。。

四 论文的主要贡献

提出了DropBlock这种适用于卷积层的正则化方法。dropout不行是因为卷积层的神经元之间仍然是有空间相关性的,所以即使使用了dropout,信息仍能传递。

五 详细解读

1 介绍

除了AlexNet用了dropout外,最近的网络很少用dropout,最多用在FC层。

dropout的主要问题就是随机drop特征,这一点在FC层是有效的,但在卷积层是无效的,因为卷积层的特征是空间相关的。当特征相关时,即使有dropout,信息仍能传送到下一层,导致过拟合。

本文提出的DropBlock是dropout的一种结构化形式。在DropBlock中,特征在一个block中,例如一个feature map中的连续区域会一起被drop掉。当DropBlock抛弃掉相关区域的特征时,为了拟合数据网络就不得不往别出看以寻找新的证据。

dropblock-fig1.png

在ImageNet上,ResNet-50加了DropBlock后准确率从76.51%提升到78.13%。在COCO检测上,RetinaNet的AP从36.8%提升到38.4%。

2 相关工作

在dropout的启发下,诞生了DropConnect, maxout, StochasticDepth, DropPath, ScheduledDropPath, shake-shake regularization, ShakeDrop regularization等一系列方法,它们背后的理念基本上都是给网络注入噪声以免网络过拟合训练数据。

而其中与DropBlock最接近的方法是SpatialDropout,它是drop掉一个feature map的整个通道。

这些基于噪声注入的技术并不适用于CNN网络,事实上,也不适合RNN网络。当前RNN网络的常用噪声注入方法是Variational Dropout和ZoneOut。

DropBlock是受Cutout启发的。它是一种数据增强方法,将输入数据的部分区域给归零了。DropBlock做的就是将Cutout应用于CNN的每一个特征图(这就是创新点啊!!!)另外,最好不要用固定的归零比率,而是在训练时以一个小的比率开始,随着训练过程线性增加这个比率。这种调度机制和ScheduledDropPath类似。

cutout-fig1.png

3 DropBlock

drop掉某个层的特征图上的连续区域。主要有两个参数:block\_size\gamma 控制drop掉多少神经元

输入为:层A的激活输出(也就是feature map),block\_size\gammamode

当在inference时直接返回特征图,不做DropBlock。

按伯努利分布(0-1分布)采样mask M

对于每个0位置的M_{i,j},以M_{i,j}为中心,block\_size 为大小建立方形mask,将其中的值置为0(需要注意的是仅从浅绿色区域采样M的中心点,这样block就是完整的)

A = A \times M

最后归一化特征:A = A \times count(M) / count\_ones(M)

dropblock-alg1.png
dropblock-fig2.png

有在不同的特征通道上共享DropBlock mask和每个特征通道上独享DropBlock mask两种方法,实验证实第二种效果更好。

和dropout一样,inference时不用DropBlock,这可以解释为在评估时融合了指数级子网络的平均预测。

block\_size的大小对于所有feature map都一样,而不用考虑feature map的分辨率。当=1时就是dropout,当覆盖整个feature map时就是SpatialDropout。

实践中,并没有显式的设置\gamma的值,而是根据keep_prob来调整。
\gamma = \frac{1 - keep\_prob} {block\_size^{2}} \frac{feat\_size^{2}}{(feat\_size - block\_size + 1)^2}
keep_prob设置为0.75到0.95之间,然后根据上式计算相应的\gamma

经实验,发现固定keep_prob的做法效果并不好,而是从1开始逐渐降低keep_prob的值到固定值效果更好。

4 实验

4.1 ImageNet Classification

上TPU,用Tensorflow的ResNet-50和AmoebaNet。图像大小分别为224x224和331x331,batch_size分别为1024和2048,ResNet-50的epoch从90增加到270。学习率在125,250,250epoch时分别除10。AmoebaNet的epoch为340,学习率用指数衰减。

dropblock-table1.png
4.1.1 DropBlock in ResNet-50

DropBlock加在哪?加在卷积层后或加在卷积层和跳跃连接之后。在Group4或Group3和4里加。这里的Group4也就是ResNet原文里的conv5_x。

dropblock-fig3.png
dropblock-fig4.png

最佳的DropBlock配置是block_size=7,在group3和group4上都用。

通过和dropout的对比,发现(1)和dropout有类似的趋势(2)比dropout有明显好的结果 => DropBlock比dropout更有效。

cutout在CIFAR10上有效,但是在ImageNet上无效。。。。。。

4.1.2 DropBlock in AmoebaNet

从82.25%提升到82.52%,这个提升就比较小了。。不过,阿米巴这个网络真强,看来网络的结构影响远远大于一些正则化技术的使用。

4.2 实验分析

DropBlock相比dropout能更有效的移除语义信息。移除越多的语义信息,则正则化越强。

使用DropBlock的模型会学习多个判别区域而不是仅仅聚焦在一个判别区域上。

dropblock-fig6.png

4.3 COCO上的目标检测

这里需要注意的是从头开始训练的效果比在ImageNet上fine-tune的效果要好,这也从某一方面响应了何大神最新提出来的『Rethinking ImageNet Pre-training』

dropblock-table3.png

4.4 PASCAL VOC上的语义分割

这里的结果不太有说服力,效果不如ImageNet上预训练的。估计主要原因还是训练数据过少(只有1w张)

5 讨论

CAM(class activation mapping)说明了通过DropBlock能学到更多的空间分布的表示。

将DropBlock用在skip connection比直接用在卷积层后要好。另外随着训练的进行逐渐增加drop掉神经元的个数效果会更好。

六 读后感

感觉最大的收获是本篇将cutout方法从输入数据应用到各个特征图,将一种数据增强方法变为正则化技术,凭这个idea就产生了一篇paper。没有特殊的改进,也没有乱七八糟的公式。但是实验一定要做扎实,单纯的固定一个值(keep_prob)的做法实验效果并不好,如果这时就放弃这个idea了屁都得不到,此时试着周期性的变化这个值,发现效果好了。

另外,通过本文还知道了目前SOTA的网络是AmoebaNet,看来AutoML占据统治地位也就几年的事,之前的方法又得淘汰一波。还知道了AutoAugment这种技术。感觉读最新的论文的好处就是知道当前SOTA的是什么。非常有利于跟踪前沿。

其实DropBlock背后的理念就是把部分关键信息给屏蔽掉,逼着模型通过其他地方的关键信息来学习。

CAM是一个模型可解释性的好东西,后续可以研究研究。

七 补充

本文的二作Tsung-Yi Lin,也就是RetinaNet的提出者在14年微软实习时以一作的身份发表了关于Microsoft COCO数据集的文章,所以有时也不能轻视一些基础工作的进行,这对于后面的积累也是非常有帮助的。

一个基于pytorch的实现:https://github.com/miguelvr/dropblock

一个基于keras的实现:https://github.com/CyberZHG/keras-drop-block

怀疑两个作者有没有仔细看过原文,至少是实验部分没仔细看。原文只是把DropBlock加在深层里,浅层压根没加的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352