天天看點

Image Caption:圖像字幕生成

前言

  圖像處理與自然語言處理的結合,給圖像加字幕或者描述。應用前景非常廣,比如早教,圖像檢索,盲人導航等。圖像注釋問題的通用解法非常接近于Encoder-Decoder結構,下面就幾種方法作簡單總結。

m-RNN

  Mao這篇2015-paper,根據輸入語句和圖檔,為圖檔生成字幕;以DeepRNN 處理語句,用CNN處理圖檔。基本思路:直接将圖像表示和詞向量以及隐向量作為多模判斷的輸入。

Image Caption:圖像字幕生成

  左側是簡單RNN結構,右側是本文所提的m-RNN(多模式),輸入是圖檔極其對應的語句描述。模型根據之前詞和圖像來評估下個詞的機率分布,每一時間幀上,所有的權重都是共享的。

  兩層embedding,分别表示文法和語義含義,初始化方法采用随機初始化足矣,不用專用使用pre-trained的詞向量。其中多模式子產品有三個輸入:詞向量 w(t) w ( t ) ,隐狀态 r(t) r ( t ) ,圖像表示 I I 。隐狀态

r(t)=ReLU(Urr(t−1)+w(t))r(t)=ReLU(Urr(t−1)+w(t))

,注意内部+表示元素加法。将三個輸入映射到相同的多模式特征空間内:

m(t)=g2(Vww(t)+Vrr(t)+ViI) m ( t ) = g 2 ( V w w ( t ) + V r r ( t ) + V i I )

,其中 g2(x)=1.7159tanh(2/3x) g 2 ( x ) = 1.7159 t a n h ( 2 / 3 x ) ,這個激活函數能夠最大限度的保證梯度集中于非線性範圍内,并且加快訓練過程。

  關于圖像的表示,“For the image representation, here we use the activation of the 7th layer of AlexNet (Krizhevsky et al. (2012)) or 15th layer of VggNet (Simonyan & Zisserman (2014))”。

  優化函數如下: log2PPL(w1:L|I)=−1L∑n=1Llog2P(wn|w1:n−1,I) l o g 2 P P L ( w 1 : L | I ) = − 1 L ∑ n = 1 L l o g 2 P ( w n | w 1 : n − 1 , I )

PPL(w1:L|I) P P L ( w 1 : L | I ) 表示在圖像 I I 時,句子w1:Lw1:L的混亂度。 C=1N∑i=1NsLilog2PPL(w(i)1:Li|I(i)+λθ||θ||22) C = 1 N ∑ i = 1 N s L i l o g 2 P P L ( w 1 : L i ( i ) | I ( i ) + λ θ | | θ | | 2 2 )

Deep Visual-Semantic

  Li FeiFei的深度視覺語義2015-paper,聽着很高大上,做起來也确實很高大上,複雜的很。跟上篇文章輸入是一緻的,在思路上略有不同,将圖像和語言序列壓縮到一個空間内。

  面臨的兩個挑戰: 1. 需要設計一個足夠好的模型,既能夠推理圖像内容,又能夠推理自然語言部分。2. 自然語句描述中涉及的實體在圖中的位置是未知的。

Image Caption:圖像字幕生成

  前提假設:語句會頻繁地引用圖中特定但未知的位置。将詞與圖像中特定位置映射到通用空間内,學習embedding表達,使其在兩種模式(圖像和語言)下,語義相似的概念占據空間的相似位置。多模式:指的是,embedding空間既可以給圖像用,有可以給序列用。

  圖像的表示:使用RCNN,來學習實體對應的局部 v=Wm[CNNθc(Ib)]+bm v = W m [ C N N θ c ( I b ) ] + b m ;序列的表示: BRNN來表示詞  

Image Caption:圖像字幕生成

   v v 和ss如何保證在同一個空間内呢?是在學習目标上加以限制。圖文的比對度衡量: Skl S k l ,非常贊的方法。

Skl=∑t∈gtmaxi∈gkvTist S k l = ∑ t ∈ g t m a x i ∈ g k v i T s t

  這裡,每個詞 st s t 關聯到 唯一的最比對的圖檔區域。這一簡化模型同樣可以在最終的排序表現中起到非常好改進效果。假設 k=l k = l 表示對應的圖檔和語句對,最終的max-margin, structured losss如下:

C(θ)=∑k[∑lmax(0,Skl−Skk+1)rank−images+∑lmax(0,Slk−Skk+1)rank−sentences] C ( θ ) = ∑ k [ ∑ l m a x ( 0 , S k l − S k k + 1 ) ⏟ r a n k − i m a g e s + ∑ l m a x ( 0 , S l k − S k k + 1 ) ⏟ r a n k − s e n t e n c e s ]

  這一目标收斂于當圖檔與語句對的關聯具有最高分時,而非誤比對的對,by a margin。

  使用MRF解碼圖對應的文本片段,這裡也是整個方法複雜度變高的地方。我們将 vTist v i T s t 解釋為 tth t t h 詞描述任意某個圖區域的的非标準化的log機率。

Image Caption:圖像字幕生成

  其中 β β 是控制長詞短語映射的超參,當 β=0 β = 0 時,表示單個詞之間的互動。輸出是圖像的一些局部區域帶着描述片段詞句。

整體結構示意圖

Image Caption:圖像字幕生成

Image Caption using Attention

  在生成圖像的某部分描述時,為了能夠集中于圖像某部分,K Xu于2015年引入Attention機制,命名為Visual Attention。分别定義了兩種Attention機制:Stochastic Hard Attention 和 Deterministic Soft Attention,都可以壓縮一張圖檔用以生成一段語言描述。

  使用卷積網絡CNN來提取圖像特征作為解釋變量,提取 L L 個解釋向量,每一個都表示了圖像的某一部分。a={a1,a2,...,aL},ai∈RDa={a1,a2,...,aL},ai∈RD,為了能夠描述更基礎的圖像特征,在底層卷積層上來抽取解釋向量;用LSTM來作為解碼器,生成描述語句。

Image Caption:圖像字幕生成

1)Stochastic Hard Attention

   st,i=1 s t , i = 1 表示生成第 t t 個詞時,第ii部分圖像被關注(一共 L L 部分)。将注意位置作為隐變量,可以将由解釋變量aiai确定的上下文 z^t z ^ t 看作是随機變量【一方面,為随機選擇關注部分圖像作解釋,一方面為采樣尋優方法作限制】。

p(st,i=1|sj<t,a)=αt,i⟶z^t=∑ist,iai p ( s t , i = 1 | s j < t , a ) = α t , i ⟶ z ^ t = ∑ i s t , i a i

定義目标函數 Ls L s ,其下限值逼近于 logp(y|a) l o g p ( y | a ) Ls=∑sp(s|a)logp(y|s,a)⩽log∑sp(s|a)p(y|s,a)=logp(y|a) L s = ∑ s p ( s | a ) l o g p ( y | s , a ) ⩽ l o g ∑ s p ( s | a ) p ( y | s , a ) = l o g p ( y | a )

∂Ls∂W=∑sp(s|a)[∂logp(y|s,a)∂W+logp(y|s,a)∂logp(s|a)∂W] ∂ L s ∂ W = ∑ s p ( s | a ) [ ∂ l o g p ( y | s , a ) ∂ W + l o g p ( y | s , a ) ∂ l o g p ( s | a ) ∂ W ]

上式指出基于MonteCarlo的采樣方法來估計參數梯度是可行的,通過對 αi α i 決定的Multinoulli分布采樣具體位置 st s t ,來估計參數導數,如下: s~t∼MultinoulliL(αi) s ~ t ∼ M u l t i n o u l l i L ( α i )

∂Ls∂W≈1N∑n=1N[∂logp(y|s~n,a)∂W+logp(y|s~n,a)∂logp(s~n|a)∂W] ∂ L s ∂ W ≈ 1 N ∑ n = 1 N [ ∂ l o g p ( y | s ~ n , a ) ∂ W + l o g p ( y | s ~ n , a ) ∂ l o g p ( s ~ n | a ) ∂ W ]

引入滑動平均來降低估計方差波動,對第 k k 個mini-batch,如下處理:bk=0.9×bk−1+0.1×logp(y|s~k,a)bk=0.9×bk−1+0.1×logp(y|s~k,a)

為進一步降低估計方差,引入熵 H[s] H [ s ] ,

最終的梯度如下: ∂Ls∂W≈1N∑n=1N[∂logp(y|s~n,a)∂W+λr(logp(y|s~n,a)−b)∂logp(s~n|a)∂W+λe∂H[s~n]∂W] ∂ L s ∂ W ≈ 1 N ∑ n = 1 N [ ∂ l o g p ( y | s ~ n , a ) ∂ W + λ r ( l o g p ( y | s ~ n , a ) − b ) ∂ l o g p ( s ~ n | a ) ∂ W + λ e ∂ H [ s ~ n ] ∂ W ]

   λr和λe λ r 和 λ e 是兩個超參,上述式子相當于強化學習,對注意集中的後續動作收益是目标句子的似然機率值,在采樣注意政策下。

  為什麼稱之為Hard Attention呢?是因為上下文 z^ z ^ 所用的解釋向量是通過服從 αi α i 的分布采樣得來的。

2)Deteriministic Soft Attention

  若是不使用采樣,而是直接使用所有的區域,就變成了soft attention,在Bahdanau的15年文章裡就是類似的方法。 Ep(st|α)[z^t]=∑i=1Lαt,iai E p ( s t | α ) [ z ^ t ] = ∑ i = 1 L α t , i a i

  優勢在于非常适合于直接使用梯度下降來尋優,最終的目标函數如下: Ld=−logP(y|s)+λ∑iL[1−∑tCαt,i]2 L d = − l o g P ( y | s ) + λ ∑ i L [ 1 − ∑ t C α t , i ] 2

思考總結

1)基本方法大同小異:将圖像和詞表示在同一空間内是共同點。

2)應用的難度在于,實際環境更為複雜,即使有Attention機制也沒有特别精确。

Reference

  1. 2015 - 《Deep Captioning with Multimodal Recurrent Neural Networks (m-RNN)》
  2. 2015 - 《Deep Visual-Semantic Alignments for Generating Image Descriptions》
  3. 2015 - 《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》

繼續閱讀