何海洋 孫南
摘? 要: 為了提高自注意力網(wǎng)絡(luò)的圖像識別效果,對通道域自注意力機制存在的梯度死亡的問題,提出了一種優(yōu)化算法。首先聚集特征在空間范圍上的全局特征響應(yīng),然后使用新的激活函數(shù)對通道關(guān)系建模,構(gòu)造通道權(quán)重響應(yīng)。將改進后的通道域自注意力模塊使用于神經(jīng)網(wǎng)絡(luò)分類器中,在CIFAR-10和CIFAR-100數(shù)據(jù)集上進行實驗,結(jié)果顯示,和傳統(tǒng)模型相比,圖像識別準確率提高了1.3%和1.4%,驗證了所提算法的有效性。
關(guān)鍵詞: 通道域自注意力; 神經(jīng)網(wǎng)絡(luò); 激活函數(shù); 圖像識別
中圖分類號:TP391? ? ? ? ? 文獻標識碼:A? ? ? 文章編號:1006-8228(2020)10-64-05
Abstract: In order to improve the image recognition of the self-attention network, an optimized algorithm is proposed for the problem of gradient death that exists in the channel domain self-attention mechanism. Firstly, the global feature response over the spatial extent of the feature is aggregated, and then the new activation function is used to model the channel relationship and to construct the channel weight response. The improved channel-domain self-attention module is used in neural network classifier, and experiments are carried out on CIFAR-10 and CIFAR-100 datasets.? The experiment results show that the accuracy of image recognition is improved by 1.3% and 1.4% compared with the traditional model, which verifies the effectiveness of the proposed algorithm.
Key words: channel domain self-attention; neural network; activation function; image recognition
0 引言
圖像識別是計算機視覺領(lǐng)域中的三大任務(wù)之一,其是通過分析圖片的整體特征,找到目標圖片的所屬類別。目前,深度學(xué)習(xí)在圖像識別領(lǐng)域取得了突破性的進展。
隨著NLP中的注意力機制廣受歡迎[1],注意力機制引起了計算機視覺領(lǐng)域的重視,開始慢慢滲透到研究的主體結(jié)構(gòu)中,以補充現(xiàn)有的CNN體系結(jié)構(gòu)或完全替代它們。
注意力機制是網(wǎng)絡(luò)架構(gòu)的一個組成部分,負責(zé)管理和量化信息之間的相互依賴關(guān)系。對于在輸入和輸出元素之間的關(guān)系,一般稱它為General Attention,而輸入元素內(nèi)部的關(guān)系叫做自注意力(Self-Attention)。自注意力是一種與單個序列的不同位置相關(guān)聯(lián)的注意力機制,它接受n個輸入,并返回n個輸出,其目的是計算同一序列的表示形式。大量文獻表明自注意力機制在機器閱讀,抽象概念總結(jié)和圖像描述及生成中非常有用[2-5]。
空間域自注意力[6]提出了一個叫空間轉(zhuǎn)換器(spatial transformer)的模塊,將圖片中的的空間域信息做對應(yīng)的空間變換,從而能將關(guān)鍵的信息提取出來,但是因為卷積層之后,每一個卷積核(filter)產(chǎn)生的通道信息,所含有的信息量以及重要程度其實是不一樣的,都用同樣的transformer其實可解釋性并不強,它忽略了通道域中的信息。文獻[7]將卷積核的卷積類似于信號做了傅里葉變換,從而能夠?qū)⑦@個特征一個通道的信息給分解成64個卷積核上的信號分量,給每個通道上的信號都增加一個權(quán)重,來代表該通道與關(guān)鍵信息的相關(guān)度的話,這個權(quán)重越大,則表示相關(guān)度越高,也就是越需要去注意的通道了,但是加權(quán)函數(shù)出現(xiàn)了梯度死亡,不能還原通道間的復(fù)雜相關(guān)性。本文針對加權(quán)函數(shù)梯度死亡的缺點,對相關(guān)函數(shù)做出了相關(guān)的改進,避免了網(wǎng)絡(luò)出現(xiàn)梯度死亡,更好的還原通道間的復(fù)雜相關(guān)性。實驗結(jié)果表明,經(jīng)過優(yōu)化后的模型具有更加準確的識別率。
1 研究基礎(chǔ)
通過使用軟自注意力對卷積特征的通道之間的相互依賴性進行建模,對于CNN特定層中的通道響應(yīng)重新加權(quán)。基于這種想法,研究人員提出了Squeeze-And-Excitation 模塊,如圖1所示。
Squeeze-And-Excitation模塊的工作原理如下: 對于特征[Ftr]從X到U的任何一個轉(zhuǎn)換(例如卷積操作),都會有一個轉(zhuǎn)換操作[Fsq],它聚集了特征在空間范圍(H,W)上的全局特征響應(yīng),這是Squeeze操作。在Squeeze操作之后是Excitation操作[Fex],這和循環(huán)神經(jīng)網(wǎng)絡(luò)中門機制[8-9]很像,通過給通道信息一個系數(shù),抑制差的通道信息,激勵重要的通道信息,來構(gòu)造通道權(quán)重響應(yīng)。隨后[Ftr]的輸出在通道方向上乘以Excitation操作的結(jié)果(即圖中的[Fscale]操作)。Squeeze操作的數(shù)學(xué)公式可以表示為:
其中,[uc]是[Ftr]操作的輸出,(i,j)是信息在特征圖上的位置表示。Squeeze操作是通過使用全局平均池化來創(chuàng)建信道中全局信息的聚合。
另一方面,Excitation操作的數(shù)學(xué)公式可以表示為:
Excitation操作將Squeeze操作的輸出乘以網(wǎng)絡(luò)學(xué)習(xí)到的權(quán)重W1,將結(jié)果通過ReLU函數(shù)δ,接著輸出與另一組權(quán)重W2相乘,最后使用sigmoid函數(shù)以確保所有的通道權(quán)重都是正數(shù)。
在Excitation操作過程中,W1會除以因子r來減少通道數(shù),而W2將乘以r再次將通道維數(shù)增大到原始通道數(shù)。這樣是為了減少網(wǎng)絡(luò)的計算量。最后,將[Ftr]的通道特征乘以從Excitation操作中獲得的權(quán)重,就可以看成在通道上使用了全局信息的自注意力機制。
擠壓和激勵塊的主要思想是在神經(jīng)網(wǎng)絡(luò)的決策過程中可以讀取全局信息。卷積操作只可以查看特定范圍內(nèi)的局部空間信息,而Squeeze-And-Excitation模塊可以匯總來自整個特征圖的信息。
2 針對通道域自注意力的改進方案
2.1 通道域自注意力機制存在的問題
在通道域自注意力的模型中,可注意到Excitation操作中使用ReLU函數(shù)和全連接層來模擬通道之間的相互依賴性。網(wǎng)絡(luò)經(jīng)過全連接層和ReLU函數(shù)可以模擬出卷積層的非線性,但是使用ReLU激活函數(shù)時,不會得到非常小的值,只能得到0。當計算梯度時,如果太多數(shù)值小于0,梯度更新會等于零,因此得到了一堆未更新的權(quán)重和偏差,這就是ReLU死亡問題。
假設(shè)一個簡單的網(wǎng)絡(luò)結(jié)構(gòu),存在一個輸入神經(jīng)元[a0],在經(jīng)過權(quán)重[w1]和偏置[b1]后,神經(jīng)元[a0]生成了神經(jīng)元[a1],以此類推,在經(jīng)過權(quán)重[w2],[w3],[w4]和偏置[b2],[b3],[b4]后依次生成了神經(jīng)元[a2],[a3],[a4],最后[a4]輸出了C。
根據(jù)神經(jīng)網(wǎng)絡(luò)的梯度公式,可以很簡單算出[b1]的梯度,見公式⑶。
可以發(fā)現(xiàn)如果等式中某個神經(jīng)元經(jīng)過ReLU函數(shù)變成了0,那么偏置[b1]的梯度也會歸零,無法進行。同理其他與該神經(jīng)元相關(guān)的偏置都不會得到梯度更新。這種問題直接會影響到網(wǎng)絡(luò)的梯度更新,降低網(wǎng)絡(luò)識別效果,因此要對該問題進行針對性改進。
2.2 通道域自注意力的激活函數(shù)優(yōu)化
針對ReLU函數(shù)可能會出現(xiàn)的死亡問題,本文基于ReLU激活函數(shù)做了改進,提出FeLU函數(shù),解決了ReLU函數(shù)出現(xiàn)的問題。FeLU函數(shù)的數(shù)學(xué)公式如下:
FeLU激活函數(shù)圖像如圖2所示,可以發(fā)現(xiàn)在[F(x)]函數(shù)中如果輸入的x值大于零,則輸出值與ReLU相同,是等于x的值。但是如果輸入值x小于0,輸出結(jié)果將得到一個略低于零的值。這樣可以保證梯度不會出現(xiàn)死亡,停止更新。同時,和ReLU函數(shù)相比,F(xiàn)eLU函數(shù)存在負值,激活神經(jīng)元的輸出平均值可以更加靠近0,神經(jīng)元的輸出平均值與0越近,激發(fā)單元的偏移效應(yīng)越低,網(wǎng)絡(luò)的梯度更靠近自然梯度,同時也能起到批量正則化的效果。
對ReLU激活函數(shù)改進之后,Squeeze-And-Excitation 模塊可以表示為圖3中的結(jié)構(gòu)。
當形狀為[H×W×C]的特征圖傳入到Squeeze-And-Excitation 模塊,首先會進行一次全局池化變成[1×1×C]的特征圖,也就是Squeeze操作。然后進行了2次全連接操作,用來模擬通道間的復(fù)雜關(guān)系,在兩次全連接操作中加入了FeLU激活函數(shù)用來避免ReLU死亡問題,第一次全連接層會將特征圖的通道數(shù)放縮16倍,這可以減少神經(jīng)網(wǎng)絡(luò)的計算量,降低運行時間,第二次全連接層會將特征圖還原到原始通道數(shù)。最后將全連接輸出的特征值傳到Sigmoid函數(shù)中,放縮到0和1之間,等待加權(quán)。這是Excitation操作。將輸入特征信息乘以從Excitation操作中獲得的權(quán)重,就完成了在通道上的自注意力機制。
3 實驗?zāi)P徒⒓敖Y(jié)果分析
3.1 實驗?zāi)P偷慕?/p>
實驗建立了一個小型神經(jīng)網(wǎng)絡(luò),包含一個輸入層,一個添加了通道域自注意力模塊的卷積層和一個全連接輸出層。實驗的數(shù)據(jù)集選用了MNIST數(shù)據(jù)集,并對數(shù)據(jù)集分別進行了歸一化和標準化。為了減少不可避免的隨機性的影響,每組實驗被測試5次,每次網(wǎng)絡(luò)會迭代100次。這些實驗的訓(xùn)練精度將取平均值,這將有助于確保在實驗中看到更具代表性的結(jié)果。
實驗中的評價標準分為四個,為了方便標識,本文使用A、B、C、D四個選項分別表示這四個實驗評價標準。其中A表示5次實驗中最后一次迭代的驗證集精度平均值;B表示5次實驗中訓(xùn)練集精度平均值最高的驗證集精度;C表示5次實驗中最后一次迭代的驗證集精度最大值;D表示所有實驗中的驗證集精度最大值。
對于圖像識別模型的比較實驗,在ResNet神經(jīng)網(wǎng)絡(luò)[10]中添加了改進后的通道域自注意力模塊,和其他神經(jīng)網(wǎng)絡(luò)在CIFAR-10和CIFAR-100數(shù)據(jù)集[11]上進行了實驗精度和時間上的比較。實驗中參數(shù)設(shè)定了mini-batch為128,Momentum為0.9,learningrate為0.1。
3.2 實驗結(jié)果對比與分析
對于自注意力模塊的激活函數(shù)的比較實驗,為了減少梯度下降時間,實驗中對數(shù)據(jù)集分別進行了歸一化和標準化,實驗結(jié)果見表1和表2。
從實驗結(jié)果可以發(fā)現(xiàn),無論是歸一化數(shù)據(jù)集還是標準化數(shù)據(jù)集,F(xiàn)eLU激活函數(shù)的實驗精度基本都高于其他激活函數(shù)。而同種激活函數(shù)之間數(shù)據(jù)比較可以發(fā)現(xiàn),經(jīng)過標準化數(shù)據(jù)訓(xùn)練的網(wǎng)絡(luò)的性能稍微差一點。但是總的來說,本文FeLU激活函和其他的激活函數(shù)在通道域自注意力機制神經(jīng)網(wǎng)絡(luò)中的表現(xiàn)相比,實驗的驗證集精度都要高一些,證明了經(jīng)過改進后的FeLU激活函數(shù)的可行性和有效性。
對于圖像識別模型,本文和DSN[12],文獻[13],文獻[14],Highway Network[15],All-CNN[16],SENet進行測試精度的比較,實驗結(jié)果如表3所示。
從表3中可以發(fā)現(xiàn),在兩個數(shù)據(jù)集上,包括DSN、Highway Network和All-CNN神經(jīng)網(wǎng)絡(luò)在內(nèi)的無注意力機制神經(jīng)網(wǎng)絡(luò)的實驗準確度明顯低于自注意力神經(jīng)網(wǎng)絡(luò)。而在SENet、文獻[13]和文獻[14]等自注意力神經(jīng)網(wǎng)絡(luò)的實驗數(shù)據(jù)中,本文模型在CIFAR-10數(shù)據(jù)集上排名第二,測試集實驗誤差為3.14%,但是在CIFAR-100數(shù)據(jù)集上的實驗表現(xiàn)最佳,測試集實驗誤差僅為16.27%。其中和包含Squeeze-And-Excitation 模塊的SENet網(wǎng)絡(luò)相比,本文模型實驗中準確率更高,表現(xiàn)的更好,這證明了本文模型在針對Squeeze-And-Excitation 模塊的激活函數(shù)改進是有效果的,體現(xiàn)了本文算法優(yōu)化策略的價值和有效性。同時本文和SENet,文獻[13],文獻[14]等自注意力神經(jīng)網(wǎng)絡(luò)進行比較了神經(jīng)網(wǎng)絡(luò)運行時間的比較,如表4所示。
從表4中,可以發(fā)現(xiàn)本文模型和SENet,文獻[14]等傳統(tǒng)神經(jīng)網(wǎng)絡(luò)相比,本文模型網(wǎng)絡(luò)訓(xùn)練和測試的時間高了15%~23%,這是因為本文模型為ResNet網(wǎng)絡(luò)架構(gòu),神經(jīng)網(wǎng)絡(luò)的整體架構(gòu)較為復(fù)雜,網(wǎng)絡(luò)的層數(shù)深,和其他神經(jīng)網(wǎng)絡(luò)模型相比,消耗了大量的網(wǎng)絡(luò)計算時間。但是就單張圖像識別而言,本文模型的圖像識別時間是可以滿足識別實時性要求的,在提高圖像識別準確率的條件下,這些消耗的時間仍然是可以容忍的。
4 結(jié)論
本文根據(jù)通道域自注意力模塊的缺點提出了FeLU激活函數(shù),并進行了激活函數(shù)相關(guān)實驗對比,通過實驗數(shù)據(jù)的分析,證明了FeLU激活函數(shù)是可行的。并且在ResNet神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上添加了基于FeLU的通道域自注意力機制,在實驗對比中,本文算法取得了不錯的效果。但是模型在通道壓縮階段使用的全局池化會導(dǎo)致一些空間特征信息的丟失,在接下來的工作中我們將重點研究通道信息壓縮,實現(xiàn)空間特征信息的有效保留。
參考文獻(References):
[1] Firat O, Cho K, Bengio Y. Multi-way, multilingual neural machine translation with a shared attention mechanism[J]. arXiv preprint arXiv:1601.01073,2016.
[2] Shen T, Zhou T, Long G, et al. Disan: Directional self-attention network for rnn/cnn-free language understanding[C]//Thirty-Second AAAI Conference on Artificial Intelligence. 2018.
[3] Fu J, Liu J, Tian H, et al. Dual attention network for scene segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2019:3146-3154
[4] Zhu Y, Ko T, Snyder D, et al. Self-Attentive Speaker Embeddings for Text-Independent Speaker Verification[C]//Interspeech,2018:3573-3577
[5] Ambartsoumian A, Popowich F. Self-attention: A better building block for sentiment analysis neural network classifiers[J]. arXiv preprint arXiv:1812.07860,2018.
[6] Jaderberg M, Simonyan K, Zisserman A, et al. Spatial Transformer Networks[J].2015.Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556,2014.
[7] 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
[8] 趙鵬,劉楊,劉慧婷等.基于深度卷積-遞歸神經(jīng)網(wǎng)絡(luò)的手繪草圖識別方法[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2018.2:217-224
[9] 劉禮文,俞弦.循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)及應(yīng)用研究[J].科技視界,2019.32.
[10] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition,2016:770-778
[11] Liang M, Hu X. [IEEE 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)-Boston, MA, USA (2015.6.7-2015.6.12)] 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)-Recurrent convolutional neural network for object recognition[C]// IEEE Conference on Computer Vision & Pattern Recognition. IEEE Computer Society,2015:3367-3375
[12] Lee C Y, Xie S, Gallagher P, et al. Deeply-supervisednets[C]//Artificial intelligence and statistics,2015:562-570
[13] Wang F, Jiang M, Qian C, et al. Residual attentionnetwork for image classification[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2017:3156-3164
[14] 袁嘉杰,張靈,陳云華.基于注意力卷積模塊的深度神經(jīng)網(wǎng)絡(luò)圖像識別[J].計算機工程與應(yīng)用,2019.55(8):9-16
[15] Srivastava R K, Greff K, Schmidhuber J. Training very deep networks[C]//Advances in neural information processing systems,2015:2377-2385
[16] Springenberg J T, Dosovitskiy A, Brox T, et al.Striving for simplicity: The all convolutional net[J].arXiv preprint arXiv:1412.6806,2014.