[论文阅读]Group Normalization & IBN-Net(ECCV2018)

这里主要介绍两篇ECCV2018的论文,都是关于神经网络层中的normalization归一化的。

目录

《Group Normalization》【ECCV2018】

方法

代码 

实验 

《Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net》【ECCV2018】

摘要

Instance-Batch Normalization Networks

Variants of IBN block 

实验

 Conclusions

 

《Group Normalization》【ECCV2018】

作者:Yuxin Wu and Kaiming He(吴育昕和何恺明——FAIR(Facebook AI Research)
会议:European Conference on Computer Vision (ECCV), 2018 (Oral). Best Paper Honorable Mention

Kaiming He个人主页:http://kaiminghe.com/

论文链接https://arxiv.org/abs/1803.08494

代码链接https://github.com/facebookresearch/Detectron/blob/master/projects/GN

PPThttp://kaiminghe.com/eccv18gn/group_norm_yuxinwu.pdf

现有的batch normalization(BN)的问题:批大小减小时误差会显著提升,大批量才能保证精度,但是大批量对内存要求太高。

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第1张图片

BN 要求有足够大的批量才能工作。小批量会导致批量统计数据的估算不准确,并且减少 BN 的批量大小会显著增加模型误差。如上面这个图所示,批大小从32降到2时,ResNet50在ImageNet上的分类错误率显著增大。在批大小为 2 时,GN 比 BN 对应的误差低 10.6%。对于常规的批量规格,GN 与 BN 表现相当(差距为 0.5%)。

方法

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第2张图片

上面的图展示了四种归一化方法,蓝色的块表示用这些像素计算均值和方差,然后对它们进行归一化。 

  1. BatchNorm是在batch方向做归一化,算(N, H, W)轴上的均值和方差
  2. LayerNorm是在channel方向做归一化,算(C, H, W)轴上的均值和方差
  3. InstanceNorm是在一个批次的一个channel内做归一化,算(H,W)轴上的均值和方差
  4. GroupNorm是将channel分成几个group,然后每个group内做归一化,算((C//G),H,W)轴上的均值和方差

对所有的归一化方法,计算形式都是减均值再除以方差:

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第3张图片

Si的集合不一样,就是不同的归一化方法,Figure2里面描述得很清楚,用式子表示如下:

 [论文阅读]Group Normalization & IBN-Net(ECCV2018)_第4张图片

和BN原文里的一样,BN、LN和IN都还要学习scale和shift两个参数,提高网络的学习能力:

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第5张图片

而对于群组归一化来说, 归一化的数据需要在同一个批次,而且要在同一个群组(channel方向)

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第6张图片

这里的G指的是群组的个数。 

代码 

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第7张图片

实验 

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第8张图片

 [论文阅读]Group Normalization & IBN-Net(ECCV2018)_第9张图片

上面的图和表显示的是四种归一化方法的比较,用的批大小是32,这个批大小已经可以让BN有很好的性能。随着迭代次数的增加,四种归一化方法的训练误差都逐渐减小,但是GN和BN减小得最快,它们的训练误差是相当的,甚至GN在训练集上的误差更小。而在验证集上,随着迭代次数增加,四种方法的误差也都逐渐减小,GN和BN的验证误差最小,两者也基本相当,最后GN比BN的验证误差大了0.5%。 

 [论文阅读]Group Normalization & IBN-Net(ECCV2018)_第10张图片

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第11张图片

Figure5的左右两幅图分别是BN和GN在批大小变化时的分类错误率曲线,可以看到BN对批大小的选择十分敏感,批大小减小时,分类错误率显著增加;但是GN对批大小不敏感,无论批大小是多少,它的错误率都差不多。批大小越小,BN和GN之间的性能差异越明显。

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第12张图片

 Table3左边是固定每个群组的通道数,改变群组个数的实验结果;右边是固定群组个数,改变每个群组的通道数的实验结果。

 

《Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net》【ECCV2018】

作者:Xingang Pan, Ping Luo, Jianping Shi, and Xiaoou Tang

论文链接https://arxiv.org/pdf/1807.09441.pdf

代码链接https://github.com/XingangPan/IBN-Net

摘要

这篇文章中的方法在伯克利主办的WAD 2018 Challenge中获得了Drivable Area track(可行驶区域跟踪)赛道的冠军,mIoU 达到 86.18%。

由于数据集众多,现有的CNN结构基本上只适用于某一个domain或者task,本文提出了IBN-Net,实现在不finetuning的情况下跨数据集。

本文有三个主要贡献:

  • 通过对IN和BN的深入研究,揭示了IN learning中对于外观变化不变的特征,如颜色、风格、虚拟/现实等,而BN是保留内容相关的特征。
  • IBN-Net可以应用于许多高级的深度神经网络,如DenseNet、ResNet、ResNeXt和SENet,并可以在不增加计算成本的情况下提升它们的性能。
  • 将经过训练的网络应用于新数据域时,如从GTA5到Cityscapes,即使不使用目标领域的数据,IBN-Net作为领域适应方法也取得了相应的提高。

 [论文阅读]Group Normalization & IBN-Net(ECCV2018)_第13张图片

Cityscapes和GTA5是两个相似的数据集,它们有非常相似的类别和场景结构,但是一个是真实的,一个是虚拟的,存在外观上的差异。假设在Cityscapes上预训练了一个模型,如果要把它用到GTA5这个数据集上,就需要在GTA5上进行微调,但是微调之后的模型再用于原来的数据集中效果又会不好。虽然现在已经有许多方法来实现神经网络的空间不变性,如max pooling, deformable convolution,它们可以实现角度、尺度等空间不变性,但是仍然不能实现外观不变性。上面图d)中,风格转换网络AdaIN表明,IN可以过滤掉图像中复杂的外观差异。

 Batch Normalization(BN)多用在图像识别等高层(high-level)视觉任务中,Instance Normalization (IN)则多用在风格转换等低层(low-level)视觉任务中。在现有的研究中,还没有揭示出它们各自的特点及其相互结合的影响。虽然现在已经有IBN-Net表明,以适当的方式组合它们可以提高学习能力和泛化能力。

IBN-Net继承了网络不同深度下特征散度的统计特点,在浅层保留IN和BN特征,在高层保留BN特征。

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第14张图片

横轴是feature map的编号,纵轴是特征散度。在基于BN的网络中,对外观不同(imagenet和莫奈风格)而内容一致的图像,它们的特征差异随着层数的增加而降低;而对类别(内容)不同、外观类似的图像,它们的特征差异随着层数的增加而越来越显著。由外观差异引起的特征散度主要集中在神经网络的浅层,而由内容差异引起的特征散度主要集中在深层,也存在于浅层。

Instance-Batch Normalization Networks

基于Fig.2,作者提出在BN中引入IN的两个原则

1)为了不减少深层特征的识别能力,不在CNNs的深层添加IN;

2)在浅层保留部分BN来保留内容信息。

一个ResNet有4组残差块,只在前三组残差快中添加IN,最后一组残差块中不添加IN。对于每一个残差块,有下面几种方式在其中添加IN:

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第15张图片

其中IBN-a模块的设计,有三点原因:

1)何恺明的论文(IBN-Net论文参考文献[9])证明了,在residual的模块中,一个clean identity path对于网络优化的重要性(一定要是h(x) = x为好),所以IN加到residual path而不是identity path中;

2)IN放在第一个norm层,而不是最后一个,是为了防止residual path和identity path的结果不对齐 ;

3) 来自上面两个原则中的第二条,保留一部分BN来保留内容信息。

Variants of IBN block 

除了上面两种IBN block,还有几种变形形式,如下:

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第16张图片

IBN-c是64个通道分别做一次IN和一次BN,然后把它们连接起来,排列成128个通道;

IBN-d是 256个通道分成两部分,其中128个通道做IN,另外128个通道保持原样,再把它们连接成256个通道。

实验

 [论文阅读]Group Normalization & IBN-Net(ECCV2018)_第17张图片

Table1,只用 ImageNet训练,但是validation set做了颜色、亮度、对比度、风格转换(风格转换是用CycleGAN实现的)。IBN-Net的top1/top5错误率比原始的ResNet50要低,括号里面是相对于origin那一行高的部分。

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第18张图片

 Table2,将IBN-Net应用到各种分类网络中的效果。original是原论文中的结果,re-implementation是作者复现的结果,IBN-Net-a是按照IBN-a加入IN的结果,括号里面是错误率相对于re-implementation减小的部分。

 [论文阅读]Group Normalization & IBN-Net(ECCV2018)_第19张图片

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第20张图片

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第21张图片

下面是计算两个feature map的特征散度的式子: 

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第22张图片

[论文阅读]Group Normalization & IBN-Net(ECCV2018)_第23张图片

 Conclusions

  • 在这篇文章中,作者提出了IBN-Net,它将实例归一化(IN)和批归一化(BN)在单个深度网络中统一起来,以提高建模和泛化能力。结果表明,在ImageNet数据集上,IBN-Net在VGG、ResNet、ResNeXt、SENet等多个经典CNNs获得了的提升。
  • IN引入的内建式的外观不变性有助于我们的模型在不使用目标域数据的情况下泛化图像域。
  • 总结了在CNNs中IN和BN层的作用:IN可以引入外观不变性、提高泛化能力,而BN可以保留内容信息。

你可能感兴趣的:(目标分类检测)