模块设计之 SKNet, GCNet, GloRe, Octave

2019 年 5 月 20 日 极市平台

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流点击文末“阅读原文”立刻申请入群~


本文转自微信公众号SIGAI


由于最近要做新的网络模块设计与优化,所以看了4篇相关的较新较火的文章,总结下以方便对比:

1.Selective Kernel Unit, SKNet [1],对多个不同感受野大小的branch进行融合,融合中使用的是类SENet [5]结构,最后使用类似门机制的softmax attention来分配branch的重要性。


2.Global Context (GC) block, GCNet [2], 将 Non-local Block [6]进行简化(position间共享context feature,channel间不共享)来高效提取global context,并融合SENet来进行轻量地channel context计算。


3.Global Reasoning Unit, GloRe [3], 对特征从坐标空间映射到交互空间,使用图卷积网络GCN进一步推理来获取global context,最后反映射回坐标空间,可看成是 Non-local Block的优化版本。


4. Octave Convolution [4], 将特征分解成低空间分辨率和原始空间分辨率的branch,并进行intra & inter branch间的信息交互;通过分解成低空间分辨率,可使卷积操作更加轻量级。


联系与比较

1.其中 SKNet, GCNet 中都能找到 SENet 的身影;而 GCNet, GIoRe 中又都能找到 Non-local 的身影;而 SKNet 和 Octave Convolution 中又都是基于 dual branch 来进行信息交互融合的。


2.SKNet, GCNet, GIoRe 都是需要额外增加参数和运算量的功能模块,尽管它们都相对轻量;而 Octave Convolution 的目的是致力于在提高性能同时,压缩网络参数及减少运算量。


一、Selective Kernel Networks (SKNet) [1],CVPR2019


本文的motivation是发现过去的卷积网络在每层都share相同的感受野大小,而在神经科学中,视觉皮层单元中的感受野大小应该是受stimulus变化而自适应调整,故SK unit 就是实现这个功能。


算法核心

我们来直接看看核心的 SK Convolution做了什么:

SK Convolution


1.Split 即进行不同感受野卷积操作,上面的branch为3x3 kernel, dilate size=1的,而下面的为3x3 的dilate size=2的卷积。


2. Fuse 即进行特征融合,对两个branch卷积后的特征进行叠加,然后标准SE过程(Global AVG, FC-BN-ReLU,FC),这里最后的FC是分别出来两个branch的channel weight vector


3. Select 即对Fuse最后的两个branch的channel weight vector进行每个位置各自的Softmax操作,类似门机制,可得到两个branch中每个channel各自的权值,乘回原始特征中,最后进行特征叠加。


实验结果

具体的Ablation Study感兴趣的看原文,这里贴下在ImageNet上的结果,在等同量级的参数和运算量下,SKNet50 和 SKNet101 能超过state-of-the-art,特别是在比DPN-98轻量一大截的情况下,性能还能比它好。


ImageNet上SKNet性能


最后我们来看看文中比较有价值的可视化分析:

SK units在验证集1000类上的平均注意力权值差异


蓝色曲线是表示原始图像,而橙色曲线是代表把原始图像中心物体放大1.5倍再作为输入;若橙色线值比蓝色值大,则表示赋予 5x5 大kernel的attention权值变大。从上图可见,对于Low-level 和 mid-level 的SK2_3 和 SK_3_4,当输入物体变大,自适应调整,对应的 5x5 kernel权值也更大;而对于 high-level SK_5_4,则没有赋予5x5更大权值,因为本身已经具有足够大的感受野了。


二、GCNet [2]


本文致力于设计轻量且高效的模块来对global context建模,个人看完文章后感觉主要贡献是下面两点:


1.通过可视化Non-local中不同position的attention map来发现其almost一样,故而设计了position-independent 的简化版non-local网络(SNL)


Non-local block里特征图可视化


2.通过几个Ablation实验说明(下图是其中一个在ImageNet测的),non-local based pooling 方式性能与 vanilla average pooling 基本差不多(稍好一点),而对于GCNet 或者SENet来说,前者比后者性能有显著提高的操作源于 how global context is aggregated to query positions:SENet中是 sigmoid 然后 boardcast 相乘;而GCNet 中是直接 boardcast 相加。



文中Block设计如下

从上图可见,一、(b) SNL中的 Context modeling 采用的是 position-share but channel-independent的 global attention pooling,故输出tensor维度为 Cx1x1 (而老版本Non-local这里输出的是 CxHxW)。二、 (d)GC block就是在 (b)SNL 中嵌入了 SE block(FC-LN-ReLU-FC),来减少参数同时增强channel间的信息交互。


实验结果

文中的实验结果非常充分,做了四个vision task:图像分类,目标检测,实例分割,动作识别;但是实验结果有点太不惊喜了,基本都提高不多,感觉像是靠调参做工程试出来的block。下面列个在Kinetics上的结果,基本跟老版Non-local 相比,性能提升有限。


三、Graph-Based Global Reasoning Networks (GloRe) [3],CVPR2019


此文的目标其实跟Non-local一样,希望能得到全局的上下文信息,即reasoning globally。该文的story说得非常动听,每一步实现起来很简单,但看起来挺爽的,开头的图1比较炫酷:



从上图可以看出文章的主要做的事情,就是希望推理不同区域间的上下文关系;而在Coordinate Space去做比较难处理且低效,就映射到Interaction space,然后通过图卷积网络来进行reasoning,刚好这也是图网络所擅长的。


核心算法

GloRe Unit


如上图所示,GloRe Unit主要做了几件事情:


1.空间映射(中间黄色区域的 左边是从坐标空间映射到交互空间;而 右边是从交互空间映射回坐标空间):空间映射目的是找到子空间可以 more friendly for global reasoning over disjoint and distant regions,但又不想像 I3D-GCN[7] 一样用额外的 detector 或者 label 来框出区域, 故采取类似 non-local 中的做法,直接来 weighted global pooling:假定输入 X的维度为[C,H,W],则最后子空间上的 node states V 可表示为



这里的 N 是超参,即交互空间中节点的个数(好像后面可视化环节设 N=128 ),而C '为reduced channel number。


2.图卷积推理:这里假定Nodes间都有交互,就形成了fully connected graph,然后需要学习的是affine matrix Ag和图网络参数Wg,上图中间黄色区域典型的图卷积公式如下:



而文中把它巧妙地分解成两个步骤,则先进行节点间的message information propagation,然后再更新节点内部的states,如下图所示,分别使用两个1D卷积来实现。


实验结果

文中在图像分类,语义分割和动作识别三个视觉任务里进行实验,对于GCN的个数,使用1个时比不使用性能有大幅度提升;而当stack 2 or 3个GCN时,效果提升极小。贴个在Kinetics上的结果:


Kinetics val 实验结果


四、Octave Convolution [4]



文中的初衷和story出发点是挺好的,就是借图像中高频(细节,非结构性)和低频(边缘形状,结构性)信息一说,来构造卷积来分解成低频和高频信息,其中低频用更低的空间分辨率来表示,达到去除空间冗余的目的,从而节省模型参数及计算量。但是文章从头到尾都没证明自己学到的就是这个,能否找个适当的方式可视化一下呀。


Octave卷积


Detailed design of the Octave Convolution


文中扯了一堆无聊的公式,和如何如何下采样,如何Pooling,意思不大,直接看上面的模块设计图就行了。上面橙色branch表示High frequency,下面蓝色branch表示Low frequency;绿色箭头表示 intra-branch information update,红色箭头表示 inter-branch information exchange。看到这里,恐怕有点 SKNet 的小感觉了。


这里的超参α就是文中的卖点了,tradeoff 了参数&计算量和性能:


实验结果

首先来看看在ImageNet下的效率与性能,可以发现当α越来越大时,需要的FLOPs变小,但性能降得厉害,比较好的 tradeoff 是α=0.125

Ablation study results on ImageNet


最后来看看在动作识别Kinetics上的结果,还是挺惊喜的,α=0.1和α=0.2都能在提高效率的前提下,提高性能:



总结与展望


这篇文章后,可能其中的一些block会被继续改善(性能 or 效率),更多的应该会是把block迁移到一些视觉任务里,或者NAS里;更多未来工作应该是基于Bio-inspired的,然后也应该把探索过程及实验结果尽量可视化出来,来匹配验证。


Reference:

[1] Xiang Li et al., Selective Kernel Networks, CVPR2019

[2] Yue Cao et al., GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond

[3] Yunpeng Chen et al. ,Graph-Based Global Reasoning Networks, CVPR2019

[4] Yunpeng Chen et al. ,Drop an Octave: Reducing Spatial Redundancy in

Convolutional Neural Networks with Octave Convolution

[5] Jie Hu et al. ,Squeeze-and-Excitation Networks, CVPR2018

[6] Xiaolong Wang et al. ,Non-local Neural Networks, CVPR2018

[7] Xiaolong Wang ,Videos as Space-Time Region Graphs, ECCV2018





*延伸阅读



点击左下角阅读原文”,即可申请加入极市目标跟踪、目标检测、工业检测、人脸方向、视觉竞赛等技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~



觉得有用麻烦给个好看啦~  

登录查看更多
16

相关内容

【KDD2020】自适应多通道图卷积神经网络
专知会员服务
119+阅读 · 2020年7月9日
【SIGIR2020】LightGCN: 简化和增强图卷积网络推荐
专知会员服务
72+阅读 · 2020年6月1日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
图卷积神经网络蒸馏知识,Distillating Knowledge from GCN
专知会员服务
94+阅读 · 2020年3月25日
轻量attention模块:Spatial Group-wise Enhance
极市平台
15+阅读 · 2019年7月3日
GCNet:当Non-local遇见SENet
极市平台
11+阅读 · 2019年5月9日
重磅!MobileNetV3 来了!
极市平台
18+阅读 · 2019年5月8日
后ResNet时代:SENet与SKNet
PaperWeekly
23+阅读 · 2019年3月25日
CVPR2018 | Decoupled Networks
极市平台
4+阅读 · 2019年3月22日
不用重新训练,直接将现有模型转换为 MobileNet
极市平台
6+阅读 · 2019年3月4日
视频理解 S3D,I3D-GCN,SlowFastNet, LFB
极市平台
7+阅读 · 2019年1月31日
自注意力机制在计算机视觉中的应用
GAN生成式对抗网络
18+阅读 · 2018年12月20日
DeepLab V3
计算机视觉战队
9+阅读 · 2018年4月2日
Graph Analysis and Graph Pooling in the Spatial Domain
Self-Attention Graph Pooling
Arxiv
13+阅读 · 2019年6月13日
Arxiv
4+阅读 · 2019年2月8日
Panoptic Feature Pyramid Networks
Arxiv
3+阅读 · 2019年1月8日
Arxiv
8+阅读 · 2018年1月25日
VIP会员
相关资讯
轻量attention模块:Spatial Group-wise Enhance
极市平台
15+阅读 · 2019年7月3日
GCNet:当Non-local遇见SENet
极市平台
11+阅读 · 2019年5月9日
重磅!MobileNetV3 来了!
极市平台
18+阅读 · 2019年5月8日
后ResNet时代:SENet与SKNet
PaperWeekly
23+阅读 · 2019年3月25日
CVPR2018 | Decoupled Networks
极市平台
4+阅读 · 2019年3月22日
不用重新训练,直接将现有模型转换为 MobileNet
极市平台
6+阅读 · 2019年3月4日
视频理解 S3D,I3D-GCN,SlowFastNet, LFB
极市平台
7+阅读 · 2019年1月31日
自注意力机制在计算机视觉中的应用
GAN生成式对抗网络
18+阅读 · 2018年12月20日
DeepLab V3
计算机视觉战队
9+阅读 · 2018年4月2日
相关论文
Graph Analysis and Graph Pooling in the Spatial Domain
Self-Attention Graph Pooling
Arxiv
13+阅读 · 2019年6月13日
Arxiv
4+阅读 · 2019年2月8日
Panoptic Feature Pyramid Networks
Arxiv
3+阅读 · 2019年1月8日
Arxiv
8+阅读 · 2018年1月25日
Top
微信扫码咨询专知VIP会员