1. 程式人生 > >Attention Model in Visual Question Answering

Attention Model in Visual Question Answering

注意力機制常常用於Visual Question Answering和Image Caption中,此篇主要介紹VQA中的注意力機制。

《Recurrent Models of Visual Attention》

使用強化學習的方法。模擬人類看東西的方式,從上到下,從左到右掃描圖片,從一個區域到另一個區域。這裡的“區域”即時定義的part或glimpse。本文提出了注意力驅動的RNN框架,按照時間順序處理輸入,一次處理一張圖片中不同的位置。本文將注意力問題看作是目標引導的序列決策過程,在一個時間點,agent只能根據有限範圍的感受器來觀察全域性。agent可以自主選擇感知的位置區域,可以通過執行actions來影響環境的真實狀態。由於環境只是部分可觀察,需要額外的資訊來輔助決定如何行動和如何有效選擇感知區域。每一步agent都會受到獎勵或懲罰,目標是把獎勵最大化。

glimpse網路中lt表示步驟t的位置,xt表示步驟t的影象x,p(xt,lt-1)表示步驟t的glimpse,使用以為引數的線性層對映到隱藏空間,再通過另一個以為引數的線性層將前兩步結合,產生t步驟的glimpse特徵向量gt,這個過程定義為函式。gt傳入隱藏層ht並且結合ht-1的內部表示,location網路和action網路使用ht生成下一位置lt和action/classification at。

在執行一個action後,agent會收到一個新的visual observation xt+1和一個獎勵訊號rt+1。

《Show, Ask, Attend, and Answer: A Strong Baseline For Visual Question Answering》

image embedding:用即CNN最終14x14x2048池化層前一層結果的三維張量來表示輸入影象;question embedding:用s即用q做word embedding輸入LSTM的最終狀態來表示問題。

計算多注意力在影象特徵的空間維度分佈:每個影象特徵glimpse xc是影象特徵在所有位置的加權平均,注意力權重分別對每個glimpse c做normalize。F={F1,F2,...,FC}實際上是用兩個卷積層來建模,每個Fi在第一層共享引數。

《Where To Look: Focus Regions for Visual Question Answering》

輸入問題、候選答案和從一系列自動選擇的候選區域得到的影象特徵,用word2vec和一個兩層網路將問題和回答編碼。每個區域的視覺特徵用一個在ImageNet上訓練的CNN的最上兩層進行編碼。語言和視覺特徵通過點積嵌入和比較,即用softmax來生成每個區域相關的權重。用這些權重和一個視覺語言聯合特徵的加權平均作為一個兩層網路的輸入,輸出答案是否正確。

《Stacked Attention Networks for Image Question Answering》

本文提出了一個棧式注意力網路來學習回答影象的自然語言問題,很多時候答案只和影象中的一個小區域有關,SAN網路逐漸濾掉噪聲和精確找到與答案高度相關的區域,通過多步推理預測答案。

用CNN提取影象特徵,用LSTM或CNN編碼問題。給定影象特徵矩陣VI和問題特徵矩陣VQ,輸入到單層神經網路中,經過softmax生成影象中區域的注意力分佈(d是影象展示維度,m是影象區域數量,VQ是一個d維向量,,pI是一個m維向量表示對於VQ的每個區域的注意力可能性),將這個過程多次迭代最終得到問題相關區域:

《Dual Attention Networks for Multimodal Reasoning and Matching》

雙重注意網路模型,利用視覺和文字共同注意力機制捕捉視覺和語言之間的細微互動。r-DAN用於多模式推理,M-DAN用於多模式匹配,分享同一個框架,但在視覺和文字關注方面有差異。

影象特徵通過19層的VGG或152層的ResNet提取。先將影象縮放到448x448並將他們輸入到CNN中,使用VGG或ResNet的最後一個池化層來獲取影象特徵。最終輸入影象由{v1,v2,...,vN}來表示,N是影象區域的數量,vn是一個512維(VGG)/2048維(ResNet)的特徵向量。

視覺注意通過關注影象的某些部分來生成上下文向量(k步驟,為k-1步驟之前資訊編碼的記憶向量):

這裡使用soft attention機制,上下文向量從輸入特徵向量的加權平均獲得,注意力權重使用一個兩層feed-forward神經網路和softmax函式計算(h是隱藏狀態,\alpha是注意力權重,W為引數,\odot是element-wise乘法):

文字特徵通過雙向LSTM生成文字特徵。注意力計算省略。

《Hierarchical Question-Image Co-Attention for Visual Question Answering》

本文提出影象特徵引導文字注意力,文字特徵引導影象注意力的系統注意力機制,構建了word-level,phrase-level,question-level的co-attention maps。

影象特徵V={v1,v2,..,vN},vn表示空間位置n的影象特徵向量;問題特徵Q={q1,q2,...,qT},qt表示第t個單詞的特徵向量。將單詞對映到向量空間表示為Qw={q1w,q2w,...,qTw},由此可以計算phrase-level的特徵qtp和question-level的特徵qts(略)。

本文提出兩種協同注意力機制:

parallel co-attention同時產生影象和問題注意力。根據影象特徵V和問題表達Q,計算affinity matrix C(Wb表示權重):

計算影象注意力可以maximize out the affinity over the locations of other modality,例如:,也可以將affinity matrix當作一個特徵,如下計算影象和問題attention maps:

基於上述注意力權重,影象和問題的注意向量可以用影象和問題特徵的權重和來計算:

alternating co-attention順序產生影象和問題注意力。包括三個步驟:問題總和為單個向量q,基於問題總和q得到影象注意力,基於影象注意力特徵得到問題注意力。定義一個注意力操作,X為影象/問題特徵,g為從影象/問題中匯出的注意力引導g,輸出影象/問題的注意力向量(是元素全為1的向量):

一開始g=0,X=Q;第二步X=V,V是影象特徵,g是從第一步得到的intermediate attended問題特徵s;最後使用attended影象特徵v作為引導來attend問題,如X=Q,g=v。

VQA可以作為一個分類任務,基於三層co-attended的影象和問題特徵來預測答案。

參考連結: