沈陽理工大學 黃海新 劉孝陽 王瑞鵬
注意力機制是機器學習領域的主流方法和研究熱點之一,計算機視覺中的注意力機制旨在讓系統(tǒng)能夠忽略無關(guān)信息而更多的關(guān)注重點的有效信息,具有參數(shù)少、計算快、效果好的優(yōu)點。本文先對注意力的原理進行探索,在此基礎上對一些經(jīng)典的注意力模型和當前流行的注意力模型進行詳細地分析討論,最后對注意力機制未來的發(fā)展進行了一定的展望。
注意力機制是機器學習任務中一個基礎性問題,按照作用域的不同,可以分為空間域注意力機制、通道域注意力機制以及混合域注意力機制。由于其參數(shù)少、計算快、效果好三大優(yōu)點而在視覺任務的檢測、分類、分割、行為識別等方面有著良好的表現(xiàn)。
視覺任務中,注意力可以是施加在空間域,也可以在通道域,或者是將二者結(jié)合施加在混合域??臻g域的注意力機制,首先對輸入特征圖進行通道壓縮,然后利用壓縮之后的特征圖進行相似度計算得到自相關(guān)矩陣,將自相關(guān)矩陣歸一化成為[0,1]之間的權(quán)重矩陣后與原特征矩陣相乘。通道域的注意力機制一般需要對輸入的特征圖C×H×W進行全局池化得到一個一維向量1×1×C,然后對這個一維向量進行特征交互,計算相關(guān)性,最后將交互之后的特征向量進行歸一化得到通道權(quán)重向量,將通道權(quán)重向量施加到原特征圖中?;旌嫌虻淖⒁饬C制在空間域和通道域都需要做相關(guān)性處理,這種處理方式可以是先空間域后通道域(也可以是先通道域再空間域)的串行處理方式也可以是空間域和通道域并行處理的方式。
注意力按照作用域不同可以分為空間域注意力、通道域注意力、混合域注意力,下文基于這三個方面對當前流行的一些注意力模型進行介紹分析。
空間域注意力機制主要依靠計算特征圖中每一個位置與其他所有位置的相關(guān)性得到注意力權(quán)重。Max Jaderberg等提出Spatial Transformer Networks通過注意力模型將空間信息進行轉(zhuǎn)換實現(xiàn)對圖片旋轉(zhuǎn)、縮放變換的功能。XiaolongWang等提出Non-local方法通過計算自相關(guān)矩陣捕獲像素值與其他所有像素之間的長期依賴。
空間注意力機制的具體實現(xiàn)過程如圖1所示。
通道域的注意力機制是為了捕獲通道間的依賴關(guān)系,將注意力權(quán)重施加在通道上實現(xiàn)。Hu Jie等提出SENET通過建模各個特征通道之間的依賴關(guān)系,給有效的特征通道施加更大的權(quán)重,忽略無效的通道;Changqian Yu等為了解決語義分割中類內(nèi)不一致性問題,設計了一個平滑網(wǎng)絡,通過信道注意塊和全局平均池來選擇更具區(qū)別性的特征。
圖1 Non-local Neural Networks
通道域注意力的計算分為三個部分:擠壓(squeeze),激勵(excitation),以及scale(attention),具體計算過程如圖2所示:
圖2 通道域注意力計算過程
圖3 并行混合域注意力機制
(1)擠壓(squeeze)部分,對卷積后的特征圖U做全局平均池化,這一步相當于得到所有特征通道的數(shù)值分布;(2)激勵(excitation)部分,對各個特征通道進行交互,捕獲通道間的依賴關(guān)系,為每個特征通道生成權(quán)重;(3)scale(attention)部分,將生成的權(quán)重乘回到原輸入特征圖中。
混合域的注意力模型兼顧空間域和通道域,混合域的注意力模型有很多,主要的區(qū)別在兩個方面:第一,在空間域注意力和通道域注意力的計算方式上存在差異;第二,有的注意力采用空間域通道域并行處理的方式,有的采用空間域通道域串行處理的方式Woo Sanghyun等提出Convolutional Block Attention Module,在通道域的處理上,先經(jīng)過通道壓縮得到一維向量之后對一維向量進行操作,空間上則是將Max Pooling和Average Pooling兩種方式得到的特征圖直接拼接在一起之后進行卷積操作;Yue Cao等提出將Non-local與SEnet融合的Global Context(GC)block,實現(xiàn)一種無Query依賴的建模方式;Jun Fu等提出Dual Attention Network,分別在通道域和空間域利用non-local的思想,使用自相關(guān)矩陣捕獲長距離依賴。
并行處理的混合域注意力和串行處理的混合域注意力的實現(xiàn)過程可分別總結(jié)為圖3和圖4所示:
圖4 串行混合域注意力機制
圖3所示為并行處理的混合域注意力機制,其處理過程可以總結(jié)為式(1)所示:
圖像識別任務中,以CBAM、SENet等注意力模型為代表,在ImageNet數(shù)據(jù)集的實驗結(jié)果如表1所示:
表1 圖像識別對比結(jié)果
從表1得出,在ImageNet數(shù)據(jù)集上進行圖像識別,Backbone為ResNet50的前提下,相較于不增加注意力模塊的ResNet-50,增加注意力模塊之后準確率有明顯提升,有更好的表現(xiàn),證明了注意力機制在圖像識別任務中的有效性。
圖像語義分割方面,在Cityscapes數(shù)據(jù)集上,采用mIoU作為評價標準,實驗對比結(jié)果如表2所示:
表2 語義分割對比結(jié)果
從表2可以看出,Backbone為ResNet50的前提下,相較于沒有注意力機制的ResNet50,含有注意力機制的DANet和CCNet在語義分割任務中有更高的準確率,證明注意力機制在語義分割任務中的有效性。
本文著重研究了注意力機制的原理、主流注意力機制的實現(xiàn)方式、注意力機制在計算機視覺中的應用及其效果對比。目前的主流空間注意力機制都是以計算相關(guān)性矩陣為主,主要的區(qū)別在于相關(guān)性矩陣的計算;在通道域的注意力機制則以全局池化或者平均池化為主,從而得到通道上的遠距離依賴性,這種相關(guān)性可以幫助深度神經(jīng)網(wǎng)絡擴大感受野,捕獲像素之間的依賴關(guān)系。
這種利用相關(guān)性得到注意力機制的方式取得了不錯的效果,但是還有很大的改進空間,比如在計算方式、參數(shù)的優(yōu)化以及通道注意力和空間注意力的特征之間的融合等方面可以有進一步的研究。