CVPR2017有哪些值得读的Image Caption论文?
作者丨崔權
學校丨早稻田大學碩士生
研究方向丨深度學習,計算機視覺
知乎專欄丨サイ桑的煉丹爐
前言
由于最近在做一個 Image Caption 的任務,讀了一些最新的論文,把 CVPR2017 里比較中規中矩的 Image Caption 論文給拿出來總結一下。
說中規中矩是因為有一些 Caption 的論文做的方向比較偏,比如有一篇叫做 StyleNet,生成一些具有特定風格的描述,比如幽默風趣的 caption。而這篇總結里挑出來的論文都是在 MSCOCO 的 caption 任務上取得了不錯效果的。?
沒有接觸過 Image Caption 的同學這里有之前我在給研究生新生介紹 Image Caption 時用的 slides,Introduction of Image Caption[1]。沒有什么文字,都是直觀上的圖片解釋。
一共四篇論文,列表如下:
1. SCA-CNN: Spatial and Channel-wise Attention in Convolutional Networks for Image Captioning?
2. Knowing When to Look: Adaptive Attention via A Visual Sentinel for Image Captioning?
3. Skeleton Key: Image Captioning by Skeleton-Attribute Decomposition?
4. Deep Reinforcement Learning-based Image Captioning with Embedding Reward
SCA-CNN: Spatial and Channel-wise Attention in Convolutional Networks for Image Captioning
由于這篇文章應該是效果最好的,所以放在最前面,如果對 encoder-decoder 模型不熟悉可以先看第二篇,第二篇基于的是傳統的 visual attention 方法。?
這篇論文出自于騰訊 AI Lab,文章一開始就肯定了 visual attention 在 image caption 中起到的重要作用,并且指出其原因主要是人類的視覺系統在進行相關任務時并不是處理一整張圖片而是根據需要每次處理圖片的 selective part,這和 attention機制想要模擬的過程是相同的。
這篇文章使用的還是傳統的 CNN-RNN 模型,也稱為 Encoder-Decoder 模型,但是文章指出,在之前別人的研究中使用的 attention 模型僅僅通過空間 attention 權重對上下文語義和 conv layer 輸出的最后的 feature map 進行了映射,在 CNN 環節中并沒有進行 attention 的相關操作。
在這篇文章中,作者們充分利用了 CNN 的三個特性,來提出一種新的 attention 機制。?
具體來說,這是一種 spatial and channel-wise 的 attention 機制,這種 attention 機制學習的是多層 3D-feature map 中的每一個 feature 與 hidden state 之間的聯系,也就是在 CNN 中引入 attention,而不是單單使用 CNN 部分的輸出。
結合下圖闡述兩點 SCA 的 motivation:
因為一張 channel-wise的feature map 本質上就是一個對應 filter 產生的 detector response map(feature map 中 element 較大的地方說明 response 大,也就是該處含有某種 semantic attribute,比如眼睛、鼻子等),那么基于 channel-wise 的 attention 機制就可以被視為是一個根據上下文語義選取相關語義特征的過程。
比如圖中的例子,當我想預測 cake 這個單詞時,channel-wise attention 就會給含有蛋糕、火焰、燈光和蠟燭形狀物體的 feature map 分配更大的權重。?
由于一張 feature map 依賴于前層的 feature map 們,一個很自然的想法就是對多層 feature map 使用 attention 機制,以便能夠獲得多層語義抽象概念。
比如,在前層中對 feature map 中含有的較低級的 semantic attributes,例如圓柱體(蛋糕的形狀)、陣列(蠟燭的排放),賦予更大的權重,對于 cake 這個單詞的預測是很有益的。 SCA-CNN 的大概運作方式如圖:
對第 l 層來說,未進行 attention 的 feature map是第(l-1)卷積層的輸出,網絡首先通過 channel-wise attention 函數來計算 channel-wise attention 權重。
attention 權重將用來與進行 channel-wise 乘積(的 channel 維度和向量的長度是相等的,將中第 i 個 channel 維度的 feature map?與中第 i 個標量相乘,乘積返回的結果是一個和 形狀相同的張量,這樣的操作稱為 channel-wise 乘積)。
然后使用 spatial attention 函數來計算 spatial attention 權重,最后該層的輸出由共同決定該層的輸出。
在進行預測第 t 個單詞的時候,通過將 t-1 時刻的 hidden layer 狀態、最后一層 conv layer 經過 C-S attention 的輸出和 t-1 時刻的 word embedding共同輸入進 LSTM,對 t 時刻的 hidden layer 狀態進行預測:?
再將 t 時刻的 hidden state與 t-1 時刻的word embedding結合起來進行 MLP,輸出為一個字典大小 D x 1 的向量,最后進行 softmax 選出最大概率對應的 word:
據我看過的代碼,attention 的實現基本都是通過 MLP+activation 來完成,論文的具體公式推導不作分析,我已經全部推導過,各個變量的維度也很清晰,如果有問題可以聯系我。?
有的人可能會說,為什么一定要先進行 channel-wise attention 再進行 spatial attention 呢??
文章中給出了兩種結構,先 channel 后 spatial 的稱為 C-S 模型,另一種稱為 S-C 模型,對這兩種模型都進行了實驗,結果是,總的來說,C-S 模型比 S-C 模型表現要好一點。
Knowing when to look: Adaptive Attention via A Visual Sentinel for Image Captioning
這篇文章的主要工作是對 visual attention 進行的改進。?
傳統的 Encoder-Decoder 模型在生成每個單詞時都要求網絡 attend to 圖片,但是 decoder 在生成一些 non-visual 的單詞比如"the"、"and"和"of"時似乎不需要 visual attention,還有一些單詞是一些管用詞組,可以通過語言模型來可靠預測,也不需要 visual attention。
這篇文章提出的是基于 visual sentinel(哨兵)的 adaptive attention 模型,在生成每個單詞時,模型決定是 attend to 圖片還是視覺哨兵,當語言模型不能提供有效信息的時候,模型才 attend to 圖片。?
舉個例子:
圖片的描述為"A white bird perched on top of a red stop sign",一只白色的鳥棲息在一個紅色 stop 標志上。
像"A"和"of"這種單詞是沒有像"red"和"bird"這種易于理解的視覺信號的,并且在生成"on top of"這種固定搭配詞組的時候,語言模型就可以勝任,并不需要visual attention的幫助。
事實上,如果在生成這種不應該依靠 visual attention 的詞時,使用了 visual attention 的話,生成的梯度可能會誤導模型,并且可能會毀了之前 visual attention 在更新參數時做出的努力。?
對 visual sentinel 的解釋:?
visual sentinel是一個隱變量(latent variable),主要用來表示 decoder 已知的東西(what the decoder already knows)。decoder 記憶的內容有長期的也有短期的內容,有圖片的內容也有語言的內容,visual sentinel 就是拿來幫助 decoder 決定是否需要 attend to 圖片,通過一個 sentinel 門實現,通過線性插值的方式決定是否需要依賴圖片,表示為:?
這里表示 visual attention,總的 attention 結果由 visual sentinel 和 visual attention 共同決定。?
該模型的 attention module 如圖所示:
整個 attention 計算過程和預測詞的過程如下:
1. 首先是普通 visual attention 的計算:
這里最后一個特殊符號是一個元素全部為 1 的向量,其主要目的是為了將與其相乘的矩陣變得與加號前面的矩陣大小相同。?
2. 然后是 visual sentinel 的計算:?
中間的乘號是 element-wise multiplication。?
3. 接著是 sentinel gate 的計算:
4. 總的attention計算:
5. 最后是預測詞:
p 是一個 1xD 的向量,D 表示詞庫的大小,最后得到的是概率最大詞對應的 index,再從詞庫中返回這個 word。
Skeleton Key: Image Captioning by Skeleton-Attribute Decomposition
這篇文章指出,目前大多數的 image caption 模型中使用的 language model 都是逐個逐個生成詞的,按照 label 中 caption的順序,但是對于人來說,一種更自然的方式是,先確定圖中有哪些物體,物體之間的關系是什么,然后再使用物體的矚目特征來仔細描述每一個物體。
文章提出了一種 coarse-to-fine(我將其理解為椎輪大輅)的方法,將原始的圖片描述分解為兩個部分,一個主干句(skeleton sentence)和各種物體的特征(attributes),再生成語句的時候,也分為兩個部分進行生成。通過這種分解,該文章的模型達到了 state-of-the-art 的效果。?
舉個例子:
為了生成上圖中的描述,首先生成一句 skeleton sentence: horse on pasture(馬兒在牧場上),用來表示物體中的主要物體和物體之間的關系,horses on pasture;然后,這些通過 visual attention 重新訪問這些物體,當物體的 attention response 很大時,就生成對這些物體特征的描述,Three 和 a green。將兩個句子結合起來生成最終的描述,Three horses on a green pasture。?
方法的結構如圖:
1. Skeleton-Attribute decomposition for captions:第一步需要對已有的訓練集 caption 作語法分析,并且提取出主干句和特征描述。NP/VP/PP/AP 分別是名詞/動詞/副詞/形容詞。?
2. 使用經過了 CNN 提取的特征作為語言模型的輸入,decoder 部分由兩個 LSTM 組成,一個是 Skel-LSTM,用來生成主干句,另一個是 Attr-LSTM 用來生成描述特征。?
3. 在 Skel-LSTM 中使用的是 visual attention,在每個 time step 生成一張 attention map,用來預測這一時刻的詞。用來描述 skeleton sentence 中的 skeleton object 時生成的 attention map 也可以用在生成對該 object 的特征描述上,所以在 Skel-LSTM 中獲得的 visual attention 也可以在 Attr-LSTM 中再次使用。?
在 Attr-LSTM 中對特征的生成不是逐個 object 生成的,是一次性生成的,因為學習過程中由于 Skel-LSTM 中物體是有順序的,所以 Attr-LSTM 也學習了特征的順序。
Attr-LSTM 中不僅使用了 attention,還使用了 current time step t 對應 LSTM 的 hidden state 和對應 skeleton word 的 word embedding。具體方法不細說請參考論文,歡迎討論。?
4. 最后將 skeleton sentence 和 attributes 結合起來,作為最終的 caption。?
順便提及一下,文章也指出了 encoder-decoder 模型的兩個問題,很值得我們思考解決方法:?
-
鸚鵡學舌式地復述在訓練過程中出現的語句,并且在生成語句時,描述和句式兩個方面缺乏變化;
-
由于是逐字生成描述,物體的特征需要在物體之前生成,因為不管是英語還是中文,形容詞都是在名詞之前出現的。但是從人類的角度來說,對一個物體的描述是需要 refer to 物體的。
Deep Reinforcement Learning-based Image Captioning with Embedding Reward
這是將強化學習與圖像描述結合起來的論文,因為我的強化學習學得不多,只停留在 GAN 和 GAN 的一些變體,如果有錯誤請指正。?
文章提出了一種新的 decision-making 框架來進行圖像描述,用了一個"policy network"和一個"value network"協同生成描述。?
policy network 扮演一個局部 guidance 的角色,根據這一時刻的狀態,提供對下一個詞預測的置信度。?
value network 扮演一個全局、前瞻的 guidance,評估現狀態所有可能的擴展狀態。該網絡本質上是在調整學習的方向,從預測正確的詞匯到描述與 ground truth 相似的描述(這句話我不是很理解)。?
使用的是 actor-critic 方法來訓練網絡,也就是先行動后打分的方法,是一種平衡了 value-based methods 和 policy-based methods 的方法。
作者說,他們的這種方法只通過 policy network 就可以提取出正確但是概率卻很低的單詞,具體例子如下圖:
Next Action 表示下一個生成單詞的 preference ranking,顯然在現在時刻最合適的詞 holding 并不是最優選擇,但是 value network 卻會 go forward 到假設生成 holding 這個詞的 state,然后評估這個 state,對于生成一個合適描述這一目標,分數有多高。?
作者首先使用基于交叉熵 loss 的監督學習 pretrain 了一個 policy network,使用均方誤差訓練了一個 value network,然后使用深度強化學習來改進兩個網絡。深度強化學習常用的領域是游戲和控制,對于 caption 這個任務來說,很難定義一個明確的目標,也就沒法明確優化的目標。
這篇論文中提出了一種 actor-critic 模型,使用的 reward 由 visual semantic embedding 生成(visual semantic embedding 計算的是圖片和描述的相似度,也就間接說明了 caption 的正確性,可以作為強化學習中合適的 target 來進行優化)。?
文中具體的實現方法我也只能直觀上地理解,公式推導我還不行,當我補上了足夠的強化學習知識再來進行補充。?
最近看新聞,騰訊 AI lab 在 MSCOCO 的 caption 任務上奪冠的模型也使用的是強化學習模型,我覺得強化模型在 caption 方向上可能會大放異彩。
相關鏈接
[1] slides:http://slides.com/walkingdead526/deck#/
論文鏈接
[1] https://arxiv.org/abs/1611.05594
[2] https://arxiv.org/abs/1612.01887
[3] https://arxiv.org/abs/1704.06972
[4] https://arxiv.org/abs/1704.03899
? ? ? ? ??
?我是彩蛋
?解鎖新功能:熱門職位推薦!
PaperWeekly小程序升級啦
今日arXiv√猜你喜歡√熱門職位√
找全職找實習都不是問題
?
?解鎖方式?
1. 識別下方二維碼打開小程序
2. 用PaperWeekly社區賬號進行登陸
3. 登陸后即可解鎖所有功能
?職位發布?
請添加小助手微信(pwbot01)進行咨詢
?
長按識別二維碼,使用小程序
賬號注冊paperweek.ly
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 訪問作者知乎專欄
總結
以上是生活随笔為你收集整理的CVPR2017有哪些值得读的Image Caption论文?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Face++ 论文解读:一种新的行人重识
- 下一篇: 本周不容错过的的9篇NLP论文 | Pa