论文笔记:Neural Baby Talk

Neural Baby Talk

1、提出问题

现代神经网络图像描述方法产生的自然语言描述虽然比较流畅,但是都是依靠语言模型去生成句子,往往不太依赖于图像。

2、提出创新点

  • 提出了 Neural Baby Talk —— 一种新的图像描述框架,在生成自然语言描述的同时,清楚的定位图像中的对象。

  • 我们的方法分为两个阶段,首先生成混合的模板,该模板包含单词和与图像区域插槽的混合,然后通过识别相应图像区域中的内容用单词填充插槽。

  • 我们提出了一个稳健的图像描述任务,以衡量图像描述算法的构成性,在测试时,模型遇到了包含已知物体但有新的组合的图像(例如,模型在训练时看到了沙发上的狗和桌子上的人,但在测试时遇到了桌子上的狗)。这种新的组合是证明图像落地的一种方式,而不是简单地利用训练数据的相关性。

    (为了验证模型能生成新对象的描述,作者重新划分了一个鲁棒的数据集分片。将COCO数据集的train和val重新组合,使得训练中共现的对象与测试时共现的对象不同,即模型将遇到包含已知对象但对象是新的组合方式的图像。)

3、模型

在第一阶段,使用目标检测检测出N个目标区域,在预测单词时,同样分成visual word和context word,context word关联一个虚拟的区域,计算这N+1个区域的概率向量,如果是context word对应的区域概率最大就是和目标无关的单词,直接预测,若是和目标相关的单词则留出空缺。

在第二阶段要对目标词进行精细化处理才能填入句子,单复数和更精细的种类,直接使用MLP就可以得到,最终得到句子。

从图像I中提取N个图像区域的集合: τ \tau τI={ τ \tau τ1,…, τ \tau τN}.当描述生成一个实体词时,将它与图像区域相结合 τ \tau τ ∈ \in τ \tau τI .

从1到T时刻,在t-1时刻的y发生的条件下yt发生的概率的累积为y描述的概率:

论文笔记:Neural Baby Talk_第1张图片

引入一个潜在变量rt来表示一个特定的图像区域:

在这里插入图片描述

yt分为两种类型:视觉词yvis和文本词ytxt。视觉词yvis是一种基于 τ \tau τI特定图像区域的单词;文本词ytxt是来自标题其余部分的单词,它来源于语言模型,它与从语言模型中获得的“默认”标记“区域” τ \tau τ~ 相关联。

3.1、“Slotted” Caption Template Generation

论文笔记:Neural Baby Talk_第2张图片

我们候选检测框由预训练的Faster-RCN获得。生成标题模板,将使用RNN作为图像描述的解码器。

在每个时间步,我们输入隐藏状态ht-1和xt来得到RNN的隐藏状态ht

在这里插入图片描述

我们的解码器由一个基于注意力的双层LSTM层组成(后面介绍),它将卷积特征映射作为输入。为了生成视觉词的“插槽”,我们使用指针网络来调整基于内容的关注区域的注意机制。

我们用vt ∈ \in Rd*1 表示 τ \tau τt的区域特征.

我们用以下方法计算指针的矢量:

论文笔记:Neural Baby Talk_第3张图片

其中Wv ∈ \in Rm×d, Wz ∈ \in Rd×d , wh ∈ \in Rd×1是要学习的参数。ut经过softmax函数归一化为在图像区域 τ \tau τI上的分布概率。

因为文本词ytxtt并未和图像中的特定区域绑定,我们添加了一个“visual sentinel” τ \tau τ~,来当作中间变量作为文本词的虚拟基础。“visual sentinel"可以被认为是解码器已经知道图像的潜在表现。

则生成一个文本词ytxtt的概率是:

在这里插入图片描述

“visual sentinel” st通过以下方式获得:

论文笔记:Neural Baby Talk_第4张图片

Wx ∈ \in Rd×d, Wh ∈ \in Rd×d; xt是时间步t的LSTM输入; gt是应用于单元状态ct 的门;⊙表示逐元素相;σ表示sigmoid激活函数。

因此包括“visual sentinel"在内的接地区域的概率是:

在这里插入图片描述

Wx ∈ \in Rd×d ;Wz和wh和前面的公式一样。

Ptr 是接地区域 τ \tau τI和视觉哨点 τ \tau τ~的概率分布。等式中向量的最后一个元素为 p( τ \tau τ|y1:t-1)。

我们将隐藏状态ht送入softmax函数,获得图像上以之前单词和“visual sentinel”为条件的文本词的概率:

在这里插入图片描述

Wq ∈ \in RV×d,d是隐藏状态的大小,V是文本词的大小。

然后我们把这个pttxt和p( τ \tau τ|y1:t-1)相乘。得到生成生成一个文本词ytxtt的概率。

之后再进行C(compare)比较操作,与用region信息生成下一个词的概率Ptr 进行比较,得出此时应该使用何种信息生成下一个词。如果直接生成连接词的话,就直接用pttxt输出连接词,如果需要用到region的信息,就生成对应的插槽。

3.2、Caption Refinement: Filling in The Slots

为了在生成的模板中填充图像区域中基于视觉单词的插槽,我们利用了目标检测网络的输出。给定一个接地区域,该类别可以通过任何检测框架获得。但是检测网络的输出通常是单独的粗标签,例如“狗”。标题通常以细粒度的方式引用这些实体,例如“小狗”或复数形式“狗”。

为了适应这些语言变化,我们模型中的视觉词 yvis 是通过考虑以下两个因素对类别名称的改进:首先,确定是单数还是复数。其次,确定细粒度的类(如果有的话)。使用两个具有 ReLU 激活 f(·) 的单层 MLP计算:

论文笔记:Neural Baby Talk_第5张图片

Wb ∈ \in R2×d, Wgb ∈ \in R300×d是权重参数;Ub ∈ \in R300×k 是向量嵌入与类别名称相关联的细粒度单词。

因此,视觉词yvis由单复数和细粒度类确定。

3.3、Objective

给定目标真值描述y*1:T,参数为 θ \theta θ的图像描述模型,目标函数最小化交叉熵损失为:

论文笔记:Neural Baby Talk_第6张图片

第一部分为 Textual word 概率,第二部分为Caption细微改良(针对词形态),第三部分为目标区域平均概率。

1(yt=ytxt)表示指示函数,当y*t是文本词时置为1,否则为0;b*t,s*t分别表示单复数和细粒度类别;

{ τ \tau τit}mi=1 ∈ \in τ \tau τI表示t时刻视觉单词的目标接地区域。

3.4、Implementation Details

语言模型:基于注意力的2层LTSM模型。

论文笔记:Neural Baby Talk_第7张图片

V = {v1, . . . , vN}是检测建议的区域特征;

Vˆ = {ˆv1, . . . , ˆvK}是来自K个网格的最后一个卷积层的 CNN 特征。

用于检测提议的图像特征上的注意力分布是:

论文笔记:Neural Baby Talk_第8张图片

Wv ∈ \in Rm×d, Wg ∈ \in Rd×d , wz ∈ \in Rd×1 ;1T ∈ \in RN 是一个所有元素都设置为 1 的向量; αt 是N个图像位置特征的注意力权重.

每个时间步都需要输入yt, {v1…vN}以及CNN中间层的特征。

你可能感兴趣的