【映像理解】之Show, attend and tell演算法詳解_深度學習

來源:互聯網
上載者:User

Xu, Kelvin, et al. “Show, attend and tell: Neural image caption generation with visual attention.” arXiv preprint arXiv:1502.03044 (2015).

聚焦機制(Attention Mechanism)是當下深度學習前沿熱點之一,能夠逐個關注輸入的不同部分,給出一系列理解。這篇論文是聚焦機制代表作,完成了映像理解中頗具難度的“看圖說話”任務。

作者提供了基於Theano的源碼(戳這裡),另外有熱心群眾在Tensorflow上給出了實現(戳這裡)。

本文對照Tensorflow版本源碼,詳解論文演算法。 資料結構

從輸入到輸出經曆編碼和解碼兩個部分。

類比:在機器翻譯中,編碼部分把源語言變成基本語義特徵,解碼部分把基本語義特徵變成目標語言。

輸入:映像 I
特徵(annotation): {a1...ai...aL}
上下文(context): {z1...zt...zC}
輸出(caption): {y1...yt...yC}

I 是輸入的彩色映像。
有順序的 yt 組成一句“說明”(caption)。句子長度 C 不定。每個單詞 yt 是一個 K 維機率, K 是詞典的大小。

ai 是一個 D 維特徵,共有 L 個,描述映像的不同地區。
zt 也是一個 D 維特徵,共有 C 個,表示每個單詞對應的上下文。

釋義 ai 是一次產生的,但單詞 zt 是逐個產生的,所以使用下標 t 來強調每一次估計。 網路結構 編碼( I→a )

輸入映像 I 歸一化到 224×224 。特徵 a 直接使用現成的VGG網路1中conv5_3層的 14×14×512 維特徵。地區數量 L=14×14=196 ,維度 D=512 。
為了能夠更好地描述局部內容,所以使用了較低層級的特徵。

編碼只進行一次,解碼是逐個單詞進行的,所有以下網路變數均帶有步驟下標t。 上下文產生( a→z )

當前步驟的上下文 zt 是原有釋義 a 的加權和,權重為 αt 2。和 ai 類似, zt 也是一個 D 維向量。:

zt=αTt⋅a

αt 維度為 L=196 ,記錄釋義 a 每個像素位置獲得的關注。

權重 αt 可以由前一步系統隱變數 ht 經過若干全串連層獲得。編碼 et 用於儲存前一步的資訊。灰色表示模組中有需要最佳化的參數。

“看哪兒”不單和實際映像有關,還受之前看到東西的影響。比如 et−1 中蘊含看到了騎手,接下來應該往下看找馬。

第一步權重完全由映像特徵 a 決定:

這一部分在全圖特徵上施加了權重,也稱為Attention網路。系統的隱變數是一個 m=256 維特徵,在下一步獲得。 隱變數產生( z→h )

這部分中採用當下流行的LSTM結構3類比步驟之間的記憶關係。除了前文提到的內部隱狀態 ht ,還包含輸入 it ,遺忘 ft ,儲存 ct ,輸出 ot ,候選 gt 共6個狀態。他們都是 m 維變數。

輸入 i 、輸出 o 和遺忘 f 是三個“門變數”,用來控制其他狀態的強度,都可以通過上一步驟的隱狀態 h ,以及當前上下文 z 決定4:
候選 g 描述可能進入儲存的資訊,產生方式相同:

儲存 c 是LSTM的核心,由前一詞的儲存和當前候選 g 加權得到,遺忘門 f 控制前一詞儲存,輸入門 i 控制本次候選:
ct=ft⊙ct−1+it⊙gt

隱狀態 h 由儲存經過變化得到,強度由輸出門 o 控制:
ht=ot⊙tanh(ct)

整個LSTM構造如下,前一步驟中的 h,c 輸入到本步驟中。
句子產生( h→y )

當前隱變數 ht 通過全連網路產生當前單詞 yt 。
回顧

到此模型搭建完畢,來總結一下:
映像經過卷積網路產生映像特徵; 根據系統前次狀態,決定現在該看哪兒; 用關注點對特徵加權,獲得當前上下文; 借鑒前次系統狀態,由上下文計算系統隱變數; 有隱變數直接推匯出當前單詞。 訓練 資料

本文使用了三種資料庫Flickr8K, Flickr30K, MS COCO。每個樣本包含一張圖片,以及幾個標定好的句子。使用的詞典大小 K=10000 。 最佳化

為了提高效率,每個mini-batch由“擁有相同長度句子”的樣本組成,mini-batch尺寸為64。

在最後的誤差模組中,比較每一步驟輸出的單詞和標定句子的Cross Entropy,使用RM-SProp方法更新模型參數。

除此之外,使用機器翻譯中常見的BLEU準則,監測validation集上的得分,作為early stopping的一句。

在最大的MS COCO資料庫上,使用NVIDIA Titan Black訓練時間為3天。 結果

與其他演算法相比,BLEU以及METEOR評分均有提高。

尤其可貴的是,本論文只是用了單獨一個模型,且在沒有檢測模組的前提下,給出了針對每個單詞的注意力地區(由 α 上採樣高斯獲得)。 K. Simonyan and A. Zisserman. Very Deep Convolutional Networks for Large-Scale Image Recognition. arXiv:1409.1556 [cs], Sept. 2014. arXiv: 1409.1556. 3 這裡和源碼一樣,只介紹了論文中的soft attention方法。hard attention方法推導較為繁瑣,可以參看前文DRAM演算法 適合入門的LSTM簡介:http://www.open-open.com/lib/view/open1440843534638.html 論文中,前一步輸出 yt−1 也參與了本步驟運算。本文以Tensorflow源碼為準。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.