《Stack-Captioning: Coarse-to-Fine Learning for Image Captioning》笔记

AAAI 2018

《Stack-Captioning: Coarse-to-Fine Learning for Image Captioning》提出了一个由粗到细的多级预测架构——堆叠注意力模型,由多个解码器组成,每个解码器在前一个解码器的输出上操作,产生越来越精细的描述。架构如图所示:

《Stack-Captioning: Coarse-to-Fine Learning for Image Captioning》笔记_第1张图片

第一个LSTM生成粗级图像描述,随后的LSTM作为细化解码器。

给定图片,模型生成的描述为,D是词典,T是描述句子的长度。用表示第i阶段解码器预测的单词序列,表示细化阶段的总数。把i=0阶段作为粗级解码器,i>=1的阶段作为细化解码器。

编码图像的空间特征是区域个数。从CNN的最后一层卷积层提取特征,用空间自适应平均池化来重置特征为一个固定尺度的空间表示:

模型的第一阶段是粗级解码器,从全局图像特征预测粗级描述。在每个时间步骤的更新为:

其中,是词的词嵌入。是空间图像特征上的平均池化。的第t个解码单词由词典D描绘:

在随后的细化阶段中,每个时间步骤t,的更新为:

其中,是前一个LSTM的注意力权重,g是空间注意力函数,将已关注的视觉表示作为每个时间步骤额外的输入,强调详细的视觉信息。推理期间,最后的输出由词典D描绘:。需要注意的是,当t=1时,的隐藏输出。

采用一个堆叠的注意力模型过滤噪声。对每个时间步骤t下的阶段i:

其中,对应每个图像区域的注意力概率,当i=1时,

训练时,定义每个阶段i的损失函数,最小化交叉熵(XE)损失:

其中,是真值单词,是解码器0~i的参数。则最终目标函数为:

其中,是第i个LSTM给出的单词的输出概率。在所有时间步骤中共享模型的权重。

仅用以上目标函数作为损失函数是不充分的,还存在曝光偏差和损失-评估不匹配的问题。为了优化在每个阶段的评估指标,把描述生成问题看作是强化学习的问题。策略网络接收一个状态(前一个状态的输出,LSTM内部状态,图像特征),生成一个动作,一旦我们完成整个句子,获得一个奖励(如CIDEr得分),则基于RL的训练目标式最小化消极期望奖励:

其中,是t时刻从阶段i采样所得。使用评价指标对比生成句子和对应相关句子来计算。注意,,因为粗级解码器没有前一个阶段。然后在上使用蒙特卡洛抽样来计算预期梯度:

《Stack-Captioning: Coarse-to-Fine Learning for Image Captioning》笔记_第2张图片

其中,是i阶段的采样描述,是通过传统贪心解码获得的描述。

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