赞
踩
摘要:最近在文本到图像生成方面的进展中,扩散模型作为强大的生成模型逐渐崭露头角。然而,在图像字幕生成中,如何利用这些潜变量模型捕捉离散单词之间的依赖关系,同时追求复杂的视觉-语言对齐,却并非易事。本文突破了学习基于Transformer的编码器-解码器模型的传统,并提出了一种专为图像字幕生成打造的新型扩散模型范式,即语义条件扩散网络(SCD-Net)。技术上,针对每个输入图像,我们首先通过跨模态检索模型搜索语义相关的句子,以传达全面的语义信息。这些丰富的语义被视为触发扩散Transformer学习的语义先验。扩散Transformer通过扩散过程生成输出句子。在SCD-Net中,多个扩散Transformer结构被堆叠起来,以渐进的方式增强输出句子的视觉-语言对齐和语言连贯性。此外,为了稳定扩散过程,设计了一种新的自举序列训练策略,以利用标准自回归Transformer模型的知识来指导SCD-Net的学习。在COCO数据集上进行的大量实验表明,使用扩散模型在具有挑战性的图像字幕生成任务中具有很大潜力,代码见 https://github.com/YehLi/xmodaler/tree/master/configs/image_caption/scdnet。
作为视觉和语言领域中的基础任务之一,图像描述旨在使用自然语句描述感兴趣的语义。这项任务自然地将计算机视觉和自然语言处理连接在一起,通过感知场景中的视觉内容并将其解释为人类语言,模拟了人类智能的基本能力。目前,当前最先进技术中的主导力量是利用编码-解码结构,并以自回归方式构建学习过程。特别地,图像编码器负责将视觉内容编码为高级语义,而句子解码器学习逐字解码顺序句子(图1a)。然而,这种自回归进展仅允许单向的文本信息传递,并且通常依赖于随着句子长度的平方增长的大量计算资源来进行。
为了缓解这一限制,最近的进展开始出现一种非自回归解决方案,它允许双向的文本信息传递,并同时发射所有单词,从而形成一种轻量级且可扩展的范式。然而,这些非自回归方法通常不如自回归方法表现出色。性能下降主要归因于过少利用顺序依赖性而导致的词重复或省略问题。此外,不合适的句子质量也使得难以利用广泛应用于自回归方法中的强大的自序列学习来提升非自回归解决方案。
最近,一种称为扩散模型的优秀生成模块为可视内容生成带来了重大改进。这激发了最近的一项开创性实践,该实践探索了将扩散模型应用于图像描述,追求以高度并行的方式非自回归地生成句子。它成功地通过将每个单词表示为二进制位来启用连续的扩散过程,以产生离散的单词序列。与单次生成典型离散句子不同,这种连续扩散过程(图1b)可以表示为参数化马尔可夫链,它逐渐向句子添加高斯噪声。因此,每个逆向状态转换都通过去噪学习从噪声增强的数据中恢复出原始句子数据。尽管与基本的自回归模型相比显示出可比较的性能,但词重复或省略的严重问题仍然被忽视。
为了减轻这个问题,我们设计了一种基于扩散模型的新型非自回归范式,称为语义条件扩散网络(SCD-Net)。我们的出发点是将输入图像的完整语义信息引入连续扩散过程中,作为引导每个逆向状态转换学习的语义先验(图1c)。因此,SCD-Net能够促进视觉内容与输出句子之间更好的语义对齐,即减轻语义词汇的省略。作为副产品,我们的SCD-Net在连续扩散过程中实现了强大的自序列学习。这种扩散过程的句子级优化加强了输出句子的语言连贯性,从而减少了词重复问题。
从技术上讲,我们的SCD-Net由级联的扩散Transformer结构组成,逐步增强输出句子。每个扩散Transformer利用语义条件扩散过程学习基于Transformer的编码器-解码器。特别地,对于每个输入图像,扩散Transformer首先使用现成的跨模态检索模型检索相关的语义词。这些语义词还被纳入到连续扩散过程中,以约束具有语义条件的逆向状态转换。更重要的是,我们通过一种新的引导的自序列学习策略来提升语义条件扩散过程。这种策略通过句子级奖励优雅地将标准自回归Transformer模型的知识转移到我们的非自回归扩散Transformer上,从而实现了稳定且提升的扩散过程。
综上所述,我们做出了以下贡献:
基于RNN的方法。随着深度学习的发展,现代图像字幕技术利用CNN和RNN生成句子,产生了灵活的语法结构。例如,早期的尝试采用端到端的神经网络系统,将视觉内容用CNN进行编码,并使用RNN进行解码。注意机制进一步用于在每个解码时间步骤生成单词时动态聚焦于相关区域。同时,语义属性被融入RNN以补充视觉表示,以增强描述生成。与传统的等大小图像区域的视觉注意力不同,Up-Down结合了自下而上和自上而下的注意机制以在对象级别衡量关注度。之后,GCN-LSTM对对象之间的关系进行建模,并将其注入到自上而下的注意模型中以增强字幕生成。SGAE 利用场景图结构描述图像中的细粒度语义,旨在捕捉语言归纳偏好。
基于Transformer的方法。最近,受到Transformer在自然语言处理领域的成功启发,出现了许多基于Transformer的图像字幕模型。[40]直接在图像字幕任务中采用了主要的Transformer结构。[15]将对象之间的空间关系融入Transformer中。Meshed-Memory Transformer通过学习具有持久性记忆的先验知识,并在多个层之间利用网状连接来改进Transformer的编码器和解码器。X-Transformer 进一步引入了高阶的内部和跨模态交互以增强Transformer的编码器和解码器。随后,APN通过将概率图模型应用于Transformer的自注意层,无监督地学习解析树,用于字幕生成和视觉问答。
与逐字生成句子的自回归方法相比,非自回归方法可以同时输出所有单词,实现双向文本信息传递。NAT [13] 首次提出了非自回归解码以提高神经机器翻译的推理速度,在字幕领域引起了越来越多的关注。MNIC [12] 提出了掩码非自回归解码,以并行生成具有增强语义和多样性的字幕。O2NA [32] 首先生成面向对象的粗粒度字幕,然后对每个对象单词进行细化,以减轻描述模糊性问题。SATIC [55] 提出了半自回归 Transformer,以并行预测一组单词,并从左到右生成这些组,追求速度和质量之间的更好平衡。最近,受到扩散模型[16]在图像生成中的成功启发,Bit Diffusion [6] 将离散文本编码为二进制位,并利用具有自身条件的扩散模型进行字幕生成。然而,Bit Diffusion 的性能仍不及最先进的自回归 Transformer。此外,如何使用句子级奖励(例如 CIDEr[43])优化扩散模型尚未被探索。我们的工作也属于后一类带有扩散模型的非自回归图像字幕生成。我们的SCD-Net通过语义条件扩散过程增强了视觉-语言语义对齐。设计了一种新的引导自举序列学习方法,进一步稳定和提升了扩散过程的句子级奖励。
在本节中,我们介绍了我们提出的基于丰富的语义先验的语义条件扩散网络(SCD-Net),该网络用于基于扩散过程的图像字幕生成。图2展示了SCD-Net的级联框架,其中包括多个堆叠的扩散变压器和每个扩散变压器的详细架构。
扩散模型表示法。假设我们有一张包含
K
K
K个感兴趣对象的输入图像,将由一个文本句子
S
S
S用
N
s
N_s
Ns个单词进行描述。设
V
=
{
v
i
}
i
=
1
K
\mathcal{V}=\{v_{i}\}_{i=1}^{K}
V={vi}i=1K表示由Faster R-CNN[2,38]检测到的对象集合,其中
v
i
∈
R
D
v
v_i\in\mathbb{R}^{D_v}
vi∈RDv表示每个对象的
D
v
D_v
Dv维特征。在这里,我们基本上以扩散模型[6,16]来构建生成标题的过程。考虑到文本句子中的单词是离散数据,我们遵循Bit Diffusion[6]的方法,将每个单词转换为
n
=
⌈
l
o
g
2
W
⌉
n=\lceil\mathrm{log}_2\mathcal{W}\rceil
n=⌈log2W⌉个二进制位(即
{
0
,
1
}
n
\{0,1\}^{n}
{0,1}n),其中
W
\mathcal{W}
W是词汇表的大小。通过这种方式,将文本句子
S
\mathcal{S}
S转换为实数
x
0
∈
R
n
×
N
s
x0∈Rn×Ns
正向过程。正向过程被定义为一个马尔可夫链,逐渐向句子数据
x
0
x_0
x0添加高斯噪声。对于任意的
t
∈
(
0
,
T
]
{t}\in(0,T]
t∈(0,T],从
x
0
x_0
x0到
x
t
x_t
xt的正向状态转移[22]计算如下:
x
t
=
sigmoid
(
−
γ
(
t
′
)
)
x
0
+
sigmoid
(
γ
(
t
′
)
)
ϵ
,
(1)
x_t=\sqrt{\textbf{sigmoid}(-\gamma(t'))}x_0+\sqrt{\textbf{sigmoid}(\gamma(t'))}\epsilon,\quad\quad\text{(1)}
xt=sigmoid(−γ(t′))
x0+sigmoid(γ(t′))
ϵ,(1)
其中
t
′
=
t
/
T
,
ϵ
∼
N
(
0
,
I
)
,
t
∼
U
(
0
,
T
)
,
t^{\prime}=t/T,\epsilon\sim\mathcal{N}(0,I),t\sim\mathcal{U}(0,T),
t′=t/T,ϵ∼N(0,I),t∼U(0,T),,
N
\mathcal{N}
N表示正态分布,
U
\mathcal{U}
U表示均匀分布,
γ
(
t
′
)
\gamma(t^{\prime})
γ(t′)是一个单调递增函数。然后,通过去噪在
ℓ
2
\ell_{2}
ℓ2回归损失中训练一个扩散
f
(
x
t
,
γ
(
t
′
)
,
V
)
f(x_{t},\gamma(t'),\mathcal{V})
f(xt,γ(t′),V)来重构基于
V
\mathcal{V}
V的
x
0
x_0
x0:
L
b
i
t
=
E
t
∼
U
(
0
,
T
)
,
ϵ
∼
N
(
0
,
I
)
∥
f
(
x
t
,
γ
(
t
′
)
,
V
)
−
x
0
∥
2
.
(
2
)
\mathcal{L}_{bit}=\mathbb{E}_{t\sim\mathcal{U}(0,T),\epsilon\sim\mathcal{N}(0,I)}\|f(x_{t},\gamma(t^{\prime}),\mathcal{V})-x_{0}\|^{2}.\quad\quad(2)
Lbit=Et∼U(0,T),ϵ∼N(0,I)∥f(xt,γ(t′),V)−x0∥2.(2)
逆向过程。为了基于给定的图像从学习到的扩散Transformer生成句子,逆向过程从
t
=
T
t = T
t=T到
t
=
0
t = 0
t=0中采样一系列潜在状态
x
t
x_t
xt。具体地,给定步骤数
T
T
T,我们均匀地将时间离散化为宽度为
1
/
T
{{1}/T}
1/T的
s
=
t
−
1
−
Δ
s=t-1-\Delta
s=t−1−Δ,
t
′
=
t
/
T
t^{\prime}=t/T
t′=t/T以及
s
′
=
s
/
T
s^{\prime}=s/T
s′=s/T。接下来,计算逆向状态转移
x
t
−
1
x_{t-1}
xt−1如下:
α
s
=
sigmoid
(
−
γ
(
s
′
)
)
,
α
t
=
sigmoid
(
−
γ
(
t
′
)
)
,
σ
s
=
s
i
g
m
o
i
d
(
γ
(
s
′
)
)
,
c
=
−
expm
1
(
γ
(
s
′
)
−
γ
(
t
′
)
)
,
u
(
x
t
;
s
′
,
t
′
)
=
α
s
(
x
t
(
1
−
c
)
/
α
t
+
c
f
(
x
t
,
γ
(
t
′
)
,
V
)
)
,
σ
2
(
s
′
,
t
′
)
=
σ
s
2
c
,
x
t
−
1
=
u
(
x
t
;
s
′
,
t
′
)
+
σ
(
s
′
,
t
′
)
ϵ
,
(
3
)
\begin{aligned} &\alpha_s=\sqrt{\textbf{sigmoid}(-\gamma(s^{\prime}))},\alpha_t=\sqrt{\textbf{sigmoid}(-\gamma(t^{\prime}))}, \\ &\sigma_s=\sqrt{\mathbf{sigmoid}(\gamma(s^{\prime}))}, \\ &c=-\textbf{expm}1(\gamma(s')-\gamma(t')), \\ &\begin{aligned}u(x_t;s',t')=\alpha_s(x_t(1-c)/\alpha_t+cf(x_t,\gamma(t'),\mathcal{V})),\end{aligned}
Diffusion Transformer的基本结构是一个典型的基于Transformer的编码器-解码器结构,包括一个视觉编码器和一个句子解码器。形式上,给定图像中检测到的对象 V \mathcal{V} V,视觉编码器通过自注意力将其转换为视觉标记。然后,将视觉标记和时间步t的词标记 x t = { w 0 t , w 1 t , . . . , w N s t } x_t=\{w_0^t,w_1^t,...,w_{N_s}^t\} xt={w0t,w1t,...,wNst}输入句子解码器进行生成描述。
视觉编码器。视觉编码器由
N
v
N_v
Nv个堆叠的Transformer编码器块组成。每个块由一个多头自注意力层和一个前馈层组成。视觉编码器中的第i个Transformer编码器块的操作为:
V
i
+
1
=
F
F
N
(
n
o
r
m
(
V
i
+
M
u
l
t
i
H
e
a
d
(
V
i
,
V
i
,
V
i
)
)
)
,
F
F
N
(
Z
)
=
n
o
r
m
(
Z
+
F
C
(
δ
(
F
C
(
Z
)
)
)
)
,
M
u
l
t
i
H
e
a
d
(
Q
,
K
,
V
)
=
C
o
n
c
a
t
(
h
e
a
d
1
,
.
.
.
,
h
e
a
d
H
)
W
O
,
h
e
a
d
i
=
A
t
t
e
n
t
i
o
n
(
Q
W
i
Q
,
K
W
i
K
,
V
W
i
V
)
,
A
t
t
e
n
t
i
o
n
(
Q
,
K
,
V
)
=
s
o
f
t
m
a
x
(
Q
K
T
d
)
V
,
(
4
)
Vi+1=FFN(norm(Vi+MultiHead(Vi,Vi,Vi))),FFN(Z)=norm(Z+FC(δ(FC(Z)))),MultiHead(Q,K,V)=Concat(head1,...,headH)WO,headi=Attention(QWQi,KWKi,VWVi),Attention(Q,K,V)=softmax(QKT√d)V,
其中, F F N \mathbf{FFN} FFN是前馈层, M u l t i H e a d \mathbf{MultiHead} MultiHead是多头自注意力层, n o r m \mathbf{norm} norm是层归一化, F C \mathbf{FC} FC是全连接层, C o n c a t ( • ) \mathbf{Concat(•)} Concat(•)是拼接操作, δ \delta δ是激活函数, W i Q W_i^Q WiQ, W i K W_i^K WiK, W i V W_i^V WiV, W i O W_i^O WiO是第 i i i个头的权重矩阵, H {H} H是头的数量, d {d} d是每个头的维度。需要注意的是,第一个Transformer编码器块的输入是初步检测到的对象集合 V 0 = V \mathcal{V}^0=\mathcal{V} V0=V。通过堆叠 N υ N_{\upsilon} Nυ个块,我们得到上下文增强的视觉标记 V ~ = V N v \tilde{\mathcal{V}}=\mathcal{V}^{N_v} V~=VNv。
句子解码器。句子解码器包含
N
t
\boldsymbol{N}_{t}
Nt个堆叠的Transformer解码器块。每个块由一个多头自注意力层、一个多头交叉注意力层和一个前馈层组成。与传统的Transformer不同,Diffusion Transformer中的多头自注意力层在没有掩码的情况下是双向的。因此,第
i
i
i Transformer解码器块的操作为:
h
i
+
1
=
F
F
N
(
n
o
r
m
(
h
~
i
+
M
u
l
t
i
H
e
a
d
(
h
~
i
,
V
~
,
V
~
)
)
)
,
h
~
i
=
norm
(
h
i
+
MultiHead
(
h
i
,
h
i
,
h
i
)
)
.
(
5
)
\begin{aligned} &\begin{aligned}h^{i+1}=\mathbf{FFN}(\mathbf{norm}(\tilde{h}^i+\mathbf{MultiHead}(\tilde{h}^i,\tilde{\mathcal{V}},\tilde{\mathcal{V}}))),\end{aligned}
p
i
=
softmax
(
W
T
h
i
N
t
)
,
(
6
)
p_i=\textbf{softmax}(W^Th_i^{N_t}),\quad\quad\quad(6)
pi=softmax(WThiNt),(6)其中,
W
T
W^{T}
WT是权重矩阵,
h
i
N
t
h_i^{N_t}
hiNt和
p
i
∈
R
W
p_i\in\mathbb{R}^{\mathcal{W}}
pi∈RW分别是第
i
i
i个单词的隐藏状态向量和概率分布。接着,通过对词汇表中所有
W
\mathcal{W}
W位的概率分布
p
i
p_{i}
pi进行加权平均,将其映射为比特表示
b
i
b_{i}
bi:
b
i
=
∑
c
=
1
W
p
i
c
B
c
,
(
7
)
b_i=\sum_{c=1}^{\mathcal{W}}p_i^cB^c,\quad\quad\quad\quad(7)
bi=c=1∑WpicBc,(7)其中,
p
i
c
p_i^c
pic是
p
i
p_i
pi的第
c
c
c个概率,
B
c
B^{c}
Bc是词汇表中第
c
c
c个单词的比特表示。为了加速Diffusion Transformer的收敛速度,我们在训练过程中将Diffusion Transformer的扩散过程目标
L
b
i
t
\mathcal{L}_{bit}
Lbit与概率分布
p
p
p的典型交叉熵损失
L
X
E
\mathcal{L}_{X\textit{E}}
LXE结合。因此,最终的目标函数计算如下:
L
=
L
X
E
+
L
b
i
t
\mathcal{L}=\mathcal{L}_{XE}+\mathcal{L}_{bit}
L=LXE+Lbit。
最近的实践尝试将扩散模型用于图像字幕生成,通过直接从逆向过程中从噪声分布 N ( 0 , I ) \mathcal{N}(0,\boldsymbol{I}) N(0,I)中对噪声状态 x T x_{T} xT进行采样来直接估计 x 0 x_{0} x0。然而,这种方法忽视了扩散过程中复杂的视觉-语言对齐和单词之间的内在顺序依赖关系,导致了单词重复或遗漏的问题。为了缓解这个限制,我们通过增加附加的语义先验将扩散模型升级,从而为扩散Transformer提供了一个语义条件化的扩散过程。
在技术上,给定一张图像,我们首先使用现成的跨模态检索模型从训练语句库中搜索出与语义相关的句子。相关句子进一步表示为一个单词标记序列
s
r
s_{r}
sr,反映了全面的语义信息。然后,我们将
s
r
s_{r}
sr作为语义条件来约束Diffusion Transformer的扩散过程。特别地,在每个时间步
t
t
t上,我们利用具有
N
p
N_{p}
Np个语义Transformer块的附加语义Transformer来对当前隐藏状态
x
t
x_{t}
xt进行语境编码,使用语义先验
s
r
s_{r}
sr。在这里,我们沿着通道维度将
x
t
x_{t}
xt与先前时间步的预测
x
~
0
\tilde{x}_0
x~0拼接起来,如[6]中所示。隐藏状态
x
t
x_{t}
xt和语义先验
s
r
s_{r}
sr的文本特征计算如下:
z
x
=
F
C
(
C
o
n
c
a
t
(
x
t
,
x
~
0
)
)
+
φ
(
γ
(
t
′
)
)
,
z
r
=
F
C
(
s
r
)
.
(
8
)
zx=FC(Concat(xt,˜x0))+φ(γ(t′)),zr=FC(sr).
W
i
+
1
=
F
F
N
(
n
o
r
m
(
W
i
+
M
u
l
t
i
H
e
a
d
(
W
i
,
W
i
,
W
i
)
)
)
(
9
)
Wi+1=FFN(norm(Wi+MultiHead(Wi,Wi,Wi)))(9)
受到级联扩散模型在图像生成方面的成功启发[17],我们的SCD-Net以级联的方式堆叠多个Diffusion Transformer。这种级联结构旨在通过更好的视觉-语言对齐和语言连贯性逐步增强输出句子。形式上,这种级联扩散过程可以表示为:
F
(
x
t
,
γ
(
t
′
)
,
V
)
=
f
M
∘
f
M
−
1
∘
⋯
∘
f
1
(
x
t
,
γ
(
t
′
)
,
V
)
,
(10)
F(x_t,\gamma(t^{\prime}),\mathcal{V})=f_M\circ f_{M-1}\circ\cdots\circ f_1(x_t,\gamma(t^{\prime}),\mathcal{V}),\text{(10)}
F(xt,γ(t′),V)=fM∘fM−1∘⋯∘f1(xt,γ(t′),V),(10)其中,
M
M
M是堆叠的Diffusion Transformer的总数,
f
1
f_{1}
f1是第一个Diffusion Transformer,装备有前述的语义条件。通过这种方式,每个Diffusion Transformer
f
i
(
i
≥
2
)
f_i\text{ (}i\geq2)
fi (i≥2) 在先前Diffusion Transformer
f
i
−
1
f_{i-1}
fi−1 的句子预测
x
0
i
−
1
x_0^{i-1}
x0i−1的条件下进行扩散过程。因此,对于每个Diffusion Transformer
f
i
(
i
≥
2
)
f_i\text{ (}i\geq2)
fi (i≥2) ,我们稍微修改其结构以考虑到附加的语义线索
x
0
i
−
1
x_0^{i-1}
x0i−1。具体来说,给定潜在状态
x
t
x_{t}
xt,上一个时间步的预测
x
~
0
\tilde{x}_{0}
x~0,以及前一个Diffusion Transformer 的预测
x
0
i
−
1
x_0^{i-1}
x0i−1,我们通过衡量潜在状态 z x 的文本特征来重塑方程式(8),如下所示:
z
x
=
F
C
(
C
o
n
c
a
t
(
x
t
,
x
~
0
,
x
0
i
−
1
)
)
+
φ
(
γ
(
t
′
)
)
.
(
11
)
z^x=\mathbf{FC}(\mathbf{Concat}(x_t,\tilde{x}_0,x_0^{i-1}))+\varphi(\gamma(t^{\prime})).\quad(11)
zx=FC(Concat(xt,x~0,x0i−1))+φ(γ(t′)).(11)然后,将文本特征
z
x
z^{x}
zx与语义先验
z
r
z^{r}
zr进行拼接,并将它们输入到语义Transformer中。在推理阶段,每个Diffusion Transformer
f
i
f_{i}
fi的输出直接与之前的Diffusion Transformer
f
i
−
1
f_{i-1}
fi−1的输出在每个时间步骤上进行融合。
常规的自回归图像字幕技术[2, 39, 40]通常利用自举序列训练(SCST)[39]通过句子级优化(例如CIDEr指标[43])来提高性能:
L
R
(
θ
)
=
−
E
y
1
:
N
s
∼
p
θ
[
R
(
y
1
:
N
s
)
]
,
(
12
)
\mathcal{L}_R(\theta)=-\mathrm{E}_{y_{1:N_s}\sim p_\theta}[R(y_{1:N_s})],\quad\quad(12)
LR(θ)=−Ey1:Ns∼pθ[R(y1:Ns)],(12)其中R表示CIDEr得分函数。损失的梯度可以近似为:
∇
θ
L
R
(
θ
)
≈
−
(
R
(
y
1
:
N
s
s
)
−
R
(
y
^
1
:
N
s
)
)
∇
θ
log
p
θ
(
y
1
:
N
s
s
)
(
13
)
∇θLR(θ)≈−(R(ys1:Ns)−R(ˆy1:Ns))∇θlogpθ(ys1:Ns)(13)
其中
y
1
:
N
s
s
y_{1:N_s}^s
y1:Nss是采样的字幕,
R
(
y
^
1
:
N
s
)
R(\hat{y}_{1:N_s})
R(y^1:Ns)表示贪婪解码推理基线的句子级奖励。然而,在Diffusion Transformer的扩散过程中直接应用SCST并不简单。困难主要源自两个方面。首先,Diffusion Transformer的非自回归推理过程包含多个步骤(例如超过20个),因此直接从噪声
x
T
x_T
xT中采样句子是不切实际的。此外,由于Diffusion Transformer中的每个输出词是独立采样的,简单地将相同的奖励分配给每个词会导致典型的词重复问题[14]。为了解决这些限制,我们提出了一种新的导向的自举序列训练,通过标准自回归Transformer模型的知识有针对性地指导SCD-Net的学习。
技术上,我们首先训练一个与Diffusion Transformer具有相同结构的标准自回归Transformer教师模型。接下来,对于每个训练图像,该Transformer教师模型预测高质量句子
S
t
e
a
S^{tea}
Stea作为额外的语义指导。然后,我们将预测的高质量句子
S
t
e
a
S^{tea}
Stea馈送到级联的Diffusion Transformer中,而不是使用真实的句子。与在常规SCST中随机采样几个字幕不同,我们强制其中一个采样的句子与预测的句子
S
t
e
a
S^{tea}
Stea相同。设
y
1
:
N
s
′
s
j
∣
j
=
0
N
y
y'^{s_j}_{1:N_s}|_{j=0}^{N_y}
y1:Ns′sj∣j=0Ny表示包含
S
t
e
a
S^{tea}
Stea的采样句子,其中
N
y
N_{y}
Ny是采样句子的数量。损失函数
L
R
(
θ
)
\mathcal{L}_R(\theta)
LR(θ)的梯度可以度量为:
∇
θ
L
R
(
θ
)
≈
−
1
N
y
∑
j
=
0
N
y
(
R
(
y
1
:
N
s
′
s
j
)
−
R
(
y
^
1
:
N
s
)
)
∇
θ
log
p
θ
(
y
1
:
N
s
′
s
j
)
.
(
14
)
∇θLR(θ)≈−1NyNy∑j=0(R(y′sj1:Ns)−R(ˆy1:Ns))∇θlogpθ(y′sj1:Ns).(14)
在本节中,我们通过在广泛采用的COCO基准[30]上进行实验,经验性地验证了我们的SCD-Net的有效性,用于图像描述任务。
我们使用了广泛采用的Karpathy数据集划分[2, 39],其中将113,287张图像用于训练,5,000张图像用于验证,5,000张图像用于测试。此外,我们还通过在线测试服务器报告了官方测试集的表现。我们将所有训练句子转换为小写,并根据[2]的方法过滤出出现次数少于四次的罕见词。这样,最终的词汇表包含10,199个独特的词。
实现细节。整个SCD-Net是在X-modaler代码库[25]中实现的。在SCD-Net中,我们使用在ImageNet[9]和Visual Genome[23]上预训练的Faster-RCNN来提取图像区域特征。原始区域特征的维度为2,048,我们通过一个全连接层将其转换为512维特征。每个单词转换为14位,与[6]中相同。视觉编码器、句子解码器和语义Transformer的含有 N v = 3 N_v=3 Nv=3、Nt=3和Np=3个Transformer块。每个Transformer块的隐藏大小设置为512。SCD-Net的训练包括两个阶段。在第一阶段,使用Adam[21]优化器在四个V100 GPU上通过ℓ2回归损失和标签平滑对整个SCD-Net架构进行优化。优化过程包括60个epoch,批量大小为16,并采用与[42]相同的学习率调度策略(warmup: 20,000 iterations)。在第二阶段,我们选择第一阶段训练的初始化模型,在验证集上取得最佳CIDEr分数。然后,使用我们的引导自举序列训练方法以CIDEr分数为目标对SCD-Net进行优化,持续60个epoch。批量大小和学习率分别固定为16和0.00001。在推断过程中,时间步数和时间差设为50和0。采用了五种评估指标:BLEU@N [36](B@1-4),METEOR [4](M),ROUGE [29](R),CIDEr [43](C)和SPICE [1](S)。所有指标均通过COCO评估服务器[7]发布的源代码进行测量。
离线评估。表1总结了我们的SCD-Net在离线COCO Karpathy测试集上的性能,采用了两种不同的优化策略,即标准的交叉熵损失和基于CIDEr分数的句子级优化。考虑到我们的SCD-Net属于非自回归图像字幕技术,我们在这里包括了两组基准(自回归和非自回归方法)。
总体上,在两种优化策略下,最先进的自回归和非自回归基准之间存在明显的性能差距。结果基本上验证了非自回归技术存在的词重复或省略问题。在此之间,甚至基本的自回归Transformer编码-解码模型(Transformer [40])可以实现与非自回归基准(Bit Diffusion和SATIC)中的最佳竞争者相当的性能。相反,通过将典型的扩散模型与附加的语义先验相结合,我们的SCD-Net在性能上始终优于自回归Transformer(见表2)。SCD-Net与其他最先进方法在官方测试服务器的在线测试中的比较结果如下表所示。
此外,我们还通过将结果提交至在线测试服务器来评估我们的SCD-Net在官方测试集上的表现[1]。表2显示了性能比较结果。值得注意的是,这里我们只报告了我们的SCD-Net单模型的性能,而没有像一些基线方法(例如APN和AoANet)那样使用模型集成。与离线评估中的观察结果相似,我们的SCD-Net在大多数指标上再次超过了所有单模型基线,包括自回归方法(例如SGAE)和非自回归方法(CMAL)。此外,我们的SCD-Net单模型甚至在与一些最先进自回归方法(例如APN)的合成版本相比时也取得了可比较的性能。这些结果基本上证明了在图像字幕生成中利用语义条件所带来的优势。
在图3中,进一步说明了五个不同图像的图像标题的真实情况,并展示了不同方法的定性结果。总体而言,这三种方法都能产生一些语义相关且语言连贯的标题。然而,在Transformer中,对图像中的关键语义的明确建模被忽视了,这可能导致单词省略(例如,在第二个图像中缺少"blanket"一词)。在“Tranformer”中,一名男子正在空中做滑板技巧;在“Bit Diffusion”中,一名男子在街上滑板;在“SCD-Net”中,一名男子在消防栓上滑板;在“GT1”中,一名男子正在消防栓上骑滑板;在“GT2”中,年轻人正在城市街道上的高楼旁边跳跃滑板;在“GT3”中,戴帽子的年轻滑板手正在消防栓上跳跃。
在“Transformer”中,一只黑白猫躺在床上;在“Bit Diffusion”中,一只猫躺在毯子上的毯子下面;在“SCD-Net”中,一只猫躺在床上的毯子下面;在“GT1”中,一只猫在毯子下面看着某物;在“GT2”中,一只灰色虎斑猫在毯子下面的床上睡觉;在“GT3”中,一只猫从毯子下面偷看出来。
在“Transformer”中,一辆蓝色双层巴士停在街上;在“Bit Diffusion”中,一辆蓝色双层巴士停在建筑物前面;在“SCD-Net”中,一辆三层巴士停在街道前面;在“GT1”中,一辆三层紫色巴士被围起来;在“GT2”中,一辆大型三层巴士停在街上;在“GT3”中,一辆紫色的三层乘客巴士等候乘客。
在“Transformer”中,一名女子坐在桌子旁边有pizza;在“Bit Diffusion”中,一名女子坐在桌子旁边有盒子里的pizza;在“SCD-Net”中,一名女子手拿着一个盒子里的pizza;在“GT1”中,一名女子拿着一个敞开的盒子里的pizza;在“GT2”中,一名年轻女子手拿着一个盒子里的pizza;在“GT3”中,一名女子手拿着一个盒子里的pizza。
在“Transformer”中,一只泰迪熊坐在汽车后座上;在“Bit Diffusion”中,一只玩具泰迪熊坐在汽车前座上;在“SCD-Net”中,一只玩具熊坐在汽车的仪表盘上;在“GT1”中,小玩具熊被撑在车载仪表盘上;在“GT2”中,玩具熊坐在机动车仪表盘上;在“GT3”中,一只小棕色泰迪熊被夹在汽车仪表盘上的一个地方。
此外,非自回归的Bit Diffusion有时会生成质量较低的字幕,并存在词重复问题(例如,在第二幅图像中重复出现“blanket”)。
消融研究。在这里,我们调查了SCD-Net中每个设计对COCO Karpathy测试集上整体图像字幕性能的影响。表3详细介绍了在不同消融运行的SCD-Net中的表现。我们从一个基本模型(Base)开始,该模型直接利用典型的扩散过程(如[6]中所述)来训练单个扩散Transformer,其在交叉熵损失下达到114.5%的CIDEr。值得注意的是,我们实现的基础模型略逊于原始Bit Diffusion模型(CIDEr:115.0%),后者配备了更强的目标检测器。接下来,通过将传统的扩散模型与附加的语义先验(Semantic)结合起来,我们观察到语义条件扩散模型的明显性能提升。当我们进一步通过SCST以句子级别优化(RL)训练我们的扩散Transformer时,只有CIDEr和SPICE得分略有改善,而其他得分甚至下降。这些结果基本上揭示了将SCST应用于非自回归解决方案的困难,原因是SCST中随机抽样生成的字幕质量不佳。作为替代方案,我们的引导式SCST(GSCST)通过来自自回归Transformer教师模型生成的高质量句子,指导扩散Transformer的强化学习,从而在所有度量标准上实现了显著的改进。最终,在级联方式下堆叠多个扩散Transformer(Cascade)之后,我们的SCD-Net获得了最佳的图像字幕性能。
对不同Transformer块数量的消融研究。我们进一步检查了在单个扩散Transformer中使用不同数量的Transformer块对图像字幕性能的影响。如表4所示,当Transformer块数量在3到之间变化时,性能相对较为平稳。
对SCD-Net中不同扩散Transformer数量的消融研究。为了探索SCD-Net中性能与扩散Transformer数量之间的关系,我们展示了通过将此数量从1变化到3来获得的性能。如表5所列,以级联方式堆叠多个扩散Transformer通常会带来性能的改进。这一发现基本上强调了以级联的方式逐渐增强输出句子的优点。特别是,一旦扩散Transformer的数量大于1,性能受到的影响较少,便于在SCD-Net中选择扩散Transformer数量。最后,我们经验性地将扩散Transformer数量设置为2。
,
在这项工作中,我们深入探讨了在图像字幕的扩散模型中增强视觉语言对齐和语言连贯性的想法。为了验证我们的观点,我们设计了一个新的语义条件扩散过程,通过额外的语义先验来升级扩散模型。进一步设计了一个引导的自举序列训练策略,以稳定和提升扩散过程。我们通过实验证明了我们的方案优于最先进的非自回归方法。同时,我们很高兴看到,我们的新扩散模型基于范式能够胜过与之共享同样Transformer编码解码结构的竞争性自回归方法。结果基本上展示了扩散模型在图像字幕中的鼓舞人心的潜力。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。