Image Caption(一) 論文及理解
準備開始讀一下Image Caption,先記錄一下對論文的理解,一些公式沒有記錄下來,在論文中可查。
目錄
1.Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation
3.Statistical Machine Translation
2.Show and Tell: A Neural Image Caption Generator
Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
3.Image Caption Generation with Attention Mechanism
1.Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation
1. Introduction
本文提出了RNN Encoder-Decoder模型,其中包括兩個RNN模型,一個encode句子為固定長度的向量表達,一個將表達解碼為變長的句子。另外我們用一個隱藏的單元去增加模型的記憶力及減少訓練的難度。
最後我們通過實驗得出結論,Encoder-Decoder模型擅長於找到語法規律,並且他可以學到連續的語義和語法表達資訊。
2.RNN Encoder-Decoder
首先介紹了RNN網路的結構,,其中f是非線性啟用函式,x為輸入,h為隱藏單元。RNN可以通過預測下個句子的訓練,學習到序列的分佈規律。
接下來說RNN Encoder-Decoder結構。在這篇文章中,我們提出了一個新的神經網路結構,它可以將變長的序列編碼成定長的向量表達,並將定長的向量表達重新解碼成變長的序列。
Encoder編碼器是一個RNN結構,他逐個讀取輸入序列,此時RNN的隱藏單元層根據變化。當讀完一個句子,這個隱藏單元是整個輸入句子的summary 。
Decoder解碼器是另一個被提出的RNN,他通過給定的去預測下一個單元並生成輸出。此時的和都以和為條件的。所以,dcoder的隱藏單元及時間是這麼計算的,同樣,下一個單元的條件分佈為 。
這兩個部分共同去訓練,使得條件似然最大。
訓練好的模型可以用在兩種途徑,一種是給定一個輸入句子去生成一個輸出序列, 一種是給定一個輸入輸出序列從而給出評分,這個評分是一個概率。
在這裡提出了一個記憶門單元,是由LSTM啟發, 但是計算和應用更簡單,分為reset gate和update gate。The update gate z去選擇隱藏單元是否用一個新的隱藏狀態更新。另外update gate控制著前面隱藏單元傳遞多少資訊,這一點和LSTM很像,他控制著RNN有長期記憶。
每個隱藏單元有分開的reset和update門,因此每個隱藏單元會學習不同時間尺度的東西。那些short-term的單元會有更多活躍的reset門,而long-term的單元會有更多活躍的update門。
3.Statistical Machine Translation
在這裡我們提出用一張相位對的表去訓練Encoder-Decoder模型。當訓練的時候,我們忽略樣本出現的次數。
4.Experiments
本文用到的RNN Encoder-Decoder有1000個隱藏單元,BLEU為平均指標。
2.Show and Tell: A Neural Image Caption Generator
1.Introduction
本文用深度卷積神經網路(CNN)去代替RNN編碼器。實驗證明,CNN可以通過將輸入影象分詞成固定長度的向量從而產生更多的語義資訊。首先,通過分類任務與訓練一個CNN模型,用最後的隱藏層作為輸入輸入到RNN decoder中從而生成句子。我們叫這個模型為Neural Image Caption(NIC)。
本文的貢獻為:
- 提出一個端到端的系統,用SGD的方法訓練一個神經網路
- 模型融合了vision和language的state-of-art的模型,模型可以現在一個大的集合裡預訓練,然後可以利用多餘的資料
- 這麼模型最終顯示出很好的結果
2.Related Work
生成自然語言描述的這個問題在cv領域發展已經很久了,但通常用於視訊。這些系統一般很複雜。
而關於影象的自然文字描述是最近流行的事情。在這篇論文裡,我們將影象檢測的深度卷積網路和序列模型的recurrent networks結合起來,RNN由基於內容的單端對端網路訓練而成,這個模型是由在機器翻譯中的序列生成模型啟發的,區別是不使用一個句子開始,而是用卷積網路處理影象開始。對比其他的work,我們用看一個非常強壯的RNN模型,我們直接把影象輸入到RNN中,這使得RNN可以直接追蹤文字描述的物體。我們的work取得了非常好的結果。最近Unifying visual-semantic embeddings with multimodal neural lan- guage models.提出了多模態模型,他們用了兩個pathwa,一個用作圖片一個用作文字。
3.Model
在本文中,我們提出了一個神經網路及改了結合的框架去生成圖片的描述。最近的Statistical Machine Translation(SMT)表明,給定一個序列模型,用端到端的模型直接直接最大化正確翻譯的概率去達到state-of-art的效果是可行的。這些模型利用RNN編碼,將變長的輸入encode成一個固定長的多位向量,再進行解碼。因此,很自然可以想到輸入一張圖片(代替輸入句子),然後將它“翻譯”為它的描述。
是模型的引數,是一張圖,是其正確的描述。因為代表很多句子且長度不固定,因此可以將其寫成鏈式
memory 是用一個非線性函式更新的,
為了做出上述的RNN,有兩個重要的選擇,的形式是什麼及如何將圖片和文字作為輸入。對於,我們使用LSTM網路;對於影象的表達我們用CNN,文字我們用詞嵌入表達。
LSTM-based Sentence Generator
LSTM的核心是記憶細胞,這個細胞被三個門控制,
Training
LSTM模型用來預測句子中的每個詞,在通過見過圖片和輸入詞之後。所有的LSTM共享同樣的引數。上一課的輸出輸給時刻的LSTM。展開的程序如下:
我們將每個詞做成one-hot編碼的集合,其維度和字典的大小一樣。我們設定的開始詞和的特殊停止詞,表示出句子的開頭和結尾。圖片用CNN空間,詞用詞向量,影象只在t-1時間輸入一次。我們測試過如果每個時間都輸入影象的話,會造成噪聲和過擬合。我們的loss是。
這邊有兩種方法根據圖片得到句子,一種是取樣,一種是網格搜尋。
4.Experiments
最主要的問題的是過擬合,但我們有幾種防止過擬合的方法,一種是初始化CNN單元的權重,通過與訓練模型(比如在ImageNet上的預訓練模型)。而詞向量模型我們沒有初始化,但是我們有一些避免過擬合的技巧,我們用了dropout和模型融合。
我們用SGD及固定的學習率並且不加入動量,我們用512維的LSTM的memory和embeddings。
我們用MSCOCO測試。
Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
收到機器翻譯和目標檢測的啟發,介紹一種基於模型的attention方法,可以自動學習描述影象的內容。測試資料集為Flickr8k,Flickr30k and MSCOCO。
1.Introduction
相對於將整張圖片壓縮成一句靜態的表述,attention機制與許靜態的特徵動態的放到前端。當一張圖非常混亂的時候,這是非常重要的方法。在本文提出了hard attention機制和soft attention。
3.Image Caption Generation with Attention Mechanism
Encoder:convolutional features
Decoder:LSTM