综述:Image Caption 任务之语句多样性
作者丨鄭逸
學校丨復旦大學媒體計算實驗室
研究方向丨Image Caption
知乎丨https://zhihu.com/people/zheng-yi-49-69/
Image Caption 任務是一個需要綜合計算機視覺和自然語言處理的任務,需要使用計算機建立某種映射方式,將處于視覺模態當中的數據映射到文本模態當中。
總的來說,這樣的映射任務需要如下兩個基本需求:1)語法的正確性,映射的過程當中需要遵循自然語言的語法,使得結果具有可讀性;2)描述的豐富程度,生成的描述需要能夠準確描述對應圖片的細節,產生足夠復雜的描述。
然而目前應用最廣泛的“編碼器-解碼器”模型使用交叉熵作為損失函數訓練參數,這種方法帶來的弊端在于,模型會趨向于生成更加“安全”的語句描述,在兩幅場景相似但細節不同的圖像上,模型會趨向于給出一個更寬泛的描述,忽視了圖像的具體細節。
▲?圖1
如圖 1 所示,在兩幅圖像內容相似、但整體環境存在明顯差異的情況下,人在描述的過程中能夠憑直覺注意到這兩幅圖像的相似性,并且可以根據這種相似性給兩幅圖像生成細節描述對其進行區分。但目前使用交叉熵作為損失函數的方法卻無法做到,其給出的描述完全一致,忽視了圖像的細節特征。ATTN + CIDER 表示使用注意力機制、基于 CIDER 的強化學習方法訓練模型。
因此為了解決句子的多樣性問題,研究者提出了以下幾種在目前看來十分有效的解決方法。
ICCV 2017
文章首先給出了一組對比 MLE(使用交叉熵作為損失函數,最大似然概率),G-GAN(使用生成模型的方式,下文將詳細說明)和人類的具體描述方式,如圖 2 所示。
▲?圖2
可以看出相比較于 MLE 方法,使用 GAN 生成的結果在句法結構上更加復雜,對于細節的描述非常豐富。使用 MLE 的方法導致生成結果非常死板,語句模式單一,這也是上文所提到的機器更趨向于更“安全”的結果的量化體現。
因此文章提出使用 Conditional GAN 的方法作為生成模型用于生成描述,通過 GAN 的 evaluator 去評價語句描述是否由“人”描述得到,具體方法論如下介紹(下面的介紹默認理解 conditional GAN)。?
Generator G,生成模型需要兩個輸入,圖像的特征(經過 CNN 編碼)f(I) 和隨機的噪聲變量 Z,圖像特征作為條件變量用于控制生成結果的范圍在描述特定的圖片,噪聲變量用于控制生成結果的多樣性。最終生成模型通過 LSTM 作為解碼器生成句子。
Evaluator E 也是一個神經網絡,網絡模型框架和 G 相似,但參數是不共享的,可以理解為結構相似、但實際不同的兩個模型。E 通過給定圖片和描述的正確配對,通過 CNN 和 LSTM 將其編碼映射到相同的語義空間(具體方法感興趣可以了解跨模態的圖文匹配方法),將其點乘根據 logistic function 得到一個 [0,1] 的概率值表示得分,詳細公式如下:
從邏輯上來理解學習的目標函數(實際上在解釋 GAN 的邏輯意義),生成模型 G 的目標是使得生成結果能夠更加自然,從而“騙得”評價模型 E 能夠將其誤認為是“人”的描述結果;評價模型 E 的目標是使得能夠準確識別句子的來源是“機器”還是“人”,通過循環訓練,這個過程將會達到一種動態平衡,從而使得生成模型的結果和真實結果相差無幾,并且評價模型最終達到隨機判斷的形式(即輸出 0.5)。
量化的目標函數如下公式所示:
在這里需要注意的是,提出這樣一種使用 GAN 的方法訓練模型可以取代使用 MLE 的方法訓練,從而避免上述使用 MLE 可能出現的問題。
訓練 Generator G
此處有一個關鍵問題,在生成模型單詞到單詞生成句子的過程中,每生成一個單詞都是一個離散的采樣過程,在數學上可將其理解為一個不可微的過程,不解決這個問題就無法使用反向傳播方法對模型參數進行更新。
為了解決這個問題,我們需要使用 policy gradient 的方法對不可微的過程進行一次建模(屬于強化學習的范疇,具體公式推導在此不做說明)。值得一提的是,目前 GAN 的方法在圖像領域取得的效果很好,但在 NLP 領域好像沒有看到什么非常優秀的結果。?
因此目前需要解決的問題為:如何將從 E 當中獲得的 feedback 用于反向傳播。使用 policy gradient 的基本思想是把一個句子中的所有單詞考慮為多個動作 action,每個時間段 t 的 action 就是基于條件概率的一個采樣,當采樣到結束符 <EOS> 時便完成了句子的生成工作。在采樣結束之后,我們就能通過 evaluator 得到一個評價,進而可以根據此評價對參數進行更新。?
然而這里存在另一個問題,就是需要等到整個句子生成結束后才能夠得到結果。這顯然會有很多問題,比如誤差會被積累,或者梯度彌散、梯度爆炸等一系列的問題。
為了解決這個問題,作者在論文中采用了 early feedback 的方式,即可以在句子生成尚未結束時求解期望 reward,具體形式如下公式所示:
這里具體使用的是蒙特卡洛采樣方式,t 時刻之前的是真實生成的結果,之后的是通過采樣法得到的結果。總的梯度可以表示為如下公式,具體解釋詳見論文。
這樣一來,就可以解決使用不可微采樣并通過反向傳播方法優化參數,同時通過蒙特卡洛采樣可在任意時刻求得 reward,加快優化速度。?
訓練 Evaluator E?
E 的邏輯理解目標在于評價描述 S 是否能準確、自然、豐富地描述給定圖片 I,給出的輸出是一個 [0,1] 之間的值,越大表示描述越好。
為了能夠加強 E 的能力,在真實的目標函數中除了引入 I 所對應的真實結果和生成預測結果,還需要引入真實的但對應其他圖片的一個結果,即總共 3 種來源不同的語句描述。目的是加強真實語句的得分,抑制其他兩個來源的句子得分。這一表示形式的建模可以表示為如下公式:
Extensions for Generating Paragraphs?
在這篇文章中,作者還做了生成段落描述的實驗,在此不再贅述,感興趣的話可以 follow 層次結構的 LSTM 和斯坦福的 DenseCap。 最終論文的實驗和量化分析感興趣的話可以參考論文,此文僅對模型的使用方法做出自己的理解,結果究竟好壞還需要讀者自行拿捏。
CVPR 2017
這篇文章主要研究了在給定兩個相近標注時,如何能根據描述中的不同具體細節,忽略其相同部分并索引到正確的圖片。文章提出的方法可以稱為 speaker-listener 模型,從本質上來說和上文的 generator-evaluator 模型較為相似。
本文除了考慮 discriminative image caption 任務之外,還提出了 justification 這一任務。基于這個任務,論文給出了一個新的數據集。在下文中,筆者將僅針對 caption 任務進行討論。?
在總體介紹之前先對部分符號表示做出規范,sentence s, a sequence of words{}, image I, target concept , distractor concept , distractor concept 表示相似的語句但是對應到不同的圖片,加強模型對句子細節的理解。?
Reasoning Speaker
Speaker 對給定圖片和正確語句的概率進行建模,即。同時 listener 可以表示為。對于 RS 的具體建模如下所示:
▲?公式1
前一項表示描述的精確度,后一項表示豐富程度,即區別程度。同時文章也提到這樣的建模方式會產生以下兩種無法避免的問題:
1. 預測的過程在指數級的空間當中,是一個無法追蹤的狀態;
2. 不希望 listener 在建模過程中對句子分解在單詞的層面上進行判斷,而是希望模型將句子看作一個整體進行判斷。
Introspective Speaker?
作者為了解決這一問題,將 listener 相較于以前的方法做出了改變,具體表現為 log 似然函數的一個比例,形式如下:
這樣的 listener 建模方法只基于生成模型 G,即 speaker,作者將其命名為內省法(introspective),優點在于重用了生成模型,不引入多余的訓練步驟完成了對 listener 的建模。因此公式 1 可以改寫為:
▲?公式2
Emitter-Suppressor (ES) Beam Search for RNNs?
公式 2 利用馬爾科夫鏈和貝葉斯公式可以改寫為:
如果對具體的數學公式推導不感興趣,下圖可以從圖形的方式量化理解這一訓練過程。
▲?圖3
如圖 3 所示,綠色背景的字表示正確對應描述,紅色背景的字表示相似圖片對應的描述,藍色表示使用 RS 模型得到的結果。可以看出同時出現的”white”單詞將會被抑制,只出現在正確描述、但沒有出現在迷惑描述中的”blue”將被選中, 從而可以得到對應圖片的更加細節的表述。?
將這樣的思想應用在 discriminative image caption 領域當中,對應的真實數據和迷惑數據將表示為圖片,在兩幅相似圖片的基礎下,獲取對應圖片的細節信息從而生成更準確的描述。具體公式表示如下:
這篇文章的貢獻在于做了大量具體實驗和分析,在此不贅述,是一篇值得看的好文。
NIPS 2017
這篇文章提出了一個新的方法:對比學習模式,與上一篇文章的反省學習方法有借鑒意義,值得一提的是,這篇文章的第一作者就是第一篇使用 GAN 方法的作者。?
本文方法受啟發于噪聲對比估計(Noise Contrastive Estimation, NCE),具體 NCE 的介紹可以查看如下鏈接,主要用于 NLP 當中:
https://blog.csdn.net/littlely_ll/article/details/79252064?
需要注意的是,不同于上文其他兩個方法,本文是對傳統 MLE 方法的一個“顛覆”操作,作者使用的方法可以作為一個插件,用于修正任何模型的生成結果。
Self Retrieval?
無論使用什么方法增強句子的豐富程度,但要找到一個合適的、標量化的評價標準,對句子的豐富程度做出準確評價是一個比較復雜的任務。
基于此任務需求,本文提出了一種“自我檢索”方式,使用生成的描述語句來檢索圖片,根據檢索到圖片的準確率來標量化句子的豐富程度。這一方法從經驗上來看具有可參考性,一個豐富的句子所具有的特性一定是 discriminative,學習到了圖片的具體細節,從理論上說應該可以根據這些細節還原原始的圖像。?
Contrastive Learning?
在對比學習中,我們需要學習的模型建模為,同時使用參考模型來對模型結果做進一步規范操作。因此,在學習的過程中不僅需要正確的(圖片,描述)配對樣本,還需包含圖片和描述不匹配的樣本,用于加強模型對句子的豐富程度,即多樣性的學習效果。根據此要求損失函數可以建模為:
▲?公式3
▲?公式4
在具體的建模過程中,如果直接使用上述建模方式,將會遇到如下幾個問題:
1. 使用概率值的差,但實際情況當中,概率值較小,因此可能會引起數值問題;
2. 因為樣本的隨機采樣,公式 4 對簡單數據將會非常容易判斷(不匹配數據完全不相關),而對于困難數據(即不匹配數據和真實數據的相關性較高)則不盡如人意。顯然,我們不能將所有數據對損失函數的貢獻一視同仁。
為了解決這兩個問題,需要使用 NCE 中的方法。
▲?公式5
首先需要將公式 3 改寫為公式 5 的形式,即使用 log 函數計算概率值,原本 [0,1] 之間的概率值可以被建模為 [-infinity, 0],避免了數值問題的影響。同時引入 logistic function 針對不同數據對 loss 的不同貢獻度進行建模,如以下公式所示:
在 logistic function 的作用下,針對容易的數據,函數值將會落入梯度較小的區域從而對最終結果的影響較小。通過這種方法得到的最終損失函數如下:
具體在采樣過程中如何采樣迷惑數據,以及如何選擇迷惑數據的方式詳見論文實驗部分。
總結
目前看來,Image Caption 任務的性能雖在得到不斷改善,但如何使機器能夠更加貼近人類的思維模式仍是目前急需解決的問題之一,在這個任務中即反應為如何能夠生成更加多元話的結果。
點擊以下標題查看更多往期內容:?
自動機器學習(AutoML)最新綜述
自然語言處理中的語言模型預訓練方法
從傅里葉分析角度解讀深度學習的泛化能力
深度解讀DeepMind新作:史上最強GAN圖像生成器
兩行代碼玩轉Google BERT句向量詞向量
本周有哪些值得讀的AI論文?進來告訴你答案
TensorSpace:超酷炫3D神經網絡可視化框架
NIPS 2018:基于條件對抗網絡的領域自適應方法
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 獲取最新論文推薦
總結
以上是生活随笔為你收集整理的综述:Image Caption 任务之语句多样性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 本周有哪些值得读的 AI 论文?进来告诉
- 下一篇: Byte Cup 2018机器学习大赛进