CVPR 2017
《Self-critical Sequence Training for Image Captioning》这篇文章提出了一个新的基于强化学习的图像描述方法的目标函数,解决的传统目标函数曝光偏差的问题,流程如下所示:
序列生成可以看作一个强化学习的问题,生成序列的LSTM看作一个“智能体”,单词和图像特征看作“环境”,网络参数定义为“策略”,最后推测的“动作”就是预测的下一个单词。每个动作之后,智能体更新自己的内部状态。每生成一个“EOS”,智能体得到一个“奖励”,也就是生成句子的CIDEr分数,表示为r。则训练目标为最小化消极期望奖励:
其中,, 表示t时刻从模型采样的单词。在实践中,
使用REINFORCE方法计算上述目标函数的梯度:
在实践中,期望梯度可以通过使用单个蒙特卡洛抽样从中抽样近似。对于minibatch中的每个训练样例:
REINFORCE方法给出的策略可以推广到计算每个动作值相对于参考奖励或基线b的奖励:
这个基线可以是任意函数,只要不依赖于“动作”ws,因为在这种情况下,b不会改变期望梯度,同时又可以减少梯度估计的方差。对于每个训练样例,再一次用单个采样近似估计期望梯度:
根据链式法则和编码过程中注意力参数模型,
其中是注意力模型中softmax函数的输入。使用带有基线b的REINFORCE算法,的梯度计算为:
SCST的核心思想是,用当前模型在测试时使用的推理算法下得到的奖励来作为REINFORCE的基线。
在这篇文章中,使用贪婪解码: