论文笔记:Image Caption(Show, attend and tell)
生活随笔
收集整理的這篇文章主要介紹了
论文笔记:Image Caption(Show, attend and tell)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
Show, Attend and Tell
1、四個問題
- Image Caption(自動根據(jù)圖像生成一段文字描述)。
- 在Show and Tell提出的Encoder-Decoder架構(gòu)的基礎(chǔ)之上進(jìn)行了改進(jìn),引入注意力機(jī)制。
- 提出了兩種注意力機(jī)制的變種:“hard” attention和"soft" attention。
- 在MS COCO以及Flickr8k和Flickr30k上取得了state-of-the-art的效果。
- Encoder采用了ImageNet上預(yù)訓(xùn)練好的VGG網(wǎng)絡(luò),然而VGG的特征提取能力相比ResNet、DenseNet等較弱,一定程度上會影響網(wǎng)絡(luò)性能。
- 訓(xùn)練LSTM時one-hot編碼的詞向量沒有采用預(yù)訓(xùn)練的word embedding模型,也可能會影響。
2、論文概述
2.1、簡介
-
研究難點(diǎn):
- 圖像標(biāo)注模型既要能夠處理計算機(jī)視覺任務(wù)如確定圖像中有哪些物體,但他們也必須能夠以自然語言的形式捕獲并表示出這些物體之間的關(guān)系。
-
架構(gòu):
- 使用CNN來提取圖像中的視覺信息,并用RNN來解碼這些視覺信息轉(zhuǎn)換成自然語言。
-
注意力機(jī)制:
- 此前的工作中,大家廣泛認(rèn)同的是:使用視覺特征(比如從CNN后面的層中的特征圖)提取圖像中的顯著物體的信息。
- 但是這個方法有一個可能的缺點(diǎn):會損失一部分可能對生成圖像描述有用的信息。
- 使用低層的特征有助于解決這個問題,但是使用低層特征需要一個有效的機(jī)制來讓模型關(guān)注對這個任務(wù)有用的信息。
- 為此,提出了兩個注意力機(jī)制的變種:hard attention和soft attention。
-
貢獻(xiàn):
- 提出了兩個基于注意力機(jī)制的Image Caption模型:soft attention,通過普通的反向傳播算法即可訓(xùn)練;hard attention,需要最大化一個近似的變化下邊界。
- 通過可視化技術(shù)展示了網(wǎng)絡(luò)在生成單詞都是在關(guān)注“哪里”和“什么”。
- 在三個基準(zhǔn)數(shù)據(jù)集(MS COCO、Flickr8k、Flickr30k)上對模型進(jìn)行測試,取得了state-of-the-art的效果。
-
除了神經(jīng)網(wǎng)絡(luò)之外,caption還有兩種典型的方法:
- 使用模板的方法,填入一些圖像中的物體;
- 使用檢索的方法,尋找相似描述。
- 這兩種方法都使用了一種泛化的手段,使得描述跟圖片很接近,但又不是很準(zhǔn)確。所以作者在此基礎(chǔ)上提出了自己的模型架構(gòu),將soft 和hard attention引入到caption,并利用可視化手段理解attention機(jī)制的效果。
-
模型:
2.2、模型細(xì)節(jié)
- 論文中提出了兩個注意力機(jī)制的結(jié)構(gòu),hard attention較為復(fù)雜,暫時還沒搞懂。所以就著重介紹soft attention。
- Encoder:
- 使用CNN來提取LLL個DDD維的特征作為注釋向量。每個都對應(yīng)圖像中的一個區(qū)域:a={a1,...,aL},ai∈RDa = \{ a_1, ..., a_L \}, a_i \in \mathbb{R}^Da={a1?,...,aL?},ai?∈RD。
- 與此前的工作中使用Softmax層之前的全連接層提取圖像特征不同,本文所提取的這些vector來自于 low-level 的卷積層,這使得decoder可以通過選擇所有特征向量的子集來選擇性地聚焦于圖像的某些部分,也就是將attention機(jī)制嵌入。
- Decoder:
- 解碼階段用LSTM生成caption。
- 生成的結(jié)果:y={y1,...,yC},yi∈RKy = \{ y_1, ... , y_C \}, y_i \in \mathbb{R}^Ky={y1?,...,yC?},yi?∈RK。其中CCC是句子長度,KKK是詞表大小,yyy是各個詞的one-hot編碼所構(gòu)成的集合。
- LSTM:
- 輸入、遺忘和輸出門由sigmod激活,所以得到的值在0—1之間,可以直接作為概率值,候選向量ctc_tct? 和hth_tht?由tanh激活,值在-1—1之間。三個輸入量分別是,Eyt?1Ey_{t?1}Eyt?1?是look-up得到詞 yt?1y_{t?1}yt?1?的 m 維詞向量;ht?1h_{t?1}ht?1?是上一時刻的隱狀態(tài);zt∈RDz^t \in \mathbb{R}^Dzt∈RD是LSTM真正意義上的“輸入”,代表的是捕捉了特定區(qū)域視覺信息的上下文向量。
- 隱狀態(tài)和細(xì)胞狀態(tài)的初始值,由兩個獨(dú)立的多層感知機(jī)得到。輸入是各個圖像特征的均值。c0=finit,c(1L∑iLai)c_0 = f_{init, c}(\frac{1}{L} \sum_i^L a_i)c0?=finit,c?(L1?∑iL?ai?),h0=finit,h(1L∑iLai)h_0 = f_{init, h} (\frac{1}{L} \sum_i^L a_i)h0?=finit,h?(L1?∑iL?ai?)。
- 根據(jù)以上,我們就可以通過最大概率求得當(dāng)前時刻輸出的詞,并作為下一時刻的輸入,從而獲得caption結(jié)果。
- attention:
- ztz_tzt?是LSTM真正的輸入,是一個和時間相關(guān)的動態(tài)變量,不同時間關(guān)注在不同的圖像區(qū)域內(nèi),那么這里就可以和attention結(jié)合起來,規(guī)定特定時間內(nèi)關(guān)注某個區(qū)域。
- ztz_tzt?由時間和位置區(qū)域決定,對于每個時間的每個區(qū)域都定義一個權(quán)重值αti\alpha_{ti}αti?。為了滿足權(quán)重的歸一化,則通過softmax函數(shù)實現(xiàn),Softmax的輸入需要包含位置信息和前一時刻隱層值。
- 接著,ztz_tzt?就可以通過圖像的特征aia_iai?以及產(chǎn)生的權(quán)重αti\alpha_{ti}αti?得到。
- ?\phi?函數(shù)實際上就是hard attention和soft attention了。
- hard attention暫時還沒弄懂,暫時先不寫。
- soft attention:
- 在hard attention中,權(quán)重屬于貝努利分布,非0即1。不連續(xù)意味著不可導(dǎo),即無法在反向傳播中利用梯度更新。
- 而soft attention中,不像hard attention那樣對特定時間特定區(qū)域只有關(guān)注與不關(guān)注,而是對所有區(qū)域都關(guān)注,只是關(guān)注的重要程度不一樣。
- 直接使用前面得到權(quán)重αt\alpha_tαt?,加權(quán)求和得到ztz_tzt?:
- 由于模型是連續(xù)可導(dǎo)的,現(xiàn)在可以直接使用BP算法對梯度進(jìn)行更新。
- 此外,soft attention模型還要引入閾值β\betaβ,用來讓解碼器決定是把重點(diǎn)放在語言建模還是在每個時間步驟的上下文中。
- 最終的損失函數(shù):
- soft attention最終通過最小化上式實現(xiàn)。
- 式中的正則項是為了讓∑tCαti?1\sum_t^C \alpha_{ti} \simeq 1∑tC?αti??1, 目的是為了讓attention平等的對待圖片的每一區(qū)域。
2.3、實驗
- 作者用了三個數(shù)據(jù)集進(jìn)行實驗,Flickr8k采用RMSProp優(yōu)化方法, Flickr30k和COCO采用Adam進(jìn)行優(yōu)化,用vgg在ImageNet上進(jìn)行預(yù)訓(xùn)練,采取64的mini-batch,用bleu和meteor作為指標(biāo)進(jìn)行評分,下表是實驗結(jié)果,可以看出本文所提出的方法取得了很好的結(jié)果。
- 可視化,為了更好地了解attention的效果,作者還對模型進(jìn)行了可視化,如下圖所示,可以看出attention機(jī)制可以學(xué)習(xí)到類似于人注意力一樣的信息。
3、參考資料
總結(jié)
以上是生活随笔為你收集整理的论文笔记:Image Caption(Show, attend and tell)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文笔记:Image Caption(S
- 下一篇: 论文笔记:DGCNN(EdgeConv)