zoukankan      html  css  js  c++  java
  • 【CVPR2020】Gated Channel Transformation for Visual Recognition

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

    这是一个百度和悉尼科技大学合作的工作,作者指出,SENet modulate feature maps on the channel-wise level. 但是,SE 模块使用了个全连接层(FC层)处理 channel-wise embeddings,这样会产生两个问题:

    • 在CNN中应用SE模块时,模块数量有限制。SE主要在模块上应用(Res-Block或者Inception-Block),FC层无法在网络的所有层上应用。
    • 由于FC层参数复杂,难以分析网络不同层间通道的关联性。

    为了解决上述两个问题,作者提出了 Gated Channel Transformation (GCT)模块,主要有如下设计:

    • 使用一个 归一化模块 替换FC,对通道间的特征关系建模
    • 设计了一系列参数,应用 gating mechanism(门控机制) 对通道间的特征关系建模

    通过归一化模块和门控机制,GCT模块可以捕获通道特征间的 “竞争” 和 “合作”。如下图所示,GCT模块可以促进 shallow layer 特征间的合作,同时,促进 deep layer 特征间的竞争。这样,浅层特征可以更好的获取通用的属性,深层特征可以更好的获取与任务相关的 discriminative 特征。

    GCT模块包括三个部分:global context embedding, channel normalization, gating adaptation,如下图所示:

    第一部分:Global context embedding

    与SE模块不同,GCT模块没有采用全局池化 (GAP) 的方式,因为在某些情况下GAP会失效。比如在某些应用中会使用 instance normalization,会固定各个通道的均值,这样得到的结果向量就会变成常量。因此,作者使用L2 norm 进行global context embeding:

    这里引入了(alpha),是一组可训练的参数。

    第二部分:Channel Normalization

    在这部分仍然使用L2 norm,如下所示:

    (sqrt{C})用来避免当(C)比较大时,(hat{s}_c)的值过小。与 SE 的 FC层相比,该通道归一化方法计算量更小。

    第三部分:Gating adaptation

    作者提出了门控机制来 adapte the original feature。使用门控机制,GCT可以在训练过程中促进特征间的竞争与合作:

    作者指出,这里设计了权重(gamma) 和 偏置 (eta) 来控制通道特征是否激活。当一个通道的特征权重 (gamma_c)被正激活,GCT将促进这个通道的特征和其它通道的特征“竞争”。当一个通道的特征 (gamma_c) 被负激活,GCT将促进这个通道的特征和其它通道的特征“合作”。

    作者在论文中还提供了GCT模块的 pytorch 实现代码:

    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
    

    论文有趣的地方是作者做了一个实验,来分析在RestNet50中,(gamma)的变化。可以看出,作者得出一个结论,在网络的浅层,(gamma)的值比较小,普遍在0以下,说明特征间中合作关系;在网络的深层,(gamma)的值就在增大,增长到0以上,说明特征间是竞争关系,有助于分类。

    其它部分的内容不过多介绍了,具体可以参考作者论文。

  • 相关阅读:
    vue-cli3和element做一个简单的登陆页面
    用vue和layui简单写一个响应式数据展示表
    js中的AJAX
    js个人笔记简记
    解决sublime快捷键回车换行问题
    Sublime设置格式化代码快捷键ctrl+shift+r
    2020前端最新面试知识点汇总
    cookie,sessionstorage,localstorage区别
    linux/centos7安装mysql
    linux基本命令的操作
  • 原文地址:https://www.cnblogs.com/gaopursuit/p/13394627.html
Copyright © 2011-2022 走看看