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,然后用线性映射 W I W_I WI映射到词向量空间中,以这个向量作为第一个输入的词:
Self-critical Sequence Training for Image Captioning_第1张图片
其中 ϕ \phi ϕ是2单元的maxout函数, ○ × ○× ×代表单元, σ \sigma σ戴氏sigmoid函数,模型输出
在这里插入图片描述
θ \theta θ为模型的参数,通常模型是在交叉熵(XE)上优化
在这里插入图片描述

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

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

a t i = W t a n h ( W a I I i + W a h h t − 1 + b a ) a^i_t = Wtanh(W_{aI}I_i+W_{ah}h_{t-1}+b_a) ati=Wtanh(WaIIi+Wahht1+ba)

Reinforcement Learning

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

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

训练的目标是最小化负期望回报
在这里插入图片描述

REINFORCE策略梯度算法,REINFORCE策略梯度为
在这里插入图片描述
实践中通常使用一个Monte-Carlo采样来估计均值
在这里插入图片描述
REINFORCE with a Baseline,为了减少方差,REINFORCE可以引入Baseline
在这里插入图片描述
同样使用单个采样来估计
在这里插入图片描述
Final Gradient Expression,最终的梯度为
在这里插入图片描述
其中 s t s_t st是softmax函数的输入,
在这里插入图片描述

Self-critical sequence training(SCST)

SCST的核心思想是用当前模型在inference时的reward来baseline REINFORCE算法,
在这里插入图片描述
其中 r ( w ^ ) r(\hat{w}) r(w^)是当前模型在测试时得到的reward

Experiments

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

结论

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

你可能感兴趣的:(论文笔记)