的点击上方,选择星标置顶,不定期资源大放送

阅读大概需要15分钟

Follow小博主,每天更新前沿干货

【导读】今天给大家推荐一篇百度联合Syndney在CVPR2020上发表的关于Attention机制的文章。它提出了一种通用且轻量型的转换单元,GCT 结合了归一化方法和注意力机制,并使用轻量级的、易于分析的变量来隐式地学习网络通道间的相互关系。同时便于与网络本身参数联合训练。

  • 论文链接: https://arxiv.org/abs/1909.11519

  • 代码地址: https://github.com/z-x-yang/GCT

论文摘要与创新点

本文针对深度卷积神经网络提出了一种常规的、易应用的变换单元,即 Gated Channel Transformation (GCT) 模块。GCT 结合了归一化方法和注意力机制,并使用轻量级的、易于分析的变量来隐式地学习网络通道间的相互关系。这些通道量级的变量可以直接影响神经元间的竞争或者合作行为,且能方便地与卷积网络本身的权重参数一同参与训练。

在SENet 网络中,通道关系是通过完全连通的隐式建模学习,而且SENet是在block层面进行集成的。在这里,我们引入了一个通道归一化层来减少参数的数量和计算复杂度。这个轻量级层包含一个简单的ℓ2规范化,从而可以使变换单元直接作用于操作者而不增加额外的参数。本文在多个大型数据集上针对多种基础视觉任务进行了充分的实验,即分别有ImageNet 数据集上的图片分类,COCO 上的目标检测与实例分割,还有 Kinetics 上的视频分类。在这些视觉任务上,引入 GCT 模块均能带来明显的性能提升。这些大量的实验充分证明了GCT模块的有效性。GCT模块如下所示:

论文简介

在本文中,我们提出了一种门控通道转换(GCT),以有效和准确的进行上下文信息建模。首先,我们使用规范化组件(而不是FC)来建模通道关系。归一化方法,如局部响应归一化(LRN),这种方法可以在神经网络中不同的神经元(或通道)之间产生竞争。批量归一化及其变体可以平滑梯度,已广泛应用于CNN训练过程的加速。我们利用一个简单的ℓ2规范化来对通道进行建模,这种方法比FC层相对更稳定,也能提高计算效率。其次,我们精心设计了基于归一化组件的可训练GCT体系结构,并引入了一些通道参数来对特征通道的门控自适应行为进行控制。与FC中大量的参数相比,我们设计的参数要轻得多。此外,基于通道的门控权参数也比较便于通道关系分析,有助于理解GCT模块在整个CNN网络中的作用。和SENet一样,我们的GCT也使用门控机制来适应通道关系。但在训练时,当Sigmoid值接近0或1时,SE的Sigmoid激活容易导致梯度消失。为了解决这个问题,我们通过使用1+tanh(x)门激活但在训练时,将残差连接也引入门控适配中,使GCT能够进行建模实体映射,使训练过程更加稳定。GCT结合规范化方法和门控机制,可以建立通道之间的竞争or合作的关系,如图1所示。根据我们后面的可视化分析(详见论文4.4节),GCT更倾向于鼓励浅层次的合作,但竞争在更深层次得到增强。一般来说,浅层学习低级属性用来捕获一般特征,比如纹理。在更深的层次中,高级特征更具判别性而且与任务息息相关。我们的实验表明,GCT是一种简单有效的通道间关系建模体系结构。它显著提高了深度卷积网络在视觉识别任务和数据集上的泛化能力。

网络结构分析

作者提出一种门限通道变换(Gated Channel Transformation, GCT)单元用于通道、上下文信息的的更有效建模。GCT通过规范化方法构建通道间的竞争or协同关系,不过,该规范化是无参数操作。为使得GCT具有可学习性,作者设计了一种全局上下文嵌入操作(它在对通道进行规范化之前嵌入上下文信息与可控参数)与门限自适应操作(它将基于规范化输出调整通道特征)。GCT中的训练参数量是轻量级的,这使得GCT便于部署而不会占用过多参数空间。而且GCT的门限参数简单直观有助于可视化解释GCT的行为价值:竞争or协同。总而言之,作者设计了一种轻量型、可解释且有效的GCT单元,它有助于进行通道间关系的建模。具体结构如下图所示:

假设















表示CNN中的激活特征,GCT对其执行如下变换:

其中,








表示可训练参数,




有助于嵌入输出的自适应性,






用于控制激活门限,它们决定了GCT在每个通道的行为表现。GCT的参数量复杂度为







,而SE模块的参数复杂度为










上图2给出了GCT的流程示意图,它由三部分构成,故下面将分三块分别进行介绍。

1. Global Context Embedding

正如SE一文中所提到的:大感受野有助于避免局部混淆。因此,作者首先设计了一种全局上线嵌入模块用于每个通道的全局上下文信息汇聚。给定嵌入参数


















,该模块定义如下:

其中,




为极小常识用于避免倒数为0。不同SE,GCT并未使用全局均值池化进行通道上下文信息汇聚。作者认为GAP在某些极限情况下会失效,比如SE位于Instance Normalization之后时GAP的输出将是常数,因为IN会固化通道特征的均值。为避免上述问题,作者提出采用了







范数进行替代,GCT对不同







具有较好的鲁棒性,最佳者是







,故选其作为默认选项。需要注意的是:当GCT的输入均为正时,







范数形式等价于GAP。

此外,我们提出采用可训练参数







用于控制不同通道的重要性。特别的,当







近似于0时,通道c将不会被纳入到通道规范化中。也就是说







使得GCT能学习极限情形:单通道起作用。

2. Channel Normalization

规范化可以通过少量计算资源构建神经元间的竞争关系,类似于LRN,作者采用







进行跨通道特征规范化,即通道规范化,此时定义如下:

其中,




作用同前。尺度因子









用于规范化












的尺度以避免尺度过小。相比SE,所提GCT具有更少的计算量







 vs 










3. Gating Adaptation

作者在前述基础上添加了门限机制,通过引入门线机制,GCT可以有助于促进神经元的竞争or协同关系。定义如下:

由于通道规范化是无参数操作,作者设计了一组可训练参数






用于控制通道门线。不同于LRN仅促进通道竞争,GCT可以同时促进通道竞争与协同关系。当通道的门限权值为正时,GCT取得了类似LRN的通道竞争关系;当通道的门限权值为负时,GCT取得了通道协同作用。

除此之外,该门限函数还具有Identity作用,描述如下:



























GCT的这种能力有助于改善深度网络的鲁棒性,ResNet同样受益于该思路。因此,作者提出






初始化为0,这种初始化方式使得模型训练更为稳定。

4. Learning

类似于BatchNorm,作者提出对深度网络中的所有卷积层都添加GCT。通过尝试,作者发现:将GCT置于Conv之前效果更佳。下面给出了Pytorch版的GCT实现:

def forward(self, x, epsilon=1e-5):
# x: input features with shape [N,C,H,W]
# alpha, gamma, beta: embedding weight, gating
weight, gating bias with shape [1,C,1,1]
embedding = (x.pow(2).sum((2,3), keepdim=True) + epsilon).pow(0.5) * self.alpha
norm = self.gamma / (embedding.pow(2).mean(dim=1,keepdim=True) + epsilon).pow(0.5)
gate = 1. + torch.tanh(embedding * norm + self.beta)
return x * gate

在训练过程中,作者将




初始化为1,






初始化为0,此时GCT等价于Identity操作。此外,为避免GCT门限在初始训练阶段可能导致的不稳定问题,作者提出采用warmup策略设置学习率,而且不对参数




添加权值衰减(权值衰减会降低GCT的性能)。

实验结果

我们将GCT应用于深度网络中的所有卷积层,而不是SE-Net中的block。在所有对应的GCT中,我们在每个卷积层之前使用一个GCT层。下面是在ImageNet上的训练效果图

与SEBlock的比较:

接下来,我们评估GCT在COCO数据集上的泛化性效果。我们在COCO train2017数据集上训练模型,并在COCO eval2017数据集上进行评估。minival)。

Conclusion

本文提出了一种新型GCT层,它利用信道间的关系来有效提高深层次CNN的识别能力,又得益于归一化和门控机制的高效结合,GCT可以促进神经元间的竞争与合作关系,其参数复杂程度几乎可以忽略。我们进行了大量的实验来证明GCT在现有CNN网络和数据集上的高效性和鲁棒性。除了CNN,循环递归网络(如LSTM)也是深度神经网络领域的一个热门分支。在未来的工作中,我们会研究将GCT应用于循环神经网络的可行性。

论文更多细节信息请参考原文!

重磅!DLer-计算机视觉交流2群已成立!

大家好,这是DLer-计算机视觉微信交流2群!首先非常感谢大家的支持和鼓励,我们的计算机视觉交流群正在不断扩大人员规模!希望以后能提供更多的资源福利给到大家!欢迎各位Cver加入DLer-计算机视觉微信交流大家庭 。

本群旨在学习交流图像分类、目标检测、目标跟踪、点云与语义分割、GAN、超分辨率、人脸检测与识别、动作行为与时空运动、模型压缩和量化剪枝、迁移学习、人体姿态估计等内容。希望能给大家提供一个更精准的研讨交流平台!!!

进群请备注:研究方向+学校/公司+昵称(如图像分类+上交+小明)

???? 长按识别添加,即可进群!

【CVPR 2020】一种新的门控通道注意力转换单元相关推荐

  1. 23个CVPR 2020收录的新数据集,都在这里了!

    编辑:Amusi Date:2020-06-20 来源:CVer微信公众号 链接:23个CVPR 2020收录的新数据集,都在这里了! 前言 Amusi 之前整理了1467篇CVPR 2020所有论文 ...

  2. CVPR 2020 Oral | 妙笔生花新境界,语义级别多模态图像生成

    GAN已经成为图像生成的有力工具,现今GAN已经不再局限于生成以假乱真的图,而是向着更加灵活可操控的方向发展. 今天向大家介绍的CVPR 2020 的文章出自华中科技大学白翔老师组,特别要提醒,文中有 ...

  3. CVPR 2020 | 旷视新方法优化解决遮挡行人重识别

    为了获得遮挡ReID更加鲁棒的对齐能力,本文提出了一种新的框架,来学习具有判别力特征和人体拓扑信息的高阶关系. 论文名称:High-Order Information Matters: Learnin ...

  4. Xilinx的智能门控时钟技术你了解吗?

    文章目录 写在前面 摘要 智能时钟门控 额外优化 设计实现流程中的智能时钟门控 基准测试结果 总结 写在前面 在FPGA和ASIC设计中,时钟信号通常都是翻转频率非常高的信号,而电路的翻转本质是电容的 ...

  5. CVPR 2020 开幕!最佳论文奖等揭晓!

      新智元报道   来源:CVPR 2020 编辑:新智元编辑部 [新智元导读]美国西雅图时间6月16日上午8:30(北京时间晚11:30),大家期待已久的计算机视觉和模式识别领域的「奥斯卡」CVPR ...

  6. CVPR 2020 论文大盘点-行人检测与重识别篇

    本文盘点CVPR 2020 所有行人检测(Pedestrian Detection)与人员重识别(Person Re-Identification,ReID)相关论文,在视频监控领域该方向技术应用广泛 ...

  7. BERT gated multi-window attention network for relation extraction 用于关系抽取的BERT门控多窗口注意力网络

    BERT gated multi-window attention network for relation extraction 用于关系抽取的BERT门控多窗口注意力网络 Abstract 实体关 ...

  8. (pytorch-深度学习)门控循环单元(GRU)

    门控循环单元(GRU) 循环神经网络中的梯度计算 当时间步数较大或者时间步较小时,循环神经网络的梯度较容易出现衰减或爆炸. 虽然裁剪梯度可以应对梯度爆炸,但无法解决梯度衰减的问题. 通常由于这个原因, ...

  9. pytorch学习笔记(三十一):门控循环单元(GRU)

    文章目录 前言 1. 门控循环单元 1.1 重置门和更新门 1.2 候选隐藏状态 1.3 隐藏状态 2. 读取数据集 3. 从零开始实现 3.1 初始化模型参数 3.2 定义模型 3.3 训练模型并创 ...

最新文章

  1. 爬虫之常用数据解析方法
  2. python函数参数*args和**args
  3. 网站服务器蜘蛛日志怎么看,如何查看百度蜘蛛,google蜘蛛爬取记录?《网站日志分析篇》...
  4. 计算机网络.doc,计算机网络network.doc
  5. 哲学家就餐问题(如何避免死锁)(多线程版)
  6. KVM热迁移方式漫谈
  7. linux下启动管理,rEFInd启动管理器配置文件详解
  8. 2008r2 php mysql_Win2008R2IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程_MySQL
  9. 华南技术盛会:BingoDay2017今在天河人才港盛大举行
  10. 【电赛最全备赛资源】电赛历年赛题源码+老学长挥泪经验之谈(文章较长全网最全)+电赛论文写作模板及评分标准【19电磁炮、17板球、15风力摆、13倒立摆、94-21全国大学生电子设计竞赛历年真题】
  11. bzoj4011落忆枫音
  12. 三相桥式全控整流电路simulink仿真_变频器为什么要整流?整流的原理是什么?...
  13. cad lisp 螺栓_如何用cad画螺丝
  14. ORACLE —— 事务
  15. 非线性混合效应 NLME模型对抗哮喘药物茶碱动力学研究
  16. 反汇编---汇编基础学习
  17. 从源码角度浅谈IRP
  18. 用于夜视和监控的图像增强方法
  19. postgresql源码学习(53)—— vacuum②-lazy vacuum之heap_vacuum_rel函数
  20. Java输出字符串出现次数最多的字母

热门文章

  1. iscsi模型相关点
  2. MFC按钮CXPButton类,代码阅读起来还是挺不错的
  3. 详解linux下auto工具制作Makefile源码包(制作篇)
  4. pip如何安装whl
  5. np.random.randint 与 np.random.rand区别 前者返回为参数指定的范围区间的一个整数后者返回的为一个概率
  6. python种r b u f作用
  7. 为什么pytorch mode = sequential() 为何model(input)这样调用就直接执行了forward
  8. %config InlineBackend.figure_format=svg#矢量图设置
  9. atom编辑器的安装
  10. mysql中的 explain 关键字学习笔记