Attention機制在近幾年來在圖像,自然語言處理等領(lǐng)域中都取得了重要的突破蜒茄,被證明有益于提高模型的性能唉擂。Attention機制本身也是符合人腦和人眼的感知機制,這里我們主要以計算機視覺領(lǐng)域為例檀葛,講述Attention機制的原理玩祟,應(yīng)用以及模型的發(fā)展。
1. Attention機制與顯著圖
1.1 什么是注意力機制屿聋?
所謂Attention機制空扎,便是聚焦于局部信息的機制,比如圖像中的某一個圖像區(qū)域胜臊。隨著任務(wù)的變化勺卢,注意力區(qū)域往往會發(fā)生變化伙判。
面對上面這樣的一張圖象对,如果你只是從整體來看,只看到了很多人頭宴抚,但是你拉近一個一個仔細看就了不得了勒魔,都是天才科學(xué)家。
圖中除了人臉之外的信息其實都是無用的菇曲,也做不了什么任務(wù)冠绢,Attention機制便是要找到這些最有用的信息,可以想見最簡單的場景就是從照片中檢測人臉了常潮。
1.2 基于Attention的顯著目標(biāo)檢測
和注意力機制相伴而生的一個任務(wù)便是顯著目標(biāo)檢測弟胀,即salient object detection。它的輸入是一張圖喊式,輸出是一張概率圖孵户,概率越大的地方,代表是圖像中重要目標(biāo)的概率越大岔留,即人眼關(guān)注的重點夏哭,一個典型的顯著圖如下:
右圖就是左圖的顯著圖,在頭部位置概率最大献联,另外腿部竖配,尾巴也有較大概率何址,這就是圖中真正有用的信息。
顯著目標(biāo)檢測需要一個數(shù)據(jù)集进胯,而這樣的數(shù)據(jù)集的收集便是通過追蹤多個實驗者的眼球在一定時間內(nèi)的注意力方向進行平均得到用爪,典型的步驟如下:
- 讓被測試者觀察圖。
- 用eye tracker記錄眼睛的注意力位置龄减。
- 對所有測試者的注意力位置使用高斯濾波進行綜合项钮。
- 結(jié)果以0~1的概率進行記錄。
于是就能得到下面這樣的圖希停,第二行是眼球追蹤結(jié)果烁巫,第三行就是顯著目標(biāo)概率圖。
上面講述的都是空間上的注意力機制宠能,即關(guān)注的是不同空間位置亚隙,而在CNN結(jié)構(gòu)中,還有不同的特征通道违崇,因此不同特征通道也有類似的原理阿弃,下面一起講述。
2. Attention模型架構(gòu)
注意力機制的本質(zhì)就是定位到感興趣的信息羞延,抑制無用信息渣淳,結(jié)果通常都是以概率圖或者概率特征向量的形式展示,從原理上來說伴箩,主要分為空間注意力模型入愧,通道注意力模型,空間和通道混合注意力模型三種嗤谚,這里不區(qū)分soft和hard attention棺蛛。
2.1 空間注意力模型(spatial attention)
不是圖像中所有的區(qū)域?qū)θ蝿?wù)的貢獻都是同樣重要的,只有任務(wù)相關(guān)的區(qū)域才是需要關(guān)心的巩步,比如分類任務(wù)的主體旁赊,空間注意力模型就是尋找網(wǎng)絡(luò)中最重要的部位進行處理。
我們在這里給大家介紹兩個具有代表性的模型椅野,第一個就是Google DeepMind提出的STN網(wǎng)絡(luò)(Spatial Transformer Network[1])终畅。它通過學(xué)習(xí)輸入的形變,從而完成適合任務(wù)的預(yù)處理操作竟闪,是一種基于空間的Attention模型离福,網(wǎng)絡(luò)結(jié)構(gòu)如下:
這里的Localization Net用于生成仿射變換系數(shù),輸入是C×H×W維的圖像瘫怜,輸出是一個空間變換系數(shù)术徊,它的大小根據(jù)要學(xué)習(xí)的變換類型而定,如果是仿射變換鲸湃,則是一個6維向量赠涮。
這樣的一個網(wǎng)絡(luò)要完成的效果如下圖:
即定位到目標(biāo)的位置子寓,然后進行旋轉(zhuǎn)等操作,使得輸入樣本更加容易學(xué)習(xí)笋除。這是一種一步調(diào)整的解決方案斜友,當(dāng)然還有很多迭代調(diào)整的方案,感興趣可以去有三知識星球星球中閱讀垃它。
相比于Spatial Transformer Networks 一步完成目標(biāo)的定位和仿射變換調(diào)整鲜屏,Dynamic Capacity Networks[2]則采用了兩個子網(wǎng)絡(luò),分別是低性能的子網(wǎng)絡(luò)(coarse model)和高性能的子網(wǎng)絡(luò)(fine model)国拇。低性能的子網(wǎng)絡(luò)(coarse model)用于對全圖進行處理洛史,定位感興趣區(qū)域,如下圖中的操作fc酱吝。高性能的子網(wǎng)絡(luò)(fine model)則對感興趣區(qū)域進行精細化處理也殖,如下圖的操作ff。兩者共同使用务热,可以獲得更低的計算代價和更高的精度忆嗜。
由于在大部分情況下我們感興趣的區(qū)域只是圖像中的一小部分,因此空間注意力的本質(zhì)就是定位目標(biāo)并進行一些變換或者獲取權(quán)重崎岂。
2.2 通道注意力機制
對于輸入2維圖像的CNN來說捆毫,一個維度是圖像的尺度空間,即長寬冲甘,另一個維度就是通道绩卤,因此基于通道的Attention也是很常用的機制。
SENet(Sequeeze and Excitation Net)是2017屆ImageNet分類比賽的冠軍網(wǎng)絡(luò)损合,本質(zhì)上是一個基于通道的Attention模型省艳,它通過建模各個特征通道的重要程度娘纷,然后針對不同的任務(wù)增強或者抑制不同的通道嫁审,原理圖如下。
在正常的卷積操作后分出了一個旁路分支赖晶,首先進行Squeeze操作(即圖中Fsq(·))律适,它將空間維度進行特征壓縮,即每個二維的特征圖變成一個實數(shù)遏插,相當(dāng)于具有全局感受野的池化操作捂贿,特征通道數(shù)不變。
然后是Excitation操作(即圖中的Fex(·))胳嘲,它通過參數(shù)w為每個特征通道生成權(quán)重厂僧,w被學(xué)習(xí)用來顯式地建模特征通道間的相關(guān)性。在文章中了牛,使用了一個2層bottleneck結(jié)構(gòu)(先降維再升維)的全連接層+Sigmoid函數(shù)來實現(xiàn)颜屠。
得到了每一個特征通道的權(quán)重之后辰妙,就將該權(quán)重應(yīng)用于原來的每個特征通道,基于特定的任務(wù)甫窟,就可以學(xué)習(xí)到不同通道的重要性密浑。
將其機制應(yīng)用于若干基準(zhǔn)模型,在增加少量計算量的情況下粗井,獲得了更明顯的性能提升尔破。作為一種通用的設(shè)計思想,它可以被用于任何現(xiàn)有網(wǎng)絡(luò)浇衬,具有較強的實踐意義懒构。而后SKNet等方法將這樣的通道加權(quán)的思想和Inception中的多分支網(wǎng)絡(luò)結(jié)構(gòu)進行結(jié)合,也實現(xiàn)了性能的提升耘擂。
通道注意力機制的本質(zhì)痴脾,在于建模了各個特征之間的重要性,對于不同的任務(wù)可以根據(jù)輸入進行特征分配梳星,簡單而有效赞赖。
2.3 空間和通道注意力機制的融合
前述的Dynamic Capacity Network是從空間維度進行Attention,SENet是從通道維度進行Attention冤灾,自然也可以同時使用空間Attention和通道Attention機制前域。
CBAM(Convolutional Block Attention Module)是其中的代表性網(wǎng)絡(luò),結(jié)構(gòu)如下:
通道方向的Attention建模的是特征的重要性韵吨,結(jié)構(gòu)如下:
同時使用最大pooling和均值pooling算法匿垄,然后經(jīng)過幾個MLP層獲得變換結(jié)果,最后分別應(yīng)用于兩個通道归粉,使用sigmoid函數(shù)得到通道的attention結(jié)果椿疗。
空間方向的Attention建模的是空間位置的重要性,結(jié)構(gòu)如下:
首先將通道本身進行降維糠悼,分別獲取最大池化和均值池化結(jié)果届榄,然后拼接成一個特征圖,再使用一個卷積層進行學(xué)習(xí)倔喂。
這兩種機制铝条,分別學(xué)習(xí)了通道的重要性和空間的重要性,還可以很容易地嵌入到任何已知的框架中席噩。
除此之外班缰,還有很多的注意力機制相關(guān)的研究,比如殘差注意力機制悼枢,多尺度注意力機制埠忘,遞歸注意力機制等。
3. Attention機制典型應(yīng)用場景
從原理上來說,注意力機制在所有的計算機視覺任務(wù)中都能提升模型性能莹妒,但是有兩類場景尤其受益假丧。
3.1 細粒度分類
我們知道細粒度分類任務(wù)中真正的難題在于如何定位到真正對任務(wù)有用的局部區(qū)域,如上示意圖中的鳥的頭部动羽。Attention機制恰巧原理上非常合適包帚,使用了注意力機制,對模型的提升效果很明顯运吓。
3.2 顯著目標(biāo)檢測/縮略圖生成/自動構(gòu)圖
我們又回到了開頭渴邦,沒錯,Attention的本質(zhì)就是重要/顯著區(qū)域定位拘哨,所以在目標(biāo)檢測領(lǐng)域是非常有用的谋梭。
上圖展示了幾個顯著目標(biāo)檢測的結(jié)果,可以看出對于有顯著目標(biāo)的圖倦青,概率圖非常聚焦于目標(biāo)主體瓮床,在網(wǎng)絡(luò)中添加注意力機制模塊,可以進一步提升這一類任務(wù)的模型产镐。