image caption筆記(四):Image Captioning with Semantic Attention
文章來自cvpr2016
image caption常見的方法包括top-down和bottom-up。Top-down直接做影象到文字的端到端學習,而bottom-up先抽取出一些關鍵詞,再把關鍵詞組合成一句話。Top-down比較難處理一些影象的細節,因為它將整張圖片作為輸入。而bottom-up不容易做端到端的學習,將抽取的特徵組成一句話也很困難。因此文章在端到端模型中引入了attention機制,結合了兩種方法的優勢。
與《show,attend and tell》相比,同樣是引入了注意力機制,不同點在於:
在《show,attend and tell》中,注意力是以固定的解析度在空間上建模的。在每次重複迭代時,該演算法計算一組與預定義的空間位置相對應的注意權值。相反,本文可以在影象中任何解析度的任何地方使用概念。事實上,本文甚至可以使用在影象中沒有直接視覺存在的概念。
在RNN的輸入、輸出均引入了注意力機制。
關於屬性的選取,共有兩種方法。第一種沒看懂,第二種就是在caption中挑取頻率高的單詞作為屬性 。
也是隻在起始時刻輸入影象特徵。後續不再使用。
關鍵在於輸入和輸出時刻的兩個注意力模型。
先說輸入時刻的注意力模型
首先是根據前一個單詞與不同屬性的相關性分配權重(都是從詞彙庫中得出的 所以都用y表示)用E降一下維度
本文使用雙線性函式表述模型相關性:
然後組合屬性和前一時刻的輸出得到當前時刻的輸入
輸出的注意力機制與此類似,先計算權重
然後根據當前時刻的隱藏態和組合屬性計算輸出的softmax概率值
最後是損失函式,包括三部分, 後兩部分是對權重的限制。第一部分就是希望預測的vocab大小的softmax概率向量中,gt位置的概率儘可能的接近1.