image caption笔记(九):《Unsupervised Image Captioning》

无监督的caption

文章使用一个图像数据集(MSCOCO)和一个文本语料库(从Web上抓取的200多万个句子组成图像描述语料库)  来做无监督caption。没有任何配对集合。

 

1、模型结构:

提出的图像字幕模型由图像编码器(没有用VGG 和resnet,改用了Inception v4),句子生成器和句子鉴别器组成。

训练目标包括了三部分:

(1)使用语料库来训练一个CGAN网络,condition是图像特征,生成器和鉴别器都是LSTM。目标是生成和语料库中真实句子难以区分的句子 ,但是并不一定是描述该图像的句子。

(2)预先训练好一个视觉检测器(文中使用的是在OpenImage[27]上训练的对象检测模型[21]被用作视觉概念检测器),对每幅图像中检测里面的视觉概念,如果生成的句子里包含了视觉概念,那么给奖励。

(3)图像特征经过生成器,产生句子,句子经过鉴别器,额外接一个全连接层,重新映射回图像特征。

这样,图像特征—>句子—>重构图像特征。    句子—>图像特—>重构句子

 

第一点是为了生成一个自然的句子

第二和第三是为了把这个句子和当前的图像建立密切的联系。

 

2、训练

(1)生成器的训练:

使用联合奖励来训练生成器,联合奖励包括三部分:对抗奖励、概念奖励和图像 重建奖励。鉴别器则不使用强化学习训练。

下面依次介绍三者:

1)对抗奖励:

生成器试图通过生成尽可能真实的句子来欺骗鉴别器。为了实现这一目标,我们在每个时间步骤给予发生器奖励,并将此奖励命名为对抗性奖励。第t个生成单词的奖励值是鉴别器估计的概率的对数。

 

鉴别器的损失:

                        image caption笔记(九):《Unsupervised Image Captioning》_第1张图片     

前半段是对真实的句子,预测的概率越大越好。

后半段是对生成的句子,预测的概率越接近0越好。

 

 

概念奖励:

      

vi是检测到该概念的置信度。对于一幅图像,重建奖励等于所有的被检测出来的概念置信度之和。

 

重建奖励:

图像特征重建损失:

            

奖励取损失的负值:

                    

此时句子重建的损失采用交叉熵损失:

         

 

所以,最后生成器的联合奖励为:

       r =   对抗奖励+概念奖励+重建奖励

使用策略梯度来优化。

除了由策略梯度估计的梯度之外,句子重建损失还通过反向传播为发生器提供梯度。这两种类型的梯度都用于更新生成器。最后的梯度更新公式为:

image caption笔记(九):《Unsupervised Image Captioning》_第2张图片

 

 

  1. 鉴别器的训练。鉴别器不使用强化学习进行训练。仅仅使用损失。

损失函数将对抗性和图像重建损失结合起来,通过梯度下降更新参数。

 

image caption笔记(九):《Unsupervised Image Captioning》_第3张图片

3、试验细节(模型的初始化):

直接使用不配对的数据来训练效果很差。因此提出了一种方式预训练生成器和鉴别器。

先为每个训练图像生成伪标题,然后使用伪图像标题对来初始化图像标题模型。

(1)首先构建一个由OpenImages数据集中的对象类组成的概念字典。

(2)仅使用句子语料库训练概念到句子(con2sen)模型。给定一个句子,我们使用单层LSTM将句子中的概念词编码为特征表示,并使用另一个单层LSTM将表示解码为整个句子。

(3)使用现有的视觉概念检测器检测每个图像中的视觉概念。利用检测到的概念和概念到句子模型,我们能够为每个图像生成伪标题。

(4)使用标准监督学习方法训练具有伪图像 - 标题对的生成器,

 

4、 模型附图:

image caption笔记(九):《Unsupervised Image Captioning》_第4张图片

 

5、实验结果附图:

​​​​​​​             image caption笔记(九):《Unsupervised Image Captioning》_第5张图片

你可能感兴趣的:(image,caption)