【图像理解】自动生成图像的文本描述

Deep Visual-Semantic Alignments for Generating Image Descriptions
Andrej Karpathy Li Fei-Fei

摘要

这篇文章的作者提出了一种方法,可以用于生成图像的自然语言描述。主要包含了两个部分(1)视觉语义的对齐模型;(2)为新图像生成文本描述的 Multimodal RNN 模型。

其中视觉语义的对齐模型主要由3部分组成:

  1. 应用于图像区域的卷积神经网络(Convolution Neural Networks)。
  2. 应用于语句的双向循环神经网络(bidirectional Recurrent Neural Networks)。
  3. 结构化的目标函数,通过多模态嵌入来对齐视觉与语义。

Figure1

简介

我们的目标是在给定一张图像的情况下,得到他的自然语言描述。如何做呢?假设我们有一个很大的数据库,每条记录是图像以及它对应的语句描述。每条语句的词汇片段其实对应了一些特定的但是未知的图像区域。我们的方法是推断出这些词汇片段和图像区域的对应关系,然后使用他们来生成一个泛化的语言描述模型。具体来说,可以分为两个部分:

  1. 一个深度神经网络模型用于推断语句片段与图像区域的对应关系(如Figure 2的中间那张图所示)。如何将图像与语句片段关联起来呢?通过mutimodal embedding空间和一个结构化的目标函数。
  2. 一个Mutimodal RNN模型,以图片为输入,输出它的文本描述(如Figure 2的右图所示)。

Figure2

模型

概述

模型的最终目标是生成图像区域的文本描述。训练阶段,模型的输入是图像集合和对应的语句(如Figure2所示)。这里有两个模型,第一个模型通过多模嵌入来对齐语句片段和视觉区域。然后,我们将这些对齐好的视觉区域和语句片段作为训练数据,训练一个Multimodal RNN模型,这个模型可以根据输入图像自动生成对应的文本描述。

3.1 视觉与语言数据的对齐

3.1.1 图像的表示

使用Region Convolution Neural Network(RCNN)检测图像上的物体,取top 19个检测到的图像区域,加上整张图像。然后计算这个20个图像块的CNN特征,每个特征是4096维(最后一个全连接层的输出)。

公式1

其中 Wm h×4096 维的矩阵,h是多模态嵌入空间的维度(1000到1600的范围)。因此每个图像区域表示为h维的向量 {vi|i=1...20}

3.1.2 语句的表示

为了建立内部模态的关联性(单词与图像区域的关联性),需要将语句中的单词也映射到相同的h维的嵌入空间中。最简单的方法是将单词直接进行映射,但是这样就忽略掉了单词间的顺序和上下文信息。因此本文提出使用Bidirectional Reccurrent Neural Network(双向循环神经网络,BRNN)来计算单词的表示。

BRNN以N个单词(encoded in a 1-of-k representation)的序列作为输入, 将每个单词转换为h维的向量。下标 t=1...N 表示单词在句子中的位置,BRNN的具体形式如下列公式所示:

[公式2-6]

It 是一个指示向量,它的含义是: 初始时这是一个全0的列向量,假设句子中第t个词在词典(word vocabulary)中的位置为i, 那只有i位置的值为1,其他位置的值全为0。

Ww 是一个单词嵌入矩阵(简单来说应该就是一个转换矩阵或者投影矩阵),初始化为300维的word2vec的权重,并保持不变。

BRNN包含了两个独立的过程, 一个从左到右 (hft) , 一个从右到左 (hbt) , 如图3所示。

最后第t个词的h维输出 st , 是一个关于这个词的位置和句子的上下文信息的函数。

We,Wf,Wb,Wd,be,bf,bb,bd 是要学习的参数。

激活函数f是整流线性单元(ReLU), f:xmax(0,x)

figure3

3.1.3 对齐模型的目标函数

上文描述了如何将图像和句子表示h维向量的集合,那么我们将图像vs句子的得分看作多个图像区域vs单词的得分的一个函数, 以内积 vTist 作为 i-th图像区域与t-th word的相似性度量,那么图像k与句子l的得分为:

公式7

gk 是图像区域的集合, gl 是单词的集合。

得分函数的简化版本:

公式8

公式8表示每个单词只与最匹配的那个图像区域进行对齐。

假设 k=l 表示相对应的图像和语句,那么最终的结构化损失函数为:

公式9

它的物理意义就是使得 Skk 要尽量高,而 Skl Slk 尽量小。也就是说相关的图像和语句会获得更高的得分,而非相关的图像和语句将获得比较低的得分。

3.2 Multimodal Recurrent Neural Network 用于产生图像描述

假定我们有一些图像和相关文本描述的集合,这些集合可以是整幅的图像和相关的句子描述,也可以是图像区域和相关的文本片段。主要的挑战是设计一个模型,可以根据给出的图像,预测出可变尺寸的文本序列。

训练阶段,Multimodal RNN输入图像I和对应的文本序列的特征向量序列 (x1,...,xT) xt 表示第t个词的特征向量。然后通过重复下面的迭代过程 (t=1 to T) 来计算隐藏状态序列 (h1,...,hT) 和输出值序列 (y1,...,yT) :

公式13-15

CNNθc(I) 表示CNN最后一层的输出。 Whi,Whx,Whh,Woh,xi,bh,bo 是要学习的参数。 yt 是输出向量,表示了单词在字典中的概率, 还有额外的一个维度表示结束符的概率。

  • RNN training RNN根据一个词 (xt) 和之前的上下文信息 (ht1) 来预测下一个词 (yt) 。在训练的第一步通过引入图像信息 (bv) 对预测值产生影响。训练过程参考Figure4: 设置 h0 为0向量, x1 为一个特定的START向量, 要求的label y1 对应了序列的第一个词,以此类推。最后一步中, XT 表示最后一个词,目标标签 yT 则设定为一个特定的END记号。那么目标函数就是要最大化目标标签的对数概率(例如, softmax分类器)

  • RNN at test time 以图像为输入,预测它的文本描述。首先计算图像的表示 bv , 设置 h0=0 , x1 为START向量,计算第一个词的概率分布 y1 , 根据最大的那个概率来获得一个词,设置它的嵌入向量为 x2 , 重复这个步骤,直到产生END记号。

figure4

3.3 优化求解

采用随机梯度下降算法,100个图像-语句组合为一个batch。

  • 9
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值