前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【CVPR 2020】一种新的门控通道注意力转换单元

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

作者头像
深度学习技术前沿公众号博主
发布2020-09-10 11:26:56
1.6K0
发布2020-09-10 11:26:56
举报

【导读】今天给大家推荐一篇百度联合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作用,描述如下:

\hat{x} = F(x|\alpha,0,0) = 1x=x

GCT的这种能力有助于改善深度网络的鲁棒性,ResNet同样受益于该思路。因此,作者提出初始化为0,这种初始化方式使得模型训练更为稳定。

4. Learning

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

代码语言:javascript
复制
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应用于循环神经网络的可行性。

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习技术前沿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Global Context Embedding
  • 2. Channel Normalization
  • 3. Gating Adaptation
  • 4. Learning
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档