日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

通道注意力新突破!从频域角度出发,浙大提出FcaNet:仅需修改一行代码,简洁又高效

發(fā)布時(shí)間:2025/3/8 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通道注意力新突破!从频域角度出发,浙大提出FcaNet:仅需修改一行代码,简洁又高效 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

該文是浙江大學(xué)提出一種的新穎的通道注意力機(jī)制,它將通道注意力機(jī)制與DCT進(jìn)行了巧妙的結(jié)合,并在常規(guī)的通道注意力機(jī)制上進(jìn)行了擴(kuò)展得到了本文所提出的多譜通道注意力機(jī)制:FcaLayer。作者在圖像分類、目標(biāo)檢測(cè)以及實(shí)例分割等任務(wù)上驗(yàn)證了所提方案的有效性:在ImageNet分類任務(wù)上,相比SENet50,所提方法可以取得1.8%的性能提升。

Abstract

注意力機(jī)制(尤其是通道注意力)在CV領(lǐng)域取得了極大的成功,然這些工作往往聚焦于如何設(shè)計(jì)有效的通道注意力機(jī)制同時(shí)采用GAP(全局均值池化)作為預(yù)處理方法。本文從另一個(gè)角度出發(fā):從頻域角度分析通道注意力機(jī)制。基于頻域分析,作者得出:GAP是頻域特征分解的一種特例。

基于前述分析,作者對(duì)通道注意力機(jī)制的預(yù)處理部分進(jìn)行了擴(kuò)展并提出了帶多譜通道注意力的FcaNet,所提方法具有簡(jiǎn)單&有效性。在現(xiàn)有通道注意力機(jī)制的實(shí)現(xiàn)基礎(chǔ)上,僅需更改一行code即可實(shí)現(xiàn)所提的注意力機(jī)制。

更進(jìn)一步,在圖像分類、目標(biāo)檢測(cè)以及實(shí)例分割任務(wù)上,相比其他注意力機(jī)制,所提方法取得了更好的性能。比如在ImageNet數(shù)據(jù)集上,所提方法比SE-ResNet50的Top1指標(biāo)高1.8%,且兩者具有相同的參數(shù)量與計(jì)算量。

上圖給出了所提方法與ResNet、SE-ResNet在ImageNet數(shù)據(jù)集上的指標(biāo)對(duì)比。本文的主要貢獻(xiàn)包含以下幾點(diǎn):

  • 證實(shí)GAP是DCT的一種特例,基于該分析對(duì)通道注意力機(jī)制在頻域進(jìn)行了擴(kuò)展并提出了帶多譜通道注意力的FcaNet;
  • 通過探索不同數(shù)量頻域成分的有效性提出了一種“two-step”準(zhǔn)則選擇頻域成分;
  • 通過實(shí)驗(yàn)證實(shí)了所提方法的有效性,在ImageNet與COCO數(shù)據(jù)集上均取得了優(yōu)于SENet的性能;
  • 所提方法簡(jiǎn)介有效,僅需在現(xiàn)有通道注意力機(jī)制的基礎(chǔ)上修改一行code即可實(shí)現(xiàn)。

Method

接下來,我們將重新研究一下通道注意力的架構(gòu)以及DCT頻域分析;基于前述分析推導(dǎo)多譜通道注意力網(wǎng)絡(luò);與此同時(shí),提出一種“two-step”準(zhǔn)則選擇頻域成分;最后給出了關(guān)于有效性、復(fù)雜度的討論與code實(shí)現(xiàn)。

Revisiting Channels Attention and DCT

我們先來看一下通道注意力與DCT的定義,然后在總結(jié)對(duì)比一下兩者的屬性。

Channel Attention

通道注意力機(jī)制已被廣泛應(yīng)用到CNN網(wǎng)絡(luò)架構(gòu)中,它采用一個(gè)可學(xué)習(xí)的網(wǎng)絡(luò)預(yù)測(cè)每個(gè)通道的重要。其定義如下:
att=sigmoid(fc(gap(X)))att = sigmoid(fc(gap(X))) att=sigmoid(fc(gap(X)))
X~:,i,:,:=attiX:,i,:,:,s.t.i∈{0,1,?,C?1}\tilde{X}_{:,i,:,:} = att_i X_{:,i,:,:}, s.t. i\in \{0,1,\cdots, C-1\}X~:,i,:,:?=atti?X:,i,:,:?,s.t.i{0,1,?,C?1}

Discrete Cosine Transform

DCT的定義如下:
fk=∑i=0L?1xicos(πkL(i+0.5)),s.t.k∈{0,1,?,L?1}f_k = \sum_{i=0}^{L-1} x_i cos(\frac{\pi k}{L}(i + 0.5)), s.t. k \in \{0,1,\cdots, L-1\} fk?=i=0L?1?xi?cos(Lπk?(i+0.5)),s.t.k{0,1,?,L?1}
其中f∈RLf\in R^LfRL表示DCT的頻譜。2D-DCT的定義如下:
fh,w2d=∑i=0H?1∑j=0W?1xi,j2dcos(πhH(i+0.5))cos(πwW(j+0.5))f^{2d}_{h,w} = \sum_{i=0}^{H-1} \sum_{j=0}^{W-1} x_{i,j}^{2d}cos(\frac{\pi h}{H}(i + 0.5))cos(\frac{\pi w}{W}(j + 0.5)) fh,w2d?=i=0H?1?j=0W?1?xi,j2d?cos(Hπh?(i+0.5))cos(Wπw?(j+0.5))
s.t.h∈{0,1,?,H?1},w∈{0,1,?,W?1}s.t. h\in \{0,1,\cdots, H-1\}, w \in \{0,1,\cdots, W-1\} s.t.h{0,1,?,H?1},w{0,1,?,W?1}
其中,fh,w2df^{2d}_{h,w}fh,w2d?表示2D-DCT頻譜。對(duì)應(yīng)的2D-IDCT的定義如下:

xi,j2d=∑h=0H?1∑w=0W?1fh,w2dcos(πhH(i+0.5))cos(πwW(j+0.5))x_{i,j}^{2d} = \sum_{h=0}^{H-1} \sum_{w=0}^{W-1} f^{2d}_{h,w} cos(\frac{\pi h}{H}(i + 0.5))cos(\frac{\pi w}{W}(j + 0.5)) xi,j2d?=h=0H?1?w=0W?1?fh,w2d?cos(Hπh?(i+0.5))cos(Wπw?(j+0.5))
s.t.i∈{0,1,?,H?1},j∈{0,1,?,W?1}s.t. i\in \{0,1,\cdots, H-1\}, j \in \{0,1,\cdots, W-1\} s.t.i{0,1,?,H?1},j{0,1,?,W?1}

注:在上述兩個(gè)公式中常數(shù)項(xiàng)被移除掉了。

基于上述通道注意力與DCT的定義,我們可以總結(jié)得到以下兩點(diǎn)關(guān)鍵屬性:(1) 現(xiàn)有的通道注意力方案采用GAP作為預(yù)處理;(2) DCT可以視作輸入與其cosine部分的加權(quán)。GAP可以視作輸入的最低頻信息,而在通道注意力中僅僅采用GAP是不夠充分的。基于此,作者引入了本文的多譜通道注意力方案。

Multi-Spectral Channel Attention

在正式引出多譜通道注意力之前,作者首先給出了一個(gè)定理,如下所示。其中f0,02df_{0,0}^{2d}f0,02d?表示D2-DCT的最低頻成分。

上述定理意味著:通道注意力機(jī)制中可以引入其他頻域成分。與此同時(shí),作者也解釋了為什么有必要引入其他頻率成分。

為簡(jiǎn)單起見,我們采用B表示2D-DCT的基函數(shù):
Bh,wi,j=cos(πhH(i+0.5))cos(πwW(j+0.5))B_{h, w}^{i,j} = cos(\frac{\pi h}{H}(i + 0.5))cos(\frac{\pi w}{W}(j + 0.5)) Bh,wi,j?=cos(Hπh?(i+0.5))cos(Wπw?(j+0.5))
那么,2D-DCT可以重寫成如下形式:

自然地,我們可以看到:圖像/特征可以表示為不同頻率成分的線性組合。再來看通道注意力的公式:att=sigmoid(fc(gap(X)))att = sigmoid(fc(gap(X)))att=sigmoid(fc(gap(X))),即通道注意力僅僅依賴于GAP結(jié)果。而X的信息卻不僅僅由GAP構(gòu)成:
X=gap(X)HWB0,0i,j+f0,12dB0,1i,j+?+fH?1,W?12dBH?1,W?1i,jX = gap(X)HW B_{0,0}^{i,j} + f_{0,1}^{2d}B_{0,1}^{i,j} + \cdots + f_{H-1, W-1}^{2d} B_{H-1, W-1}^{i,j} X=gap(X)HWB0,0i,j?+f0,12d?B0,1i,j?+?+fH?1,W?12d?BH?1,W?1i,j?
從上述公式可以看到:僅有一小部分信息在通道注意力中得以應(yīng)用,而其他頻域成分則被忽略了

Multi-Spectral Attention Module

基于上述分析,作者很自然的將GAP擴(kuò)展為2D-DCT的更多頻率成分的組合,即引入更多的信息解決通道注意力中的信息不充分問題。

首先,輸入X沿通道維劃分為多個(gè)部分[X0,X1,?,Xn?1][X^0,X^1,\cdots, X^{n-1}][X0,X1,?,Xn?1];對(duì)于每個(gè)部分,計(jì)算其2D-DCT頻率成分并作為通道注意力的預(yù)處理結(jié)果。此時(shí)有:

Freqi=2DDCTu,v(Xi)=∑h=0H?1∑w=0W?1X:.h,wiBh,wu,vFreq^i = 2DDCT^{u,v}(X^i) = \sum_{h=0}^{H-1} \sum_{w=0}^{W-1} X_{:.h,w}^{i} B_{h,w}^{u,v} Freqi=2DDCTu,v(Xi)=h=0H?1?w=0W?1?X:.h,wi?Bh,wu,v?
s.t.i∈{0,1,?,n?1}s.t. i\in \{0,1,\cdots, n-1\} s.t.i{0,1,?,n?1}

將上述頻域成分通過concat進(jìn)行組合,
Freq=cat([Freq0,Freq1,?,Freqn?1])Freq = cat([Freq^0, Freq^1, \cdots, Freq^{n-1}]) Freq=cat([Freq0,Freq1,?,Freqn?1])
真?zhèn)€多譜通道注意力機(jī)制與描述如下:
msatt=sigmoid(fc(Freq))ms_att = sigmoid(fc(Freq)) msa?tt=sigmoid(fc(Freq))

下圖給出了通道注意力與多譜通道注意力之間的網(wǎng)絡(luò)架構(gòu)對(duì)比示意圖。

Criterion for choosing frequence components

從前述定義可以看到:2D-DCT有多個(gè)頻率成分,那么如何選擇合適的頻率成分呢?作者提出一種“two-step”準(zhǔn)則選擇多譜注意力中的頻率成分。

選擇的主旨在于:首先確定每個(gè)頻率成分的重要性,然后確定不同數(shù)量頻率成分的影響性。首先,獨(dú)立的確認(rèn)每個(gè)通道的不同頻率成分的結(jié)果,然后選擇Top-k高性能頻率成分。

最后,作者提供了本文所提多譜通道注意力的實(shí)現(xiàn)code,如下所示。可以看到:僅需在forward部分修改一行code即可。

Experiments

ImageNet

作者選用了四個(gè)廣泛采用的CNN作為骨干網(wǎng)絡(luò),即ResNet34,ResNet50,ResNet101,ResNet152。采用了類似ResNet的數(shù)據(jù)增強(qiáng)與超參配置:輸入分辨率為224×224224\times 224224×224,SGD優(yōu)化器,Batch=128,合計(jì)訓(xùn)練100epoch,cosine學(xué)習(xí)率。注:采用Apex混合精度訓(xùn)練工具。

COCO

作者選用了Faster RNN與Mask RCNN作為基準(zhǔn),并采用了MMDetection工具進(jìn)行實(shí)現(xiàn)。SGD優(yōu)化器,每個(gè)GPU的batch=2。訓(xùn)練12個(gè)epoch,學(xué)習(xí)率為0.01,在第8和11epoch時(shí)學(xué)習(xí)率衰減。

作者首先給出了不同頻率成分下的通道注意力的性能對(duì)比,見下圖。可以看到:(1) 多譜注意力以較大優(yōu)勢(shì)超越僅采用GAP的通道注意力;(2) 包含16個(gè)頻率成分的注意力取得最佳性能

下表給出了所提方法在ImageNet數(shù)據(jù)集上與其他方法的性能對(duì)比。可以看到:所提方案FcaNet取得了最佳的性能。在相同參數(shù)&計(jì)算量下,所提方法以較大優(yōu)化超過SENet,分別高出1.20%、1.81%、2.02%、1.65%;與此同時(shí),FcaNet取得了超過GSoPNet的性能,而GSopNet的計(jì)算量比FcaNet更高。

下圖給出了COCO目標(biāo)檢測(cè)任務(wù)上的性能對(duì)比,可以看到:所提方法取得了更佳的性能。FcaNet以較大的性鞥呢優(yōu)勢(shì)超過了SENet;相比ECANet,FcaNet仍能以0.9-1.3%指標(biāo)勝出。

下圖給出了COCO實(shí)例分割任務(wù)上的性能對(duì)比,可以看到:所提方法以較大優(yōu)勢(shì)勝出。比如,FcaNet以0.5%AMP指標(biāo)優(yōu)于GCNet。

全文到此結(jié)束,更多消融實(shí)驗(yàn)分析建議查看原文。最后附上多譜通道注意力code。注:get_dct_weights僅用于初始化dct權(quán)值,而不會(huì)參與訓(xùn)練和測(cè)試。很明顯,這里的多譜通道注意力是一種與特征寬高相關(guān)的通道注意力機(jī)制,這有可能導(dǎo)致其在尺寸可變?nèi)蝿?wù)(比如圖像復(fù)原中的訓(xùn)練數(shù)據(jù)-測(cè)試數(shù)據(jù)的尺寸不一致)上的不適用性。

import math import torch import torch.nn as nndef get_ld_dct(i, freq, L):result = math.cos(math.pi * freq * (i + 0.5) / L)if freq == 0:return resultelse:return result * math.sqrt(2)def get_dct_weights(width, height, channel, fidx_u, fidx_v):dct_weights = torch.zeros(1, channel, width, height)# split channel for multi-spectral attentionc_part = channel // len(fidx_u)for i, (u_x, v_y) in enumerate(zip(fidx_u, fidx_v)):for t_x in range(width):for t_y in range(height):val = get_ld_dct(t_x, u_x, width) * get_ld_dct(t_y, v_y, height)dct_weights[:, i * c_part: (i+1) * c_part, t_x, t_y] = valreturn dct_weightsclass FcaLayer(nn.Module):def __init__(self, channels, reduction=16):super(FcaLayer, self).__init__()self.register_buffer("precomputed_dct_weights", get_dct_weights(...))self.fc = nn.Sequential(nn.Linear(channels, channels//reduction, bias=False),nn.ReLU(inplace=True),nn.Linear(channels//reduction, channels, bias=False),nn.Sigmoid())def forward(self, x):n,c,_,_ = x.size()y = torch.sum(x * self.pre_computed_dct_weights, dim=[2,3])y = self.fc(y).view(n,c,1,1)return x * y.expand_as(x)

◎作者檔案
Happy,一個(gè)愛“胡思亂想”的AI行者
歡迎大家聯(lián)系極市小編(微信ID:fengcall19)加入極市原創(chuàng)作者行列

總結(jié)

以上是生活随笔為你收集整理的通道注意力新突破!从频域角度出发,浙大提出FcaNet:仅需修改一行代码,简洁又高效的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。