APP下载

基于双注意模型的图像描述生成方法研究

2022-07-07卓亚琦魏家辉李志欣

电子学报 2022年5期
关键词:语句损失单词

卓亚琦,魏家辉,李志欣

(1.桂林理工大学理学院,广西桂林 541004;2.广西师范大学广西多源信息挖掘与安全重点实验室,广西桂林 541004)

1 引言

图像描述生成旨在为图像生成准确的自然语言描述,包括获取一幅图像、分析其视觉内容、生成文本描述以说明图像中的显著目标和行为等步骤[1].传统的视觉任务(如物体检测[2]或图像自动标注[3])都是在有限个类别上测试检测器或分类器的精度.相比之下,图像描述生成的任务结合了计算机视觉和自然语言处理两个领域,更具综合性和挑战性.

图像描述系统通常采用卷积神经网络(Convolutional Neural Network,CNN)作为编码器从输入图像中提取视觉特征,同时采用循环神经网络(Recurrent Neural Network,RNN)作为解码器将编码信息逐词地解码为自然语言描述[4~6].为了更好地将图像信息整合到语言模型中,Xu等[7]首先在图像描述系统中引入了软、硬两种视觉注意机制.Chen 等[8]在此基础上提出了一种基于空间和通道的双注意图像描述生成方法.Lu 等[9]发现在语句生成过程中有些单词是不需要参考视觉信息的,提出了一种基于视觉哨兵的自适应注意模型.You等[10]提出了基于语义注意的图像描述方法,从图像中提取一些视觉语义概念来实现视觉信息的增强.近年来,自注意机制也引起了越来越多研究人员的关注.Vaswani 等[11]提出Transformer 模型,完全抛弃了RNN,仅通过自注意机制就实现了机器翻译的最新成果.Yu等[12]提出用于机器阅读理解的QANet,使用CNN 和自注意机制相结合构建网络模型.此外,许多研究人员尝试利用强化学习技术进一步优化图像描述生成模型,通过梯度估计等方法直接优化评估度量,从而生成更符合人类感知的描述语句[13,14].

综上所述,目前图像描述生成的主流方法是基于编码器-解码器架构并结合注意机制的方法[7~10],但仍然存在一些问题.首先,注意模型大多是单词级的局部注意,缺乏对图像整体的掌控.其次,模型在训练和测试之间存在“暴露偏差”(exposure bias)[13].最后,存在训练损失和评估指标不匹配的问题.模型在训练时通常使用交叉熵损失,而在测试时一般使用BLEU[15]、METEOR[16]、ROUGE-L[17]、CIDEr[18]这样的指标来评估生成语句的质量.

针对以上问题,提出了一种新的基于自注意的图像描述生成方法来探讨图像全局注意信息对于描述生成的有效性.自注意机制可以自动地从图像中提取语句级的注意信息,具有比单词级注意特征更完整的视觉表示.在训练时,通过在解码器的每个时间步中对语句级注意信息的调整,可以使它满足生成整个语句的需求.语句级注意图和单词级注意图的示例如图1 所示.此外,为了能结合两种注意的优势,生成更加准确的描述,进一步提出了双注意模型,通过集成两种注意模型来生成最终的描述语句.最后,为了解决“暴露偏差”和损失-评估不匹配问题[13,14],将强化学习应用于两阶段训练方法来优化模型的评估度量.

图1 视觉注意图示例

2 提出方法

本方法使用统一的编码器-解码器架构生成图像描述.首先使用CNN 将输入的图像编码为空间特征I,然后利用RNN 的变体长短期记忆网络(Long Short-Term Memory,LSTM)将特征向量解码为单词序列Y=(y1,y2,…,yT),其中yi∈D是预测生成的单词,D是包含所有单词的词典,T是语句的最大长度.单词由词嵌入向量表示,每个语句的开头用一个特殊的<start>标记,结尾用一个特殊的<end>标记.在模型解码过程中,上一时间步生成的单词会被反馈到LSTM 中,结合图像的注意信息和上一时间步的隐状态ht-1,生成当前时间步的隐状态ht,然后根据ht预测生成当前单词yt.

2.1 语句级注意模型

单词级注意是传统的上下文注意[7],根据视觉上下文信息的变化动态地从图像中提取注意信息,在不同的时间步注意信息是不同的,定义如下:

其中Wh∈RC’×C’和Ww∈RC’×C是将隐状态ht-1和图像特征I映射到同一维度的变换矩阵,Wa∈RC’是变换行向量,bw和ba是偏置项.⊕运算表示向量Qt与矩阵K的加运算,将向量加到矩阵的每一列中.计算出at是一个行向量,而αt为最终的权重向量,表示空间注意权重的分布,其维数与V中的通道特征向量个数相同.由此可以得到加权后的单词级注意特征

图像的各个区域之间存在非常重要的语义关系,对象间的语义关系对图像描述语句的生成至关重要,但是单词级注意只能关注到少量的局部特征,很难有完整的视觉表示.因此,提出一种具有语句级注意的图像描述生成方法.通过对整幅图像的观察,从图像中挑选出对于整个生成语句最有用的信息,通过自注意机制在图像空间区域上产生注意权重,得到图像的注意特征.在自注意机制中,Q、K和V表示经过变换后的图像空间特征.图2 给出了语句级注意模型的结构,首先使用1×1 卷积层将原始图像空间特征I转换为三个功能空间特征,然后使用单层的神经网络来融合Q和K两个特征向量,最后通过softmax 函数在V上生成注意权重分布.具体表示如下:

图2 语句级注意模型结构图

其中Wq∈RC’’×C、Wk∈RC’’×C和Wv∈RC’×C是1×1 卷积层的参数矩阵.1×1卷积可以通过对每个通道的信息进行计算来实现通道间的信息整合,同时还可以有效地降低模型的计算复杂度.Ws∈RC’’是一个融合Q和K的变换行向量,bs是偏置项.α表示得到的空间注意权重分布,α和V具有相同的空间大小,即L=k×k,由此可得到加权后的语句级图像特征V s=Vα.

此外,本文方法在模型的损失中加入了双随机注意正则化.在上下文注意模型中,视觉注意随着上下文信息的变化而不断变化.为了防止一些区域的特征丢失,通常在模型的训练损失中加入双随机注意正则化[7],即:

其中λ是双随机正则化系数,αt,i是在t时间步第i个图像区域的注意权重.

而在语句级注意模型中,αi在每个时间步都是相同的,并不需要关注到图像的每个区域.相反,模型可以选择性地只关注对整个语句最有用的部分.因此,语句级注意模型的双随机注意正则化表示为:

2.2 双注意模型

本文集成了两种注意模型进一步提出双注意模型,并尝试采用两种不同的方式来构建双注意模型.两种构建方式分别为:

(1)串联结合方式:图像首先经过语句级注意模型进行初步筛选,得到图像的语句级特征表示,然后通过单词级注意模型进一步根据每个单词提取更加精细化的图像信息,最终将两个单注意模型生成的预测结果进行加权求和来预测最终输出的单词,结构如图3 所示.计算公式为:

图3 串联型双注意模型

其中β为可学习参数.

(2)并联结合方式:直接将两个单注意模型生成的预测向量进行加权求和来预测模型最终输出的单词,结构如图4所示.计算公式为:

图4 并联型双注意模型

但是,当两种注意结合在一起时,不可避免地会导致信息间的相互干扰.因此,本文在模型的中间阶段实施监督和优化,使用多任务学习方法将两个单注意模型的损失添加到最终的训练损失中,以调节两个单注意模型在每个时间步的输出,以此来解决两个模型信息间的干扰问题.模型最终的训练损失可表示如下:

其中Ls、Lw和Ld分别是语句级注意、单词级注意和双注意模型的损失,最终模型的训练损失是三个损失之和,ηs和ηw是双随机注意正则化项.

2.3 基于强化学习的训练方法

传统的图像描述模型在训练和测试之间存在差异.此外,模型使用交叉熵损失来进行训练,这与测试时使用的BLEU[15]和CIDEr[18]等评估度量并不相关.为了解决这些问题,可以通过强化学习方法直接在评估度量上优化模型语句的生成.其中LSTM 解码器可以看作是与外部环境进行交互的代理,而策略pθ由模型的参数θ来定义.该模型接收各种状态,并通过策略来确定下一步动作pθ:yt~pθ,即预测下一个生成的单词.当语句生成结束时,可以通过计算所生成语句的评估度量分数来获得语句级的奖励r(Y),LSTM 更新其内部“状态”.基于强化学习方法的训练目标是最大限度地减小负奖励期望:

梯度∇θL(θ)通过REINFORCE 算法[19]来计算.实际上,对于每个小批量的训练样本,可以使用来自pθ的蒙特卡罗样本Y=(y1,y2,…,yT)来估计梯度:

然而,蒙特卡罗采样方法通常具有较大的方差.为了减小方差,遵循SCST(Self-Critical Sequence Training)方法[14],将模型通过蒙特卡罗采样生成的语句的CIDEr得分作为奖励r(Y),使用模型贪心搜索生成的语句的CIDEr 得分作为基线奖励不同之处在于,训练时将强化学习方法应用于两阶段的训练,一阶段是优化单注意模型生成的描述,使用单注意模型自身生成的语句来作为基线,二阶段是优化模型最终生成的描述,不仅使用模型最终生成的语句来作为基线,而且还将一阶段中两个单注意模型生成的语句也作为基线.可表示为:

其中,

其中Y1,s,Y1,w,Y2分别是模型通过蒙特卡罗抽样在一阶段生成的两个语句和最终生成的语句是通过贪心搜索获得的语句.

3 实验结果分析

为了证明提出方法的有效性,在MSCOCO 数据集上进行了充分的实验评估,并与当前先进的模型进行了对比,从定量和定性两个方面进行了结果分析.

3.1 数据集与实施细节

本文选择最常用的MSCOCO 数据集来进行实验验证.MSCOCO数据集中共113287幅图像作为训练集,但测试集中没有标注语句.根据Karpathy 的划分[5],从验证集中挑选出5000 幅图像用于验证,5000 幅图像用于测试.实验使用BLEU(1-4)[15],METEOR[16],ROUGEL[17]和CIDEr[18]作为评估指标来衡量生成语句的质量.

实验实现了三种基于注意的图像描述模型:单词级注意模型、语句级注意模型和双注意模型,并且在双注意模型中对提出的两种不同构建方式分别进行了验证.这些实验基本遵循相同的参数设置.首先使用在ImageNet上预训练过的ResNet-101[20]对图像进行编码,然后在目标数据集上对参数进行微调.将CNN 最后一个卷积层的输出作为图像视觉编码特征,并使用空间自适应平均池化将它们调整为2048×14×14的固定大小输出.同时,通过目标检测器来提取图像区域特征,获得图像显著区域的特征表示,并使用加权方法融合两种特征.实验中LSTM 的神经元数量统一设置为512,语句级注意模型中三个1×1 卷积层的神经元分别设置为64、64、512,单词级注意层中的神经元数量设置为512.双随机注意正则化系数设置为1.除了CNN 部分之外,其他部分的参数采用随机初始化.

在训练过程中,首先关闭CNN 的微调功能,使用Adam优化器[21]在交叉熵损失下训练模型.初始学习率为4×10-4,动量参数为0.9,批量大小为100,共训练25轮.然后打开CNN 微调功能,在之前的基础上继续训练,此时批量大小调整为32,训练10 轮.最后,在训练好的模型上运行基于强化学习的训练方法来优化模型的CIDEr评估指标.在这个阶段,学习率设置为5×10-5,批量大小为64,训练15轮.

3.2 微调CNN效果分析

在训练过程中,首先固定CNN 的参数,在交叉熵损失下训练模型达到最好的效果,然后在先前训练的模型上对CNN 进行微调训练.表1 展示了本文模型在MSCOCO 数据集上CNN 微调前和微调后结果的对比(FT 表示微调后的结果),其中SAIC 表示语句级注意模型,WAIC 表示单词级注意模型,DAIC 表示双注意模型(其中DAICs 表示串联方式构建的双注意模型,DAICp表示并联方式构建的双注意模型).从表1中可以看出,微调CNN对所有的模型都有非常大的提升.

表1 在MSCOCO数据集上微调CNN对结果的影响

3.3 生成结果定量分析

表2 列出了本文模型在MSCOCO 数据集上的性能表现以及与其他先进模型的对比,其中XE 表示使用交叉熵损失训练后的结果,RL 表示使用强化学习优化后的结果.

表2 在MSCOCO数据集上的性能比较

从表中实验数据可以看出,本文模型相比于其他先进模型有更好的性能表现.首先,对于在交叉熵损失训练下的结果,虽然语句级注意模型SAIC 只有语句级的特征,但依然取得了很好的效果,这是由于语句级注意特征能很好地表达图像中最主要的信息,并且通过微调CNN 可以更好地发挥语句级注意的特点,得到更好的语句级特征表示.但是从相比于单词级注意模型,语句级注意模型的整体效果还是会稍差,这是由于语句级注意特征由图像本身计算,不能随着上下文信息的变动来分析图像,而且在每个时间步都输入整个语句级的注意特征,不可避免的会引入更多的噪声.但是,可以看到将其与单词级注意模型协同,可以生成更好的描述.与单注意模型相比,双注意模型DAIC 在所有指标上都取得了更好的表现,充分表明语句级和单词级注意模型的结合可以显著提高图像描述系统的性能.

3.4 生成结果定性分析

为了更加直观地证明本文方法可以捕获到准确的视觉注意特征,将方法的注意权重进行了可视化.首先将注意权重扩张24 倍,并使用高斯滤波器将其调整到与输入图像相同的尺寸,然后将注意分布图叠加在原始输入图像上.如图5 所示,W 表示单词级注意模型的生成结果,S 表示语句级注意模型的生成结果,D 表示双注意模型的生成结果.从图中可以看出,语句级注意可以针对生成的语句关注到对图像中最有用的部分,而不包含语义信息的图像边缘等区域通常不会分配注意,而单词级注意可以准确地关注到图像中的各个局部实体.此外,也可以看到比于单词级和语句级注意模型,双注意模型生成的描述相对会更好.例如,在图5的前三组图像中,生成的“with wine”,“on a runway”和“red and white”这些短语都使描述语句更加丰富和准确.但同时由于双注意模型结合了两个单注意模型,有时也会因为单个模型的错误,而导致最终生成的语句不好,例如在第四组图像中生成的“frisbee”,但从定量分析的各种评价指标上看,整体上双注意模型有更好的生成效果.

图5 生成结果的可视化

4 结束语

本文首先提出一种基于语句级注意的图像描述生成方法,引入自注意机制提取具有更完整视觉表示的语句级图像特征.在此基础上,进一步提出了双注意模型,通过对语句级注意和单词级注意的集成使最终模型有更好的生成效果.此外,本文将强化学习方法运用到两阶段的训练来优化模型的评估度量,大大提升了模型的整体性能.实验结果表明,双注意模型可以生成更好的描述语句,并且在各项评估指标上优于目前许多先进的模型.当然,也要看到本文方法需要大量的标注样本,在小数据集上的性能不是很令人满意.未来打算引入半监督学习和因果推理等技术进一步提升图像描述生成的性能.

猜你喜欢

语句损失单词
胖胖损失了多少元
重点:语句衔接
单词连一连
玉米抽穗前倒伏怎么办?怎么减少损失?
看图填单词
菜烧好了应该尽量马上吃
损失
Playing with / i? /
我喜欢
作文语句实录