论文地址:链接
代码地址:链接

一、介绍

传统的通道注意力方法都代表着对于不同的通道信息构建不同的重要权重,例如SENet使用全连接层,ECANet基于局部一维的卷积来实现。为了限制计算量,权重函数一般不会选择太复杂,优于GAP的简单有效,可以将它看作是一个标准的选择。但是GAP又缺少获得输入信息的多样性的缺点,这就引出是否均值是一个通道注意力中合适的输出。

理论性分析:

  1. 不同通道最终可能获得的平均值是相同的,但他们的语义信息却相差很远。
  2. 从频率分析来看,使用GAP相当于放弃了特征通道上其余包含很多有用信息的高频分量。
  3. CBAM也显示了只是用GAP是不够的,采用了GAT和全局最大池化来增强特征多样性。

最终提出GAP的代替方法以及相应的频率选择标准,整合更多注意力处理过程的有用信息,利用这些不同频率的信息获得一个多光谱的表述。

二、 方法

首先回顾通道注意力和DCT频率分析的公式,基于此详细介绍该多光谱通道注意力框架的推导,同时提出一个选择频率的二阶段标准,最后讨论其有效性、复杂度和代码实现。

2.1 回顾通道注意力和DCT

通道注意力

假设 X ∈ R C × H × W X \in R^{C×H×W} XRC×H×W是图片的特征张量, C C C是通道, H H H W W W是特征图高宽。 a t t = sigmoid ⁡ ( f c ( gap ⁡ ( X ) ) ) (1) a t t=\operatorname{sigmoid}(f c(\operatorname{gap}(X))) \tag{1} att=sigmoid(fc(gap(X)))(1)
a t t ∈ R C att \in R^C attRC为注意力向量,gap代表全局平均池化,fc代表类似于全连接层之类的映射函数,sigmoid代表激活函数。获得全部C个通道的注意力向量后对每个通道的输入 X X X进行相应的缩放。
X ~ : , i , : : = a t t i X : , i , : : ,  s.t.  i ∈ { 0 , 1 , ⋯   , C − 1 } (2) \widetilde{X}_{:, i,::}=a t t_{i} X_{:, i,::}, \quad \text { s.t. } i \in\{0,1, \cdots, C-1\} \tag{2} X :,i,::=attiX:,i,::, s.t. i{ 0,1,,C1}(2)

X ~ \widetilde{X} X 代表注意力机制的输出, a t t i a t t_{i} atti代表注意力向量的第 i i i个元素, X : , i , : : X_{:, i,::} X:,i,::代表第 i i i个通道的输入。

离散余弦变换DCT
一维公式如下:
f k = ∑ i = 0 L − 1 x i cos ⁡ ( π k L ( i + 1 2 ) ) ,  s.t.  k ∈ { 0 , 1 , ⋯   , L − 1 } (3) f_{k}=\sum_{i=0}^{L-1} x_{i} \cos \left(\frac{\pi k}{L}\left(i+\frac{1}{2}\right)\right), \text { s.t. } k \in\{0,1, \cdots, L-1\} \tag{3} fk=i=0L1xicos(Lπk(i+21)), s.t. k{ 0,1,,L1}(3)
f k ∈ R L f_{k}\in R^L fkRL为DCT频率光谱, x ∈ R L x\in R^L xRL为输入, L L L为输入长度。

二维DCT公式如下:
f h , w 2 d = ∑ i = 0 H − 1 ∑ j = 0 W − 1 x i , j 2 d cos ⁡ ( π h H ( i + 1 2 ) ) cos ⁡ ( π w W ( j + 1 2 ) ) ⏟ DCT weights  ,  s.t.  h ∈ { 0 , 1 , ⋯   , H − 1 } , w ∈ { 0 , 1 , ⋯   , W − 1 } (4) \begin{aligned} &f_{h, w}^{2 d}=\sum_{i=0}^{H-1} \sum_{j=0}^{W-1} x_{i, j}^{2 d} \underbrace{\cos \left(\frac{\pi h}{H}\left(i+\frac{1}{2}\right)\right) \cos \left(\frac{\pi w}{W}\left(j+\frac{1}{2}\right)\right)}_{\text {DCT weights }},\\ &\text { s.t. } h \in\{0,1, \cdots, H-1\}, w \in\{0,1, \cdots, W-1\} \end{aligned} \tag{4} fh,w2d=i=0H1j=0W1xi,j2dDCT weights  cos(Hπh(i+21))cos(Wπw(j+21)), s.t. h{ 0,1,,H1},w{ 0,1,,W1}(4)
f 2 d ∈ R H × W f^{2d}\in R^{H×W} f2dRH×W为DCT获得的2D频率光谱, x 2 d ∈ R H × W x^{2d}\in R^{H×W} x2dRH×W为输入,H为其高度,W为其宽度。
相应的2D DCT的逆变换为:
x i , j 2 d = ∑ h = 0 H − 1 ∑ w = 0 W − 1 f h , w 2 d cos ⁡ ( π h H ( i + 1 2 ) ) cos ⁡ ( π w W ( j + 1 2 ) ) ⏟ DCT weights   s.t.  i ∈ { 0 , 1 , ⋯   , H − 1 } , j ∈ { 0 , 1 , ⋯   , W − 1 }  .  (5) \begin{aligned} &x_{i, j}^{2 d}=\sum_{h=0}^{H-1} \sum_{w=0}^{W-1} f_{h, w}^{2 d} \underbrace{\cos \left(\frac{\pi h}{H}\left(i+\frac{1}{2}\right)\right) \cos \left(\frac{\pi w}{W}\left(j+\frac{1}{2}\right)\right)}_{\text {DCT weights }}\\ &\text { s.t. } i \in\{0,1, \cdots, H-1\}, j \in\{0,1, \cdots, W-1\} \text { . } \end{aligned} \tag{5} xi,j2d=h=0H1w=0W1fh,w2dDCT weights  cos(Hπh(i+21))cos(Wπw(j+21)) s.t. i{ 0,1,,H1},j{ 0,1,,W1} . (5)
公式4,5去除了一些不影响本工作的标准化因子,可以将公式3公式4看作是一种对于输入的赋余弦权重后的求和,并作为权重。

2.2 多谱通道注意力

通道注意力理论分析

理论1 :GAP可以作为一种特殊的2D DCT,输出最低频的分量。

假设公式4中的 h , w h,w h,w为0,则存在:
f 0 , 0 2 d = ∑ i = 0 H − 1 ∑ j = 0 W − 1 x i , j 2 d cos ⁡ ( 0 H ( i + 1 2 ) ) cos ⁡ ( θ W ( j + 1 2 ) ) = ∑ i = 0 H − 1 ∑ j = 0 W − 1 x i , j 2 d = g a p ( x 2 d ) H W (6) \begin{aligned} f_{0,0}^{2 d} &=\sum_{i=0}^{H-1} \sum_{j=0}^{W-1} x_{i, j}^{2 d} \cos \left(\frac{0}{H}\left(i+\frac{1}{2}\right)\right) \cos \left(\frac{\theta}{W}\left(j+\frac{1}{2}\right)\right) \\ &=\sum_{i=0}^{H-1} \sum_{j=0}^{W-1} x_{i, j}^{2 d} \\ &=g a p\left(x^{2 d}\right) H W \end{aligned} \tag{6} f0,02d=i=0H1j=0W1xi,j2dcos(H0(i+21))cos(Wθ(j+21))=i=0H1j=0W1xi,j2d=gap(x2d)HW(6)
上式中 f 0 , 0 2 d f_{0,0}^{2 d} f0,02d代表2D DCT最低频分量,和GAP为正比,证明了理论1

如此,意味着我们可以整合其他频率分量加入通道注意力机制。下面讨论原因:
为了方便,使用 B B B代表2D DCT基函数:
B h , w i , j = cos ⁡ ( π h H ( i + 1 2 ) ) cos ⁡ ( π w W ( j + 1 2 ) ) (7) B_{h, w}^{i, j}=\cos \left(\frac{\pi h}{H}\left(i+\frac{1}{2}\right)\right) \cos \left(\frac{\pi w}{W}\left(j+\frac{1}{2}\right)\right) \tag{7} Bh,wi,j=cos(Hπh(i+21))cos(Wπw(j+21))(7)

然后公式5就可以改写为:

x i , j 2 d = ∑ h = 0 H − 1 ∑ w = 0 W − 1 f h , w 2 d cos ⁡ ( π h H ( i + 1 2 ) ) cos ⁡ ( π w W ( j + 1 2 ) ) =  Eq.  7 f 0 , 0 2 d B 0 , 0 i , j + f 0 , 1 2 d B 0 , 1 i , j + ⋯ + f H − 1 , W − 1 2 d B H − 1 , W − 1 i , j =  Eq.  6 g a p ( x 2 d ) H W B 0 , 0 i , j + f 0 , 1 2 d B 0 , 1 i , j + ⋯ + f H − 1 , W − 1 2 d B H − 1 , W − 1 i , j  s.t.  i ∈ { 0 , 1 , ⋯   , H − 1 } , j ∈ { 0 , 1 , ⋯   , W − 1 } . (8) \begin{array}{l} x_{i, j}^{2 d}=\sum_{h=0}^{H-1} \sum_{w=0}^{W-1} f_{h, w}^{2 d} \cos \left(\frac{\pi h}{H}\left(i+\frac{1}{2}\right)\right) \cos \left(\frac{\pi w}{W}\left(j+\frac{1}{2}\right)\right) \\ \stackrel{\text { Eq. } 7}{=} f_{0,0}^{2 d} B_{0,0}^{i, j}+f_{0,1}^{2 d} B_{0,1}^{i, j}+\cdots+f_{H-1, W-1}^{2 d} B_{H-1, W-1}^{i, j} \\ \stackrel{\text { Eq. } 6}{=} g a p\left(x^{2 d}\right) H W B_{0,0}^{i, j}+f_{0,1}^{2 d} B_{0,1}^{i, j}+\cdots+f_{H-1, W-1}^{2 d} B_{H-1, W-1}^{i, j} \\ \text { s.t. } i \in\{0,1, \cdots, H-1\}, j \in\{0,1, \cdots, W-1\} . \end{array} \tag{8} xi,j2d=h=0H1w=0W1fh,w2dcos(Hπh(i+21))cos(Wπw(j+21))= Eq. 7f0,02dB0,0i,j+f0,12dB0,1i,j++fH1,W12dBH1,W1i,j= Eq. 6gap(x2d)HWB0,0i,j+f0,12dB0,1i,j++fH1,W12dBH1,W1i,j s.t. i{ 0,1,,H1},j{ 0,1,,W1}.(8)
一张图片或特征可以被表示为不同频率的分量的组合,再根据公式1则有:

a t t = sigmoid ⁡ ( f c ( gap ⁡ ( X ) ) ) . (9) a t t=\operatorname{sigmoid}(f c(\operatorname{gap}(X))) . \tag{9} att=sigmoid(fc(gap(X))).(9)

这里求通道注意力向量仅仅基于GAP的结果,但是事实上,根据公式8,输入信息 X X X并不仅仅有GAP计算得出:
X = g a p ( X ) H W B 0 , 0 i , j ⏟ utilized  + f 0 , 1 2 d B 0 , 1 i , j + ⋯ + f H − 1 , W − 1 2 d B H − 1 , W − 1 i , j ⏟ discarded  . (10) X=\underbrace{g a p(X) H W B_{0,0}^{i, j}}_{\text {utilized }}+\underbrace{f_{0,1}^{2 d} B_{0,1}^{i, j}+\cdots+f_{H-1, W-1}^{2 d} B_{H-1, W-1}^{i, j}}_{\text {discarded }} . \tag{10} X=utilized  gap(X)HWB0,0i,j+discarded  f0,12dB0,1i,j++fH1,W12dBH1,W1i,j.(10)
H W B 0 , 0 i , j H W B_{0,0}^{i, j} HWB0,0i,j可以看做常量缩放因子,注意力机制中可以忽视。如此看来,只是用GAP的注意力机制事实上只是使用到了很小的一块信息。其余频率分量和信息直接被丢弃了。

多谱注意力模型

基于理论1,发现了GAP会丢失信息的问题,为此就想着将更多的频率分量引入,解决该问题。
首先,将输入 X X X沿着通道维度分离为 [ X 0 , X 1 , … , X n − 1 ] [X^0,X^1,\dots,X^{n-1}] [X0,X1,,Xn1],其中 X i ∈ R C ′ × H × W , i ∈ { 0 , 1 , … , n − 1 } , C ′ = C / n X^i \in R^{C^{'}×H×W},i\in \{0,1,\dots, n-1\},C^{'} = C/n XiRC×H×Wi{ 0,1,,n1},C=C/n整除。对于每个部分,使用相应的频率2D DCT进行处理,将其作为通道注意力的预处理操作。
F r e q i = 2 D D C T u , v ( X i ) , = ∑ h = 0 H − 1 ∑ w = 0 W − 1 X : , h , w i B h , w u , v  s.t.  i ∈ { 0 , 1 , ⋯   , n − 1 } (11) \begin{aligned} F r e q^{i} &=2 \mathrm{DDCT}^{u, v}\left(X^{i}\right), \\ &=\sum_{h=0}^{H-1} \sum_{w=0}^{W-1} X_{:, h, w}^{i} B_{h, w}^{u, v} \\ & \text { s.t. } i \in\{0,1, \cdots, n-1\} \end{aligned} \tag{11} Freqi=2DDCTu,v(Xi),=h=0H1w=0W1X:,h,wiBh,wu,v s.t. i{ 0,1,,n1}(11)
[ u , v ] [u,v] [u,v] X i X^i Xi相应的二维指标。 F r e q i ∈ R C ′ F r e q^{i} \in R^{C{'}} FreqiRC为输出后的结果。最终通过concat获得最终的向量: F r e q = cat ⁡ ( [ F r e q 0 , F r e q 1 , ⋯   , F r e q n − 1 ] ) (12) F r e q=\operatorname{cat}\left(\left[F r e q^{0}, F r e q^{1}, \cdots, F r e q^{n-1}\right]\right)\tag{12} Freq=cat([Freq0,Freq1,,Freqn1])(12)

F r e q ∈ R C Freq \in R^C FreqRC就是获得的多光谱向量。
然后通道注意力框架就可以写为: m s − a t t = sigmoid ⁡ ( f c ( F r e q ) ) (13) m s_{-} a t t=\operatorname{sigmoid}(f c(F r e q))\tag{13} msatt=sigmoid(fc(Freq))(13)

该方法拓展了原有的只是用GAP的方法,增加了其他频率的信息,总体说明如下图:

选择频率分量标准

对于每个部分 X i X^i Xi如何选择 [ u , v ] [u,v] [u,v]是一个重要问题,作者提出了一个二阶段标准来选择频率分量。

主要想法是首先决定每个频率分量的重要性,然后再决定使用不同数量的频率分量一起使用的效果。即首先独立测试通道注意力中每个频率分量的结果。然后基于结果选择前 k k k个最高表现的频率分量。

2.3 讨论

多谱框架如何嵌入更多信息
单独使用GAP相当于知识考虑了最低频率的分量,因此多谱的框架能够考虑更多不同频率的分量。
从另一个角度思考,深度网络大多是冗余的,如果两个通道相互冗余,那么使用GAP就会获得相同的信息。但是如果使用多谱框架,基于不同频率分量,极有可能提取更多的信息。

复杂度分析
从参数数量和计算代价来思考,该方法由于2D DCT的权重是预先计算的定值,相较于SENet没有额外的参数,并且增加的计算量几乎可以忽略不计。

一行代码的修改
预计算的函数即公式7

三、 实验

基于ResNet网络加入通道注意力后,不同频率分量 [ u , v ] [u,v] [u,v]效果如下图,可以看出,网络更加喜爱偏低频率的信息,这也是SENet成功的原因。

相较于只使用GAP,多谱框架的效果都有提升,并且数量达到16种时效果最好,因此使用前16个表现最好的频率分量作为实验参数。

不同实验之间的数据对比:

不同网络backbone在COCO 2017目标检测结果对比:

实例分割任务对比: