【圖像理解】自動生成圖像的文本描述

Deep Visual-Semantic Alignments for Generating Image Descriptions
Andrej Karpathy Li Fei-Fei

摘要

這篇文章的作者提出了一種方法,可以用於生成圖像的自然語言描述。主要包含了兩個部分(1)視覺語義的對齊模型;(2)爲新圖像生成文本描述的 Multimodal RNN 模型。

其中視覺語義的對齊模型主要由3部分組成:

  1. 應用於圖像區域的卷積神經網絡(Convolution Neural Networks)。
  2. 應用於語句的雙向循環神經網絡(bidirectional Recurrent Neural Networks)。
  3. 結構化的目標函數,通過多模態嵌入來對齊視覺與語義。

Figure1

簡介

我們的目標是在給定一張圖像的情況下,得到他的自然語言描述。如何做呢?假設我們有一個很大的數據庫,每條記錄是圖像以及它對應的語句描述。每條語句的詞彙片段其實對應了一些特定的但是未知的圖像區域。我們的方法是推斷出這些詞彙片段和圖像區域的對應關係,然後使用他們來生成一個泛化的語言描述模型。具體來說,可以分爲兩個部分:

  1. 一個深度神經網絡模型用於推斷語句片段與圖像區域的對應關係(如Figure 2的中間那張圖所示)。如何將圖像與語句片段關聯起來呢?通過mutimodal embedding空間和一個結構化的目標函數。
  2. 一個Mutimodal RNN模型,以圖片爲輸入,輸出它的文本描述(如Figure 2的右圖所示)。

Figure2

模型

概述

模型的最終目標是生成圖像區域的文本描述。訓練階段,模型的輸入是圖像集合和對應的語句(如Figure2所示)。這裏有兩個模型,第一個模型通過多模嵌入來對齊語句片段和視覺區域。然後,我們將這些對齊好的視覺區域和語句片段作爲訓練數據,訓練一個Multimodal RNN模型,這個模型可以根據輸入圖像自動生成對應的文本描述。

3.1 視覺與語言數據的對齊

3.1.1 圖像的表示

使用Region Convolution Neural Network(RCNN)檢測圖像上的物體,取top 19個檢測到的圖像區域,加上整張圖像。然後計算這個20個圖像塊的CNN特徵,每個特徵是4096維(最後一個全連接層的輸出)。

公式1

其中Wmh×4096 維的矩陣,h是多模態嵌入空間的維度(1000到1600的範圍)。因此每個圖像區域表示爲h維的向量 {vi|i=1...20}

3.1.2 語句的表示

爲了建立內部模態的關聯性(單詞與圖像區域的關聯性),需要將語句中的單詞也映射到相同的h維的嵌入空間中。最簡單的方法是將單詞直接進行映射,但是這樣就忽略掉了單詞間的順序和上下文信息。因此本文提出使用Bidirectional Reccurrent Neural Network(雙向循環神經網絡,BRNN)來計算單詞的表示。

BRNN以N個單詞(encoded in a 1-of-k representation)的序列作爲輸入, 將每個單詞轉換爲h維的向量。下標t=1...N 表示單詞在句子中的位置,BRNN的具體形式如下列公式所示:

[公式2-6]

It 是一個指示向量,它的含義是: 初始時這是一個全0的列向量,假設句子中第t個詞在詞典(word vocabulary)中的位置爲i, 那只有i位置的值爲1,其他位置的值全爲0。

Ww 是一個單詞嵌入矩陣(簡單來說應該就是一個轉換矩陣或者投影矩陣),初始化爲300維的word2vec的權重,並保持不變。

BRNN包含了兩個獨立的過程, 一個從左到右(hft) , 一個從右到左(hbt) , 如圖3所示。

最後第t個詞的h維輸出st , 是一個關於這個詞的位置和句子的上下文信息的函數。

We,Wf,Wb,Wd,be,bf,bb,bd 是要學習的參數。

激活函數f是整流線性單元(ReLU), f:xmax(0,x)

figure3

3.1.3 對齊模型的目標函數

上文描述瞭如何將圖像和句子表示h維向量的集合,那麼我們將圖像vs句子的得分看作多個圖像區域vs單詞的得分的一個函數, 以內積vTist 作爲 i-th圖像區域與t-th word的相似性度量,那麼圖像k與句子l的得分爲:

公式7

gk 是圖像區域的集合,gl 是單詞的集合。

得分函數的簡化版本:

公式8

公式8表示每個單詞只與最匹配的那個圖像區域進行對齊。

假設 k=l 表示相對應的圖像和語句,那麼最終的結構化損失函數爲:

公式9

它的物理意義就是使得Skk 要儘量高,而SklSlk 儘量小。也就是說相關的圖像和語句會獲得更高的得分,而非相關的圖像和語句將獲得比較低的得分。

3.2 Multimodal Recurrent Neural Network 用於產生圖像描述

假定我們有一些圖像和相關文本描述的集合,這些集合可以是整幅的圖像和相關的句子描述,也可以是圖像區域和相關的文本片段。主要的挑戰是設計一個模型,可以根據給出的圖像,預測出可變尺寸的文本序列。

訓練階段,Multimodal RNN輸入圖像I和對應的文本序列的特徵向量序列(x1,...,xT)xt 表示第t個詞的特徵向量。然後通過重複下面的迭代過程 (t=1 to T) 來計算隱藏狀態序列(h1,...,hT) 和輸出值序列(y1,...,yT) :

公式13-15

CNNθc(I) 表示CNN最後一層的輸出。Whi,Whx,Whh,Woh,xi,bh,bo 是要學習的參數。 yt 是輸出向量,表示了單詞在字典中的概率, 還有額外的一個維度表示結束符的概率。

  • RNN training RNN根據一個詞(xt) 和之前的上下文信息(ht1) 來預測下一個詞(yt) 。在訓練的第一步通過引入圖像信息(bv) 對預測值產生影響。訓練過程參考Figure4: 設置h0 爲0向量,x1 爲一個特定的START向量, 要求的label y1 對應了序列的第一個詞,以此類推。最後一步中,XT 表示最後一個詞,目標標籤yT 則設定爲一個特定的END記號。那麼目標函數就是要最大化目標標籤的對數概率(例如, softmax分類器)

  • RNN at test time 以圖像爲輸入,預測它的文本描述。首先計算圖像的表示bv , 設置h0=0 , x1 爲START向量,計算第一個詞的概率分佈y1 , 根據最大的那個概率來獲得一個詞,設置它的嵌入向量爲x2 , 重複這個步驟,直到產生END記號。

figure4

3.3 優化求解

採用隨機梯度下降算法,100個圖像-語句組合爲一個batch。

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