Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering
原文链接:link
摘要
自顶向下的注意力机制在image caption和VQA中被广泛地使用。本文提出的想法是结合top-down和bottom-up注意力机制。基于faster RCNN的bottom-up方法给出图像区域的特征向量,top-down注意力给出特征的权重。
introduction
在人类的视觉系统中,注意力可以被由当前任务决定的自上而下的信号(例如寻找某物)集中起来,也可以被与意想不到的、新奇的或突出的刺激相关的自下而上的信号集中起来。在本文中,采用类似的术语,将非视觉或任务特定背景驱动的注意机制称为“自上而下”(top-down),将纯视觉前馈注意机制称为“自下而上”(bottom-up)。
本文提出了一种自底向上和自顶向下相结合的视觉注意机制。自底向上机制提出了一组显著图像区域,每个区域用一个池化的卷积特征向量表示。使用faster R-CNN实现自下而上的注意力。这是一种自下而上的注意力机制的自然表现。自上而下的机制使用特定任务上下文来预测图像区域的注意力分布。得到的特征向量作为图像在各区域特征向量的权重。
本文在ImageCaption和VQA任务中使用了上述方法。
related work
大量的基于注意力的DNN被应用在IC和VQA任务上,这些模型大多数都能认定为top-down的方法。例如在IC任务中,利用部分完成的caption作为上下文;在VQA任务中,利用问题来推断答案。这种方法下,如何确定图像region的最优数目是一个问题,区域的定位也对任务的结果有影响。
方法
1.Bottom-Up Attention Model:faster RCNN
采用FasterRCNN+ResNet-101CNN 利用Imagenet上的预训练模型在VG数据集上进行训练
为了学习到更好的特征表达,为模型添加了额外的属性输出。
FasterRCNN提取出image region实际上是一种hard-attention,他的关注点往往是图中的一小个区域
对单幅图片得到特征
V
=
{
v
1
,
…
,
v
k
}
,
v
i
∈
R
D
V=\left\{\boldsymbol{v}_{1}, \ldots, \boldsymbol{v}_{k}\right\}, \boldsymbol{v}_{i} \in \mathbb{R}^{D}
V={v1,…,vk},vi∈RD
2.caption model
在生成标题的过程中,利用soft-attention,对图像中的众多特征计算加权和,使用部分生成的caption文本作为上下文分析。使用两层LSTM。
2.1 top-down attention LSTM
该层LSTM的输入由三部分组成,分别是上一step语言LSTM的输出,平均池化的图像特征,之前生成单词的编码。
x
t
1
=
[
h
t
−
1
2
,
v
‾
,
W
e
Π
t
]
\boldsymbol{x}_{t}^{1}=\left[\boldsymbol{h}_{t-1}^{2}, \overline{\boldsymbol{v}}, W_{e} \Pi_{t}\right]
xt1=[ht−12,v,WeΠt] 其中
W
e
W_{e}
We是word embedding矩阵,
Π
t
\Pi_{t}
Πt是one-hot单词编码
对该层LSTM的输出做以下处理,计算得到将图像特征加入语言模型的注意力权重
a
i
,
t
=
w
a
T
tanh
(
W
v
a
v
i
+
W
h
a
h
t
1
)
a_{i, t}=\boldsymbol{w}_{a}^{T} \tanh \left(W_{v a} \boldsymbol{v}_{i}+W_{h a} \boldsymbol{h}_{t}^{1}\right)
ai,t=waTtanh(Wvavi+Whaht1)
α
t
=
softmax
(
a
t
)
\boldsymbol{\alpha}_{t}=\operatorname{softmax}\left(\boldsymbol{a}_{t}\right)
αt=softmax(at)
其中的系数矩阵都是学习得到的参数
v
^
t
=
∑
i
=
1
K
α
i
,
t
v
i
\hat{\boldsymbol{v}}_{t}=\sum_{i=1}^{K} \alpha_{i, t} \boldsymbol{v}_{i}
v^t=∑i=1Kαi,tvi
2.2 language LSTM
该层LSTM输入由注意力权重控制后的图像特征和上层LSTM的输出组成
x
t
2
=
[
v
^
t
,
h
t
1
]
\boldsymbol{x}_{t}^{2}=\left[\hat{\boldsymbol{v}}_{t}, \boldsymbol{h}_{t}^{1}\right]
xt2=[v^t,ht1]
结果的概率分布为
p
(
y
t
∣
y
1
:
t
−
1
)
=
softmax
(
W
p
h
t
2
+
b
p
)
p\left(y_{t} \mid y_{1: t-1}\right)=\operatorname{softmax}\left(W_{p} h_{t}^{2}+b_{p}\right)
p(yt∣y1:t−1)=softmax(Wpht2+bp)
完整的分布为条件概率的乘积
p
(
y
1
:
T
)
=
∏
t
=
1
T
p
(
y
t
∣
y
1
:
t
−
1
)
p\left(y_{1: T}\right)=\prod_{t=1}^{T} p\left(y_{t} \mid y_{1: t-1}\right)
p(y1:T)=∏t=1Tp(yt∣y1:t−1)
2.3 objective
用SCST方法进行最优化 link
最小化负的得分期望(即使得得分期望最大)
L
R
(
θ
)
=
−
E
y
1
:
T
∼
p
θ
[
r
(
y
1
:
T
)
]
L_{R}(\theta)=-\mathbf{E}_{y_{1: T} \sim p_{\theta}}\left[r\left(y_{1: T}\right)\right]
LR(θ)=−Ey1:T∼pθ[r(y1:T)]
该loss的梯度可以由下式计算得到
∇
θ
L
R
(
θ
)
≈
−
(
r
(
y
1
:
T
s
)
−
r
(
y
^
1
:
T
)
)
∇
θ
log
p
θ
(
y
1
:
T
s
)
\nabla_{\theta} L_{R}(\theta) \approx-\left(r\left(y_{1: T}^{s}\right)-r\left(\hat{y}_{1: T}\right)\right) \nabla_{\theta} \log p_{\theta}\left(y_{1: T}^{s}\right)
∇θLR(θ)≈−(r(y1:Ts)−r(y^1:T))∇θlogpθ(y1:Ts)
利用梯度下降计算得到参数
θ
\theta
θ