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

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

RNN的網路結構

迴圈神經網路(Recurrent Neural Networks, 縮寫RNNs)

,例如標準RNN、LSTM、GRU等,已經

被廣泛用於對時間序列資料的處理和建模

,來解決許多應用問題,例如行為識別、機器翻譯、手寫識別等。RNN在對時域動態特性建模以及特徵學習上具有強大的能力。如圖1所示,在每個時間步,RNN神經元通過當前時刻的輸入x_t和前一時刻的隱狀態資訊h_(t-1)來更新當前時刻的隱狀態h_t,從而具有對歷史資訊的記憶性。

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

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

標準(Standard)RNN存在梯度消失的問題,因此在對長時(Long Range)依賴性建模中效能並不理想。LSTM(Long Short-Term Memory)、GRU(Gated Recurrent Unit)透過引入門(Gate)設計一定程度上減輕了梯度消失問題。

門結構根據當前輸入和隱狀態資訊來控制著對歷史資訊遺忘量,以及對當前輸入資訊接納量,從而實現對歷史和當前資訊的有效利用

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

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

其中,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。

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

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

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

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

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

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

過去許多注意力設計工作中採用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網路的任何一層。

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

圖3 對提出的元素注意力門在三層GRU網路上的效能分析(分類精度%)。m-EleAtt-GRU+n-GRU”表示前m層是提出的元素注意力GRU層,其餘n層為原始GRU層。“3-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%。

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

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

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

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

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

圖4展示了原始GRU和元素注意力GRU在訓練過程的損失(Loss)變化曲線。可以看到,由於注意力門結構的引入,網路收斂比原始GRU更快了,並且最終的損失也降得更低了。對輸入在元素上的自適應調製是一種更細粒度的資訊流控制從而使得後續RNN神經元內部的學習更容易。

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

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

視覺化分析

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

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

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

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

和其它先進方法的比較

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

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

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

本文中,我們對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。0444

5

參考文獻:

[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)。

作者簡介

#FormatImgID_25##FormatImgID_26#

蘭翠玲,微軟亞洲研究院網路多媒體組研究員,從事計算機視覺、訊號處理方面的研究。研究興趣包括行為識別、姿態估計、深度學習、影片分析等,並在多個頂級會議、期刊上發表了20多篇論文。

本賬號為微軟亞洲研究院的官方知乎賬號。本賬號立足於計算機領域,特別是人工智慧相關的前沿研究,旨在為人工智慧的相關研究提供範例,從專業的角度促進公眾對人工智慧的理解,併為研究人員提供討論和參與的開放平臺,從而共建計算機領域的未來。

微軟亞洲研究院的每一位專家都是我們的智囊團,你在這個賬號可以閱讀到來自計算機科學領域各個不同方向的專家們的見解。請大家不要吝惜手裡的“邀請”,讓我們在分享中共同進步。

也歡迎大家關注我們的微博和微信 (ID:MSRAsia) 賬號,瞭解更多我們的研究。