Self-critical Sequence Training for Image Captioning

Self-critical Sequence Training for Image Captioning

原文地址

时间:2017

Intro

近年来策略梯度(policy-gradient)在训练深度端到端系统上展现了它的能力,它可以以不可导的度量作为目标函数,本文考虑的问题就是使用强化学习来训练image captioning模型,称为self-critical sequence training(SCST),它是一种REINFORCE算法,但它不使用baseline来正规化rewards以减小方差,而是使用新的test-time inference算法来正规化reward,我们发现在测试时使用贪婪解码直接优化CIDEr的效率十分高,最终模型将CIDEr从104.9提升到了114.7

传统的nlg模型往往以最大化似然函数作为目标,但这使得训练和测试之间出现了断层,因为测试是的时候模型使用的是之前预测的词来预测下一个词,这个exposure bais使用错误在测试的时候不断累积。模型在训练时的交叉熵损失和测试时使用的BLEU,ROUGE,METEOR,CIDEr等度量也存在不一致性

Caption Models

FC Models,图片编码器使用一个CNN,然后用线性映射WIW_I映射到词向量空间中,以这个向量作为第一个输入的词:
Self-critical Sequence Training for Image Captioning
其中ϕ\phi是2单元的maxout函数,×○×代表单元,σ\sigma戴氏sigmoid函数,模型输出
Self-critical Sequence Training for Image Captioning
θ\theta为模型的参数,通常模型是在交叉熵(XE)上优化
Self-critical Sequence Training for Image Captioning

Attention Model(Att2in),attention特征仅输入到cell node中
Self-critical Sequence Training for Image Captioning
其中ItI_t是attention feature,对于N个不同位置的特征,它计算为
It=i=1NαtiIi I_t = \sum_{i=1}^{N}\alpha^i_tI_i

αt=softmax(at+bα) \alpha_t=\text{softmax}(a_t+b_\alpha)

ati=Wtanh(WaIIi+Wahht1+ba) a^i_t = Wtanh(W_{aI}I_i+W_{ah}h_{t-1}+b_a)

Reinforcement Learning

形式化,用RL的术语描述整个任务

  • agent:LSTM
  • environment:words和image features
  • policy:模型参数θ\theta决定policy pθp_\theta
  • reward:生成句子的CIDEr

训练的目标是最小化负期望回报
Self-critical Sequence Training for Image Captioning

REINFORCE策略梯度算法,REINFORCE策略梯度为
Self-critical Sequence Training for Image Captioning
实践中通常使用一个Monte-Carlo采样来估计均值
Self-critical Sequence Training for Image Captioning
REINFORCE with a Baseline,为了减少方差,REINFORCE可以引入Baseline
Self-critical Sequence Training for Image Captioning
同样使用单个采样来估计
Self-critical Sequence Training for Image Captioning
Final Gradient Expression,最终的梯度为
Self-critical Sequence Training for Image Captioning
其中sts_t是softmax函数的输入,
Self-critical Sequence Training for Image Captioning

Self-critical sequence training(SCST)

SCST的核心思想是用当前模型在inference时的reward来baseline REINFORCE算法,
Self-critical Sequence Training for Image Captioning
其中r(w^)r(\hat{w})是当前模型在测试时得到的reward

Experiments

使用XE训练的模型作为预训练模型,结果如表所示
Self-critical Sequence Training for Image Captioning
在不同的度量上训练
Self-critical Sequence Training for Image Captioning
可见在CIDEr上训练的效果最好

结论

本文给出了一个基于策略梯度的image captioning训练方法,在MSCOCO上达到了SoTA的效果