FcaNet解读

简介

注意力机制,特别是通道注意力机制在计算机视觉中取得了巨大的成功,很多工作着重于设计更加高效的通道注意力结构,却忽略了一个重要的问题,那就是为了得到每个通道全局表示所使用的全局平均池化(Global Average Pooling,GAP)真的合适吗?FcaNet这篇文章,作者从频域角度重新思考GAP,为了弥补了现有通道注意力方法中特征信息不足的缺点,将GAP推广到一种更为一般的2维的离散余弦变换(DCT)形式,通过引入更多的频率分量来充分的利用信息。设计的高效Fca模块甚至在现有的通道注意力方法基础上,只需要修改一行代码即可实现。

  • 论文标题

    FcaNet: Frequency Channel Attention Networks

  • 论文地址

    http://arxiv.org/abs/2012.11879

  • 论文源码

    https://github.com/cfzd/FcaNet

介绍

注意力机制在计算机视觉中受到了广泛的关注,它让网络更加关注于部分重要的信息,按照作用维度的不同,我们将注意力分为空间注意力、通道注意力和自注意力,其中,由于简单高效,下图所示的通道注意力直接对不同的通道加权,成为一种主流的注意力范式。

在这里插入图片描述

SENet和ECANet致力于设计不同的通道加权函数,如全连接或者一维卷积,然后这些函数的输入都是每个通道一个标量,这个标量默认都是来自于GAP,这是因为GAP相当的简洁高效,但是GAP也有不可忽略的问题,那就是GAP没办法捕获丰富的输入表示,这就导致了经过GAP得到的特征缺乏多样性,这主要是因为GAP对一个通道所有空间元素取其均值,而这个均值其实不足以表达不同通道的信息。

作者对全局平均池化即GAP进行了理论上的分析,最终得出如下结论:首先,不同的通道有极大概率出现相同的均值,然而它们的语义信息是不同的,换句话说,GAP抑制的通道之间的多样性;其次,从频域角度来看,作者证明了GAP其实是离散余弦变换(DCT)的最低频分量,这其实忽略了很多其他有用的分量;最后,CBAM的成功也佐证了只使用GAP得到的信息是不足够的。

在这些结论的基础上,作者设计了一种新的高效多谱通道注意力框架。该框架在GAP是DCT的一种特殊形式的基础上,在频域上推广了GAP通道注意力机制,提出使用有限制的多个频率分量代替只有最低频的GAP。通过集成更多频率分量,不同的信息被提取从而形成一个多谱描述。此外,为了更好进行分量选择,作者设计了一种二阶段特征选择准则,在该准则的帮助下,提出的多谱通道注意力框架达到了SOTA效果。

方法论

通道注意力

通道注意力的权重学习如下式所示,它表示输入经过GAP处理后由全连接层学习并经过Sigmoid激活得到加权的mask。

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

然后,mask与原始输入经过下式逐通道相乘得到注意力操作后的输出。

X ~ : , i , : , : = a t t i X : , i , : , : ,  s.t.  i ∈ { 0 , 1 , ⋯   , C − 1 } \tilde{X}_{:, i,:,:}=a t t_{i} X_{:, i,:, :}, \text { s.t. } i \in\{0,1, \cdots, C-1\} X~:,i,:,:=attiX:,i,:,:, s.t. i{0,1,,C1}

离散余弦变化

DCT是和傅里叶变换很相似,它的基本形式如下, f ∈ R L f \in \mathbb{R}^{L} fRL为DCT的频谱, x ∈ R L x \in \mathbb{R}^{L} xRL为输入, L L L为输入的长度。

f k = ∑ i = 0 L − 1 x i cos ⁡ ( π k L ( i + 1 2 ) ) ,  s.t.  k ∈ { 0 , 1 , ⋯   , L − 1 } 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\} fk=i=0L1xicos(Lπk(i+21)), s.t. k{0,1,,L1}

进而,我们推广得到二维DCT如下, f 2 d ∈ R H × W f^{2 d} \in \mathbb{R}^{H \times W} f2dRH×W是二维DCT的频谱, x 2 d ∈ R H × W x^{2 d} \in \mathbb{R}^{H \times W} x2dRH×W是输入, H H H W W W是输入的高和宽。

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 } \begin{array}{l} 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 }} \quad \text { s.t. } h \in\{0,1, \cdots, H-1\}, w \in\{0,1, \cdots, W-1\} \end{array} 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}

同样,逆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 } \begin{array}{l} 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 }} \quad \text { s.t. } i \in\{0,1, \cdots, H-1\}, j \in\{0,1, \cdots, W-1\} \end{array} 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}

上面两个式子中,为了简单起见,移除了一些常数标准化约束因子。DCT变换属于信号处理领域的知识,是JPEG图像压缩的核心算法,相当于是对重要信息的聚集。其实从这里可以看出来,DCT变换其实也是一种对输入的加权求和,式子中的余弦部分就是权重。因此,GAP这种均值运算可以认为是输入的最简单频谱,这显然是信息不足的,因此作者引出了下面的多谱通道注意力。

多谱通道注意力

这里作者首先按证明了GAP其实是二维DCT的特例,其结果和二维DCT的最低分量成比例。这个证明作者是令 h h h w w w都为0得到的,其中 f 0 , 0 2 d f_{0,0}^{2 d} f0,02d表示二维DCT最低频分量,显然,结果来看它与GAP成正比。

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 \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} f0,02d=i=0H1j=0W1xi,j2dcos(H0(i+21))cos(Wθ(j+21))=i=0H1j=0W1xi,j2d=gap(x2d)HW

通过上面的结论,自然会想到将其他分量引入通道注意力中,首先,为了叙述方便,将二维DCT的基本函数记为 B h , w i , j = cos ⁡ ( π h H ( i + 1 2 ) ) cos ⁡ ( π w W ( j + 1 2 ) ) 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) Bh,wi,j=cos(Hπh(i+21))cos(Wπw(j+21)),继而将逆二维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 ) ) = 简 写 为 B 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 = G A P 特 殊 形 式 结 论 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 } \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{简写为B}{=} 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{GAP特殊形式结论}{=} 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} xi,j2d=h=0H1w=0W1fh,w2dcos(Hπh(i+21))cos(Wπw(j+21))=Bf0,02dB0,0i,j+f0,12dB0,1i,j++fH1,W12dBH1,W1i,j=GAPgap(x2d)HWB0,0i,j+f0,12dB0,1i,j++fH1,W12dBH1,W1i,j s.t. i{0,1,,H1},j{0,1,,W1}

由这个式子其实不难发现,此前的通道注意力只应用了第一项的最低频分量部分,而没有使用下式表示的后面其他部分,这些信息都被忽略了。

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  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 }} X=utilized  gap(X)HWB0,0i,j+discarded  f0,12dB0,1i,j++fH1,W12dBH1,W1i,j

基于此,作者设计了多谱注意力模块(Multi-Spectral Attention Module,),该模块通过推广GAP采用更多频率分量从而引入更多的信息。

首先,输入 X X X被沿着通道划分为多块,记为 [ X 0 , X 1 , ⋯   , X n − 1 ] \left[X^{0}, X^{1}, \cdots, X^{n-1}\right] [X0,X1,,Xn1],其中每个 X i ∈ R C ′ × H × W , i ∈ { 0 , 1 , ⋯   , n − 1 } , C ′ = C n X^{i} \in \mathbb{R}^{C^{\prime} \times H \times W}, i \in\{0,1, \cdots, n-1\}, C^{\prime}=\frac{C}{n} XiRC×H×W,i{0,1,,n1},C=nC,每个块分配一个二维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 } \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} Freqi=2DDCTu,v(Xi)=h=0H1w=0W1X:,h,wiBh,wu,v s.t. i{0,1,,n1}

上式中的 [ u , v ] [u, v] [u,v]表示2DDCT的分量下标,这就对每一块采用不同的频率分量了,因此下式得到最终的输出 F r e q ∈ R C Freq \in \mathbb{R}^{C} FreqRC就是得到的多谱向量,然后再将这个向量送入通道注意力常用的全连接层中进行学习得到注意力图。

 Freq  = cat ⁡ ( [  Fre  q 0 ,  Fre  q 1 , ⋯   ,  Freq  n − 1 ] ) \text { Freq }=\operatorname{cat}\left(\left[\text { Fre } q^{0}, \text { Fre } q^{1}, \cdots, \text { Freq }^{n-1}\right]\right)  Freq =cat([ Fre q0, Fre q1,, Freq n1])

m s − a t t = sigmoid ⁡ ( f c (  Freq  ) ) m s_{-} a t t=\operatorname{sigmoid}(f c(\text { Freq })) msatt=sigmoid(fc( Freq ))

这就是全部的多谱注意力模块的设计了,现在,下图这个FcaNet整体框架中间的一部分就看得明白了,唯一留下的问题就是对分割得到的每个特征图块,如何选择 [ u , v ] [u,v] [u,v]呢?事实上,对空间尺寸为 H × W H\times W H×W的特征图,会有 H W HW HW个频率分量,由此频率分量的组合共有 C H W CHW CHW种,遍历显然是非常费时的,因此,文中设计了一种启发式的两步准则来选择多谱注意力模块的频率分量,其主要思想是先得到每个频率分量的重要性再确定不同数目频率分量的效果。具体而言,先分别计算通道注意力中采用各个频率分量的结果,然后,根据结果少选出topk个性能最好的分量。

在这里插入图片描述

到这里,整个FcaNet的方法论就说明完了,下面作者还进行了一些讨论,包括计算复杂度和修改难度。复杂度方面,相比于SENet没有引入额外参数,因为2DDCT权重是预先计算好的,相比于SENet增加的计算量几乎可以忽略不记。此外,2DDCT可以认为是对输入的加权求和,因此它可以通过逐元素乘加实现,在原本通道注意力代码基础上前向计算只需要修改一行,其PyTorch实现如下图。

在这里插入图片描述

实验

作者首先经过实验对比了单个频率分量的有效性,具体的实验配置可以查看原论文,不过,实验最终验证当 [ u , v ] [u,v] [u,v]为[0,0]时效果是最好的,这就是GAP操作,下图同时也验证了深度模型对低频分量更关注的事实。但是,虽然其他分量效果不及GAP,但也是含有大量有效信息的,因此加进去是合理的。

在这里插入图片描述

接着,在知道了哪些分量更好的前提下,作者对分量的数目进行了实验,结果如下表,Number=1的GAP效果弱于其他各种Number选择的多谱注意力,Number=16时效果最好。

在这里插入图片描述

最后,作者也将本文设计的FcaNet和其他注意力网络进行对比,在分类、检测和分割等benchmark上和其他方法对比,在分类和检测上都有比较明显的提高,下图所示为ImageNet上分类任务结果,其他的我这里就不展示了,可以查看原文。

在这里插入图片描述

总结

本文是依据可靠数学进行的理论创新,一改此前通道注意力的结构设计思路,将关注重心放在了GAP是DCT的特例这一推导下,从而设计了多谱通道注意力,取得了相当不错的成果。将思路转到频域还是非常新颖的,虽然一行代码的说法略显牵强,最终的性能也是坐等开源再说,总体来看,FcaNet还是值得了解的注意力文章。

  • 30
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
### 回答1: fcanet是一种频道注意力网络,它可以在图像分类和目标检测等任务中提高模型的性能。该网络通过学习每个频道的重要性来自适应地调整每个频道的权重,从而提高模型的准确性和鲁棒性。fcanet是一种有效的深度学习模型,已经在许多计算机视觉任务中得到了广泛应用。 ### 回答2: FCANet是一种用于解决计算机视觉领域中图像分类问题的深度神经网络。该神经网络通过引入一种新的注意力机制来改善模型的性能,称为频道注意网络。FCANet可以有效地对图像分类问题进行建模和处理。 FCANet中的新注意力机制,即频道注意网络,旨在通过自适应地对通道加权来对抽取的特征进行进一步处理。这个权重因子是根据特征通道上全局平均池化操作的输出构建的,从而可以自适应地学习在输入特征通道的不同权重下进行特征选择的偏好。因此,FCANet能够更好地利用输入特征的不同通道间的信息。 与其他基于注意力机制的模型相比,频道注意网络具有以下优点: 1. 独特性:频道注意网络是一种独特的注意力机制,与其他注意力模型不同。 2. 自适应性:通过自适应地学习通道之间的关系和选择权重,FCANet可以更好地适应复杂的视觉场景。 3. 鲁棒性:频道注意网络可以有效地过滤掉不重要的特征通道,并在同时具有噪声和变化的情况下保持高度鲁棒性。 FCANet的应用场景非常广泛,可以应用于图像分类、目标检测、语义分割和图像生成等多种计算机视觉任务中。它是当前计算机视觉领域中极具前景的深度学习技术之一。 ### 回答3: FCANet是一种基于频率通道注意力的神经网络模型。它通过对频域和通道维度之间的关系进行建模来增强卷积神经网络的性能。频率通道注意力是一种用于增强CNN网络的新技术,可以帮助网络更好地区分出不同类别之间的细节信息。 FCANet的主要优点在于它可以自适应地学习到每个通道的重要性并加以利用。如果一些通道很少使用,则它们的权重将被降低,从而提高其他通道的权重,这可以更好地利用网络的资源。此外,FCANet还能够学习到不同频率上的不同特征,进一步提升模型的性能。 FCANet的结构由两个主要部分组成:频率放大模块和通道注意力模块。频率放大模块将输入的图像转换为频率域,增加了模型对低频和高频细节的感知能力,从而增强了网络的特征提取能力。通道注意力模块则通过对不同通道之间的关系建模,提高了模型区分不同类别之间细节的能力。 总而言之,FCANet是一种全新的神经网络模型,它通过在频率和通道维度上建模关系,提升了模型的特征提取和分类能力。它具有很好的应用前景,在图像识别、语音识别等领域有广泛的应用。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周先森爱吃素

你的鼓励是我坚持创作的不懈动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值