给定一张图片
I
I
I,我们的字幕生成模型和视觉问答模型输入一个
k
k
k个尺寸不相同的图像特征集合,
V
=
{
v
1
,
.
.
.
,
v
k
}
,
v
i
∈
R
d
V=\left\{v_1,...,v_k\right\},v_i\in\mathbb{R}^d
V={v1,...,vk},vi∈Rd。空间图像特征
V
V
V可以定义为在3.1小节中我们的自底向上注意力模型的输出。在3.2小节,我们列出了我们的字幕生成模型并在3.3小节我们列出了我们的视觉问答模型。我们注意到自顶向下注意力部分,两个模型都使用简单的注意力机制,而不是像最近的堆叠注意力、多头注意力或者双向注意力那样复杂的注意力机制。
3.1 Bottom-Up Attention Model(自底向上注意力模型)
空间图像特征
V
V
V已经被定义。然而,在本篇文章中我们将空间区域定义为一组边缘框并使用Faster R-CNN来实现自底向上注意力。Faster R-CNN是一个用来识别物体实例并识别类别和边缘框定位的模型。我们的区域推荐网络也可以被训练为一个注意力机制。 Faster R-CNN通过两个步骤来检测物体。第一步叫做区域推荐网络(RPN)来预测物体推荐。在每一个空间位置网络预测出一个是否有物体的分数和一个针对anchor的边缘框的微调。使用设定IoU阈值的非极大化抑制算法,剩余筛选的推荐边缘框用作第二步的输入。在第二阶段,感兴趣区域(RoI)池化被用来为每一个边缘框内区域提取一个小的特征图(例如14x14)。这些特征图批打包后用作CNN最后一层的输入。最后模型针对每一个边缘框输出物体的类别预测分布和边缘框的微调。 在本篇文章中,我们使用Faster R-CNN(ResNet-101)。为了生成图像特征集合
V
V
V,我们取模型最后一层和非极大化抑制的输出。我们然后通过一个置信阈值来挑选出候选区域。对于每个候选区域
i
i
i,
v
i
v_i
vi是指对应区域的平均池化卷积特征,维度为2048。这样,Faster R-CNN会为模型提供‘hard’注意力。 为了预训练自底向上注意力模型,我们首先使用在ImageNet上预训练的Faster R-CNN。我们然后在Visual Genome数据集上进行训练。为了能够学习到较好的特征表示,我们还额外训练使其预测attriibute的类别(在物体种类的基础上)。为了预测区域
i
i
i的attribute,我们将平均池化特征
v
i
v_i
vi与物体真实类别的嵌入表示进行拼接,然后将其送入一个softmax分类层(额外添加一个’no attribute’类)。 原始的Faster R-CNN损失函数包含四个部分。我们在这些部分的基础上额外添加一个多类别分类损失用来预测attribute,然后再训练。如下图图2,我们展现了我们模型输出的一些例子。
3.2 Captioning Model(字幕模型)
给定图像特征集合
V
V
V,我们提出的字幕生成模型使用’soft’的自顶向下注意力机制来在字幕生成过程中对每一个特征分配权重。这个方法与几篇之前的工作相同。即使不使用自底向上注意力,我们的模型也能与现有的SOTA相比具有可比性(表1)。 字幕生成模型由两个LSTM层组成。LSTM在每一个时间步处理如下:
h
t
=
L
S
T
M
(
x
t
,
h
t
−
1
)
h_t = LSTM(x_t, h_{t-1})
ht=LSTM(xt,ht−1) 其中
x
t
x_t
xt是
L
S
T
M
LSTM
LSTM的输入向量且
h
t
h_t
ht是
L
S
T
M
LSTM
LSTM的输出向量。这里我们忽略记忆单元是怎么传播的,我们现在只需要知道
L
S
T
M
LSTM
LSTM在每一层输入向量
x
t
x_t
xt输出向量
h
t
h_t
ht。字幕生成模型展示在下图图3。
Top-Down Attention LSTM
我们将第一个
L
S
T
M
LSTM
LSTM层作为自顶向下视觉注意力模型,并且第二个
L
S
T
M
LSTM
LSTM模型作为一个语言模型。注意到在3.1小节中我们定义了自底向上注意力模型,并且其输出定义为特征
V
V
V。在每一个时间步,注意力
L
S
T
M
LSTM
LSTM的输入由上一个语言
L
S
T
M
LSTM
LSTM的输出、图像特征的平均池化
v
‾
=
1
k
Σ
i
v
i
\overline v = \frac 1 k \Sigma_i{v_i}
v=k1Σivi和上一个生成单词的编码拼接而成:
x
t
1
=
[
h
2
+
t
−
1
,
v
‾
,
W
e
Π
t
]
x^1_t = [h^2+{t-1},\overline v, W_e\Pi_t]
xt1=[h2+t−1,v,WeΠt] 其中
W
e
∈
R
E
×
∣
Σ
∣
W_e \in \mathbb R^{E\times|\Sigma|}
We∈RE×∣Σ∣是单词嵌入矩阵,
Π
t
\Pi_t
Πt是
t
t
t时间步输入单词的独热编码。其中词嵌入是从头开始学习的二没有使用任何预训练。 在每个时间步
t
t
t时,随着注意力
L
S
T
M
LSTM
LSTM的输出
h
t
1
h^1_t
ht1的产生,我们可以根据如下公式对
k
k
k个图像特征
v
i
v_i
vi计算出标准化的注意力权重
α
i
,
t
\alpha_{i,t}
αi,t:
a
i
,
t
=
W
α
T
t
a
n
h
(
W
v
a
v
i
+
W
h
a
h
t
1
)
a_{i,t} = W^T_\alpha tanh(W_{va}v_i+W_{ha}h^1_t)
ai,t=WαTtanh(Wvavi+Whaht1)
α
t
=
s
o
f
t
m
a
x
(
a
t
)
\alpha_t = softmax(a_t)
αt=softmax(at) 其中
W
v
a
∈
R
H
×
V
W_{va}\in\mathbb R^{H\times V}
Wva∈RH×V,
W
h
a
∈
R
H
×
M
W_{ha}\in\mathbb R^{H\times M}
Wha∈RH×M和
w
a
∈
R
H
w_a \in \mathbb R^H
wa∈RH都是可学习的参数。经过调整后的图像特征用如下公式来获得,用作语言
L
S
T
M
LSTM
LSTM的输入:
v
^
t
=
Σ
i
=
1
K
α
i
,
t
v
i
\hat v_t= \mathop \Sigma \limits^K_{i=1} \alpha_{i,t}v_i
v^t=i=1ΣKαi,tvi
Language LSTM
语言
L
S
T
M
LSTM
LSTM模型的输入由调整过后的图像特征和注意力
L
S
T
M
LSTM
LSTM的输出拼接而成:
x
t
2
=
[
v
^
t
,
h
t
1
]
x^2_t = [\hat v_t,h^1_t]
xt2=[v^t,ht1] 使用
y
1
:
T
y_{1:T}
y1:T来代表单词序列
(
y
1
,
.
.
.
,
y
T
)
(y_1,...,y_T)
(y1,...,yT),每个时间步
t
t
t的概率输出通过如下公式计算:
p
(
y
t
∣
y
1
:
t
−
1
)
=
s
o
f
t
m
a
x
(
W
p
h
t
2
+
b
p
)
p(y_t|y_{1:t-1})=softmax(W_ph^2_t+b_p)
p(yt∣y1:t−1)=softmax(Wpht2+bp) 其中
W
p
∈
R
∣
Σ
∣
×
M
W_p \in \mathbb R^{|\Sigma|\times M}
Wp∈R∣Σ∣×M和
b
p
∈
R
∣
Σ
∣
b_p \in \mathbb R^{|\Sigma|}
bp∈R∣Σ∣为可学习的参数。完整输出序列的概率为概率的连乘:
p
(
y
1
:
T
)
=
Π
t
=
1
T
p
(
y
t
∣
y
1
:
t
−
1
)
p(y_{1:T})=\mathop \Pi \limits ^T_{t=1}p(y_t|y_{1:t-1})
p(y1:T)=t=1ΠTp(yt∣y1:t−1)
Objective
给定一个真实目标序列
y
1
:
T
∗
y^*_{1:T}
y1:T∗和一个带有参数
θ
\theta
θ的字幕生成模型,我们的目标是最小化下列交叉熵损失函数:
L
X
E
(
θ
)
=
−
Σ
t
=
1
T
l
o
g
(
p
θ
(
y
t
∗
∣
y
∗
1
:
T
)
)
L_{XE}(\theta) = -\mathop \Sigma \limits ^T_{t=1}log(p_\theta(y^*_t|y*_{1:T}))
LXE(θ)=−t=1ΣTlog(pθ(yt∗∣y∗1:T)) 与最近的工作项目我们也使用CIDEr进行验证。使用交叉熵预训练的模型,我们进而最小化以下分数:
L
R
(
θ
)
=
−
E
y
1
:
T
∼
p
θ
[
r
(
y
1
:
T
)
]
L_R(\theta)=-E_{y_{1:T}\sim p_\theta}[r(y_{1:T})]
LR(θ)=−Ey1:T∼pθ[r(y1:T)] 其中
r
r
r代表分数函数(例CIDEr)。应用自批判序列训练(SCST),损失函数的梯度可以用如下逼近:
▽
θ
L
R
(
θ
)
≈
−
(
r
(
y
1
:
T
s
)
−
r
(
y
^
1
:
T
)
)
▽
θ
log
p
θ
(
y
1
:
T
s
)
\bigtriangledown_\theta L_R(\theta) \approx -(r(y^s_{1:T})-r(\hat y_{1:T}))\bigtriangledown_\theta \log p_\theta(y^s_{1:T})
▽θLR(θ)≈−(r(y1:Ts)−r(y^1:T))▽θlogpθ(y1:Ts)
3.3 VQA Model(视觉问答模型)
给定空间图像特征集合
V
V
V,我们的视觉问答模型同样通过问题表征作为上下文对每个特征实现’soft’对自顶向下注意力机制。如上图图4所示,我们的模型也使用联合多模态嵌入,紧接着是对候选答案集合的分类预测分数。这个方法建立在前任工作上。 我们采用的非线性变换激活函数为门控双曲正切函数。我们的门控正切层通过以下公式实施,变换函数为
f
a
:
x
∈
R
m
−
>
y
∈
R
n
f_a:x\in \R^m->y\in\R^n
fa:x∈Rm−>y∈Rn:
y
^
=
tanh
(
W
x
+
b
)
\widehat y = \tanh(Wx+b)
y=tanh(Wx+b)
g
=
σ
(
W
′
x
+
b
′
)
g = \sigma(W^{\prime}x+b^\prime)
g=σ(W′x+b′)
y
=
y
^
∘
g
y=\widehat y \circ g
y=y∘g 其中
σ
\sigma
σ是sigmoid激活函数,
W
,
W
′
∈
R
n
×
m
W,W^\prime\in\R^{n\times m}
W,W′∈Rn×m是可学习权重,
b
,
b
′
∈
R
n
b,b^\prime\in\R^n
b,b′∈Rn是可学习偏差,并且
∘
\circ
∘是Hadamard积(对应元素乘积)。 我们提出的方法首先使用一个GRU将问题表示为隐藏状态
q
q
q,输入为每个单词的词嵌入(可学习)。得到GRU的输出
q
q
q后,我们使用如下公式计算注意力权重:
a
i
=
w
a
T
f
a
(
[
v
i
,
q
]
)
a_i=w^T_af_a([v_i,q])
ai=waTfa([vi,q]) 其中
w
a
T
w^T_a
waT是可学习参数向量。然后使用如下公式得到调整后的特征
v
^
\hat v
v^:
α
i
=
s
o
f
t
m
a
x
(
a
)
\alpha_i = softmax(a)
αi=softmax(a)
v
^
=
Σ
i
=
1
K
α
i
v
i
\hat v= \mathop \Sigma \limits^K_{i=1} \alpha_{i}v_i
v^=i=1ΣKαivi 然后使用如下公式预测答案:
h
=
f
q
(
q
)
∘
f
v
(
v
^
)
h=f_q(q)\circ f_v(\hat v)
h=fq(q)∘fv(v^)
p
(
y
)
=
σ
(
W
o
f
o
(
h
)
)
p(y)=\sigma(W_of_o(h))
p(y)=σ(Wofo(h)) 其中
h
h
h是问题和图像的联合表示,且
W
o
∈
R
∣
Σ
∣
×
M
W_o\in\R^{|\Sigma|\times M}
Wo∈R∣Σ∣×M。