讀書筆記26:adding attentiveness to the neurons in recurrent neural networks
摘要首先介紹RNN可以模擬複雜的序列資訊的temporal dynamics,但是當前的RNN神經元的結構主要是控制當前資訊和歷史資訊的貢獻,但是沒有考慮探索input vector中不同元素的重要性(這個指的是某一個時刻的vector的不同dimension的重要性),因此本文提出了element-wise-attention gate(EleAttG)加入到RNN block中,得到EleAtt-RNN block。提出的ElleAttG是一個additional fundamental unit,可以靈活地加到任何RNN結構中,是一個一般性的結構。最後,本文的模型在skeleton based action recognition和RGB based action recognition任務上都進行了測試,都顯示加入這個模組後RNN的能力可以得到極大的提高。
對於EleAttG模組,一個簡單直觀的示意圖如下
可以看出,這個模組的想法很是直截了當,通過歷史的資訊和當前的資訊計算一個EleAttG,用計算好的東西對當前的輸入的每一個維度的貢獻進行一下modulation,得到一個,再用這個modulated的當前輸入進行正常的RNN操作。
對於一個標準的RNN來說,t時刻的hidden state的計算如下,基於當前時刻的輸入和上一時刻的hidden state
標準的RNN會有梯度消失的問題,LSTM解決了這個問題,GRU是一個比LSTM簡單但是很相似的結構,其公式如下
GRU有兩個gate,一個reset gate,一個是update gate,分別是
LSTM的公式如下
這些模型啟發本文作者的地方在於,這些模型在處理當前輸入xt的時候都是當做一個整體來操作,沒有像對待hidden state一樣對每一個dimension進行控制,因此,本文就提出了對每一個dimension進行分配不同權重加以控制的方法,其實就是和不同的RNN變體一樣,只不過這次多了一個對xt的不同元素的控制。
EleAttG模組得到的是一個向量,和當前輸入xt維度相同,用來控制每一個dimension元素的貢獻
可見,這個vector的計算和之前那些RNN模型中計算gate的方式一模一樣,都是基於當前的輸入和前一時刻的hidden state,只不過這次是作用在xt上了,這裡面的就是一個sigmoid函式,W和b都是待訓練的引數,這個式子的意思就是用上一時刻的hidden state和當前輸入xt來巨鼎當前輸入xt的每一個元素的重要程度。有了這個之後,就可以得到modulated input了,具體形式是
之後其他的計算就是基於而不是原始的當前輸入xt了,EleAttG加入之後,對於不同的RNN模型,具體的操作方式不同,但是也就是將xt換成就行了,例如標準的RNN加入EleAttG之後就按下式
若是EleAttG-GRU,就是
其他RNN網路以此類推,同理可得。