论文(5)Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net

Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net

在WAD 2018的Drivable Area track 的task中,获得了冠军,mIoU达到86.18%

motivation

由于数据集众多,导致当前的CNN模型基本上只适用于某一个domain或者task,如何在不fine-tuning的情况下使得模型可以跨数据集?本文提出了IBN-Net。

图a 表示真实数据集和虚拟数据集
图b 表示同一张图片不同色调和亮度
图c 表示同一张图片不同风格(莫奈和梵高)
解决上面这些差异性的方式就是让网络尽可能的习得图片的不变性,而不是针对变化设计新的模型。

contribution

  1. 提出了一个新的模型结构,可以提升深度神经网络在learning和generalization上的能力。IBN-Net50在ImageNet上取得了比ResNet50更好的效果,并且参数量和计算量更小
  2. 仔细分析了IN和BN在神经网络中的用处
    论文(5)Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net_第1张图片

上图中,y轴代表特征的差异性,x轴代表网络的深度。从图中可以看出,随着网络深度的增加,ImageNet的图片和莫奈的话在风格上的差异越来越小,而在语义上面的差异越来越大。而batch-norm把一个batch的数据在同channel的部分进行了归一化,这增强了特征间的差异性,但是对于数据本身固有的光照,色度等信息进行了破坏。所以BN不适合用于transfer而适合classification,而IN则是很好的保留了Image本身的信息,所以更适合transfer。简而言之,IN学习到的特征属于visual and appearance 的不变性,而BN是学到了特征之间的差异性。所以IN适合用于网络的浅层,而BN适合用于网络的深层。
3. IBN-Net也增强了跨数据集的性能。paper中举了cityscapes和gta5的数据集训练IBN-Net的例子。

architecture

正如之前提到的,CNN的层级中,对于表征的多样性(光照,亮度等)的学习往往在模型浅层,而对于内容特征区分性的的学习往往在模型深层,不过在浅层也有,故据此提出了两种方式:
1. 为了防止削弱模型在深层结构对于内容区分能力的削弱,模型后端不加IN、
2. 为了增强模型在浅层结构对于内容信息的学习,模型前端会保留部分BN。
论文(5)Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net_第2张图片

对于IBN-a模块的设计,有三点原因:
1. kaiming的paper证明了,在residual的模块中,identity path一定要是h(x) = x为好(不加乱七八糟的东西),所以IN加到residual path而不是identity path中
2. IN放在第一个norm层,而不是最后一个,是为了防止residual path和identity path的结果不对齐
3. 第一个norm设计为一半BN,一半IN,原因之前解释了。在实验中也证实这样的确可以涨点。

通过以上这些原因以及设计理念的介绍,IBN block的变种也有很多

experiments

模型仅仅用 Imagenet 来训练,但是valid的时候对 Imagenet 的valid图片进行色调,亮度,还有用cycle-gan进行风格的迁移等。
论文(5)Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net_第3张图片

Cityscape和GTA 5,现实数据集与虚拟数据集的迁移
论文(5)Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net_第4张图片

还有很多实验的对比,不一一细说了。
总而言之,就是IBN这样的设计确实很棒,可以提升模型的各种能力,相当虎。

你可能感兴趣的:(论文)