【论文解读】FcaNet:频率通道注意力网络论文解读
導讀
改一行代碼就能漲點,這么好的事情,還不趕緊來看看,用不同的頻率分量來做注意力,確實有效果!
論文:https://arxiv.org/abs/2012.11879
1、介紹
注意力機制有很多種方法,空間注意力,通道注意力,自注意力等,這里我們討論的是通道注意力。通道注意力非常簡單,直接學習出對應的每個通道的權值就可以,所以非常的好用。一般來說,在計算通道注意力的時候,每個通道的會需要有個標量值來計算后面的注意力權重,這個標量的計算函數一般都是使用Global Average Pooling。但是,GAP并不是那么的完美,簡單的去均值的方法會丟棄很多的信息,無法充分的獲取每個通道的多樣性的信息。那么,除了使用全局的平均值來計算通道注意力之外,還有其他的方法嗎?后面會詳細說明。
文章的主要貢獻如下:
我們證明了GAP是一種特殊形式的DCT(離散余弦變換),基于這個證明,我們將通道注意力泛化到頻域,并提出了FcaNet,使用多個頻率的通道注意力網絡。
我們提出了一個2階段的損失函數,用來選擇不同的頻率分量,不同的頻率數量,以及不同的頻率組合。
我們在COCO和ImageNet上都到了SOTA,并超越之前的通道注意力的方法。
我們的方法非常的簡單,只需要改一行代碼就可以替換之前的通道注意力方法。
2、方法
在這部分,我們來看下,GAP是如何和DCT聯系到一起的,以及FcaNet是如何設計的。
2.1 通道注意力和離散余弦變換
通道注意力
假設X是輸入的特征圖,通道注意力機制可以寫成:
這里,att是注意力向量,得到了這個注意力向量之后,每個通道就可以通過這個注意力向量的對應元素進行縮放,得到通道注意力機制的輸出:
離散余弦變換
DCT定義為:
這里,f是DCT的頻譜,x是輸入,L是x的長度,2維的DCT可以寫成:
2D的DCT的反變換可以寫成:
在式子(4)和(5)中,為了簡單起見,所以去掉了一些歸一化的常量。
通過通道注意力和DCT的定義,我們可以總結出兩點:1、現有的方法在做通道注意力的時候,使用GAP作為預處理。2、DCT可以看成是輸入的加權和,權值就是(3)和(4)的余弦部分。
GAP是一個取均值的操作,可以看成是輸入的最簡單的頻譜,也就是頻率為0的分量。但是,在通道注意力中只使用單獨的GAP信息并不是很好,既然單獨的頻譜不好,那么可以考慮多用幾個頻率分量,這就引入了多頻譜的通道注意力機制。
2.2 多頻譜通道注意力
通道注意力的理論分析
上面我們分析過了,DCT可以看成是輸入的加權和,我們會進一步提出,GAP實際上就是DCT的一種特殊形式。
定理1 GAP是2D DCT的一種特殊形式,它和2D DCT中的最低的頻率分量是成比例的。
證明:假設在(4)式中,h和w為0,我們有:
在(6)式中,表示2D DCT中的最低的頻率分量,和GAP就差了一個比例常數。因此,定理1證明完畢。
既然我們已經證明了GAP是DCT的一種特殊形式,我們當然也可以引入其他的頻率分量到通道注意力中,我們可以討論一下我們這樣做的原因。
簡單起見,我們用B來表示2D DCT的基礎形式:
我們可以把式(5)重寫一下:
可以看到,這個特征圖X可以表示為不同的頻率分量的組合,其實就是信號處理中的頻率分解,根據(1)式:
通道注意力僅僅是基于GAP,但是,輸入的特征圖X并不僅僅只有GAP一個頻率分量,還有很多其他的頻率分量:
所以說,在用GAP做通道注意力的時候,很多的信息其實被丟掉了。
多頻譜注意力模塊
為了利用到輸入特征圖X的更多的信息,我們可以使用多個頻率分量,包括GAP。首先,我們把輸入特征圖X,按照通道分為多個組,,原來的通道數為C,分完之后,每個組的通道數為C',其中,而且,C應該是n的倍數,對于每個組,分配一個特定的2D DCT的頻率分量,這個特定的頻率分量需要事先選擇好。于是,可以將2D DCT作為通道注意力的預處理,這里,我們有:
這里的[u,v]是頻率分量的2D索引,是C‘維的向量。整體的預處理向量就是把所有的拼接起來:
這里Freq就是得到的多頻譜向量,然后這個多頻譜的通道注意力可以寫成:
可以看到,對于不同的組,可能使用不同的[u,v]組合,也就是說,每個組使用不同的頻率分量。這樣,就將GAP的單個頻譜擴展到了多個頻譜。
下圖是和SENet的對比:
選擇頻率分量的規則
現在有個問題是如何去選擇頻率分量,也就是每個中的[u,v]如何選取。對于每個通道,空間分辨率為HW,在做2DDCT之后,可以得到HW個頻率分量,這樣的話,C個通道的頻率分量的組合數量有CHW個。比如,對于ResNet50,C為2048,測試所有的組合不現實的,計算量非常大,因此,我們提出了一個2步走的啟發式的方案來選擇頻率分量。
主要的思想是先確定每個頻率分量的重要性,然后確定一起使用不同數量的頻率分量的有效性。首先,我們檢查單個頻率分量在通道注意力中的有效性,然后,我們選擇topk個效果最好的頻率分量,這樣,得到多頻譜的頻率分量。
2.3 討論
多頻譜框架如何嵌入更多的信息
從上面的式子可以看到,GAP實際上是丟掉了很多其他的頻率分量的信息,只留下了最低頻率的信息。多頻譜很顯然可以使用更多的頻率信息。
我們知道,卷積神經網絡的通道是有冗余的,也就是說,不同的通道的信息可能是相似的。那么,使用GAP的時候,得到的信息也是相似的,而使用多頻譜的話,可以對于不同的通道提取不同的頻譜特征。使得可以得到更加豐富的信息。
復雜性分析
從參數數量上來說,我們的方法并沒有引入任何的參數。從計算量上來說,我們的額外的計算開銷是非常小的,計算量幾乎是和SENet一樣。
只需要改一行代碼
實現時候,只需要在原始的SENet的代碼上修改一行代碼:
3. 實驗
單獨頻率分量的效果,在ImageNet上的準確率:
使用不同數量的頻率分量的效果:
和其他的方法的比較:
將FcaNet作為物體檢測的主干的時候,在MS COCO上的結果:
在MS COCO的實例分割時的效果:
在附錄的地方,還做了關于頻率組合策略的一些實驗,除了文中提到了選擇topk個效果最好的頻率之外,還嘗試了效果最差的k個,還有頻率最低的k個。Low-k表示頻率最低的k個,Bot-k表示效果最差的k個。
總結
模型效果很好,改動也很簡單,漲點很明顯。只是不清楚這個最佳的頻率分量的組合的泛化性能怎么樣,能不能用到其他的數據集上。不過,從作者給出的結果看,選出來的其實主要還是低頻的分量,而且從low-k的效果來看,也是挺好的,那么,其實只要按照low-k的方法選取分量,應該也都是有效果的,期待有人在更多數據集上做下類似的實驗。
—END—
論文鏈接:https://arxiv.org/abs/2012.11879
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 本站知識星球“黃博的機器學習圈子”(92416895) 本站qq群704220115。 加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【论文解读】FcaNet:频率通道注意力网络论文解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 钉钉怎么设置考勤打卡规则
- 下一篇: 【数据分析】近10年学术论文的数据分析!