论文阅读 Show, Tell and Discriminate: Image Captioning by Self-retrieval with Partially Labeled Data

Abstract

Caption目的是尽力让生成的caption和人类自己说出来的一致,产生有判别力的caption是至关重要的。一般的方法都只是模仿语言结构,这样往往会陷入一种重复频繁出现的词汇和句子的这样的旧的习惯里面,所以本文提出了

  1. self-retrieval guidance来产生有判别力的句子
  2. 产生的句子和图像之间的关系已经被嵌入到整个的生成过程中,因此可以充分利用未标注的数据

Motivation

这里写图片描述
第一幅图和第二幅图的话很相似,所以二者产生了一样的句子,实际上,这两幅图片之间存在着细小的差异,因为整个模型在学习过程中遵循着旧的模式,所以导致产生的句子都是固定的模式。怎样来产生有判别力的caption呢?
作者引入了self-retrieval module

  1. 一幅图像产生的句子和其他图像之间的区别可以通过self-retrieval获得
  2. 图像caption和text-to-image之间的关系其实是对偶的。我们可以通过图像产生caption,然后利用caption去检索对应的图像。它能够评价caption的质量,并且促使网络学习到有区分力的caption

因为产生caption过程涉及到不可导的成分,所以作者用negative retrieval loss作为retrieval reward,然后用强化学习来进行学习

本文的训练

  • 对于标注的数据是caption损失和retrieval损失一起来训练
  • 对于未标注的数据用retrieval损失来训练
  • 困难样本采用moderately的困难样本挖掘方法

Methodology

caption部分

首先产生caption,首先通过CNN E i 进行编码产生特征,然后用LSTM D c 进行解码产生单词。常规的训练是最大化后验概率,在已知前t-1个时刻产生的单词 { w 1 , w 2 , . . . , w t 1 } 和编码的特征v之后求得第t时刻单词的分布
这里写图片描述
强化学习用evaluation metrics(CIDEr)作为reward允许caption模型在样本空间获得更多的可能性,比起MLE有着更好的监督性。所以这里用CIDEr来代替MLE。

Self-retrieval module

Self-retrieval module就是一个反搜索的过程。已经知道了caption的结果,下面就开始用产生的caption检索图像,怎么检索呢?

  1. 首先CNN编码图像特征 { v i } ,GRU编码caption特征 { c i }
  2. 假设取一幅图像A,然后计算该副图像的 v i c i 的距离,然后计算该幅图像的 c i 和剩余图像的 v j 间的距离 j i
  3. 优化,使得同一副图像产生的 v i c i 的距离小,不同图像产生的 c i v j , j i 距离要大,此时用到了triplet loss
    这里写图片描述

用强化学习进行梯度反传
Agent: model
Environment: word images
Policy: the parameters of the network
Action: the prediction of the next character
Upon generating the end-of-word (EOW) token, the agent observes a “reward”. According to the reward, the agent updates its policy.

Agent: LSTM
Environment: 之前产生的单词 { w 1 , w 2 , . . . , w t 1 } 和图像特征v
Action:基于policy和environment做决策
假设这里写图片描述是从word分布中采样获得的caption,每一个采样获得的caption获得一个reward r ( C s ) ,代表了产生的质量,在优化上面的目标是最小化caption的negative expected reward
这里写图片描述
在policy分布上计算reward的期望是intractable的,所以基于policy p θ 用蒙特卡洛采样来进行期望的估计
为了避免计算 r ( C s ) θ 的梯度,作者计算梯度用增强学习算法求导
这里写图片描述
在上面的式子中,梯度项用 r ( C s ) 进行了加权增加产生高的reward的可能性,为了进一步降低梯度估计的方差,将reward r ( C s ) 减去一个b
这里写图片描述
b可以使贪婪decoding产生的caption的reward,为了计算简便,用蒙特卡洛采样来近似
这里写图片描述
这里的reward包含两部分,CIDEr reward和self-retrieval reward两部分。第一个reward确保产生正确的caption,第二个reward来扩大caption产生的多样性。通过增强学习可以通过采样的caption优化句子水平的evaluation criteria
这里写图片描述

网络结构图示意
这里写图片描述

Moderately Hard Negative Mining in Unlabeled Images.

这里写图片描述

对于一幅图像产生的caption去检索相应的图像,根据相似度检索出若干图像,相似度较高的图像往往不能作为我们的困难样本,因为这些很相似的图片确实可能是产生和这句caption一模一样的话,所以作者采取了moderately的hard mining的方式,对相似度排序,选取中间的那些作为hard sample

利用未标注的数据

对于一个小的batch,标注的图像为这里写图片描述,标注的图像产生的caption为这里写图片描述,未标注的图像为这里写图片描述,未标注图像产生的caption为这里写图片描述
1) 对于标注的数据来讲,会有两部分损失,一个是第一个caption的reward,另一个是后面的retrieval的reward
这里写图片描述

2)对于未标注的数据来讲,只有retrieval reward,相当于变相的增加后面这一分支的样本量,有利于retrieval部分的学习

这里写图片描述

Training

  • 先训练self-retrieval 模型。caption模型和retrieval模型共用一个CNN image encoder。当训练caption module的时候,retrieval module和CNN image encoder是固定的
  • 然后训练caption module,先用MLE进行训练,提供一个好的起始点,可以缩小强化学习的搜索空间,有利于强化学习
  • 然后用强化学习来学习CIDEr和self-retrieval的reward

Experiments

猜你喜欢

转载自blog.csdn.net/u013548568/article/details/80398876