Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Challenge

论文地址:https://arxiv.org/abs/1609.06647

1.Introduction

自动识别图像内容并转化为描述比研究得很好的图像分类或对象识别任务要困难得多,后者一直是计算机视觉界的主要关注点。事实上,描述不仅必须捕获图像中包含的对象,还必须描述这些对象如何相互关联,以及它们的属性和所涉及的活动。此外,上述语义知识必须以英语等自然语言表达,这意味着除了视觉理解之外,还需要一种语言模型。

大多数之前的尝试都建议将上述子问题的现有解决方案缝合在一起,以便从图像得到其描述。相比之下,我们希望在本文中呈现一个以图像i为输入的单一联合模型,并且经过训练以最大化产生目标词序列s=s1,s2,…的可能性p.每个单词st都来自一个给定的字典,它充分描述了图像。

我们工作的主要灵感来自机器翻译的最新进展,其中任务是通过最大化p(t_s),将源语言中的句子s转换为目标语言中的翻译t。多年来,机器翻译也通过一系列单独的任务(单独翻译单词、对齐单词、重新排序等)来实现,但最近的工作表明,使用递归神经网络(RNN)可以以更简单的方式进行翻译,并且仍然达到最先进的性能。“编码器”RNN读取源语句并将其转换为丰富的固定长度矢量表示,然后将其用作生成目标语句的“解码器”RNN的初始隐藏状态。

在这里,我们建议遵循这个优雅的配方,用深度卷积神经网络(CNN)代替编码器RNN。在过去的几年中,CNN可以通过将输入图像嵌入固定长度的向量来产生丰富的图像表示,因此这种表示可以用于各种视觉任务。因此,使用CNN作为图像“编码器”是很自然的,首先对其进行图像分类任务的预培训,然后使用最后一个隐藏层作为生成句子的RNN解码器的输入。我们称这个模型为图像描述生成,或NIC。

我们的贡献如下。首先,我们为这个问题提供了一个端到端的系统。它是一个利用随机梯度下降的完全可训练的神经网络。第二,我们的模型结合了最先进的视觉和语言模型子网络。这些可以在更大的语料库上预先培训,从而可以利用额外的数据。我们最终得到的模型与目前最先进的方法相比,性能明显更好。第三,我们吸取了参与第一届MSCOCO竞赛的经验教训,这有助于我们改进初始模型,并在自动度量中排名第一,在人类评估中排名第一(与另一个团队并列)。

2.Related Work

从视觉数据生成自然语言描述的问题一直是计算机视觉研究的问题,但主要是针对视频。传统上,这导致了由视觉原始识别器和结构化形式语言(如安道尔图或逻辑系统)组成的复杂系统,这些系统通过基于规则的系统进一步转换为自然语言。这类系统是手工设计的,相对脆弱,仅在有限的领域(如交通场景或运动)进行演示。

自然语言中的静止图像字幕问题最近受到越来越多的关注。对象识别和检测以及属性识别的最新进展已被用于驱动自然语言生成系统,尽管它们的表达能力有限。Farhadi等人使用检测推断场景元素的三重集合,使用模板将其转换为文本。同样,Li等人从检测开始,使用包含检测到的对象和关系的短语拼凑出最终描述。Kulkani等人使用了更复杂的三联体以外的检测图,但使用基于模板的文本生成。基于语言解析的更强大的语言模型也被使用了。上面的方法已经能够“in the wild”描述图像,但是在文本生成方面,它们是精心设计的,并且是严格的。

大量的工作已经解决了对给定图像的描述排序问题。这种方法是基于图像和文本在同一个向量空间中共存的思想。对于图像查询,检索嵌入空间中靠近图像的描述。最接近的是,神经网络被用来将图像和句子共同嵌入在一起,甚至是图像裁剪和子内容,但并不试图生成新颖的描述。一般来说,上述方法不能描述以前看不见的物体组成,即使训练数据中可能观察到个别物体。此外,它们避免解决评估生成的描述有多好的问题。最近,基于神经网络的识别器被用来检测一组较大的单词,并与语言模型一起生成句子。

在这项工作中,我们将用于图像分类的深卷积网络与用于序列建模的循环网络相结合,以创建一个生成图像描述的单一网络。RNN是在这个单一的“端到端”网络环境中进行培训的。该模型的灵感来源于机器翻译[4]、[5]中序列生成的最新成功,不同之处在于,我们不从句子开始,而是提供了一个由卷积网络处理的图像。

在2015年夏季,出现了一些遵循上述一般范式的方法。最近的作品是Kiros等人的,使用前馈神经网络,给定一个图像,预测下一个词和前一个词。Mao等人最近的一项研究,对相同的预测任务使用重复的NN。这与本提案非常相似,但有许多重要的区别:我们使用一个更强大的RNN模型,并直接向RNN模型提供可视输入,这使得RNN可以跟踪文本解释的对象。由于这些看似微不足道的差异,我们的系统在既定基准上取得了实质性的更好的结果。此外,Kiros等人提出利用强大的计算机视觉模型和编码文本的LSTM构造一个联合多模态嵌入空间。与我们的方法不同,它们使用两个独立的路径(一个用于图像,一个用于文本)来定义联合嵌入,并且,虽然它们可以生成文本,但主要是高度适合排名。Donahue等人正在使用一个循环网络,用于活动识别和视频描述。

此外,一些方法试图以更明确的方式来模拟句子部分的视觉锚定,以提高性能。Xu等人探索图像区域上的注意机制,在这些区域中,系统在发出文字时可以聚焦于图像部分。Karpathy等人在培训过程中使用了一个明确的单词-区域对齐。最后,Chen等人生成描述时,为句子部分构建可视化表示。Devlin报告了上述方法的进一步分析。

3.Model

在本文中,我们提出了一个神经和概率框架来生成图像描述。统计机器翻译的最新进展表明,给定一个强大的序列模型,可以通过直接最大化以“端到端”方式给出输入句的正确翻译的概率来达到最先进的结果——既用于训练也用于推理。这些模型利用一个循环神经网络,将可变长度的输入编码成一个固定的多维向量,并使用这种表示将其“解码”为所需的输出语句。因此,使用相同的方法是很自然的,在给定图像(而不是源语言中的输入句)的情况下,使用相同的“翻译”原则将其翻译成描述

4.Experiment

4.1 Evaluation Metrics

尽管有时不清楚描述是否应被视为成功,但现有技术提出了几个评估指标。最可靠(但耗时)的是要求评分者对给出图像的每个描述的有用性给出主观评分。在本文中,我们使用这一点来强调一些自动度量确实与主观评分相关,遵循[16]中提出的指导原则,要求评分者评估生成的每个句子,分数从1到4。

为了这个标准,我们建立了一个实验。每幅图片由2名工人进行评分。工人之间的典型协议水平为65%。如果意见不一致,我们简单地求平均分,并将平均值记录为分数。对于方差分析,我们执行引导(用替换和计算平均分/标准差对重采样结果进行重新采样)。像[16]一样,我们报告的分数大于或等于一组预先定义的阈值。

剩下的度量可以自动计算。目前图像描述文献中最常用的度量是Bleu分数[38],它是生成句和引用句之间单词n-grams的精确形式。尽管这个指标有一些明显的缺点,但已经证明它与人类的评估有很好的关联。在这项工作中,我们也证实了这一点,如第4.3节所示。可以在http://nic.droppages.com/上找到广泛的评估协议以及系统生成的输出。

除了Bleu外,我们还可以利用该模型对给定的转录的复杂性(这与我们在(1)中的目标功能密切相关)。复杂性是每个预测词的逆概率的几何平均数。我们使用这个度量来执行关于模型选择和超参数调优的选择,但是我们不报告它,因为Bleu总是首选。

最近,一种称为CIDER的新指标被Coco字幕挑战赛的组织者引入并使用。简而言之,它衡量生成句和参考句中n-gram出现的一致性,其中n-gram出现的一致性由n-gram显著性和稀缺性加权。由于上述所有指标都有各种缺点(详细讨论见[39]),我们还提供使用Meteor[40]和Rouge[41]度量的结果。

最后,目前关于图像描述的文献也使用代理任务来对给定图像的一组可用描述进行排序(例如[29])。这样做的好处是可以使用已知的排名指标,如recall@k。另一方面,将描述生成任务转换为排序任务是不令人满意的:随着要描述的图像和其词典的复杂性增加,可能的句子数随词典的大小呈指数增长,并且除非预先定义的句子的数目符合新图像,即一起指数级增长,否则适宜图像的句子数将下降,然而这是不现实的;更不用说有效地为每个图像评估如此庞大的存储语句集的底层计算复杂性。同样的论据也被用于语音识别,在语音识别中,人们必须产生与给定的声学序列相对应的句子;虽然早期的尝试集中在孤立音素或单词的分类上,但这项任务的最先进方法现在是可生成的,并且可以从大字典中产生句子。

现在,我们的模型可以生成合理质量的描述,尽管评估图像描述(可能有多个有效的描述),我们认为我们应该集中在生成任务的评估度量上,而不是排名上。

4.2 Datasets

本文使用的数据集包括Pascal VOC 2008,Flickr8k,Flickr30k,MSCOCO,SBU。

除了SBU之外,每幅图像都由贴标人用5个相对可视化和无偏见的句子注释。SBU由图片所有者在上传到Flickr时给出的描述组成。因此,它们不能保证是可视的或无偏见的,因此这个数据集具有更多的噪声。

Pascal数据集通常仅在系统接受过不同数据(如其他四个数据集中的任何一个)的培训后才用于测试。在SBU的情况下,我们保存1000张图像用于测试,并按照[14]所用的其他图像进行训练。同样,我们从mscoco验证集中保留4K随机图像作为测试,称为coco-4K,并使用它在下面的部分报告结果。

4.3 Results

由于我们的模型是数据驱动和端到端培训的,并且考虑到数据集的丰富性,我们想回答诸如“数据集大小如何影响泛化”、“它能够实现的传输学习类型”和“它如何处理弱标记的示例”等问题。结果,我们在5个不同的数据集上进行了实验,这使得我们能够深入了解我们的模型。

4.3.1 Training Details

我们在培训模型时面临的许多挑战都与过拟合有关。实际上,纯监督方法需要大量的数据,但是高质量的数据集的图像少于100000张。分配一个描述的任务比对象分类要困难得多,数据驱动的方法直到最近才变得占主导地位,这要归功于像imagenet这样大的数据集(数据量是我们在本文中描述的数据集的十倍,除了SBU)。因此,我们相信,即使我们获得了相当好的结果,我们的方法相对于大多数当前人类工程方法的优势也只会在未来几年随着训练集大小的增加而增加。

尽管如此,我们还是探索了一些处理过拟合的技术。最明显的避免过度拟合的方法是将我们系统的CNN组件的权重初始化为预训练模型(例如,在ImageNet上)。我们在所有的实验中都这样做了(类似于[17]),并且它在泛化方面帮助很大。另一组可以被合理初始化的权重是We,即embeddings。我们试图从一个大型新闻语料库中初始化它们[36],但是没有观察到显著的进展,我们决定为了简单起见不初始化它们。最后,我们做了一些模型级的过度拟合避免技术。我们尝试了dropout[45]和集成模型,以及通过权衡隐藏单元的数量与深度来探索模型的大小(即容量)。dropout和ensemblings给了一些BLEU的改进,这是我们在整篇文章中报告的。第5.2节描述了用于MS Coco挑战的补充训练细节。

我们使用随机梯度下降训练所有权重集,学习速率固定,无动量。所有权重都是随机初始化的,除了CNN权重,我们保持不变,因为更改权重会产生负面影响。我们使用512维作为嵌入和LSTM内存的大小。

使用基本的标记化技术对描述进行了预处理,将所有出现在训练集中至少5次的单词保留下来。

4.3.2 Generation Results

我们报告了表1和表2中所有相关数据集的主要结果。由于Pascal没有训练集,所以我们使用了使用mscoco(可以说是此任务最大和最高质量的数据集)进行训练的系统。Pascal和SBU的最新结果并没有使用基于深度学习的图像功能,因此可以说,这些分数的大幅提高仅仅来自于这一变化。Flickr数据集最近被使用[16]、[27]、[29],但大多在检索框架中进行了评估。一个值得注意的例外是[27],他们在这里既进行了检索又进行了生成,并且在Flickr数据集上产生了迄今为止最好的性能。

表2中的人类分数是通过将其中一个描述与其他四个描述进行比较来计算的。我们为五个评分者中的每一个做这个,并平均他们的Bleu分数。由于这给了我们的系统一点好处,考虑到Bleu分数是根据五个参考句而不是四个参考句计算的,我们将五个参考句而不是四个参考句的平均差加回到人类分数中。

鉴于该领域在过去几年中取得了重大进展,我们认为报告BLU4更有意义,BLU4是机器翻译前进的标准。此外,我们在表1中报告了与人类评估更好关联的指标。尽管最近在更好的评估指标[39]方面做出了努力,但我们的模型与人类评分者相比仍然具有很强的代价优势。然而,在使用人工评分器评估标题时(见第4.3.6节),我们的模型的代价要低得多,这表明需要更多的工作来获得更好的指标。有关我们对mscoco数据集的结果和其他有趣的人工度量的更详细的描述和比较,请参见第5节。在这一部分中,我们详细介绍了我们的W.R.T.模型额外调整的经验教训,即本手稿的前一版本[46]中提交的原始模型(表1中的NIC)与竞争的最新版本(表1中的NICv2)。

4.3.3 Transfer Learning, Data Size and Label Quality

由于我们培训了许多模型,并且有几个测试集,所以我们想研究是否可以将模型转移到不同的数据集,以及域中的不匹配将通过更高质量的标签或更多的培训数据得到多少补偿。

最明显的传输学习和数据的情况是flickr30k和flickr8k之间。这两个数据集很相似,是由同一组进行标注的。事实上,在Flickr30K上进行训练时(训练数据是Flickr8k的4倍),得到的结果更好,BLEU分数高了四分。很明显,在这种情况下,我们可以通过添加更多的培训数据来获得收益,因为整个过程都是数据驱动的,并且容易过度拟合。mscoco甚至更大(培训数据是flickr30k的5倍),但由于收集过程不同,词汇差异可能更大,不匹配也更大。事实上,所有的BLEU分数都下降了10分。尽管如此,这些描述仍然是合理的。

由于Pascal没有正式的训练集,并且是独立于Flickr和MSCOCO收集的,因此我们报告了从MSCOCO的转移学习(见表2)。从Flickr30K进行转移学习时,结果更差,BLEU 1得了53分。

最后,尽管SBU的标签很弱(即,标签是caption,而不是人工生成的描述),但使用更大、噪音更大的词汇表,任务更难完成。然而,更多的数据可用于培训。在SBU上运行MSCOCO模型时,我们的性能从28降到16。

4.3.4 Generation Diversity Discussion

你可能感兴趣的:(论文,机器学习之路)