摘要
自动描述图像的内容是连接计算机视觉和自然语言处理的人工智能中的一个基本问题。在本文中,我们提出了一个基于深度重构架构的生成模型,它结合了计算机视觉和机器翻译方面的最新进展,可以用来生成描述图像的自然语句。训练该模型以最大化训练图像给出的目标描述句子的可能性。在几个数据集上的实验显示模型的准确性和它从图像描述中学到的语言的流畅性。我们的模型通常是相当准确的,我们从定性和定量两方面进行验证。例如,Pascal数据集当前最先进的BLEU-1得分(越高越好)为25,我们的方法得到59,与69的人类表现相比较。我们还显示了BLEU-1 Flickr30k从56分改善到66分,SBU从19分改善到28分。最后,在新发布的COCO数据集中,我们实现了27.7的BLEU-4,这是当前最先进的技术。
介绍
能够使用适当形成的英文句子自动描述图像的内容是一项非常具有挑战性的任务,但它可能会产生很大的影响,例如帮助视障人士更好地理解网络上的图像内容。比起经过深入研究的图像分类或目标识别任务来说,这个任务要困难得多,而这个任务一直是计算机视觉领域的主要焦点[27]。事实上,描述不仅要捕捉图像中包含的对象,还必须表达这些对象如何相互关联,以及它们的属性和所涉及的活动。此外,上述语义知识必须用英语这样的自然语言表达,这意味着除了视觉理解之外还需要一种语言模型。
大多数以前的尝试已经提出将上述子问题的现有解决方案缝合在一起,以便从图像到其描述[6,16]。与此相反,我们想在这个工作中提出一个单一的联合模型,将图像I作为输入,并且训练使得生成目标词序列S = {S1,S2,…,}每个词St来自一个给定的字典,它充分地描述了图像。
我们工作的主要灵感来自机器翻译方面的最新进展,其中的任务是将用源语言编写的句子S翻译成目标语言的翻译T,通过最大化p(T | S) 。多年来,机器翻译也是通过一系列单独的任务(单独翻译单词,调整单词,重新排序等)来实现的,但最近的工作表明,翻译可以用一种更简单的方法来完成,目前的神经网络(RNNs)[3,2,30]仍然达到了最先进的性能。 “编码器”RNN读取源语句并将其转换为丰富的固定长度向量表示,该表示又被用作生成目标语句的“解码器”RNN的初始隐藏状态。
在这里,我们建议遵循这个优雅的配方,用深度卷积神经网络(CNN)代替编码器RNN。在过去的几年里,已经有说服力的证明CNN可以通过将输入图像嵌入到一个固定长度的矢量中来产生丰富的输入图像表示,这样这个表示就可以用于各种视觉任务[28]。因此,使用CNN作为图像“编码器”是很自然的,首先对图像分类任务进行预训练,并使用最后一个隐藏层作为生成语句的RNN解码器(见图1)的输入。我们称这个模型为神经图像标题或NIC。
我们的贡献如下。首先,我们提出一个端到端的问题系统。它是一个使用随机梯度下降完全可训练的神经网络。其次,我们的模型结合了用于视觉和语言模型的最先进的子网络。这些可以在更大的语料库上预先训练,从而可以利用额外的数据。最后,与最先进的方法相比,它的性能显着提高;例如,在Pascal数据集上,NIC产生了59的BLEU得分,与目前的最新技术25比较,而人的成绩达到69.在Flickr30k上,我们从56提高到66, SBU,从19日至28日。
相关工作
从视觉数据中产生自然语言描述的问题早已在计算机视觉中被研究,但主要是视频[7,32]。这导致由视觉原始识别器组成的复杂系统与结构化形式语言(例如,图形或逻辑系统,通过基于规则的系统进一步转换为自然语言。这样的系统手工设计很重,相对较脆,只能在有限的领域进行演示,例如交通场景或运动。
自然文本静止图像描述的问题近来越来越受到关注。利用最近的对象识别,它们的属性和位置,我们可以驱动自然语言生成系统,尽管这些系统的表达能力有限。 Farhadi等人[6]使用检测来推断场景元素的三元组,使用模板将其转换为文本。同样,李等人[19]从检测开始,并使用包含检测到的对象和关系的短语拼凑出最终的描述。 Kulkani等人使用了一个更复杂的超越三元组的检测图。 [16],但与基于模板的文本生成。基于语言分析的更强大的语言模型也被使用[23,1,17,18,5]。上述方法已经能够比较简单地描述图像了,但是在文本生成方面,它们是大量手工设计的和僵化的。
大量工作已经解决了给定图像的等级描述问题[11,8,24]。这种方法基于将图像和文本共同嵌入到相同向量空间的想法。对于图像查询,检索位于嵌入空间中靠近图像的描述。最近,神经网络被用来共同嵌入图像和句子[29],甚至图像作物和子句[13],但不试图产生新颖的描述。一般来说,上述方法不能描述以前看不见的对象组合,即使在训练数据中可能已经观察到单个对象。此外,他们避免解决评估生成的描述有多好的问题。
在这项工作中,我们将用于图像分类的深度卷积网络[12]与用于序列建模的递归网络相结合[10],以创建一个生成图像描述的单一网络。 RNN是在这个单一的“端到端”网络的背景下进行培训的。这个模型受到机器翻译中最近成功的序列生成的启发[3,2,30],不同之处在于我们不是从一个句子开始,而是提供一个由一个卷积网处理的图像。最近的作品是由Kiros等人[15]使用一个前馈神经网络,预测下一个字给出的图像和历史单词。毛等人最近的工作是 [21]使用一个RNN来做相同的预测任务。这与目前的提议非常相似,但是有一些重要的不同之处:我们使用更强大的RNN模型,并直接提供RNN模型的视觉输入,这使得RNN能够跟踪已经被文中解释了。由于这些看似微不足道的差异,我们的系统在既定的基准上取得了更好的结果。最后,Kiros等人[14]通过使用强大的计算机视觉模型和编码文本的LSTM来构建联合多模态嵌入空间。与我们的方法相反,他们使用两个单独的路径(一个用于图像,一个用于文本)来定义联合嵌入,并且即使他们可以生成文本,他们的方法也被高度调整以用于排序。
模型
在本文中,我们提出了一个神经和概率框架来从图像生成描述。统计机器翻译的最新进展表明,给定一个强大的序列模型,可以通过直接最大化正确翻译的概率来获得最新的结果, 这个端到端的系统可以用来训练和推理。这些模型利用递归神经网络将可变长度输入编码成一个固定的维向量,并使用这种表示将其“解码”为期望的输出句子。因此,使用相同的方法是自然的,在给定图像(而不是源语言的输入句子)的情况下,使用相同的原理将其“翻译”到其描述中。
因此,我们建议通过使用以下公式直接最大化正确描述的概率:
其中θ是我们模型的参数,I是图像,S是它的正确翻译。由于S代表任何一个句子,它的长度是无限的。因此,应用链规则来模拟S0…SN上的联合概率是很常见的,其中N是这个特定例子的长度。
为了方便,我们放弃了对θ的依赖。在训练时,(S,I)是一个训练样本对,我们使用随机梯度下降在整个训练集上优化(2)中所述的对数概率之和(更多的训练细节在第4节中给出)。
使用Re-current神经网络(RNN)对p(St | I,S0,…,St-1)进行建模是自然的,其中,直到t-1为止的可变词数由a固定长度隐藏状态或内存ht。通过使用非线性函数f来查看新的输入xt后,该ht被更新:
为了使上面的RNN更加具体,我们要做出两个关键的设计选择:f的确切形式是什么,以及如何输入图像和文字作为输入。对于f,我们使用了一个长短期记忆(LSTM)网络,该网络在翻译等顺序任务上表现出了最先进的性能。这个模型在下一节中概述。
为了表示图像,我们使用卷积神经网络(CNN)。它们已经被广泛地用于图像任务并被研究,并且是当前用于对象识别和检测的技术。我们对CNN的特殊选择使用了一种新颖的批量标准化方法,并且在ILSVRC 分类竞赛中获得了当前的最佳性能[12]。此外,他们已被证明推广到其他任务,如场景分类通过转移学习[4]。单词用嵌入模型表示。
3.1 基于LSTM的句子生成器
公式(3)中的f的选择取决于其处理消失和爆炸梯度的能力[10],这是RNN设计和训练中最常见的挑战。为了应对这一挑战,引入了一种称为LSTM的特殊形式的循环网络[10],并在翻译[3,30]和序列生成[9]中取得了巨大的成功。
LSTM模型的核心是一个存储单元,它在每个时间步骤编码知识,在这个步骤之前观察到什么输入(见图2)。单元的行为是由“门”控制的 - 这些层是多重应用的,因此如果门是1,则可以从门控层保留一个值,如果门是0,则该值为零。特别地,三个门正在被用来控制是否忘记当前的单元格值(忘记门f),是否应该读取其输入(输入门i)以及是否输出新的单元格值(输出门o)。门和单元更新和输出的定义如下:
其中⊙表示具有门值的乘积,各种W矩阵是训练参数。这样的多重门可以对LSTM进行强有力的训练,因为这些门可以很好地处理爆炸和消失的梯度[10]。非线性是sigmoidσ(·)和谐波正切h(·)。最后一个等式mt是用来馈给Softmax的,它将在所有的单词上产生一个概率分布pt。
训练LSTM模型被训练以预测在句子看到图像之后的每个单词以及由p(St | I,S0,…,St-1)定义的所有在前单词。为此,以非卷积形式考虑LSTM是有益的 - 为图像和每个句子单词创建LSTM存储器的副本,使得所有LSTM共享相同的参数,并且LSTM的输出mt-1在timet-1被设置为LSTMattimet(见图3)。所有经常性连接都转换为展开版本的前馈连接。更详细地说,如果用I表示输入图像,用S =(S0,…,SN)表示描述这个图像的真实句子,则展开过程如下:
在这里我们将每个单词表示为一个与字典大小相等的单向量向量St。注意,我们用S0表示开始单词,用SN表示句子的结束单词。如果停用词生成,LSTM表示已经产生了完整的句子。图像和单词都映射到同一个空间,图像通过使用视觉CNN,单词通过使用单词嵌入我们。图像I只在t = -1时输入一次,以通知LSTM图像内容。我们经验证实,在每个时间步将图像馈送作为额外输入产生较差的结果,因为网络可以明确地利用图像中的噪声并且更容易过滤。
我们的损失是每个步骤中正确单词的负对数可能性的总和,如下所示:
上面的损失是最小化的。 LSTM的所有参数,图像嵌入器CNN的顶层和单词嵌入我们。
推论有多种方法可以用来生成给定图像的句子,使用NIC。第一个是抽样,我们只是根据p1对第一个单词进行采样,然后提供相应的嵌入作为输入和样本p2,如此继续,直到我们采样特殊的句末标记或一些最大长度。第二个是BeamSearch:迭代地考虑直到时间t的k个最佳句子的集合作为生成大小为t + 1的句子的候选者,并且仅保留它们的结果最好的k。这更接近S = arg maxS’p(S’| I)。我们在下面的实验中使用了 BeamSearch 方法,使用了 20 的光束。使用1的光束尺寸(即贪心搜索)平均降低了2个BLEU点的结果。
评估指标
尽管有时不清楚描述是否被认为是成功的,但是现有技术已经提出了一些评估指标。最可靠(但费时)的方法是要求评估人员根据图像的每个描述的有用性给出主观评分。在本文中,我们使用这个来强化一些自动度量确实与这个主观评分相关,遵循[11]中提出的指导方针,要求评分者评估每个生成的句子从1到41。
对于这个指标,我们建立了一个Amazon Mechanical Turk实验。每幅图像由2名工人评定。工人之间的相同意见的概率是65%,而如果意见不一致,我们只是将分数平均,并将平均值记录为分数。对于方差分析,我们执行自举(对重新采样结果进行重新采样,替换和计算方法/标准偏差)。像[11]一样,我们报告的分数大于或等于一组预定义的阈值。
剩下的指标可以自动计算,假设一个人可以访问groundtruth,即人类生成的描述。到目前为止在图像描述文献中最常使用的度量是BLEU得分[25],这是生成的和参考句子2之间的单词n-gram的精确度的形式。尽管这个度量具有一些明显的缺点,被证明与人类评估有很好的相关性。在这项工作中,我们也证实了这一点,正如我们在4.3节中所展示的那样。一个广泛的评估协议,以及我们的系统产生的输出,可以在http:// /找到。
除了BLEU之外,还可以将模型的困惑用于给定的翻译(这与我们在(1)中的目标函数密切相关)。困惑是每个预测词的逆概率的几何平均值。我们使用这个度量来进行关于模型选择和超参数调整的选择,但是我们并不报告它,因为BLEU总是首选的。关于度量的更详细的讨论可以在[31]中找到,研究这个课题的研究小组已经报告了其他一些被认为更适合评估标题的指标。我们报告了两个这样的度量标准 - ME- TEOR和Cider - 希望在度量的选择上进行更多的讨论和研究。
最后,目前关于图像描述的文献也已经使用了代理任务来对给定的图像进行一系列可用的描述(参见实例[14])。这样做的好处是可以使用像recall @ k这样已知的排名指标。另一方面,将描述生成任务转换为排序任务是不令人满意的:随着描述图像的复杂性增长,连同其字典一起,可能的句子数随着字典的大小呈指数增长,一个预定义的句子将适合一个新的形象将下降,除非这些句子的数量也呈指数增长,这是不现实的;更不用说为每幅图像有效地评估这样一个庞大的语料库所蕴藏的计算复杂性。在语音识别中已经使用了相同的论点,其中必须产生对应于给定声音序列的语句;虽然早期的尝试集中于分离孤立的音素或单词,但是这项任务的最新方法现在是生成性的,可以从一个大的词典中产生句子。
现在我们的模型可以生成合理的质量描述,尽管评估图像描述的含糊性(可能有多个有效的描述不在实际中),我们相信我们应该专注于生成任务的评估指标,而不是排行。
4.2 数据集
为了评估,我们使用许多由英文图像和句子组成的数据集来描述这些图像。
数据集的统计如下:
除了SBU之外,每张图片都有5个相对直观和不偏倚的标签。 SBU由图片所有者在将图片上传到Flickr时进行描述。因此,他们不能保证是视觉的或无偏见的,因此这个数据集有更多的噪音。
Pascal数据集通常用于测试系统是否在不同数据(例如其他四个数据集中的任何一个)上进行过训练。在SBU的情况下,我们分出了1000个图像进行测试,并在[18]中使用其余的训练。同样,我们从MSCOCO验证集中保留4K个随机图像作为测试,称为COCO-4k,并用它在下一节中报告结果。
4.3 结果
由于我们的模型是端到端的数据驱动和训练,并且考虑到大量的数据集,我们想要回答诸如“数据集大小如何影响泛化”,“可以进行什么类型的传输学习达到“,”如何处理弱标记的例子“。因此,我们在5个不同的数据集上进行了实验,在第4.2节中进行了解释,这使我们能够深入理解我们的模型。
4.3.1训练细节
我们在训练模型时面临的许多挑战都与过度拟合有关。事实上,纯监督的方法需要大量的数据,但高质量的数据集少于10万个图像。分配描述的任务比对象分类严格得多,而且数据驱动方法最近才成为主导,这要归功于像ImageNet那样大的数据集(数据量比我们在本文中描述的数据集要多十倍,SBU除外)。因此,我们相信,即使我们获得的结果相当好,但随着训练集规模的增长,我们的方法相对于大多数当前人为工程方法的优势只会在未来几年内增加。
尽管如此,我们还是探索了一些处理过度拟合的技巧。最显眼的方法是将我们系统的CNN分量的权重初始化为预训练模型(例如,在ImageNet上)。我们在所有的实验中都做了这个(类似于[8]),在泛化方面确实有很大的帮助。另一组可以明智地初始化的权重是We,嵌入这个词。我们尝试从一个大型新闻语料库中初始化它们[22],但没有观察到显着的收益,为了简单起见,我们决定将它们初始化。最后,我们做了一些模型级别的过度拟合避免技术。我们尝试 dropout [34]和 ensembling 模型,以及通过折算隐藏单元的数量与深度来探索模型的大小(即容量)。辍学和加班给了一些BLEU点的改善,这是我们在整个报告中报告。
我们用随机梯度下降法来训练所有权重集,其固定学习率和无动量。所有的权重都是随机初始化的,除了CNN的权重,我们保持不变,因为改变它们有负面的影响。我们使用了512个维度来定义LSTM记忆单元的大小。
描述用基本的标记化进行预处理,保留所有在训练集中出现至少5次的单词。
4.3.2生成结果
我们在表1和2中的所有相关数据集上报告了我们的主要结果。由于PASCAL没有训练集,我们使用了使用MSCOCO训练的系统(可以说是该任务的最大和最高质量的数据集)。
PASCAL和SBU的最新成果没有使用基于深度学习的图像特征,所以可以说这些分数的一个重大改进来自单独的改变。 Flickr数据集最近已被使用[11,21,14],但主要是在检索框架中进行评估。一个值得注意的例外是[21],他们在这里进行了检索和生成,并且在Flickr数据集上得到了最好的性能。
表2中的人类评分是通过比较其中一个人类标题和其他四个人物来计算的。我们为五个评估者中的每一个评估,并平均评估他们的BLEU分数。由于这给我们的系统带来了轻微的优势,因为BLEU得分是用五个参考句子而不是四个来计算的,所以我们把五个参考而不是四个的平均差值加回到人类得分。
鉴于过去几年这个领域已经取得了显着的进展,我们认为报告BLEU-4这个机器翻译标准是更有意义的。此外,我们报告了与表14中的人类评估更好地相关的指标。
尽管最近在更好的评估指标方面做出了努力[31]但是,当使用人评估者评估我们的标题时(参见第4.3.6节),我们的模型的表现要差得多,这意味着需要更多的工作来实现更好的指标。在正式的测试集上,只有官方网站才能提供标签,我们的模型有27.2个BLEU-4。
4.3.3迁移学习,数据大小和标签质量
由于我们已经训练了许多模型,并且我们有多个测试集,所以我们想研究是否可以将模型转移到不同的数据集,以及域中的不匹配将被补偿多少。更高质量的标签或更多的培训数据。
传输学习和数据大小最明显的情况是在Flickr30k和Flickr8k之间。两个数据集的标签类似,都是由同一组创建的。事实上,当使用Flickr30k进行训练(大约有4倍以上的训练数据)时,得到的结果更好的是4 BLEU点。很显然,在这种情况下,我们看到增加了更多的训练数据,因为整个过程是数据驱动和过度拟合的倾向。 MSCOCO甚至更大(比Flickr30k多5倍的训练数据),但是由于收集过程是不同的,因此词汇可能会有更多的差异,并且会有更大的不匹配。事实上,所有的BLEU分数都降低了10分。尽管如此,这些描述仍然是合理的。
由于PASCAL没有正式的训练集,独立于Flickr和MSCOCO收集,我们向MSCOCO 报告转移学习(见表2)。使用Flickr30k进行转换学习的结果与 BLEU-1的53(参见59)相比更差。
最后,虽然SBU的标签很薄弱(即标签是标题而不是人为的描述),但是更大更嘈杂的音色则更加困难。但是,更多的数据可用于培训。在 SBU 上运行MSCOCO模型时,我们的性能会从 28 降低到 16。
4.3.4生成多样性讨论
通过训练生成 p(S | I)的生成模型,一个明显的问题是模型是否产生新颖的标题,以及生成的标题是否多样和高质量。表3显示了从我们的波束搜索解码器中返回N个最佳列表的一些样本,而不是最好的假设。
请注意,样本是多样的,可能会显示来自同一图像的不同方面。 BLEU 得分在前15 个生成句子之间的一致性是 58,这与其中的人类相似。这表明我们的模型产生的多样性的数量。粗体是训练集中不存在的句子。
如果我们选出最好的候选句子,那么这个句子就会在80%的时间里出现在训练集中。考虑到训练数据量非常小,这并不令人感到意外,因此模型选择“exemplar”句子并用它们生成描述相对比较容易。如果我们反过来分析前15个生成的句子,大约一半的时间我们看到一个完全新颖的描述,但是仍然具有相似的BLEU得分,表明它们具有足够的质量,但是它们提供了健壮的多样性。
4.3.5 排名结果
虽然我们认为排名是一种评价图像描述生成的不满意方式,但是许多论文都会报告排名分数,并使用一组测试字幕作为候选排名给出测试图像。 在这些指标(MNLM)上效果最好的方法,特别实施了排名感知损失。 尽管如此,NIC在排序任务(给定图像的排名描述和给出描述的排名图像)方面表现出色,如表4和表5所示。注意,对于图像注释任务,我们将得分类似于 什么[21]使用。
4.3.6人的评估
图4显示了NIC提供的描述的人工评估结果,以及各种数据集的参考系统和实地测试结果。我们可以看到,NIC比参照系统要好,但显然比预期的要糟糕。这表明BLEU不是一个完美的度量标准,因为它不能很好地捕捉评估者评估NIC和人类描述之间的差异。额定图像的例子可以在图5中看到。有趣的是,例如在第一列的第二个图像中,看到模型如何能够注意到飞盘的大小。
4.3.6人的评估
图4显示了NIC提供的描述的人工评估结果,以及各种数据集的参考系统和实地测试结果。我们可以看到,NIC比参照系统要好,但显然比预期的要糟糕。这表明BLEU不是一个完美的度量标准,因为它不能很好地捕捉评估者评估NIC和人类描述之间的差异。额定图像的例子可以在图5中看到。有趣的是,例如在第一列的第二个图像中,看到模型如何能够注意到飞盘的大小。
4.3.7嵌入分析
为了表示前一个字St-1作为产生St的解码LSTM的输入,我们使用了字嵌入向量[22],它具有独立于字典大小的优点(与简单的单向字典相反,热编码方法)。而且,这些词汇嵌入可以与模型的其余部分一起进行联合训练。看到学习的表示如何从语言的统计中捕捉到一些语义,这是非常了不起的。表4.3.7显示了一些例子中最接近的学习嵌入空间中的其他单词。
请注意,模型学习到的一些关系将如何帮助视觉组件。事实上,将“马”,“小马”和“驴”彼此靠近将鼓励CNN提取与马匹动物相关的特征。我们假设,在极少数情况下,我们看到一个例子(例如,“独角兽”),它接近其他词嵌入(如“马”)应提供更多的信息,将完全失去更传统的基于书包的方法
5.结论
我们已经提出了NIC,这是一个端到端的神经网络系统,可以自动查看图像并以简单的英文生成合理的描述。 NIC基于一个卷积神经网络,该网络将图像编码成一个紧凑的表示,然后是一个循环的神经网络,产生相应的句子。训练该模型以最大化给予该图像的句子的可能性。几个数据集实验表明NIC的鲁棒性的定性结果来(生成的句子是非常合理的)和定量的评价,无论是使用排名指标或BLEU,在马折角翻译使用的指标来评价生成仙的质量 - 尖叫从这些实验中可以清楚地看出,随着用于图像描述的可用数据集的大小增加,像NIC这样的方法的性能也会提高。此外,看看如何使用无监督的数据,无论是单独使用图像还是单独使用文本,都可以改善图像描述方法。