GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond以及对Non-local机制的一些总结

giuhub: code

做的是attention,该attention比起以往的non-local来说很light-weight (主要是和SENet那样采用了scale的策略),而且照样很有效。

本文提出的attention叫**global context (GC) block—即全局的感受野。**因为轻量化,所以可以插在网络的任何位置,不像Non-local block那样用多了的话网络根本train不动。

作者补了Non-local的一些实验:
在这里插入图片描述
在这里插入图片描述
红色是query点,而heatmap则是该点attention到的区域,可以发现不同query点的attention区域都差不太多,改善这个就是作者的motivation。

首先介绍一下Non-local
non-local是一种self-attention机制。
在这里插入图片描述
为何要提出这种self-attention机制?
以下图为例:
在这里插入图片描述
对于分割或检测任务来说,很有必要让网络的感受野大到能覆盖所有物体。对于绿色圆来说:用一个3*3的卷积可能能覆盖它,但对于黑色五角可能就不行了,这是就需要更大kernel的卷积核或空洞卷积来覆盖它。但是,更大的卷积核会带来feature map尺寸的急速下降和计算量的暴增,计算量的问题还可以用大卷积核分解为多个小卷积核代替来解决,但feature map降得太小是不能接受的,尤其是在分割中。此外,大卷积核和空洞卷积都还有一个共同毛病,就是可能他们的感受野大,但却可能不够大,可能在遇到红色矩形时都会崩溃。所以就需要一种机制来将整张图像的信息记录下来,具有覆盖整张图像的感受野。

于是self-attention就产生了(不过最早的self-attention其实是在NLP领域产生的)。

对于一个HWC的特征图,要想获取self-attention的关系,只需要将其与自身转置后的结果相乘得到HWHW的矩阵即为一个协方差矩阵,矩阵对角上为自身像素的重要行,而i-j元素表示i像素对j像素的重要性,有了这个结果就能对HW平面上的所有像素进行加权了,即attention。基本上多数attention都是基于此的,如:
Non-local:
在这里插入图片描述
PAM
在这里插入图片描述
GCNet:
在这里插入图片描述
基本都基于下面的结构:
在这里插入图片描述
最经典的Non local可以画成:
在这里插入图片描述
然后有的说参数太多做成了:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
(SENet通过将通道数降低(/r)来降低运算时的参数)

有的观察到某些通道对识别圆有利,有的通道对矩形有利,…呈现group效应,而提出了CAM(仿照PAM对channel操作):
在这里插入图片描述
有的用池化代替矩阵乘法操作节省计算量(CBAM 论文代码):
在这里插入图片描述
在这里插入图片描述

各种各样的都有,参差不齐,可见:自注意力视频介绍

于是本文从SeNet(通道注意力)和Simplied Non Local各拉一半组成了又轻量化有效的GCNet:

在这里插入图片描述

实验:在这里插入图片描述

在这里插入图片描述
scale指的是SENet中的那个点乘的fusing操作。
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值