Self-critical Sequence Training

Self-critical Sequence Training for Image Captioning是IBM研究團隊在CVPR 2017上發表的一篇論文,主要介紹了一種基於self-critical思想的強化學習方法來訓練序列生成模型。

論文背景

該論文的背景與上週介紹的Sequence Level Training with Recurrent Neural Networks一文相似,後者爲解決主流的MLE訓練方法中存在的exposure bias問題,提出了基於強化學習的MIXER (Mixed Incremental Cross-Entropy Reinforce)方法。
IBM的這篇論文雖然側重於Image Captioning這一具體問題,但仍然可以認爲是針對MIXER的改進。

REINFORCE with a Baseline

在REINFORCE算法中,訓練的目標函數是最小化reward期望值的負值,即

reward函數[公式]通常是不可微的,但[公式]的梯度可以表示爲:

然後我們可以利用Monte-Carlo的思想,根據policy[公式]採樣出[公式],計算出[公式]的近似值:

 

但這種基於Monte-Carlo採樣的近似方法被認爲具有較高的方差(high variance)。這是因爲,採樣的每一步都具有較大的隨機性,使最終得到的樣本之間差異巨大,導致reward具有高方差,尤其是在文本生成這類搜索空間較大的問題中。
示意圖如下,每條軌跡代表一個採樣序列,它們從同一個位置出發,卻走到相距較遠的終點。

 

這種高方差梯度估計的缺陷正是許多強化學習模型早期訓練不穩的根源。
該問題的一個解決辦法是加上baseline的約束,從而對reward進行一定程度上的“校正”:

其中的[公式]正是我們所說的baseline,理論上,爲保持對梯度的無偏估計,[公式]可以是任意不依賴於[公式]的函數,這一結論由簡單的數學推導得到:

 

在實際應用時,一般以reward平均值的估計函數作爲baseline。如在MIXER中,baseline[公式]是一個簡單的線性迴歸模型,通過優化均方誤差[公式]得到,表示對reward平均值的估計。

Self-critical Sequence Training (SCST)

該論文提出的Self-critical Sequence Training (SCST)方法僅僅是對上述的baseline進行了修改。
在RNN模型中,[公式]對softmax輸入項[公式]的梯度可具體推導爲:

SCST把[公式]定義爲“當前模型在測試階段得到的reward”,即[公式]
這樣,梯度公式就是:

其中,測試階段的序列[公式]通過greedy decoding得到,即

SCST的示意圖爲

 

這種baseline的定義有幾種優勢:

  • 不必像MIXER那樣另外訓練一個模型來獲取baseline。
  • 通過利用測試階段的reward進行“自我批判”(self-critical),SCST更好地鼓勵了訓練/測試的表現一致性。
  • 實驗證明,SCST的梯度方差比MIXER更低,在各測試指標上也都表現更佳。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章