當前位置:
首頁 > 最新 > 基於對比學習的Image Captioning

基於對比學習的Image Captioning

這是 PaperDaily 的第45篇文章

本期推薦的論文筆記來自 PaperWeekly 社區用戶@jamiechoi本文提出了一種將對比學習(CL)用於 Image Captioning 的方法,通過在參考模型上設立兩個約束,鼓勵獨特性,從而提高標記質量。

關於作者:蔡文傑,華南理工大學碩士生,研究方向為Image Caption。

論文 Contrastive Learning for Image Captioning

鏈接 https://www.paperweekly.site/papers/1344

源碼 https://github.com/doubledaibo/clcaption_nips2017

論文動機

本文提出的 Contrastive Learning (CL) 主要是為了解決 Image Caption 任務中生成的 Caption 缺少 Distinctiveness 的問題

這裡的 Distinctiveness 可以理解為獨特性,指的是對於不同的圖片,其 caption 也應該是獨特的、易於區分的。即在所有圖片中,這個 caption 與這幅圖片的匹配度是最高的

然而現在大多數的模型生成的 caption 都非常死板,尤其是對於那些屬於同一類的圖片,所生成的 caption 都非常相似,而且 caption 並沒有描述出這些圖片在其他方面的差異。

Empirical Study

文章提出了一個 self-retrieval study,來展示缺少 Distinctiveness 的問題。作者從 MSCOCO test set 上隨機選取了 5000 張圖片I1,...I5000,並且用訓練好的 Neuraltalk2 和 AdaptiveAttention 分別對這些圖片生成對應的 5000 個 captionc1,...,c5000。

用pm(:,θ) 表示模型,對於每個 caption ct,計算其對於所有圖片的條件概率pm(ctI1),...,pm(ctI5000),然後對這些概率做一個排序,看這個 caption 對應的原圖片是否在這些排序後的結果的 top-k 個裡,具體可見下圖。

可見加入了 CL 來訓練以後,模型的查找準確率明顯提高了,並且 ROUGE_L 以及 CIDEr 的分數也提高了,準確度與這兩個評價標準的分數呈正相關關係。這說明提高 Distinctiveness 是可以提高模型的 performance 的

Contrastive Learning

先介紹通常使用 Maximum Likelihood Estimation (MLE) 訓練的方式,這裡借用 show and tell 論文裡面的圖:

輸入一副圖片以後,我們會逐個地得到下一個目標單詞的概率pt(St),我們需要最大化這個概率,而訓練目標則通過最小化來實現這一目標。

而使用 MLE 訓練會導致缺少 Distinctiveness 的問題,作者在他之前的文章Towards Diverse and Natural Image Descriptions via a Conditional GAN裡面已經解釋過了,大家可以讀一讀。

CL 的中心思想是以一個參考模型 (reference model,如 state-of-the-art 的模型,本文以 Neuraltalk2 和 AdaptiveAttention 為例) 作為 baseline,在此基礎上提高 Distinctiveness,同時又能保留其生成 caption 的質量。參考模型在訓練過程中是固定的。

CL 同時還需要正樣本和負樣本作為輸入,正負樣本都是圖片與 ground-truth caption 的 pair,只不過正樣本的 caption 與圖片是匹配的;而負樣本雖然圖片與正樣本相同,但 caption 卻是描述其他圖片的。

具體符號:

目標模型和參考模型都對所有樣本給出其估計的條件概率pm(cI,θ) 和pn(cI,θ),這裡的pm(cI,θ)應該是輸入圖片後,依次輸入 caption 中的單詞S0,...,SN?1,並且依次把得到的下一個目標單詞概率p1(S1),...,pN(SN) 相乘所得到的。結合上圖看會更清晰。

並且希望對於所有正樣本來說,pm(cI,θ)大於pn(cI,θ);對於所有負樣本,pm(cI,θ)小於pn(cI,θ)。意思就是目標模型對於正樣本要給出比參考模型更高的條件概率,對於負樣本要給出比參考模型更低的條件概率。

定義pm(cI,θ)和pn(cI,θ)的差為D((c,I);θ,?)=pm(cI,θ)?pn(cI,θ),而 loss function 為:

這裡應該是最大化 loss 進行求解。

然而實際上這裡會遇到幾個問題:

首先pm(cI,θ)和pn(cI,θ)都非常小(~ 1e-8),可能會產生 numerical problem。因此分別對pm(cI,θ)和pn(cI,θ)取對數,用 G((c,I);θ,?)=lnpm(cI,θ)?lnpn(cI,θ) 來取代D((c,I);θ,?)。

其次,由於負樣本是隨機採樣的,不同的正負樣本所產生的D((c,I);θ,?)大小也不一樣,有些D可能遠遠大於 0,有些D則比較小。

而在最大化 loss 的過程中更新較小的D則更加有效,因此作者使用了一個 logistic function (其實就是 sigmoid),來 saturate 這些影響,其中ν=Tn/Tm, 並且Tn=Tm來平衡正負樣本的數量。

因此,D((c,I);θ,?)又變成了:h((c,I);θ,?)=rν(G((c,I);θ,?)))。

由於h((c,I);θ,?)∈(0,1),於是 loss function 變成了:

等式的第一項保證了 ground-truth pairs 的概率,第二項抑制了 mismatched pairs 的概率,強制模型學習出 Distinctiveness。

另外,本文把 X 複製了 K 次,來對應 K 個不同的負樣本 Y,這樣可以防止過擬合,文中選擇 K=5。

最終的 loss function:

以上的這些變換的主要受 Noise Contrastive Estimation (NCE) 的啟發。

理想情況下,當正負樣本能夠被完美分辨時,J(θ)的上界是 0。即目標模型會對正樣本p(ctIt) 給出高概率,負樣本p(c/tIt)給出低概率。

此時:

G((ct,It);θ,?)=∞,G((c/t,It);θ,?)?∞,h((ct,It);θ,?)=1,h((c/t,It);θ,?)=0,J(θ) 取得上界 0。

但實際上,當目標模型對正樣本給出最高概率 1 時,我認為G((ct,It);θ,?)應該等於lnpn(cI,θ),因此h((ct,It);θ,?)

實驗結果

如上圖,可以看到,加入 CL 以後,模型的表現有較大提升。

上圖為 CL 與原模型的一些可視化結果。

文章還對比了CL 跟 GAN、IL (Introspective Learning) 之間的區別:

另外,加入 IL 和 GAN 後模型的準確性都有所下降,說明模型為了提高 Distinctiveness 而犧牲了準確性。但 CL 在保持準確性的同時又能提高 Distinctiveness。

上圖還對比了分別只有正負樣本的訓練情況,可以看到:

而只有兩個樣本都參與訓練的時候能給模型帶來很大的提升。

上圖測試了 CL 的泛化能力,可以看到,通過選擇更好的模型(AA)作為 reference,NT 的提升更大。(但是卻沒有超過 AA 本身,按理說不是應該比 reference 模型更好嗎?)

另外,還可以通過周期性地以訓練好的目標模型作為更好的參考模型,來提升模型的下界。然而在 Run 2 進行第二次替換的時候提升已經不大,證明沒有必要多次替換。

總結

總的來說,本文主要的貢獻在於提出了 Contrastive Learning 的方法,構造損失函數利用了負樣本來參與訓練,提高模型的 Distinctiveness。另外本文提出的 self-retrieval 實驗思路在同類論文里也是挺特別的。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 PaperWeekly 的精彩文章:

2017年度最值得讀的AI論文
Google論文解讀:輕量化卷積神經網路MobileNetV2

TAG:PaperWeekly |