(本文转自极视角

本文由香港中文大学发表于ECCV2018,论文探索了IN和BN的优劣,据此提出的IBN-Net在语义分割的域适应任务上取得了十分显著的性能提升。

论文地址:https://arxiv.org/pdf/1807.09441

代码地址:https://github.com/XingangPan/IBN-Net

背景介绍

近年来,尽管CNN模型在诸如图像分类、目标检测和语义分割等任务上取得了惊艳的性能,但一个广泛存在的问题是:训练好的CNN模型只适用于特定的task甚至只适用于某一个domain。具体而言,该问题主要有两个表现:1、如果不进行finetune,则将在其他task或者domain上表现非常差;2、经过finetune后,在新的task或者domain上表现优异,但在原来的的task或者domain上性能却会出现显著的下降。这背后的原因是什么?又该以什么方式加以解决,是一个非常值得探索的问题。

针对不同domain之间的shift问题,近年来有学者通过Domain Adaptation (DA)的方式加以解决,其核心思想是:如何使得源域(Source Domain)上训练好的模型能够很好地迁移到没有标签数据的目标域上(Target Domain)上,DA尽管可以使得模型能够很好地适应目标域,但依然无法适应到其他目标域以外的Domain上,因此Domain Generalization(DG)应运而生,其核心思想是如何学习到不同Domain之间的共性特征,使得模型在不同Domain上都具有良好的适应性。然而现实场景中的Domain是难以穷尽的,以上两种方式依然需要不同Domain的数据参与到训练中,这种数据收集的代价显然是巨大的。有没有一种方式能够使得一个Domain上训练好的模型,在不需要任何新的Domain数据参与训练的情况下,也能具有很好的泛化能力?本文从特征Normalization的角度做了一次有益的探索。

基本问题

跑过实验的同学深知:在一个训练集上训练好的模型,如果测试数据和训练集风格不一样,模型的性能就会大打折扣,这时finetune就派上用场了,用新场景的数据对模型进行微调就是一种通用的做法。如下图所示,(a)展示的是两个不同的domain:真实数据和合成数据,显然二者的风格是各异的;(b)展示的是对同一张图片调整下色调和亮度,这是一种简单的风格变换;(c)展示的是通过风格转换网络对同一张图片调整为指定的风格,这是一种复杂的风格变换。显然解决以上差异的最佳方式在于让网络学习到关于目标的不变性特征,提高其泛化能力,而不是针对特定的风格重新训练网络。(d)展示了Instance Normalization(IN)的作用,只要将IN嵌入到一个编解码网络中,就可以将不同风格的图片中的风格信息过滤掉,而只保留内容信息,充分证明了IN在保留外观不变性方面的有效性。

从这一观察出发,一个自然的想法是:只要在网络中利用好IN,就能提高网络学习外观不变性的能力?为此作者进一步探索,将IN放置于何处才能更好地发挥其优势?作者通过下图的实验直观展示了特征在网络不同深度中的分布,实验中采用KL散度衡量特征之间的差异性(Y轴),X轴代表ResNet50中不同block的ID,从左到右网络深度不断加深,蓝色代表不同数据集中风格各异的图片,黄色代表同一个数据集中不同类别的图片。

可以发现:随着网络深度的增加,不同数据集图片的特征差异越来越小,而不同类别的图片的特征差异越来越大,这一差异表明低层的特征表示更多反映的是外观信息,而高层的特征表示更多反映的是语义信息。因此为了过滤掉这些反映外观变化的信息并同时保留语义信息,理应将IN放置于低层中。相比于IN,Batch Normalization(BN)把一个batch的数据进行归一化,恰恰是增强了语义特征之间的差异性。

解决之路

通过上图的分析,为了充分发挥IN和BN的各自优势,作者提出了IBN-Net的两条基本构建原则:1、为了防止网络在高层的语义判别性被破坏,IN只加在网络低层中;2、为了保留低层中的语义信息,网络低层中也保留BN。根据这两条原则,作者提出了如下两个IBN block:

为何如此设计,作者给出了三点解释:(1)在ResNet的原论文中已经证明,identity path不加任何东西更有利于优化ResNet,所以IN不应该加在identity path中;(2)IN置于第一个normalization层,是为了保证与identity path的结果的一致性;(3)在第一个normalization层,IN和BN各占一半的通道数,一方面保证了不增加网络参数和计算量,另一方面也是为了在IN过滤掉反映外观变化的信息的同时用BN保留语义信息。此外,作者还展示了在实验中用到的其它几个IBN block,其核心思想依然符合上述两个设计原则,在此不再赘述。

实验分析

1、实验设定

通过将上文提到的IBN-block添加到不同的基础网络中验证IBN-block的普适性。实验分别在图像分类和语义分割两个任务上进行,首先研究在一个数据集上的性能提升,其次验证在跨数据集时网络的泛化能力。

2、ImageNet图像分类

表2展示了在不同的基础网络中添加IBN-block所带来的性能提升,可以发现:在同样的参数设定下(这里选用的是图3(b)中的IBN-block),IBN可以使得基础网络的错误率降低0.5-1.5个百分点左右,说明IBN增强了模型的capacity。表3展示了跨数据集之间的性能提升,其中Monet代表对原始ImageNet数据进行了风格转换,不同的IBN-block均可以使得基础网络的错误率降低30个百分点左右,充分说明IBN可以提升模型的泛化能力。

3、跨域语义分割

作者在Cityscapes(真实数据)和GTA5(虚拟数据)上进行了Domain Generation的实验,从表6可以发现,不论是从Cityscapes到GTA5还是从GTA5到Cityscapes,只要有IBN加持,性能均有5-6个百分点左右的提升,而这种提升是不需要测试集中的图片进行重新训练的,验证了即使是在语义分割这样一个复杂的任务上,IBN也可以有非常出色的性能表现。

总结展望

本文贡献:

(1)结合IN和BN的优势,提出了IBN-block,可以无缝嵌入到各种已有的网络架构中,提升了基础网络的容量和泛化能力。

(2)在不增加网络参数和计算量的情况下,在图像分类和语义分割两个任务上,IBN均展现了非常优异的性能提升。

个人见解:

(1)不管是IN还是BN,本质上都是一种特征归一化的方式,二者唯一的区别在于对特征均值和方差不同的统计方式,因此normalization的核心就是这里的均值和方差。对于BN的均值和方差的研究,已有相关工作[1][2]发表,其研究表明:BN的均值和方差反映了不同数据集或者不同domain的独特信息,而本文综合考虑了IN和BN,在normalization层面上提升网络的泛化能力又迈出了坚实一步。

(2)Domain Generalization还有很长的路要走,当前的CNN模型在cross domain上的表现依然差强人意。尽管本文从normalization的角度部分解决了该问题,但从表6反映的结果来看,即使采用了本文的IBN-block,cross domain的结果依然远远落后于在同一个domain上训练和测试的结果,相比于IBN带来的微弱提升,这种差距是显著的。因此除了normalization之外,还有更为核心的问题有待挖掘。期待你的精彩发现。

参考文献

[1] Revisiting Batch Normalization For Practical Domain Adaptation. ICLR workshop(2017)

[2] AutoDIAL: Automatic DomaIn Alignment Layers. ICCV (2017)

(转载)ECCV 2018:IBN-Net:打开域适应的新方式的更多相关文章

  1. ECCV 2018 | UBC&腾讯AI Lab提出首个模块化GAN架构,搞定任意图像PS组合

    通常的图像转换模型(如 StarGAN.CycleGAN.IcGAN)无法实现同时训练,不同的转换配对也不能组合.在本文中,英属哥伦比亚大学(UBC)与腾讯 AI Lab 共同提出了一种新型的模块化多 ...

  2. ECCV 2018 | 旷视科技提出GridFace:通过学习局部单应变换实现人脸校正

    全球计算机视觉三大顶会之一 ECCV 2018(European Conference on Computer Vision)即将于 9 月 8 -14 日在德国慕尼黑拉开帷幕,旷视科技有多篇论文被此 ...

  3. ECCV 2018 | 旷视科技提出统一感知解析网络UPerNet,优化场景理解

    全球计算机视觉三大顶会之一 ECCV 2018(European Conference on Computer Vision)即将于 9 月 8 -14 日在德国慕尼黑拉开帷幕.届时,旷视首席科学家孙 ...

  4. ajax处理跨域有几种方式

    一.什么是跨域 同源策略是由Netscape提出的著名安全策略,是浏览器最核心.基本的安全功能,它限制了一个源(origin)中加载文本或者脚本与来自其他源(origin)中资源的交互方式,所谓的同源 ...

  5. 设置google搜索打开链接时在新标签页显示

    百度的搜索结果,打开链接都会在新的页面打开,但是google却直接在本页面打开,有时候我们打开的不一定是自己想要结果,又习惯性的把当前页面给关掉了......这只是习惯问题,可能国人有这个习惯.怎么设 ...

  6. JQuery的Ajax跨域请求的解决方式

            今天在项目中须要做远程数据载入并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究 ...

  7. php跨域的几种方式

    PHP实现跨域的几种形式 1.JSONP(JSON with padding)原理 利用html里面script标签可以加载其他域下的js这一特性,使用script src的形式来获取其他域下的数据, ...

  8. 【转载】2018 hosts 持续更新访问 gu歌【更新于:2018-05-03】

      修改HOSTS实现免费,简单访问谷歌的目的   也是比较稳定的方法.修改hosts.修改hosts的方法,原理在于直接存储谷歌网站的IP地址.这样就不用DNS来解析网址了.也就是说,当我们输入谷歌 ...

  9. HHL论文及代码理解(Generalizing A Person Retrieval Model Hetero- and Homogeneously ECCV 2018)

    行人再识别Re-ID面临两个特殊的问题: 1)源数据集和目标数据集类别完全不同 2)相机造成的图片差异 因为一般来说传统的域适应问题源域和目标域的类别是相同的,相机之间的不匹配也是造成行人再识别数据集 ...

随机推荐

  1. 将本地项目上传至github

    1.新建仓库:用于存放要上传的项目(尽量不要添加README). 2.找到要上传的文件夹A,右键点击git bash here,打开git界面 3.在命令行中,输入“git init”,使文件夹A加入 ...

  2. 《老梁四大名著情商课》笔记-学学TA,你就是聚会的万人迷

    <老梁四大名著情商课>笔记-学学TA,你就是聚会的万人迷 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 现在社会学家有一个统计,说中国处在单身状态大概有2个亿.这些人中 ...

  3. Memcached入门学习

    Memcached入门学习 学习网址:http://www.runoob.com/Memcached/Memcached-tutorial.html

  4. oldboy s21day02

    1.猜数字,设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了:如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确,然后退出循环.while 1: num ...

  5. 学院派福利——C#+SQL Server图书管理系统

    这是sql server的第七.八次上机内容,抽了几天时间给做了 在原有的booksDB库中加了一个Admin表:UserName:root,PassWord:123456. 环境:Visual St ...

  6. Java面试经典题目合集

    32 1.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? “static”关键字表明一个成员变量或者是成员方法与类相关,可以在 ...

  7. Android资源重命名

    Android资源比如图片重命名后,Resource里看到的还是之前的名字,可以关掉AndroidStudio,从新打开就正常了

  8. 本地测试使用Tomcat,生产环境使用GlassFish。

    总结:Tomcat8 = javaee7规范(servlet3.1 + jsp2.3 + el3.0 + websocket1.0) + java7 [配置初始化参数使用jdk8编译]conf/web ...

  9. Windows Docker Toolbox 安装Redis等开发环境

    Redis作者不接受微软的补丁 Redis文档(https://redis.io/topics/quickstart) redis-server 是 Redis Server 本身 redis-sen ...

  10. 20155324 《Java程序设计》实验五 网络编程与安全

    20155324 <Java程序设计>实验五 网络编程与安全 实验内容 任务一 编写MyBC.java实现中缀表达式转后缀表达式的功能 编写MyDC.java实现从上面功能中获取的表达式中 ...