Reflective Decoding Network for Image Captioning论文阅读

Reflective Decoding Network for Image Captioning论文阅读

2019cvpr 香港科技大学+腾讯

论文简介

1.目前最先进的图像描述方法主要集中在增强对图像视觉特征的利用上,比如在图像上应用不同形式的注意力机制,但是较少的方法通过应用语言的内在特性来提高图像描述的性能。
2.本文中提到的RDN反射解码网络将重心放在解码器部分,第一次同时应用了视觉注意力和文本注意力。
3.这个反射解码网络还有一个优点是可以直观地看到模型是如何根据已经生成的单词进行单词预测。看下图,在生成单词river时,bridge贡献更大,其次分别是tower、over、a,这个结果也是符合我们人类认知的,我们还可以看到对比传统解码器生成的描述,RDN生成的描述更具体准确、质量更高。
Reflective Decoding Network for Image Captioning论文阅读

网络结构

Reflective Decoding Network for Image Captioning论文阅读
Reflective Decoding Network for Image Captioning论文阅读
如思维导图所示,RDN的网络结构具体可分为四个模块:

1.对象级别编码器

RDN的反射解码网络的重点在解码器部分,所以编码器部分使用了传统的Faster RCNN目标检测器,用ResNet-101预训练。编码器部分的输出是各子区域的视觉特征,作为图像I的上下文信息。
Reflective Decoding Network for Image Captioning论文阅读

2.ARM基于注意力的循环模块

Reflective Decoding Network for Image Captioning论文阅读
ARM中在结构上包括第一层LSTM和视觉注意层Attvis,第一层LSTM的输入有三部分,所有子区域视觉特征的均值、t-1时刻第二层LSTM的隐藏层状态、真实数据对应单词的嵌入向量(嵌入矩阵*单词的one-hot表示)。
Reflective Decoding Network for Image Captioning论文阅读
第一层LSTM的迭代公式:
Reflective Decoding Network for Image Captioning论文阅读
视觉注意层Attvis建立起生成每一个单词时各子区域之间的注意权重关系,计算公式:
Reflective Decoding Network for Image Captioning论文阅读
这样就得到了生成每个单词时的视觉注意力,将视觉注意权重信息加入到子区域的视觉特征中进行更新:
Reflective Decoding Network for Image Captioning论文阅读

3.RAM反射主义模块

Reflective Decoding Network for Image Captioning论文阅读
ARM中在结构上包括第二层LSTM和反射注意层Attref。在第二层LSTM中,将视觉注意信息加入到隐藏层状态中,迭代公式:
Reflective Decoding Network for Image Captioning论文阅读
在反射注意层Attref,计算已经生成的t个第二层LSTM隐藏层状态的归一化注意权重分布。通过衡量前t个第二层LSTM隐藏层状态和t时刻的第一层LSTM隐藏层状态的相关性,建立起过去t时间步预测出的单词与当前预测单词的注意权重关系,文本注意力权重计算公式:
Reflective Decoding Network for Image Captioning论文阅读
这样就得到了生成第t个单词时前t个单词的文本注意力(考虑了前t个隐藏层状态对当前t时刻单词精读的贡献,并且这个贡献程度是可以可视化的),将文本注意权重信息加入到第二层LSTM隐藏层状态中进行更新:
Reflective Decoding Network for Image Captioning论文阅读
此时第二层LSTM隐藏层状态中同时包含了视觉注意力信息和文本注意力信息,并作为反射解码器的输出用于预测条件概率分布下的单词st:
Reflective Decoding Network for Image Captioning论文阅读

4.RPM反射定位模块

Reflective Decoding Network for Image Captioning论文阅读
在自然语言中,由于句法结构的关系,很多词语在句子中都有相对固定的位置。例如,数词和主语词,如“a man”或“a woman”,大多出现在句首,而谓语往往占据句子的中间位置。在以往的图像描述方法中单词都是一个接着一个生成的,我们把1到t的生成顺序默认为单词的位置。而RPM模块中引入了单词的位置信息来指导解码器感知单词在整个句子中的相对位置。
解码第t个单词时,计算其实际相对位置r和预测相对位置p,w是相对位置的嵌入矩阵,n是句子长度,具体公式:
Reflective Decoding Network for Image Captioning论文阅读
RPM的作用体现在网络的训练过程中,目的是通过设计一个损失函数,使r和p之间的差异最小,对单词的定位更准确。

损失函数

优化RDN模型使用了两类损失函数。一个是传统的交叉熵损失,将负对数似然值最小化,以此最大化真实描述中单词按照正确顺序出现的概率。
Reflective Decoding Network for Image Captioning论文阅读
另一个是定位感知损失,要最小化实际相对位置和预测相对位置的差距。
Reflective Decoding Network for Image Captioning论文阅读
总的优化目标就是两部分损失函数的加和,其中λ是平衡两部分损失贡献的超参数。
Reflective Decoding Network for Image Captioning论文阅读

对比结果

Reflective Decoding Network for Image Captioning论文阅读
通过数据我们可以看到,RDN中的RAM和RPM模块均起到了提升图像描述性能的效果,且完整的RDN性能更优。
Reflective Decoding Network for Image Captioning论文阅读
相比于一些目前最先进的图像描述方法,RDN在性能上更上一层楼,体现了论文方法的有效性。

论文总结

1.我们提出的RDN反射编码网络,有效地提高了图像描述方法的性能,可以生成高质量的图像描述。
2.RDN中的ARM和RAM模块相结合,同时应用了视觉注意力和文本注意力,并可视化了文本域内的词语决策过程。
3.RDN中创新性的设计了RPM定位感知模块,能够感知每个单词在整个描述中的相对位置,从而更好地理解自然语言的句法范式。
4.RDN在COCO数据集上实现了目前最先进的性能。(不过我发现京东AI研究院2020年有新成果,看起来性能更好,之后会持续关注)

关于论文的实验部分,准备和代码一起看,我在这方面也是萌新才起步,如果大家有什么见解的话,欢迎一起讨论~