![35b9c08ddce3a61866a5ff5b59a56304.png](https://i-blog.csdnimg.cn/blog_migrate/116a9de1a08e46533883be41407e3b74.jpeg)
关注微信公众号“AI算法修炼营”,选择加星标或“置顶”
干货文章同步更新。
前面的话
前面的文章中,我们关注了Non-local网络模块和视觉注意力机制在分类网络中的应用——SENet、SKNet、CBAM等。他们构成了视觉注意力机制中的基本模块,本节中,我们将主要介绍融合Non-local模块和SENet模块的全局上下文建模网络(Global Context Network,简称 GCNet),以及Non-local模块与CBAM模块融合变形在语义分割中的应用——双重注意力网络DANet。
前面的文章有详细讨论Non-local模块,Non-local Network(NLNet)使用自注意力机制来建模远程依赖。对于每个查询点(query position),NLNet 首先计算查询点与所有点之间的成对关系以得到注意力图,然后通过加权和的方式聚合所有点的特征,从而得到与此查询点相关的全局特征,最终再分别将全局特征加到每个查询点的特征中,完成远程依赖的建模过程。但是,NLNet存在着计算量大的问题。
SENet模块中提出的SE block是使用全局上下文对不同通道进行权值重标定,对通道依赖进行调整。但是采用这种方法,并没有充分利用全局上下文信息。
CBAM将注意力过程分为两个独立的部分,通道注意力模块(look what)和空间注意力模块(look where)。不仅可以节约参数和计算力,而且保证了其可以作为即插即用的模块集成到现有的网络架构中去。但是CBAM需要手工设计pooling,多层感知器等复杂操作。
下面,将主要介绍GCNet和DANet。
1 Global Context Network(GCNet)
论文地址:
GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyondarxiv.org代码地址:
https://github.com/xvjiarui/GCNetgithub.com为了捕获长距离依赖关系,产生了两类方法:
- 采用自注意力机制来建模query对的关系。
- 对query-independent(可以理解为无query依赖)的全局上下文建模。
NLNet就是采用自注意力机制来建模像素对关系。然而NLNet对于每一个位置学习不受位置依赖的attention map,造成了大量的计算浪费。
SENet用全局上下文对不同通道进行权值重标定,来调整通道依赖。然而,采用权值重标定的特征融合,不能充分利用全局上下文。
GCNet作者对NLNet进行试验,选择COCO数据集中的6幅图,对于不同的查询点(query point)分别对Attentio