如何讓RNN神經元擁有基礎通用的注意力能力

Submitted by huzhenda on Sat, 09/22/2018 - 14:34

循環神經網絡(RNNs)是序列建模中被廣泛使用的網絡結構,它通過控制當前信息以及歷史信息的貢獻大小來實現序列信息的積累。RNN神經元將當前時刻的輸入向量作為一個整體,通過門設計控制其信息載入到模型的信息量。然而,輸入向量中的不同元素通常具有不同的重要性,RNNs忽略了對此重要屬性的探索及利用以加強網絡能力。

為此,微軟亞洲研究院和西安交通大學合作,提出了通過對RNN層加入一個簡單有效的元素注意力門,使得RNN神經元自身擁有基礎通用的注意力能力,對不同的元素自適應地賦予不同的重要性來更加細粒度地控制輸入信息流。該注意力門設計簡單,并且通用于不同的RNN結構以及不同的任務。

RNN的網絡結構

循環神經網絡(Recurrent?Neural Networks, 縮寫RNNs),例如標準RNN、LSTM、GRU等,已經被廣泛用于對時間序列數據的處理和建模,來解決許多應用問題,例如行為識別、機器翻譯、手寫識別等。RNN在對時域動態特性建模以及特征學習上具有強大的能力。如圖1所示,在每個時間步,RNN神經元通過當前時刻的輸入x_t和前一時刻的隱狀態信息h_(t-1)來更新當前時刻的隱狀態h_t,從而具有對歷史信息的記憶性。

27.1

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1 RNN結構示意圖及沿時域的展開表示

標準(Standard)RNN存在梯度消失的問題,因此在對長時(Long Range)依賴性建模中性能并不理想。LSTM(Long Short-Term Memory)、GRU(Gated Recurrent Unit)通過引入門(Gate)設計一定程度上減輕了梯度消失問題。門結構根據當前輸入和隱狀態信息來控制著對歷史信息遺忘量,以及對當前輸入信息接納量,從而實現對歷史和當前信息的有效利用。

對于一個RNN神經元,門可以視為一個整體的開關(標量)在控制當前或歷史信息的流通。以某個LSTM神經元為例,在時刻t,內部單元的響應計算如下:

27.2

其中,x_t表示當前時刻t的輸入向量,h_(t-1)表示t-1時刻的隱狀態向量。i_t、f_t、o_t、c_t、h_t分別表示該LSTM神經元中的輸入門、遺忘門、輸出門、記憶單元和隱狀態(輸出)。w_aβ,b_β為模型參數,σ為Sigmoid激活函數??梢钥吹?,遺忘門f_t影響著對歷史信息,即存儲在記憶單元c_(t-1)里的信息的保留程度。輸入門i_t則影響著當前時刻信息x_t存儲到記憶單元的量。

輸入門作為當前時刻信息載入的開關(標量值),它并不能對當前時刻輸入向量的不同元素進行自適應地調控,盡管輸入向量的不同元素在許多任務中常有不同的重要性。因此現有LSTM缺少自我注意能力。同樣的,標準RNN、GRU等其它RNN結構均存在相同的問題。

元素注意力RNN

注意力(Attention)機制旨在有選擇性地關注數據的不同部分,從而優化系統性能。在許多任務,例如機器翻譯、自然語言處理、語音識別、圖像描述生成等,已經顯示了其有效性。注意力機制和人的感知機理比較一致。人在感知和理解世界時,并不是對每個細節都同等重要地去處理,而是通過關注某些顯著性部分來實現效率的最大化。例如在嘈雜的環境下,人能通過聽覺的注意力機制分辨出自己熟知的人的聲音而忽略掉一些不關心的人的談話。這是人類進化過程中形成的生存機制,能夠利用有限的注意力資源從大量信息中篩選出高價值信息的手段。

針對不同的任務,人們設計了各種各樣的注意力模型來提升系統的能力。在機器翻譯中,通過注意力模型來利用鄰近詞上下文更好地對當前詞進行翻譯,即對鄰域詞及當前詞做權重平均后作為RNN翻譯網絡當前時刻的輸入。在圖像描述任務中,圖像被均勻地分成L部分,每一部分由提取的特征向量描述。為了使網絡有選擇性地、序列化地關注于一些對應語義部分來生成對應的描述,在每個時間步,注意力模型對L個部分賦予不同的權重以獲得權重平均作為LSTM的輸入。

在上述的這些工作中,注意力模型作為RNN額外的子網絡,需要針對具體的任務來設計,目前并沒有一種通用的設計,使RNN層自身具有注意力能力。近年來也有些對RNN結構設計的通用的改進,例如為了降低RNN網絡訓練的難度,Independently RNN(INdRNN)解除掉RNN同一層中的神經元之間的依賴性。

本文中,我們研究如何賦予一個通用的RNN層擁有細粒度注意力能力。對于一個RNN層,我們通過加入一個元素注意力門Element-wise-Attention Gate(EleAttG),使其對輸入向量x_t的不同元素賦予不同的注意力權重。我們將帶有EleAttG的RNN稱為元素注意力RNN。如圖2所示,元素注意力門根據當前時刻輸入向量x_t和前一時刻隱狀態h_(t-1)來決定輸入向量不同元素的重要程度(Attention)a_t,并調制輸入獲得調制后的新輸入(x_t) ? = a_t?x_t。

27.3

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖2 擁有自注意能力的元素注意力RNN塊/層的結構示意圖。

紅色模塊表示新加的元素注意力門。(a)展示了注意力門結構在RNN上的示意圖,此RNN可以是標準RNN、LSTM或GRU;(b)給出了具體的帶注意力門的LSTM層結構。注:一個RNN塊/層可以由若干RNN神經元組成,例如N個。隱狀態h_t的維度等于該層的神經元個數,即N。

以LSTM層為例,在時刻t,對于一個LSTM神經元內部單元的響應計算更新如下:

27.4

即(x_t) ?取代原始輸入x_t參與到RNN的循環運算。元素注意力門的響應向量由輸入和隱狀態決定:

27.5

過去許多注意力設計工作中采用Softmax作為激活函數,從而使得注意力值的和為1。這樣,在同一時刻,某個元素上的注意力值大小會受到其它元素上注意力值的影響。例如,沿著時間注意力穩定的一個元素因此會由于其他元素的改變而其穩定性被破壞。我們放寬了該限制,通過采用Sigmoid激活函數,保證了輸入向量中某個元素的重要性不會由于其他元素的重要性值的改變而被迫改變,從而有更大優化空間。實驗中我們發現放寬該約束可以顯著地提升3D行為識別的性能。

元素注意力門的加入,使得RNN神經元擁有了注意能力。理論上講,每個RNN神經元可以擁有自己的元素注意力門。為了減少計算復雜度和參數量,在我們的設計中,同一RNN層中的所有RNN神經元共享元素注意力門參數。

實驗結果

為了檢驗元素注意力RNN的高效性,我們在基于3D骨架(3D skeleton)數據的行為識別,以及基于RGB的行為識別上分別做了實驗。

在基于3D骨架的人類行為識別的任務上,我們使用3個RNN層和一個全連層來搭建基準分類網絡。每個RNN層由100個RNN神經元組成。作為比較,我們的方案將3個RNN層替換為3個元素注意力RNN層。

我們主要在NTU RGB+D數據庫(簡稱NTU數據庫)上進行實驗分析。NTU是目前最大的Kinect采集的用于3D行為識別的數據庫,包含56880個序列,由60類日常行為組成。骨架數據中,每個人由25個關節點組成。

在基于RGB幀的行為識別任務上,對于一個RGB幀,我們將CNN提出的特征向量作為RNN網絡的一個時刻的輸入來利用空時信息進行序列分類。類似地,作為比較,對比方案中將RNN層替換為了元素注意力RNN。

元素注意力門的有效性

我們在NTU數據庫上通過基于3D骨架的行為識別任務來分析元素注意門的效率。如圖3所示,對于3層GRU網絡,當第一層GRU被換為元素注意力GRU后,識別精度在Cross-Subject和Cross-View的設置下分別提升了3.5%和3.4%。隨著替換層數的增加,性能也隨之增加。當三層均被替換為元素注意力GRU后,識別精度較之于基準網絡實現了4.6%和5.6%提升。元素注意力RNN層作為通用的設計,可以用在RNN網絡的任何一層。

27.6

圖3 對提出的元素注意力門在三層GRU網絡上的性能分析(分類精度%)。m-EleAtt-GRU+n-GRU”表示前m層是提出的元素注意力GRU層,其余n層為原始GRU層?!?-GRU(Baseline)”是原始GRU構成的基準網絡。該實驗在基于3D骨架的行為識別任務上的NTU數據庫的Cross-Subject(CS)和Cross-View(CV)設置下完成。

元素注意力RNN可用于建模其它信號

元素注意力RNN層作為一個通用設計,除了3D骨架數據,也可以被用于處理其它數據。在這里,我們通過使用CNN在RGB幀提取的特征作為RNN網絡的輸入,來驗證該注意力機制在CNN特征上仍然有效。表1比較了元素注意力GRU(EleAtt-GRU)和原始GRU (Baseline-GRU)在基于RGB的視頻行為識別上的性能,其顯示元素注意力GRU比原始GRU識別精度高2%-3.8%。

27.7

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?元素注意力門可用到不同RNN結構

我們在三種代表性RNN結構上,即標準RNN、LSTM和GRU,分別驗證設計的有效性。如表2所示,由于注意力門的引入,識別性能在三種結構上均實現了顯著的提升。

27.8

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 元素注意力RNN加快了學習進程

圖4展示了原始GRU和元素注意力GRU在訓練過程的損失(Loss)變化曲線??梢钥吹?,由于注意力門結構的引入,網絡收斂比原始GRU更快了,并且最終的損失也降得更低了。對輸入在元素上的自適應調制是一種更細粒度的信息流控制從而使得后續RNN神經元內部的學習更容易。

27.9

圖4 訓練時的損失曲線圖。該實驗分別在NTU數據庫的Cross-Subject和Cross-View設置上進行來比較原始GRU(Baseline-GRU)和提出的元素注意力GRU(EleAtt-GRU)的收斂特性。實線表示訓練集合上的結果,虛線表示驗證集合上的結果。

可視化分析

為了更好地理解注意力機制是如何工作的,我們基于學到的第一層GRU的元素注意力門的響應進行了可視化,如圖4所示。對于以3D骨架為輸入的行為識別,RNN網絡的第一層的輸入為J個骨架節點的3D坐標,即維度為3J。在每個時刻,元素注意力門自適應地對每個元素乘上一個注意力權重值。圖4用圓圈的大小來表示每個節點相對注意力值的大?。榱吮阌诳梢暬?,我們將一個節點的X、Y、Z坐標上的相對注意力值的和作為該節點的注意力相對值),圈越大表示相對注意力值越大。

27.10

圖5 在基于3D骨架的人類行為識別任務上,根據第一層元素注意力GRU上注意力門響應值的大小在各個骨架節點上進行可視化。

對于第一行的“踢腿”行為,相對注意力值在對行為識別比較重要的腳節點上較大。對于第二行的“觸摸脖子“行為,相對注意力值在手和頭節點上比較大,而在不相關的腳節點上很小。這表明學到的注意力能關注于更有判別力的節點,和人的認知相符。

和其它先進方法的比較

表3、4、5中對比了我們的方法和現有的方法在NTU、N-UCLA和SYSU 3D骨架行為識別數據庫上的比較。由于有效的注意力機制設計,我們方法實現了最好的性能。

27.1127.12

本文中,我們對RNN層的設計進行了改進,提出了通過對RNN層加入一個簡單有效的元素注意力門,使RNN神經元自身擁有注意力能力。通過對不同的元素自適應地賦予不同的重要性來更加細粒度地控制輸入信息流。該注意力門設計簡單有效,可以用到各種各樣的RNN結構中,及不同的任務中。

?

更多細節請參考論文

Pengfei Zhang, Jianru Xue, Cuiling Lan, Wenjun Zeng, Zhanning Gao, Nanning Zheng, “Adding attentiveness to the?neurons?in Recurrent Neuronal Networks”, ECCV‘18.

論文鏈接:https://arxiv.org/abs/1807.04445

參考文獻:

[1] Luong, M.T., Pham, H., Manning, C.D.: Effective approaches to attention-based neural machine translation. arXiv preprint arXiv:1508.04025 (2015).

[2] Xu, K., Ba, J., Kiros, R., Cho, K., Courville, A.,Salakhudinov, R., Zemel, R., Bengio, Y.: Show, attend and tell: Neural image caption generation with visual attention. In: ICML. (2015) 2048-2057.

[3] Li, S., Li, W., Cook. C, Zhu, C., Gao, Y.: Independently recurrent neural network (IndRNN): building a longer and deeper RNN. In: CVPR.(2018).

(轉載自微軟研究院AI頭條)

冯仰妍破处门