這篇文章是2015年ICML上的一篇文章,把a(bǔ)ttention機(jī)制引入到圖像領(lǐng)域的文章,作者Kelvin Xu 、Yoshua Bengio等人,來(lái)自多倫多大學(xué)和蒙特利爾大學(xué)。
Image caption是計(jì)算機(jī)視覺的最初始任務(wù),不僅要獲得圖片里的物體,還要表達(dá)他們之間的關(guān)系。目前現(xiàn)存的方法大都是encoder?— decoder架構(gòu),利用CNN、RNN、LSTM等神經(jīng)網(wǎng)絡(luò)完成caption工作,比如說(shuō)只使用CNN對(duì)圖像進(jìn)行特征提取,然后利用提取的特征生成caption,還有結(jié)合CNN和RNN的,使用CNN提取圖像特征,將Softmax層之前的那一層vector作為encoder端的輸出并送入decoder中,使用LSTM對(duì)其解碼并生成句子,這種方法也是本文所采取的方法,只是在此基礎(chǔ)上嵌入了soft和hard attention機(jī)制。
除了神經(jīng)網(wǎng)絡(luò)之外,caption還有兩種典型的方法:
1、使用模板的方法,填入一些圖像中的物體;
2、使用檢索的方法,尋找相似描述。
這兩種方法都使用了一種泛化的手段,使得描述跟圖片很接近,但又不是很準(zhǔn)確。所以作者在此基礎(chǔ)上提出了自己的模型架構(gòu),將soft 和hard attention引入到caption,并利用可視化手段理解attention機(jī)制的效果。
模型:
模型的總體架構(gòu)如上圖所示,也是由encoder和decoder組成。
Encoder,模型使用CNN來(lái)提取 L 個(gè) D 維的特征vector作為注釋向量,每一個(gè)都對(duì)應(yīng)圖像的一個(gè)區(qū)域,如下式。
?? 與此前的工作使用Softmax層之前的全連接層提取圖像特征不同,本文所提取的這些vector來(lái)自于?low-level 的卷積層,這使得decoder可以通過選擇所有特征向量的子集來(lái)選擇性地聚焦于圖像的某些部分,也就是將attention機(jī)制嵌入。
Decoder,解碼階段用LSTM網(wǎng)絡(luò)生成caption,集合為下式,其中C是句子長(zhǎng)度,K是詞表大小,y是各個(gè)詞的one-hot編碼所構(gòu)成的集合。
LSTM模型結(jié)構(gòu)如下,對(duì)應(yīng)輸入門、輸出門、忘記門數(shù)學(xué)公式如下:
輸入、遺忘和輸出門由sigmod激活,所以得到的值在0—1之間,可以直接作為概率值,候選向量ct 和ht由tanh激活,值在-1—1之間。三個(gè)輸入量分別是,Eyt?1是look-up得到詞 yt?1的 m 維詞向量;ht?1是上一時(shí)刻的隱狀態(tài);z^t∈RD是LSTM真正意義上的“輸入”,代表的是捕捉了特定區(qū)域視覺信息的上下文向量。
針對(duì)最后一個(gè)式子的隱含變量值,作者給出了隱狀態(tài)和細(xì)胞狀態(tài)的初始值的計(jì)算方式,使用兩個(gè)獨(dú)立的多層感知機(jī),感知機(jī)的輸入是各個(gè)圖像區(qū)域特征的平均:
根據(jù)以上,我們就可以通過最大概率求得當(dāng)前時(shí)刻輸出的詞,并作為下一時(shí)刻的輸入,從而獲得caption結(jié)果,如下式。
Attention,上文說(shuō)到zt是LSTM真正的輸入,是一個(gè)和時(shí)間相關(guān)的動(dòng)態(tài)變量,不同時(shí)間關(guān)注在不同的圖像區(qū)域內(nèi),那么這里就可以和attention結(jié)合起來(lái),規(guī)定特定時(shí)間內(nèi)關(guān)注某個(gè)區(qū)域。實(shí)現(xiàn)attention的方式,就是:zt由時(shí)間和位置區(qū)域決定,對(duì)于每個(gè)時(shí)間的每個(gè)區(qū)域都定義一個(gè)權(quán)重值ati。為了滿足權(quán)重的歸一化,我們通過softmax函數(shù)實(shí)現(xiàn),如下式,Softmax的輸入需要包含位置信息和前一時(shí)刻隱層值:
zt就可以表示出來(lái),而φ函數(shù)怎么定義使得hard attention和soft attention的產(chǎn)生:
? ? Hard attention,這里權(quán)重ati所起的作用的是否被選中,只有0.1兩個(gè)選項(xiàng),所以引入了變量st,i,當(dāng)區(qū)域i被選中時(shí)為1,否則為0。
那么問題就是st,i什么時(shí)候是1,什么時(shí)候?yàn)?。在文章里,作者將st視作隱變量,為參數(shù)是位置信息的多元伯努利分布,公式如下:
針對(duì)多元伯努利分布,利用最大似然估計(jì),求得變分下限,類似于EM的思想,下式通過杰森不等式求得。
然后對(duì)參數(shù)矩陣求梯度進(jìn)行優(yōu)化,
用 N 次蒙特卡洛采樣來(lái)近似:
在蒙特卡洛方法估計(jì)梯度時(shí),可以使用滑動(dòng)平均來(lái)減小梯度的方差:
為進(jìn)一步減小方差,引入多元貝努利分布的熵H(s),而且對(duì)于一張給定圖片,50%的概率將s設(shè)置為它的期望值α。這兩個(gè)技術(shù)提升了隨機(jī)算法的魯棒性,最終的結(jié)果是:
?λr和λe是交叉驗(yàn)證設(shè)置的兩個(gè)超參數(shù),這個(gè)學(xué)習(xí)規(guī)則類似于強(qiáng)化學(xué)習(xí)。
Soft attention,在這里,不像hard對(duì)特定時(shí)間特定區(qū)域只有關(guān)注和不關(guān)注,soft里對(duì)每個(gè)區(qū)域都關(guān)注,只是關(guān)注的重要程度不一樣,所以此處的權(quán)重ati就對(duì)應(yīng)著此區(qū)域所占比重,那么zt就可以直接通過比重加權(quán)求和得到。
現(xiàn)在的模型為光滑的,可以使用BP算法通過梯度進(jìn)行學(xué)習(xí)。文章定義了歸一化加權(quán)幾何平均值(NWGM)
該式表示caption的結(jié)果可以通過文本向量很好近似,也就是caption結(jié)果有效。也表示soft attention是關(guān)于attention位置的邊緣似然的近似。在訓(xùn)練soft attention時(shí),文章引入了一個(gè)雙向隨機(jī)正則,目的是為了讓attention平等的對(duì)待圖片的每一區(qū)域。另外,還定義了閾值β
,目的是讓解碼器決定是把重點(diǎn)放在語(yǔ)言建模還是在每個(gè)時(shí)間步驟的上下文中。
Soft attention最終是通過最小化下式進(jìn)行訓(xùn)練。
實(shí)驗(yàn):
???作者用了三個(gè)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),F(xiàn)lickr8k采用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)行評(píng)分,下表是實(shí)驗(yàn)結(jié)果,可以看出本文所提出的方法取得了很好的結(jié)果。
可視化,為了更好地了解attention的效果,我們對(duì)模型進(jìn)行了可視化,如下圖所示,可以看出attention機(jī)制可以學(xué)習(xí)到類似于人注意力一樣的信息。
結(jié)論:
本文作者經(jīng)機(jī)器翻譯的attention機(jī)制啟發(fā),將其應(yīng)用到image caption領(lǐng)域,并提出了hard 和 soft 兩種attention機(jī)制,相比較來(lái)說(shuō),hard attention更難訓(xùn)練,所以他的效果也更好。這篇文章無(wú)疑是打開了attention圖像領(lǐng)域的先河。