论文简要:
本文提出了一种高效的通道注意力模块(ECA),通过避免降维和适当的跨通道交互,实现了在深度卷积神经网络中学习有效的通道注意力,从而在几乎不增加模型复杂度的情况下显著提高性能。
本文方法:
本文对 SENet 中的 Excitation 操作提出了质疑,作者认为尽管这种迂回策略,减少了一定的参数,但是它破坏了通道与注意力权重之间的直接对应关系。
在SENet 中,激励(Excitation)操作通过两个全连接层来学习通道之间的关系,并生成一个通道权重向量,这个通道权重向量表示了每个通道的重要性。
在这个过程中,全局描述向量经过一层全连接层降维到一个较小的维度(),而且这里涉及到了一个超参数 r,它会直接 SE 模块影响参数的数量。然后,还需要再经过一层全连接层,将其升维回原始维度。
为了分析上述问题,作者设置了3个SENet的变体:SE-Var1、SE-Var2、SE-Var3。
- SE-Var1: 没有参数,但是性能优于Besiline,证明了通道注意力机制的确有效。
- SE-Var2: 个参数,但是性能优于SE,证明了通道与权重的直接连接很重要。
- SE-Var3: 个参数,性能仍然优于SE,证明了单全连接层的跨通道交互比维度削减效果好。
- 在 SE-Var2 方法中,采用了等价于对角矩阵进行卷积的形式,参数量得到了大幅减少,但是失去了跨通道的信息交互;
- 在 SE-Var3 方法中,采用了等价于全矩阵进行卷积的形式,进行了跨通道的信息交互,但参数量大大增加。
为了减少参数量,作者考虑了分组卷积的方法,但仍然缺少跨通道的信息交互。因此,作者选择了滑动窗口的卷积形式,这样通道之间就有了局部跨通道的信息交互,而且也节省了参数的数量。而这种滑动窗口的卷积形式,我们也可以理解为下图中一维卷积的卷积形式:
最后,需要考虑卷积核(滑动窗口)的大小 应该如何取值。随着网络加深,通道数 的数量以2的次幂形式增加,如果令局部跨通道卷积核设为某个定值,并不是一个合理的设计方案,应该使其能够自适应地调整调整卷积核的大小, 和 之间应该存在某种对应关系,即:
先考虑最简单的映射是线性函数,即 。然而,由线性函数所描述的关系过于有限。同时,随着网络加深,通道数 的数量以2的次幂形式增加。因此,可以考虑通过将线性函数 扩展为非线性函数,即
因此,对于给定的通道维度 ,可以通过自适应确定调整卷积核的大小 ,即
其中, 表示最接近 t 的奇数。 和 b 的值设置为 2 和 1,并在所有实验中保持不变。显然,通过映射函数 ,高维通道具有更长的范围交互,而低维通道则经历较短的范围交互。