论文题目:Unsupervised Image Captioning
论文作者:Yang Feng, Lin Ma, Wei Liu, Jiebo Luo
论文链接:https://arxiv.org/pdf/1811.10787.pdf
机构:Tencent AI Lab & University of Rochester
来源:CVPR 2019
分类:多模态 / NLP / Image Caption
太长不看版
本文贡献:
- 首次提出了一种无监督的 Image Caption 模型。
- 提出三个目标来训练模型。
- 提出了无标注数据下的新的模型初始化pipeline方法。 通过利用视觉概念检测器,为每个图像生成一个伪caption,并使用伪图像-句子对初始化图像标题模型。
- 从网上抓取了200多万个句子的大型图像描述语料库。
主要思想
深度神经网络在Image Caption任务上取得了巨大的成功。然而,现有的大多数模型严重依赖于成对的图像-句子数据集,这些数据集的获取成本非常高。
在本文中,我们首次尝试以无监督的方式训练一个图像字幕模型。我们所提出的模型不依赖于人工的图像-句子对,而仅仅需要一个图像集、一个句子语料库和一个视觉概念检测器。
句子语料库用于指导Image Caption模型如何生成接近真实的句子。同时,视觉概念检测器中的知识将被蒸馏到captioning model中,引导模型识别图像中的视觉概念。为了进一步促进生成的句子与图像在语义上的一致性,将图像和字幕投射到一个共同的潜在空间中,使它们能够相互重构。
鉴于现有的句子语料库主要用于语言研究,很少对应图像内容,我们抓取了200万个描述图像的自然句子,以方便无监督Image Caption场景。实验结果表明,我们提出的模型能够在无监督场景下产生非常好的结果。
问题提出
基于成对图像-句子数据训练的image caption模型很难推广到其他数据集之外的环境下。因此,如何缓解成对数据集的不足,利用其他可用数据来很好地生成图像描述就显得越来越重要,值得深入研究。
本文贡献:
- 首次提出了一种无监督的 Image Caption 模型。
- 提出三个目标来训练模型。
- 提出了无标注数据下的新的模型初始化pipeline方法。 通过利用视觉概念检测器,为每个图像生成一个伪caption,并使用伪图像-句子对初始化图像标题模型。
- 从网上抓取了200多万个句子的大型图像描述语料库。
相关工作
近年来,在image caption任务中对成对图像句子数据的依赖程度有所降低。
如下图所示:(a)是最基础的监督式image caption方法;(b)为新对象生成描述,这些新对象不存在于成对的图像描述训练数据中,而是存在于图像识别数据集中,如ImageNet。因此,新的目标信息可以被引入到生成的描述句子中,而不需要额外的成对的图像-句子数据;(c)提出将成对image-sentence数据集上学到的知识迁移和泛化到一个没有成对数据的新领域;(d)生成枢轴语言(中文)的caption,然后将枢轴语言字幕翻译为目标语言(英文),不需要图像和目标语言句子的配对数据;(e)半监督框架,它使用一个外部文本语料库。(f)是我们提出的无监督方法(首次提出无监督的ImageCaption)。
图1.(a)supervised captioning,(b)novel object captioning,(c)cross-domain captioning,(d)pivot captioning,(e)semi-supervised captioning,(f)unsupervised captioning.
如果将图像作为源语言,那么无监督图像描述任务在本质上与无监督机器翻译相似。
在无监督机器翻译方法中,源语言和目标语言被映射到一个共同的潜在空间中,使得不同语言中具有相同语义意义的句子能够很好的对齐,从而可以进行后续的翻译。然而,无监督图像描述任务更具挑战性,因为图像和句子处于两种显著不同的模式中。
模型结构
图2.我们的无监督模型架构,包括一个图像编码器,一个句子生成器,和一个鉴别器。
模型流程如下:
- 图像编码器将给定的图像编码成一个特征表示,基于该特征表示,生成器输出一个句子来描述图像。
- 鉴别器用于区分一个句子是由模型生成的还是来自句子语料库的。
- 生成器和鉴别器以不同的顺序耦合以执行图像和句子重建。引入对抗奖励、概念奖励和图像重建奖励,通过policy gradient对生成器进行训练。
- 同时,利用梯度下降法对生成器进行更新,使句子重构损失最小化。对于鉴别器,其参数由对抗性损失和梯度下降的图像重建损失来更新。
一、模型构成:
一个图像编码器(CNN),一个句子生成器(LSTM),和一个鉴别器(LSTM)。
图像编码器将给定的图像编码成一个特征表示:
基于该特征表示,生成器输出一个句子来描述图像。
鉴别器用于区分一个句子是由模型生成的还是来自句子语料库。
二、如何训练:
由于我们没有任何成对的图像-句子数据可用,所以不能以监督学习的方式训练我们的模型。在本文中,我们定义了三个新的目标,使无监督训练成为可能。
2.1 对抗的caption生成
图像->【图像编码器】->图像特征->【句子生成器】->图像描述句(生成器计算对抗奖励)->【鉴别器】->判断句子出处(判别器计算对抗损失)
首先,我们希望模型生成的句子是流畅自然的,要可以骗过人类读者,这种目标通常是通过在句子语料库上训练语言模型来实现的。
该句子生成器以图像特征为输入,生成一个句子。
鉴别器分辨句子是由模型生成的还是语料库里一个真实的句子。
生成器试图通过生成尽可能真实的句子来欺骗鉴别器。为了实现这一目标,我们在每一个时间步给生成器一个奖励,并把这个奖励命名为对抗奖励。
通过最大限度地增加对抗性奖励,生成器逐渐学会了生成接近于真实的句子。
对于鉴别器,其对应的对抗损失定义为:
2.2 视觉概念蒸馏
图像->【图像编码器】->图像特征->【句子生成器】->图像描述句 ->【视觉概念检测器】->生成的词是否存在于图像中(生成器计算概念奖励)
对抗性奖励只会鼓励模型根据语法规则生成可信的句子,这些句子可能与输入图像无关。
为了生成相关的图像描述,模型必须学会识别图像中的视觉概念,并将这些概念融入到生成的句子中。
因此,我们提出将现有的视觉概念检测器的知识提取(蒸馏)到图像描述模型中。
具体来说,当模型生成一个词,其对应的视觉概念被检测到存在输入图像中时,我们对生成的词进行奖励。
这种奖励被称为概念奖励,其奖励值由该视觉概念的信心分数(confidence score)表示。
其中,I(·)是指标函数,C={(c1,v1),...,(ci,vi),...,(cNc,vNc)},Ci表示第i个检测到的视觉概念,vi为对应的信任分数,Nc为检测到的视觉概念总数
2.3 图像-句子双向重建
通过对抗性训练和概念奖励,生成的句子质量很大程度上取决于视觉概念检测器,因为它是图像和句子之间唯一的桥梁。
然而,现有的视觉概念检测器只能可靠地检测有限数量的对象概念。图像描述模型需要理解更多的图像语义概念,具有更好的泛化能力。
为了实现这一目标,我们将图像和句子投射到一个共同的潜在空间中,这样它们就可以互相重建,使生成的标题将在语义上与图像一致。
图3.(a)图像重建 (b)句子重建,区别在于生成器和判别器的次序不同
图像重建
图像->【图像编码器】->图像特征->【句子生成器】->图像描述句——生成器计算图像重建奖励)->【鉴别器[作为句子编码器]】->句子特征[作为图像特征](鉴别器计算图像重建损失)
如图3 (a)所示,首先,生成器根据图像特征生成一个句子,句子标题应该包含图像的要点。接着,我们从生成的句子中重建图像,这样可以使生成的字幕在语义上与图像保持一致。
然而,这样做的一个障碍在于,使用当前的技术很难生成包含复杂对象(如人)的高分辨率图像。因此,在本文中,我们转向重建图像的特征,而不是完整的图像。
如图3 (a)所示,鉴别器可以看作是一个句子编码器。在鉴别器上叠加一个全连通层,将最后一个隐藏状态 h 投射到图像和句子的公共潜空间,公式如下:
其中x’可以进一步看作是从生成的句子中重构出来的图像特征。因此,我们定义一个额外的图像重建损失来训练鉴别器:
可以看出,生成器与鉴别器共同构成了图像重建过程。因此,定义生成器的图像重建奖励为:(与负重建误差成正比)
句子重建
图像描述句 ->【鉴别器[作为句子编码器]】->句子特征->【句子生成器】->图像描述句(生成器计算句子重构损失)
如图3 (b)所示,鉴别器可以对一个句子进行编码,并将其投射到公共潜在空间中,该潜在空间可以看作是与给定句子相关的一个图像表示。生成器可以根据得到的表示重建句子。
这种句子重构过程也可以看作是一个句子去噪的自动编码器。除了在潜在空间中对齐图像和句子外,它还学习了如何从公共空间中的图像表示来解码句子。为了使输入句可以进行可靠、鲁棒的重构,我们在输入的句子中加入了噪声。将句子重构的目标定义为交叉熵损失:
其中 sˆt 是句子中的第 t 个单词。
2.4 集成
以上三个目标用作联合训练我们的模型。
对于生成器,由于单词采样操作是不可微的,我们使用policy gradient训练生成器,该联合奖励包括对抗奖励、概念奖励和图像重建奖励。
除了政策梯度估计的梯度外,句子重构损失还提供了梯度.
更具体地说,联合奖励包括对抗奖励、概念奖励和图像重建奖励。此外,句子重构损失还通过反向传播为生成器提供了梯度。这两种类型的梯度都被用来更新生成器。θ表示生成器的可训练参数。梯度对θ是由:
对于鉴别器来说,对抗和图像重构的loss结合起来共同更新鉴别器参数:
在训练阶段,生成器和鉴别器交替更新。
三、初始化:
对于本模型,使用未标记数据以及提出的三个目标,从零开始充分训练我们的模型是非常具有挑战性的。因此,我们提出一个初始化pipeline来预训练生成器和鉴别器。
对于生成器,我们为每个训练图像生成一个伪标题,然后使用伪图像标题对初始化一个图像标题模型。
具体来说,
首先我们构建一个由OpenImages数据集中的对象类组成的概念字典。
其次,我们只使用句子语料库来训练一个概念到句子(con2sen)模型。对于给定的句子,我们使用一层LSTM将句子中的概念词编码为一个特征表示,并使用另一层LSTM将该表示解码为整个句子。
第三,我们使用现有的视觉概念检测器来检测每个图像的概念。通过检测到的概念和概念到句子的模型,我们能够为每个图像生成一个伪标题。
第四,我们使用标准监督学习方法,用伪图像-标题对生成器进行训练。这被命名为特征到句子(feat2sen),用于初始化生成器。
对于鉴别器,通过在句子语料库上训练一个对抗句生成模型来初始化参数。
实验结果与示例
评价指标为:BLEU, METEOR, ROUGE, CIDEr, and SPICE scores
评价脚本地址:https://github.com/tylin/coco- caption
结论
本文的首次尝试无监督的图像描述任务,提出了三个训练目标:
1)使生成的caption与语料库中的句子难以区分;
2)使image caption模型传递图像中的对象信息;
3)使图像特征与句子特征在共同的潜在空间中对齐,进行双向重构。
我们也从Shutterstock中进一步收集了一个包含200多万个句子的大型图像描述语料库,以促进无监督的image caption方法。实验结果表明,该方法在不使用任何标记的图像-句子对的情况下,都能得到很好的结果。未来,我们将对无监督图像字幕进行人工评价。
译者:西柚媛
编辑:西柚媛
本文来自程序媛驿站,未经授权不得转载.