原標題:ACTION RECOGNITION USING VISUAL ATTENTION

ACTION RECOGNITION USING VISUAL ATTENTION

arXiv: https://arxiv.org/pdf/1511.04119.pdf

本文將attention加入了action recognition中了,屬於比較早的文章,思路較簡單,但其中的一些想法還是很有啓發性的。

Attention:

Attention的思想是將目標作進一步refined,讓模型可以捕獲更精細的特徵,是通過將特徵分成更小的patch,Attention將篩選出更有利於描述特徵的那部分patch。

分爲soft-attention和hard-attention兩種。

Soft-attention:

假如我們的輸入是8*8*1024的特徵向量,我們可以將8*8的特徵分成4個4*4的或是16個2*2的或是64個1*1等等的patch。不同尺度patch的大小可以根據具體要求來。之後將patch送入softmax進行打分。此處的softmax函數是包含可學習參數的:

學習到權重之後,以對不同的patch進行score,本文中最終的操作是將特徵和score求一個期望。

Xt指的是每一個patch,總共有K*K個,對應位置的score和patch相乘然後求和。

本文的結構示意圖如下:

將score與x相乘之後作爲輸入送入三層的lstm,之後的輸出經過tanh作爲最終輸出標籤,同時將輸出不經過tanh,作爲下一個時刻的score與x相乘作爲下一個時刻lstm的輸入。第一個時刻的cell state C0和hidden state H0並不是0,而是有初始化的。

這裏重新設計了loss函數:

第一項是增加了時間維度的交叉熵損失,第二項着重於softmax中的score。第三項是類似偏置的一個正則項?

關於loss中score項的設置,是基於一個假設:

這項損失之前是有係數

Rnn可以在每個時間步都有輸出,也可以只要最後一個時間步的輸出,顯然這裏採用的是第一種,在tensorflow中如何實現每一個時間步的輸出還沒找到,在Keras中是通過設置參數return_sequences=True實現的。

這裏有疑問如下:

是不是可以說y1=tanh(I2)?,如果是的話,是如何保證I1.shape==I2.shape的?還是說在後面又對I2進行了操作?

最終的效果要比rgb流的好一些,但遠不如雙流。

查看原文 >>
相關文章