image caption筆記(七):《Bottom-Up and Top-Down Attention》

      仍然是對attention機制的擴展。可以看到,現在的工作,基本都添加了attention機制,要麼是spitial attention,要麼是semantic attention。

      文章的主要貢獻包括:
    (1)提出了一個新的lstm組合模型,包括了attention lstm和language lstm 兩個組件。在這個 組合模型的基礎上引入spitial attention機制(類似於《show,attend and tell》的top-down attention機制),可以實現比此前最佳scst(self critic)模型略好的效果。

    (2)引入了bottom-up,bottom-up機制基於 faster r-cnn提出圖像區域,每個區域具有相關的特徵向量。

    (3)爲了提升提取特徵的能力,對Faster R-CNN的輸出和損失函數做了添加。設計了屬性分類的部分。

      這樣把top-down和bottom-up組合起來得到聯合注意機制。bottom-up機制提出圖像區域,確定每個區域的特徵向量,而top-down的機制確定特徵權重。其實在某種程度上來看,bottom-up的機制,相當於更精細的hard attention,因爲是給確定的少數區域特徵加權重。

 

 

      作者的想法源自於,原本的attention機制是把特徵圖平均的劃分爲14*14=196塊,然後給它們配權重。作者認爲,我們應當把注意力更多地放在圖中的對象上(聚焦主要目標)。

 

       模型結構:

  1. 首先使用在ImageNet上預訓練好的resnet-101初始化Faster R-CNN,然後在VG數據集上開始訓練。訓練的時候,原本的輸出是類標籤上的Softmax分佈和BBs。爲了提升網絡提取特徵的能力,在原本輸出和損失函數的基礎上,作者新添加了一個新的輸出和損失,用於訓練一個額外的屬性預測器。

     將某個區域的平均池化卷積特徵vi與該區域ground truth的目標類別embedding連接起來,接softmax,輸出是屬性類別數+1,也就是除了每個屬性之外,加了一個‘no attribute’。

      訓練完成後,使用當前模型提取不同區域的特徵,預測的標籤和屬性不用。

  1. Caption模型部分,作者設計了兩個lstm:

attention lstm(記爲1)和language lstm(記爲2)

(1)attention lstm的主要功能是產生權重,進而生成 特徵組合成的上下文變量。

         每個時刻的輸入包括三部分:language lstm前一個時刻的隱藏態、所有區域特徵的平均值、前一個時刻預測出單詞的embedding。經過lstm單元以後,與《show ,attend and tell》類似,產生權重和上下文變量 ,只不過把上下文變量由變成了來表示。

                  

                              

(2)language  lstm用於預測下一個單詞

                               

 

 

實驗結果:

       既使用了損失函數來訓練,也仿照着scst用同樣的策略來優化評價指標。在優化評價指標的時候,

利用這種方法,文章在一個epoch內完成了CIDER的優化。感覺這部分的工作大大節省了時間,

但是沒看太懂,需要去了解一下beam search,跑一跑相關的代碼。

 

 

不使用bottom-up的情況下  resnet的baseline 比 scst取得了略優的性能。加入bottom up 機制以後甩開差距。但是 scst是取了四種初始化方式中最好的一種,這種方法只取了一種。

不過加了CIDER優化後,二者不分伯仲。後者的結構更復雜一些,個人認爲本文的caption 兩個lstm的效果可能略好,但是在引入CIDER優化後,並沒有優勢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章