提升模型的泛化能力:IBN-Net 论文笔记

摘要

卷积神经网络(CNN)在很多计算机视觉问题上取得了巨大成功。现有的CNN为提升特定domain性能而设计相应的网络结构,其泛化能力不强。与之不同的是,本文提出新颖的CNN结构:IBN-Net,显著地提升了CNN模型从一个domain(如cityscapes)到另一个domain(如GTA5)的泛化能力(未finetuning)。IBN-Net在设计block时精心组合Instance Normalization(IN)和Batch Normalization(BN),可以应用到一些已有的先进深度网络中中来提升性能。本文贡献有3点:

(1)通过研究IN和BN,发现IN学习到的是不随颜色、风格、虚拟/真实等外观变化而改变的特征,而BN则是保留与内容相关的信息

(2)IBN-Net可以应用到很多先进的深度网络结构,如DenseNet,ResNet,ResNeXt以及SENet等,能够提升这些网络的性能并且不会带来额外的计算量。

(3)当将已训练的模型应用到新的domain时,如从GTA5到Citycapes,相比domain adaptation 方法,即使IBN-Net不使用目标domain中的数据,也有明显的提升。

本文为论文《Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net》学习笔记,原文地址:https://arxiv.org/abs/1807.09441

1

引言

现有的大部分网络结构为特定domain设计,例如,在Cityscape真实图片数据集中训练好的场景分析模型,一但应用到其他domain如GTA5仿真数据集中,其性能会有明显下降。这是因为两个数据集的主要呈现的外观有明显的差别,如下图所示。

上图中,(a)Cityscapes数据集和GTA5数据集示例。(b)展示简单的外观变化(修改亮度、色相等)。(c)展示复杂的外观变化(通过风格变化网络模型生成指定风格图片)。(d)证明IN能够过滤复杂的外观变化,其风格转换网络用到的是AdaIN。

解决外观之间的差异的简单方法是使用迁移学习,即将Cityscapes数据集中训练好的模型放到GTA5数据集中进行finetuning。那么finetuning后的模型在GTA5中的精度肯定会得到提升,但是finetuning后的模型在Cityscapes数据集中的精度则会下降。

现有的CNN单独使用IN或者是BN,高层视觉任务如图像识别中使用BN作为一个关键组件以提升学习能力,而低层视觉任务如图像风格转换使用IN来移除图片变化部分。简而言之,BN保留了单个样本之间的区别,但也对CNN在外观转换上有影响;IN消除个体不同外观的差异,但同时减少了有用信息。IBN-Net合理地组合使用IN和BN,同时提升了学习能力和泛化能力。

2

低层网络特征与高层网络特征

上图中,x轴表示网络的深度,y轴表示特征散度。由上图可知,随着网络深度不断加深,相同内容不同风格的数据集的特征散度不断下降,意味着低层特征反应的是外观差异,高层特征反应的是语义信息。

3

IBN-Net中的Block设计

基于上图中实验结果,将IN引入到CNN中需要遵循2个准则,首先,为了过滤反应外观的信息,并同时保留语义信息,只将IN放到低层。其次,为了保留图片在低层的内容信息,将原始低层的BN层一半特征用IN替换,另用一半用BN。作者使用ResNet设计了两个IBN Block,如下图所示。

上图中,遵循第一个准则,即只在前面3个Group(conv2_x~conv_4-x)中加入IN,其他Group不变。对于residual block,将第一个卷积输出的前面一半通道用IN,后面一半通道用BN,如上图(b)所示。这么做原因有3点:(1)ResNet原文已经证明,identity path不添加网络层更有利于优化ResNet(2)为了保证与identity path的一致性,将IN放在第一个Normalization层。(3)IN和BN各占一半,不但可以不增加参数和计算量,而且可以保留IN的过滤外观的特征和保留BN的反应语义信息的特征。

使用图(b)对应的IBN block的IBN-Net称之为IBN-Net-a。为了充分利用IN的泛化能力,本文还实现了另一个版本:IBN-Net-b,只在ResNet的第一层卷积(conv1)和前面两个Groups(conv2_x,conv3_x)中加入IN层,其Block对应图(c)。

4

实验对比

通过实验对比原始ResNet50、IBN-Net50-a以及IBN-Net50-b网络性能,实验使用的是通过CycleGAN合成的不同色相、亮度、对比度以及风格的数据。训练期间只使用ImageNet中的训练集,验证机使用CycleGAN生成的数据集,实验结果如下所示。

从以上实验结果可以看到,IBN-Net50-a有更好的泛化能力和更健壮的识别能力。对于IBN-Net50-b,泛化能力有明显的提升。

在分割领域,分别在Cityscapes和GTA5数据集中做实验,实验结果如下。

从以上实验结果上看,相对于原始ResNet,IBN-Net精度有明显的提升。但是从上图也可以看到,使用IBN-Net50-a使用Cityscapes训练的模型的精度从Cityscapes测试集中的94.4%到GTA5测试集中只有71.4%。从这个结果中也可以看到,虽然在精度方法相比原始ResNet确实有提升,但是还远远没有达到解决跨Domain带来的精度下降程度。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181025G1RU7200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券