Mind‘s eye: A recurrent visual representation for image caption generation

Mind’s eye: A recurrent visual representation for image caption generation

头脑:用于图像标题生成的循环视觉表示

摘要:在本文中,我们探索图像之间的双向映射及其基于句子的描述。
对于我们的方法而言,至关重要的是一个递归神经网络,它会在生成或读取字幕时尝试动态构建场景的视觉表示。 代表会自动学会记住长期的视觉概念。
我们的模型既可以在给定图像的情况下生成新颖的字幕,又可以在给定图像描述的情况下重建视觉特征。 我们在一些任务上评估我们的方法。
这些包括句子生成,句子检索和图像检索。 显示了用于生成新颖图像描述的任务的最新结果。
与人工生成的字幕相比,我们自动生成的字幕在21.0%的时间内等于或偏爱人类。
对于使用类似视觉特征的方法,结果比图像和句子检索任务上的最新结果更好或可比。

1.简介

人们通常说,一个好的图像描述可以“在您的眼睛中画一幅画。” 心理形象的建立可能在人类的句子理解中起重要作用[18]。 实际上,往往是在忘记确切句子后很久才记住这种心理形象[34,26]。 作为说明性示例,图1显示了阅读描述时心理图像如何变化和丰富度增加。 理解并生成图像标题的计算机视觉算法是否可以利用相似的不断发展的视觉表示?
在这里插入图片描述

最近,有几篇论文探索了学习联合特征空间的图像及其描述[16,38,20]。 这些方法将图像特征和句子特征投射到一个公共空间中,该空间可用于图像搜索或对图像字幕进行排名。 各种方法被用来学习投影,包括内核规范相关分析(KCC)[16],递归神经网络[38]或深度神经网络[20]。 尽管这些方法将语义和视觉特征都投影到一个通用嵌入中,但它们无法执行逆投影。 也就是说,它们无法从嵌入中生成新颖的句子或视觉描述。

在本文中,我们提出了一种双向表示,该双向表示既可以从图像生成新颖的描述,又可以从描述生成视觉表示。这两个任务的关键是一种新颖的表示形式,它可以动态捕捉已经描述过的场景的视觉方面。即,随着单词的生成或读取,视觉表示被更新以反映单词中包含的新信息。我们使用递归神经网络(RNN)[9,29,32]完成此任务。 RNN的一个长期存在的问题是,在经过几次重复迭代后,它们在重新记忆概念方面存在弱点。例如,在没有专门的门控单元[15]的情况下,RNN语言模型通常很难在学习长距离关系中发现[3,29]。在句子生成过程中,我们新颖的动态更新的视觉表示可长期存储已提到的概念。这使网络可以自动选择要传达的重要概念。正如我们所演示的,可以使用相同的表示形式来创建书面说明的视觉表示。
我们在众多数据集中展示了我们的方法。 这些包括PASCAL句子数据集[36],Flickr 8K [36],Flickr 30K [36]和包含超过40万个句子的Microsoft COCO数据集[27,4]。 当生成新颖的图像描述时,我们展示了由BLEU [35],METEOR [1]和CIDEr [40]测量的结果。 定性结果显示为生成新颖的图像标题。 我们还评估了我们的算法在图像和句子检索任务上的双向能力。 由于这不需要生成新颖句子的能力,因此许多先前的论文都对此任务进行了评估。 我们使用相似的视觉功能显示出比以前的最新结果更好或可比的结果。

2.相关工作

建立视觉记忆的任务是两个长期存在的AI难题的核心:将自然语言符号植根于物理世界并从语义上理解图像的内容。 虽然学习图像补丁和单个文本标签之间的映射仍然是计算机视觉中的热门话题[23、12、13],但人们越来越感兴趣的是将整个句子描述与像素一起使用以学习联合嵌入[16、38, 20,14]。 查看相关的文本和图像,KCCA [16]是发现共享特征空间的自然选择。 但是,鉴于两者之间的高度非线性映射,基于浅层表示找到通用距离度量可能非常困难。 最近的论文寻求更好的目标函数来直接优化排名[16],或者直接采用预训练的表示形式[38]来简化学习,或者将两者结合[20,14]。

借助良好的距离度量,可以执行诸如双向图像句子检索之类的任务。然而,在许多情况下,还期望生成新颖的图像描述并在给定句子描述的情况下使场景幻觉。许多论文探索了产生新颖图像描述的领域[11、45、24、46、33、25、21]。这些论文使用各种方法来生成文本,例如使用带有基于模板的句子生成的预训练对象检测器[45,11,24]。检索到的句子可以合并形成新颖的描述[25]。最近,基于抽样[21]或递归神经网络[28],纯统计模型已用于生成语句。尽管[28]也使用RNN,但他们的模型与我们的模型有很大不同。具体来说,他们的RNN不会尝试重建视觉特征,而更类似于[32]的上下文RNN。为了从句子中合成图像,Zitnick等人最近的论文。 [47]使用抽象剪贴画图像来学习句子的视觉解释。从句子中提取关系元组,并使用条件随机字段对视觉场景进行建模。

这里有很多使用递归神经网络进行语言建模的论文[2,29,32,21]。 我们最直接地建立在使用RNN学习单词上下文的[2,29,32]之上。 一些模型使用上下文信息的其他来源来帮助告知语言模型[32,21]。 尽管取得了成功,但RNN在顺序建模中仍然难以捕获长期关系[3]。 一种解决方案是长短期记忆(LSTM)网络[15、39、21],该网络使用“门”显式控制梯度反向传播并允许学习长期相互作用。 但是,该文件的主要重点是表明,通过在多种模态之间“翻译”而学习的隐藏层已经可以发现数据中的丰富结构并以自动,数据驱动的方式学习远距离关系。

有几篇同期论文[7,10,19,22,42],使用LSTM [7,22,42],RNN [19]和传统的极大熵语言模型[10]探索新颖图像字幕的生成。 ]。 与这些模型不同,我们的模型在生成字幕时动态构建场景的视觉表示。 正如我们所展示的,这可以改善结果。

3.方法

在本节中,我们将介绍使用递归神经网络的方法。我们的目标是双重的。首先,我们希望能够根据一组视觉观察或特征生成句子。具体来说,我们要给定先前生成的单词Wt-1 = w1,…的集合,计算在时间t处生成的单词wt的概率。 。 。 ,wt-1和观察到的视觉特征V。第二,我们希望能够在给定一组口语或阅读词Wt的情况下,计算视觉特征V的可能性,以生成场景的视觉表示或执行图像搜索。为了完成这两项任务,我们引入了一组潜在变量Ut-1,这些变量对先前生成或读取的单词Wt-1的视觉解释进行编码。正如我们稍后将演示的那样,潜在变量U扮演着关键角色,可以对先前生成或阅读的单词起到长期视觉记忆的作用。
使用U,我们的目标是计算P(wt | V,Wt-1,Ut-1)和P(V | Wt-1,Ut-1)。将这两种可能性结合在一起,我们的全球目标是最大限度地提高,
在这里插入图片描述

也就是说,在给定先前单词及其视觉解释的情况下,我们希望最大化单词wt和观察到的视觉特征V的可能性。 注意,在先前的论文[32,28]中,目标只是计算P(wt | V,Wt-1),而不是P(V | Wt-1)。

3.1 模型结构

我们的递归神经网络模型结构基于[29,32]提出的现有模型。 Mikolov [29]提出了一种RNN语言模型,如图2(a)中的绿色框所示。 时间t处的单词由使用“一个热点”表示的向量wt表示。 即,wt与单词词汇量的大小相同,每个条目的值取决于是否使用该单词,其值为0或1。 输出w〜t包含生成每个单词的可能性。 循环隐藏状态s提供基于先前单词的上下文。 然而,由于梯度消失的问题,s通常仅对短程相互作用建模[3,29]。 事实证明,这种简单而有效的语言模型可为各种应用程序提供有用的连续单词嵌入功能[30]。

在这里插入图片描述
继[29]之后,米科洛夫等人。 [32]在RNN上添加了一个输入层v,如图2中的白框所示。该层可以表示各种信息,例如主题模型或词性[32]。 在我们的应用程序中,v代表观察到的视觉特征集。 我们假设视觉特征v是恒定的。 这些视觉功能有助于选择单词。 例如,如果检测到猫,则更容易说出“猫”一词。 请注意,与[32]不同,由于v对于我们的应用程序是静态的,因此不必直接将v连接到w〜。 在[32]中,v表示动态信息,例如需要直接访问的语音部分。 我们还发现,仅将v连接到s单元的一半可提供更好的结果,因为它允许不同的单元专门建模文本或视觉特征。

本文的主要贡献是在图2(a)中增加了循环视觉隐藏层u,蓝色框。 循环层u试图从先前的单词即v〜≈v重建视觉特征v。视觉隐藏层也被w〜t用来帮助预测下一个单词。 即,网络可以将表示其已经说过的可视存储器u与当前观察到的v进行比较,以预测接下来要说的内容。 在句子的开头,u代表视觉特征的先验概率。 随着观察到更多单词,视觉特征也会更新,以反映单词的视觉解释。 例如,如果生成单词“ sink”,则对应于接收器的视觉特征应增加。 对应于火炉或冰箱的其他功能也可能会增加,因为它们与水槽高度相关。

在这里插入图片描述
循环视觉特征u的关键特性是其长期记忆视觉概念的能力。 该属性来自模型结构。 凭直觉,人们可能认为在句子结束之前不应该估计视觉特征。 也就是说,在wt生成句子标记的结尾之前,不应将u用于估计v。 但是,在我们的模型中,我们迫使u在每个时间步长估计v。 这有助于学习长期的视觉概念。 例如,如果生成单词“猫”,则ut将增加对应于猫的视觉特征的可能性。 假设v中的“猫”视觉功能处于活动状态,则网络将得到正向增强,以将您对“猫”的记忆从一个实例传播到下一个实例。 图3示出了隐藏单元s和u的说明性示例。 可以看出,某些视觉隐藏单元u具有较长的时间稳定性。

注意,相同的网络结构可以根据句子预测视觉特征或根据视觉特征生成句子。 为了产生句子(图2(b)),v是已知的,并且v可以被忽略。 为了从句子中预测视觉特征(图2(c)),w是已知的,而s和v可以忽略。 该特性是由于单词单元w将模型分为两半分别用于预测单词或视觉特征的事实而产生的。 或者,如果隐藏单元s直接连接到u,则该属性将丢失,并且网络将充当普通的自动编码器[41]。

3.2 实施细节

在本节中,我们描述语言模型的详细信息以及我们如何学习网络。

3.3 语言模型

我们的语言模型通常包含3,000到20,000个单词。 尽管每个单词都可以独立预测,但这种方法的计算量很大。 取而代之的是,我们采用了单词分类的想法[29],并将分布分解为两个术语的乘积:
在这里插入图片描述
P(wt |·)是单词的概率,P(ct |·)是类别的概率。 单词的类别标签是以无监督的方式计算的,将相似频率的单词分组在一起。 通常,此方法可极大地加速学习过程,而不会造成困惑。 使用标准soft-max函数计算预测单词的似然性。 在每个时期之后,在一个单独的验证集上评估困惑度,如果困惑度不降低,则学习减少(在我们的实验中减少一半)。

为了进一步减少困惑,我们将RNN模型的输出与最大熵语言模型的输出[31]结合在一起,同时从训练语料库中学习。 对于所有实验,我们将在预测最大熵模型使用的下一个单词时将要回顾的单词数量固定为三个。

对于任何自然语言处理任务,预处理对于最终性能至关重要。 对于所有句子,在将它们输入RNN模型之前,我们执行了以下三个步骤。 1)使用Stanford CoreNLP工具标记句子。 2)小写所有字母。 3)用词外(OOV)替换少于5次的词。
在这里插入图片描述

3.4 学习

为了学习,我们使用时间反向传播(BPTT)算法[43]。具体来说,网络将展开几个单词,然后应用标准反向传播。请注意,我们在遇到句子结尾(EOS)后重置模型,因此预测不会越过句子边界。如[29]所示,从递归单元到输出单词的权重,我们使用在线学习。网络其余部分的权重使用每个句子一次批更新。除使用soft-max的单词预测外,所有其他单位的激活都使用S型函数σ(z)= 1 /(1 + exp(-z))进行裁剪。我们发现,具有无限激活的整流耳式单元(ReLUs)[23]在数值上不稳定,并且在循环网络中使用时通常会“爆裂”。

我们使用[29]的开源RNN代码和Caffe框架[17]来实现我们的模型。结合两者的一个大优点是我们可以共同学习单词和图像表示形式:预测单词的错误可以直接反向传播到图像级特征。然而,深度卷积神经网络需要大量的数据来训练,但是最大的句子图像数据集只有80K图像[27]。因此,我们选择从预先训练的1000类ImageNet模型[6]中进行微调,而不是从头开始进行训练,以避免潜在的过度拟合。在所有实验中,我们使用BVLC参考网[17]或牛津VGG-Net [37]。

4.结果

在本节中,我们评估双向RNN模型在多个任务上的有效性。 我们首先描述用于训练和测试的数据集,然后再根据基线进行描述。 我们的第一组评估评估了我们模型产生图像新颖描述的能力。 由于我们的模型是双向的,因此我们在句子检索和图像检索任务上评估其性能。 有关其他结果,请参见[5]。
在这里插入图片描述

4.1 数据集

为了进行评估,我们在几个用于句子生成和句子图像检索任务的标准数据集上进行了实验:
PASCAL 1K [36]数据集包含来自PASCAL VOC质询的图像子集。对于20个类别中的每个类别,它都有50张图像的随机样本,并由Amazon Mechanical Turk(AMT)提供5个描述。

Flickr 8K和30K [36]这些数据集分别包含从Flickr收集的8,000和31,783张图像。大多数图像描绘了参与各种活动的人类。每个图像还与5个句子配对。这些数据集具有标准的训练,验证和测试拆分。

MS COCO [4,27] Microsoft COCO数据集包含82,783个训练图像和40,504个验证图像,每个图像都有〜5个人生成的描述。图像是通过搜索常见的对象类别从Flickr收集的,并且通常包含具有重要上下文信息的多个对象。我们使用训练集和验证集来训练实验中的模型,并将生成的标题(40,775张图像)上传至测试集(4,775张图像)以供评估。报告使用5个参考字幕的结果。

4.2 RNN基准

为了深入了解模型的各个组成部分,我们将最终模型与三个RNN基线进行了比较。 为了公平比较,所有实验的随机种子初始化都是固定的。 隐藏层s和u的大小固定为100。我们尝试增加隐藏单元的数量,但结果没有改善。 对于小型数据集,更多单位可能导致过度拟合。

基于RNN的语言模型(RNN)这是[29]开发的基本RNN语言模型,没有输入视觉功能。

具有图像特征的RNN(RNN + IF)这是一种具有图像特征的RNN模型,该特征馈入[32]启发的隐藏层。如第3节所述,v仅与s连接,而不与w〜连接。对于视觉特征v,我们在ReLU之后使用BVLC参考网[17]的4096D第七层输出。继[23]之后,我们对裁剪四个角和中心所计算出的五个表示取平均值。该网络在ImageNet 1000路径分类任务中进行了预训练[6]。我们对其他层(第5和第6层)进行了实验,但它们的效果并不理想。

具有微调图像功能的RNN(RNN + FT)该模型与RNN + IF具有相同的体系结构,但是该错误向后传播到卷积神经网络[13]。使用来自BVLC参考网的权重初始化CNN。使用预训练的RNN语言模型初始化RNN。也就是说,唯一随机初始化的权重是从视觉特征v到隐藏层s的权重。如果没有对RNN进行预训练,我们会发现初始梯度对于CNN而言过于嘈杂。如果从v到隐藏层s的权重也被预先训练,则搜索空间将变得太有限。我们当前的实现需要大约5秒钟才能在Tesla K40 GPU上学习大小为128的微型批处理。跟踪验证错误并避免过度拟合也至关重要。我们观察到这种微调策略对MS COCO尤其有用,但是在Flickr数据集过拟合之前并不能带来太多性能提升。 Flickr数据集可能无法提供足够的训练数据来避免过度拟合。

具有牛津VGG-Net功能的RNN(RNN + VGG)代替BVLC参考网功能,我们还对牛津VGG-Net [37]功能进行了试验。 最近的许多论文[28,19]都报告了使用这种表示的更好的性能。 我们在ReLU之后再次使用了最后一层,将其输入到RNN模型中。
在这里插入图片描述

4.3 句子生成

我们的第一组实验评估了模型产生图像新颖句子描述的能力。 我们对之前描述的所有图像语句数据集进行实验,并与RNN基线和其他先前的论文进行比较[33,24]。 由于PASCAL 1K的训练数据量有限,因此我们报告在MS COCO上训练的结果,并在PASCAL 1K上进行了测试。 我们对Flickr 8K和30K数据集使用标准的火车测试拆分。 对于MS COCO验证,我们在训练集(约37K /约3K)上进行训练和验证,以比较我们方法的变体。 最后,我们使用MS COCO评估服务器报告了MS COCO测试集的结果[4]。 要生成一个句子,我们首先从训练数据中学习的长度的多项式分布中,对目标句子的长度进行采样,然后针对此固定长度,对100个随机句子进行采样,并使用损失最小的(负似然, (也包括重建误差)作为输出。

我们使用COCO字幕评估工具[4]选择四个自动度量标准来评估所生成句子的质量,困惑度,BLEU [35],METEOR [1]和CIDEr [40]。困惑度基于对编码进行编码所需要的位数来衡量生成测试语句的可能性。值越低越好。 BLEU和METEOR最初是为自动机器翻译而设计的,它们在给定几个参考句子的情况下对翻译句子的质量进行评分。我们可以将句子生成任务视为图像到句子的“翻译”。对于BLEU,我们将分数的几何平均值从1克提高到4克,并使用最接近所生成句子的地面真实长度来概括简洁。对于METEOR,我们使用了最新版本。 CIDEr [40]是专门为评估图像字幕而开发的度量标准。我们使用称为CIDEr-D的CIDEr变体。对于BLEU,METEOR和CIDEr,更高的分数更好。作为参考,我们还报告了人类注释者之间的一致性(使用1个句子作为查询,其余注释作为除MS COCO Test以外的所有注释)1。

PASCAL 1K的结果显示在表1中。通过BLEU和METEOR的测量,我们的方法明显优于Midge [33]和BabyTalk [24]。我们的方法通常会提供更自然的描述性语气,例如提到图像是黑白的,或者公共汽车是“双层”。 Midge的描述通常较短,细节较少,BabyTalk提供的描述很长,但常常是多余的。表2还提供了Flickr 8K和Flickr 30K的结果。

在包含更多高复杂度图像的MS COCO数据集上,我们提供了BLEU,METEOR和CIDEr得分。令人惊讶的是,我们的BLEU和METEOR得分(分别为18.5和19.4)略低于人类得分(分别为21.7和25.2)。我们的CIDEr结果(52.1)明显低于人类(85.4)。与仅使用RNN语言模型相比,使用图像功能(RNN + IF)可以显着提高性能。微调(FT)和我们的完整方法为所有数据集提供了额外的改进。使用VGG-NET [37](我们的方法+ VGG)的结果显示出一些改进。但是,我们相信,通过微调甚至可以取得更好的结果。 MS COCO数据集的定性结果如图4所示。有关本白皮书和其他同期论文的最新结果,请访问MS COCO字幕评估排行榜2。

众所周知,自动测量仅与人类的判断力有大致的关联[8,40,16],因此使用人类研究评估生成的句子也很重要。 通过要求人类受试者判断与人类产生的地面真相字幕相比,它具有更好,更差或相同的质量,我们评估了MS COCO验证中产生的1000个句子。 要求5名受试者对每个图像进行评分,并记录多数票。 在平局(2-2-1)的情况下,两个获胜者各获得半票。 我们发现5.1%的字幕(我们的方式+ VGG)优于人类字幕,并且15.9%的字幕被认为与人类字幕质量相同。 鉴于我们仅对MS COCO中的复杂图像使用了图像级视觉功能,因此这是一个令人印象深刻的结果。

4.4 双向检索

我们的RNN模型是双向的。 也就是说,它可以从句子中生成图像特征,从图像特征中生成句子。 为了评估其执行这两种功能的能力,我们在两个检索任务上测量其性能。 我们根据给定的句子描述检索图像,并且给定给定图像的描述。 由于大多数以前的方法只能执行检索任务,因此这也有助于提供实验比较。

按照其他方法,我们采用了两种协议来使用多个图像描述。 第一个是分别处理〜5个句子中的每一个。 在这种情况下,检索到的基本事实句子的等级用于评估。 在第二种情况下,我们将所有句子视为一个注解,并将它们连接在一起以进行检索。

对于每个检索任务,我们有两种排名方法。首先,我们可以根据给定图像(T)的句子的可能性进行排名。由于较短的句子自然具有较高的生成概率,因此我们遵循[28],并通过将其除以整个检索集总和的总概率来归一化概率。其次,我们可以基于图像的视觉特征v及其重构的视觉特征v〜(I)之间的重构误差进行排名。由于性能更好,我们使用所有时间步的平均重构误差,而不仅仅是句子结尾处的误差。在表3中,我们报告了仅使用文本似然项(I)及其与视觉特征重建误差(T + I)组合的重新检索结果。所有结果均使用VGG-NET生成的视觉特征[37]。

对于句子检索和图像检索的任务,从以前的论文中采用了相同的评估指标。他们使用R @ K(K = 1、5、10)作为测量值,它们是(第一)地面真实句(句子检索任务)或图像(图像检索任务)的召回率。较高的R @ K对应于较好的检索性能。我们还报告了(第一个)检索到的地面真相句子或图像的中位数/平均等级(Med / Mean r)。较低的Med / Mean r表示性能更好。对于Flickr 8K和30K,已经提出了几种不同的评估方法。我们分别针对[38],[16]和[28]提出的Flickr 8K和针对Flickr 30K [12]和[28]提出的方法报告了三个分数。
在这里插入图片描述
在这里插入图片描述

如表3和表4所示,对于Flickr 8K和30K,除了最近提出的DeepFE [20],我们的方法比所有方法均具有可比或更好的结果。 但是,DeepFE基于较小的图像区域使用一组不同的功能。 如果使用类似的功能(DeepFE + DECAF)作为我们的方法,我们将获得更好的结果。 我们相信这些贡献是互补的,通过使用更好的功能,我们的方法可能还会显示出进一步的改进。 通常,基于文本和视觉功能(T + I)的排名优于仅使用文本(T)的排名。 有关PASCAL和MS COCO的检索结果,请参见[5]。

5.讨论

图像标题描述了图像中的对象及其关系。 未来工作的一个领域是检查图像的顺序探索及其与图像描述的关系。 许多词对应于我们当前模型难以检测的空间关系。 如[20]的最新论文所证明的,图像中更好的特征局部化可以极大地提高检索任务的性能,并且在描述生成任务中可以看到类似的改进[10,44]。

在我们的论文中,我们不会探讨LSTM模型的使用,这些模型已经显示了学习长期概念的能力[15]。 在其他同时期的论文中[7,42],使用LSTM可获得令人印象深刻的字幕结果。 在以后的工作中,用LSTM模型代替我们的RNN来学习类似于本文中的双向模型将很有趣。

总之,我们描述了第一个双向模型,该模型能够生成新颖的图像描述和视觉特征。 与许多以前使用RNN的方法不同,我们的模型能够学习长期的交互作用。 这是由于使用了循环视觉记忆,该记忆学会了在读取或生成新单词时重建视觉特征。 我们展示了在众多数据集上的句子生成,图像检索和句子检索任务的最新结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值