【AI不惑境】计算机视觉中注意力机制原理及其模型发展和应用
?
?
?
?
大家好,這是專欄《AI不惑境》的第七篇文章,講述計算機視覺中的注意力(attention)機制。
?
進入到不惑境界,就是向高手邁進的開始了,在這個境界需要自己獨立思考。如果說學習是一個從模仿,到追隨,到創造的過程,那么到這個階段,應該躍過了模仿和追隨的階段,進入了創造的階段。從這個境界開始,講述的問題可能不再有答案,更多的是激發大家一起來思考。
?
作者&編輯 | 言有三
?
?
?
Attention機制在近幾年來在圖像,自然語言處理等領域中都取得了重要的突破,被證明有益于提高模型的性能。Attention機制本身也是符合人腦和人眼的感知機制,這次我們主要以計算機視覺領域為例,講述Attention機制的原理,應用以及模型的發展。
?
?
?
?
?
1 Attention機制與顯著圖
?
1.1 何為Attention機制
?
所謂Attention機制,便是聚焦于局部信息的機制,比如圖像中的某一個圖像區域。隨著任務的變化,注意力區域往往會發生變化。
?
?
面對上面這樣的一張圖,如果你只是從整體來看,只看到了很多人頭,但是你拉近一個一個仔細看就了不得了,都是天才科學家。
?
圖中除了人臉之外的信息其實都是無用的,也做不了什么任務,Attention機制便是要找到這些最有用的信息,可以想見最簡單的場景就是從照片中檢測人臉了。
?
1.2 基于Attention的顯著目標檢測
?
和注意力機制相伴而生的一個任務便是顯著目標檢測,即salient object detection。它的輸入是一張圖,輸出是一張概率圖,概率越大的地方,代表是圖像中重要目標的概率越大,即人眼關注的重點,一個典型的顯著圖如下:
?
?
右圖就是左圖的顯著圖,在頭部位置概率最大,另外腿部,尾巴也有較大概率,這就是圖中真正有用的信息。
?
顯著目標檢測需要一個數據集,而這樣的數據集的收集便是通過追蹤多個實驗者的眼球在一定時間內的注意力方向進行平均得到,典型的步驟如下:
?
(1) 讓被測試者觀察圖。
(2) 用eye tracker記錄眼睛的注意力位置。
(3) 對所有測試者的注意力位置使用高斯濾波進行綜合。
(4) 結果以0~1的概率進行記錄。
?
于是就能得到下面這樣的圖,第二行是眼球追蹤結果,第三行就是顯著目標概率圖。
?
?
上面講述的都是空間上的注意力機制,即關注的是不同空間位置,而在CNN結構中,還有不同的特征通道,因此不同特征通道也有類似的原理,下面一起講述。
?
?
?
?
?
?
2 Attention模型架構
?
注意力機制的本質就是定位到感興趣的信息,抑制無用信息,結果通常都是以概率圖或者概率特征向量的形式展示,從原理上來說,主要分為空間注意力模型,通道注意力模型,空間和通道混合注意力模型三種,這里不區分soft和hard attention。
?
2.1?空間注意力模型(spatial attention)
?
不是圖像中所有的區域對任務的貢獻都是同樣重要的,只有任務相關的區域才是需要關心的,比如分類任務的主體,空間注意力模型就是尋找網絡中最重要的部位進行處理。
?
我們在這里給大家介紹兩個具有代表性的模型,第一個就是Google DeepMind提出的STN網絡(Spatial Transformer Network[1])。它通過學習輸入的形變,從而完成適合任務的預處理操作,是一種基于空間的Attention模型,網絡結構如下:
?
?
這里的Localization Net用于生成仿射變換系數,輸入是C×H×W維的圖像,輸出是一個空間變換系數,它的大小根據要學習的變換類型而定,如果是仿射變換,則是一個6維向量。
?
這樣的一個網絡要完成的效果如下圖:
?
?
即定位到目標的位置,然后進行旋轉等操作,使得輸入樣本更加容易學習。這是一種一步調整的解決方案,當然還有很多迭代調整的方案,感興趣可以去有三知識星球星球中閱讀。
?
相比于Spatial Transformer Networks 一步完成目標的定位和仿射變換調整,Dynamic Capacity Networks[2]則采用了兩個子網絡,分別是低性能的子網絡(coarse model)和高性能的子網絡(fine model)。低性能的子網絡(coarse model)用于對全圖進行處理,定位感興趣區域,如下圖中的操作fc。高性能的子網絡(fine model)則對感興趣區域進行精細化處理,如下圖的操作ff。兩者共同使用,可以獲得更低的計算代價和更高的精度。
?
?
由于在大部分情況下我們感興趣的區域只是圖像中的一小部分,因此空間注意力的本質就是定位目標并進行一些變換或者獲取權重。
?
2.2 通道注意力機制
?
對于輸入2維圖像的CNN來說,一個維度是圖像的尺度空間,即長寬,另一個維度就是通道,因此基于通道的Attention也是很常用的機制。
?
SENet(Sequeeze and Excitation Net)[3]是2017屆ImageNet分類比賽的冠軍網絡,本質上是一個基于通道的Attention模型,它通過建模各個特征通道的重要程度,然后針對不同的任務增強或者抑制不同的通道,原理圖如下。
?
?
在正常的卷積操作后分出了一個旁路分支,首先進行Squeeze操作(即圖中Fsq(·)),它將空間維度進行特征壓縮,即每個二維的特征圖變成一個實數,相當于具有全局感受野的池化操作,特征通道數不變。
?
然后是Excitation操作(即圖中的Fex(·)),它通過參數w為每個特征通道生成權重,w被學習用來顯式地建模特征通道間的相關性。在文章中,使用了一個2層bottleneck結構(先降維再升維)的全連接層+Sigmoid函數來實現。
?
得到了每一個特征通道的權重之后,就將該權重應用于原來的每個特征通道,基于特定的任務,就可以學習到不同通道的重要性。
?
將其機制應用于若干基準模型,在增加少量計算量的情況下,獲得了更明顯的性能提升。作為一種通用的設計思想,它可以被用于任何現有網絡,具有較強的實踐意義。而后SKNet[4]等方法將這樣的通道加權的思想和Inception中的多分支網絡結構進行結合,也實現了性能的提升。
?
通道注意力機制的本質,在于建模了各個特征之間的重要性,對于不同的任務可以根據輸入進行特征分配,簡單而有效。
?
2.3 空間和通道注意力機制的融合
?
前述的Dynamic Capacity Network是從空間維度進行Attention,SENet是從通道維度進行Attention,自然也可以同時使用空間Attention和通道Attention機制。
?
CBAM(Convolutional Block Attention Module)[5]是其中的代表性網絡,結構如下:
?
?
通道方向的Attention建模的是特征的重要性,結構如下:
?
?
同時使用最大pooling和均值pooling算法,然后經過幾個MLP層獲得變換結果,最后分別應用于兩個通道,使用sigmoid函數得到通道的attention結果。
?
空間方向的Attention建模的是空間位置的重要性,結構如下:
?
?
首先將通道本身進行降維,分別獲取最大池化和均值池化結果,然后拼接成一個特征圖,再使用一個卷積層進行學習。??
?
這兩種機制,分別學習了通道的重要性和空間的重要性,還可以很容易地嵌入到任何已知的框架中。
?
除此之外,還有很多的注意力機制相關的研究,比如殘差注意力機制,多尺度注意力機制,遞歸注意力機制等。
?
感興趣的同學可以去我們知識星球中閱讀相關的網絡結構主題。
?
【知識星球】超3萬字的網絡結構解讀,學習必備
?
?
?
?
?
?
?
?
3 Attention機制典型應用場景
?
從原理上來說,注意力機制在所有的計算機視覺任務中都能提升模型性能,但是有兩類場景尤其受益。
?
3.1 細粒度分類
?
關于細粒度分類的基礎內容,可以回顧公眾號的往期文章。
?
【圖像分類】細粒度圖像分類是什么,有什么方法,發展的怎么樣
?
?
我們知道細粒度分類任務中真正的難題在于如何定位到真正對任務有用的局部區域,如上示意圖中的鳥的頭部。Attention機制恰巧原理上非常合適,文[1],[6]中都使用了注意力機制,對模型的提升效果很明顯。
?
3.2 顯著目標檢測/縮略圖生成/自動構圖
?
我們又回到了開頭,沒錯,Attention的本質就是重要/顯著區域定位,所以在目標檢測領域是非常有用的。
?
?
?
上圖展示了幾個顯著目標檢測的結果,可以看出對于有顯著目標的圖,概率圖非常聚焦于目標主體,在網絡中添加注意力機制模塊,可以進一步提升這一類任務的模型。
?
除此之外,在視頻分析,看圖說話等任務中也比較重要,相關內容將在有三AI知識星球中每日更新。
?
?
?
?
參考文獻
[1] Jaderberg M, Simonyan K, Zisserman A. Spatial transformer networks[C]//Advances in neural information processing systems. 2015: 2017-2025.
[2] Almahairi A, Ballas N, Cooijmans T, et al. Dynamic capacity networks[C]//International Conference on Machine Learning. 2016: 2549-2558.
[3] Hu J, Shen L, Sun G. Squeeze-and-excitation networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7132-7141.
[4] Li X, Wang W, Hu X, et al. Selective Kernel Networks[J]. 2019.
[5] Woo S, Park J, Lee J Y, et al. Cbam: Convolutional block attention module[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 3-19.
[6] Fu J, Zheng H, Mei T. Look closer to see better: Recurrent attention convolutional neural network for fine-grained image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 4438-4446.
?
?
?
?
總結
?
?
?
?
?
?
注意力機制是一個原理簡單而有效的機制,符合人眼的視覺感知原理,在實現上也容易嵌入當前的主流模型架構,是值得采用和學習的技術。
?
下期預告:深度學習中的無監督學習。
?
?
?
?
?
?
有三AI夏季劃
?
?
?
?
?
?
暑期正濃,有三AI夏季劃進行中,相比春季劃內容更難更全,且更加貼近工業界實戰,目標是系統性成長為中級CV算法工程師。這一次的報名周期會持續到國慶,請有需要的同學持續關注,點擊圖片閱讀詳細信息。
?
?
?
轉載文章請后臺聯系
侵權必究
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
往期修行境界
?
?
?
?
?
?
?
?
-
【完結】深度學習CV算法工程師從入門到初級面試有多遠,大概是25篇文章的距離
-
【完結】優秀的深度學習從業者都有哪些優秀的習慣
-
【完結】給新手的12大深度學習開源框架快速入門項目
-
【完結】總結12大CNN主流模型架構設計思想
-
【知乎直播】千奇百怪的CNN網絡架構等你來
-
【AI不惑境】數據壓榨有多狠,人工智能就有多成功
-
【AI不惑境】網絡深度對深度學習模型性能有什么影響?
-
【AI不惑境】網絡的寬度如何影響深度學習模型的性能?
-
【AI不惑境】學習率和batchsize如何影響模型的性能?
-
【AI不惑境】殘差網絡的前世今生與原理
-
【AI不惑境】移動端高效網絡,卷積拆分和分組的精髓
-
【AI不惑境】深度學習中的多尺度模型設計
-
【知識星球】做作業還能贏獎金,傳統圖像/機器學習/深度學習盡在不言
-
【知識星球】顏值,自拍,美學三大任務簡介和數據集下載
-
【知識星球】數據集板塊重磅發布,海量數據集介紹與下載
-
【知識星球】貓貓狗狗與深度學習那些事兒
-
【知識星球】超3萬字的網絡結構解讀,學習必備
-
【知識星球】視頻分類/行為識別網絡和數據集上新
-
【知識星球】3D網絡結構解讀系列上新
-
【知識星球】動態推理網絡結構上新,不是所有的網絡都是不變的
-
【知識星球】Attention網絡結構上新,聚焦才能贏
-
【知識星球】總有些骨骼輕奇,姿態妖嬈的模型結構設計,不知道你知不知道,反正我知道一些
總結
以上是生活随笔為你收集整理的【AI不惑境】计算机视觉中注意力机制原理及其模型发展和应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【每周NLP论文推荐】从预训练模型掌握N
- 下一篇: 【GAN模型结构】从最简单的全卷积GAN