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更低,在各测试指标上也都表现更佳。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章