一、背景
文章題目:《Show, Ask,Attend, and Answer: A Strong Baseline For Visual Question Answering》
ArXiv上的一篇文章,雖然是17年的比較早,但是比較經典,後面看到很多新的模型都與這個模型進行了對比。看了一下模型結構,算是SAN網絡的更新版吧。
文章下載下傳位址:https://arxiv.org/pdf/1704.03162.pdf
文章引用格式:Vahid Kazemi and Ali Elqursh. "Show, Ask,Attend, and Answer: A Strong Baseline For Visual Question Answering." arXiv preprint, arXiv: 1704.03162, 2017.
項目位址:文章中并沒有給,在github上找了一個https://github.com/momih/vqa_tensorflow
二、文章導讀
先附上文章的摘要:
This paper presents a new baseline for visual question answering task. Given an image and a question in natural language, our model produces accurate answers according to the content of the image. Our model, while being architecturally simple and relatively small in terms of trainable parameters, sets a new state of the art on both unbalanced and balanced VQA benchmark. On VQA 1.0 [2] open ended challenge, our model achieves 64.6% accuracy on the teststandard set without using additional data, an improvement of 0.4% over state of the art, and on newly released VQA 2.0 [8], our model scores 59.7% on validation set outperforming best previously reported results by 0.5%. The results presented in this paper are especially interesting because very similar models have been tried before [32] but significantly lower performance were reported. In light of the new results we hope to see more meaningful research on visual question answering in the future.
這篇文章對于VQA提出了一種新的方法。該方法在VQA 1.0資料集上比最好的方法還多提高了0.4%的精度,達到了64.6%。在VQA 2.0資料集上,比最好的模型提高了0.5%,精度達到了59.7%。作者也提到了,這篇文章與SAN很像,(關于SAN之前的解讀:【文獻閱讀】SAN——一種利用雙層注意力的VQA網絡(T. Do等人,ArXiv,2015,有代碼)),但表現比SAN更好一些。
三、文章詳細介紹
早期的VQA模型都比較簡單,作者結合了軟注意力,設計的VQA模型如下圖所示:
同理,作者還是将VQA視作一個分類問題,即給定問題Q和圖像I,來預測備選答案的機率:
1. 圖像嵌入部分
獲得圖像嵌入,作者使用的是ResNet,取最後一個池化層,得到的特征大小是14×14×2048維的,然後再對深度次元進行l2範數限制。
2.問題嵌入部分
思路和SAN網絡中的處理思路一樣,先将問題嵌入到長度為p的向量中,然後将這個向量傳入LSTM獲得最後的問題嵌入。
3.堆疊注意力
這部分思路也和SAN一樣。圖像注意力是圖像特征在所有空間位置上的權重平均,注意力權值是對每一個注意力對象分别歸一化。實踐中的注意力對象是通過兩層卷積層模組化獲得,每一個對象都在第一層共享參數。作者僅依靠不同的初始化來産生不同的注意力分布。
4.分類器
最後将得到的圖像注意力和LSTM的結果相連,最後輸入到一個非線性層中輸出正确答案的機率,這裡的非線性層使用的是兩層全連接配接網絡。
最終模型的loss函數表示為:
5.實驗
輸入圖像都做中心裁剪,裁剪為299×299的;ResNet采用152層的,圖像特征采用最後一個平均池化層,大小14×14×2048,并在深度次元上使用l2範數;
輸入的問題嵌入到長度為300的向量,然後先傳入tanh層激活;接下來再傳入LSTM層,LSTM的unit設定為1024,最大問題的長度設定為15。
為了計算注意力,将LSTM的輸出拉平後,連接配接在圖像的深度次元上;在傳入1×1的卷積層,深度為512,後面跟一個ReLU激活層;輸出的特征再輸入另一個1×1卷積層,深度為2,再跟一個softmax層來獲得注意力。
最後再進一步的将圖像注意力和LSTM的結果連接配接,傳入全連接配接層,大小為1024,後跟一個ReLU激活層;将輸出傳入大小為3000的線性層,後再跟一個softmax層,獲得最後答案的機率。這裡3000就是答案的數量設定,這大概占據了VQA答案數量的92%,剩下的一些低頻的答案,都不在考慮範圍,他們對loss的貢獻也很少。
實驗中,dropout設定為0.5,優化器為Adam optimizer,batch size為128,訓練10萬個epoch。初始學習率為0.001,并在5萬個epoch後開始衰減,下圖為實驗結果:
其中:
• No l2 norm: ResNet features are not l2 normalized. 指ResNet沒有經過l2範數歸一化
• No dropout on FC/Conv: Dropout is not applied to the inputs of fully connected and convolution layers. 在全連接配接和卷積層中沒有使用dropout
• No dropout on LSTM: Dropout is not applied to the inputs of LSTM layers. 在LSTM中沒有使用dropout
• No attention: Instead of using soft-attention we perform average spatial pooling before feeding image features to the classifier. 用空間池化替代空間注意力
• Sampled loss: Instead of averaging the log-likelihood of correct answers we sample one answer at a time. 隻有一個正确答案(之前給出的是10個正确答案,然後計算預測答案和這10個答案的正确得分)
• With positional features: Image features φ are augmented with x and y coordinates of each cell along the depth dimension producing a tensor of size 14 × 14 × 2050. 圖像特征增加了x和y坐标
• Bidirectional LSTM: We use a bidirectional LSTM to encode the question. 編碼問題時采用雙向LSTM
• Word embedding size: We try word embeddings of different sizes including 100, 300 (default), and 500. 單詞嵌入的次元分别設定為100, 300,500
• LSTM state size: We explore different configurations of LSTM state sizes, this include a one layer LSTM of size 512, 1024 (default), and 2048 or a stacked two layer LSTM of size 1024. LSTM的輸出大小分别設定為512,1024,2048(或者2個1024的疊加)
• Attention size: Different attention configurations are explored. First number indicates the size of first convolution layer and the second number indicates the number of attention glimpses. 不同的注意力層數和注意力數量。
• Classifier size: By default classifier G is consisted of a fully connected layer of size 1024 with ReLU nonlinearity followed by a M = 3000 dimensional linear layer followed by softmax. We explore shallower, deeper, and wider alternatives. 使用更淺層或者更深層或者對應替代的分類器