开放科学(资源服务)标志码(OSID):
图像描述是指通过分析输入图像来生成恰当的关于图像内容的文字描述[1],可应用于图像检索、机器人问答、儿童辅助教育、导盲等多个领域,对图像描述进行研究具有重要的现实意义[2]。
目前,主流图像描述框架以基于深度卷积神经网络(Convolutional Neural Network,CNN)[3]和循环神经网络(Recurrent Neural Network,RNN)[4]为主。RNN一般由LSTM(Long-Short Term Memory)单元构成,由于其使用sigmoid等饱和激活函数,使得网络在训练过程中收敛较慢,并存在层间梯度消失等问题,导致无法使用LSTM单元构建一个深层网络模型。因此,由上述单元构成的模型性能有限,生成的描述语句缺乏丰富性与连贯性,需要构建一个深层次的解码端网络,使用正确的模型训练和优化方法,使得语言生成模型具有更好的拟合能力与训练效果。
本文提出一种深度图像描述模型Deep-NIC。在Deep-NIC中,编码端由inception V3[5]提取图像特征,解码端由7层解码单元构成,每个解码单元包含IndRNN层[6]和BN层[7]。通过IndRNN来有效避免层间梯度消失问题,利用BN方法提升训练效率同时避免过拟合问题,在此基础上,构建深层解码端来提升模型的拟合效果。
1 相关工作图像描述是一个综合性任务,涉及计算机视觉与自然语言处理两大方面,近年来受到国内外众多研究人员的关注。图像描述在提出初期,主要依靠固定模板:首先利用有效的算子提取图像特征;然后通过机器学习中的分类算法进行分类,从而得到图像中可能存在的目标;最后使用得到的目标及相关属性,结合条件随机场(CRF)或者特定的规则来生成图像描述。文献[8-9]等都是利用上述方法进行图像描述,但是,这种基于固定模板的方法存在很大局限性,原因是这种方法在很大程度上依赖于图像特征的提取和生成句子时的规则。
现阶段的主流模型基本采用编码-解码(encoder-decoder)框架来完成图像描述。将机器翻译中提取文字特征的RNN部分替换为CNN的相关深度模型,如Inception Net、VGGNet等,而在解码端,使用RNN接受CNN网络提取出的特征向量,其中,RNN可以使用LSTM、GRU等代替,这样可以获得更好的记忆效果。
谷歌公司在文献[10]中首先提出基于编码-解码框架的图像描述模型,随后的图像描述模型几乎都沿用了这个基本框架,并在此基础上对编码端和解码端进行改进。
在编码端,图像特征的提取效果直接影响所生成文字序列的质量,进而影响整个图像描述模型所生成语言的效果。基线模型NIC采用谷歌的inception V3[5]提取图像高级特征,文献[11]采用VGG16作为图像编码器提取图像的低级局部特征,并在训练过程中加入attention结构,使得提取出来的多个低级局部特征在生成语言时和指定单词进行权重匹配,进而提升整个模型的描述效果。
解码端主要生成语言序列,其决定了语言表达的准确性。在获取图像特征后,利用图像的特征向量生成符合人类表述方式的语言将成为整个任务的关键部分。深度神经网络在目标识别[12]、图像分类[13]等任务中效果良好,但随着网络深度的增加,网络训练效果降低[14],即准确率增长速度会趋于饱和并出现下降[15],HE等[16]提出的残差网络(Residual Learning Network,ResNet)有效地解决了网络退化问题。但是,在实验分析中发现,上述研究仍有不足,如LSTM面对长序列时收敛速度较慢,此外,由于深层模型层间梯度消失问题严重,导致无法多层叠加,使得所生成的句子描述效果欠佳。
随着对抗学习以及强化学习方法的逐渐普及,图像描述领域也诞生出一些新的模型训练方法。文献[17]使用对抗学习的思想,使得图像和描述内容之间关联更加密切。文献[18]提出一种强化学习训练策略,提升了模型的训练效果。此外,新的图像描述模型评测方法的提出也对该领域的发展起到重要作用。文献[19]提出新的度量指标,为评测描述语言多样性方面作出了贡献。文献[20]通过加入噪声的方式来检测图像描述系统的鲁棒性。
2 技术描述本文提出一种Deep-NIC模型,该模型是在基线模型NIC上的改进。在编码端使用inception V3模型获取图像的高级特征;在解码端采用7层解码单元构成深层解码端(Deep Decoder),解码单元由IndRNN层和BN层构建;词嵌入使用word2vec。图 1所示为Deep-NIC模型整体结构。
![]() |
Download:
|
图 1 Deep-NIC模型结构 Fig. 1 Deep-NIC model structure |
inception V3是一款图像识别模型,其主要使用多个不同尺度大小的卷积核和池化层进行深层叠加,从而达到提取图像高级特征的目的。相较于上一代inception模型,inception V3采用多个小卷积核代替单个大卷积核,大幅减少了卷积运算的特征数量。同时,inception V3将对应尺度的卷积操作和池化操作堆叠到一起,在增加网络宽度的同时也提升了网络对图片尺度的适应性。
本文采用预训练好的inception V3模型作为图片编码器,将输入的图片编码为512维的特征向量,再输入后续的语言生成模型中进行解码。
2.2 深层次语言生成模型深层次网络具有更好的拟合效果,但是,仅仅简单地叠加网络层数会因网络难以训练而无法收敛。同时,随着网络深度的叠加,收敛过慢、过拟合等问题突显,因此,需要一种合理的深层网络结构。本文采用IndRNN作为整个深层解码端的基础计算单元,结合BN方法共同构建一个高效的深层神经网络。
2.2.1 独立循环神经网络独立循环神经网络(IndRNN)是对RNN的一种改进,其采用哈达玛积替代传统的矩阵乘法,使用非饱和激活函数ReLU替代sigmoid等饱和激活函数,因此,IndRNN在处理长序列任务和面对层间梯度消失问题时具有良好表现。IndRNN的计算公式表示为:
$ \boldsymbol{h}_{-} \boldsymbol{t}=\sigma\left(\boldsymbol{W} \boldsymbol{x}_{-} \boldsymbol{t}+\boldsymbol{u} \odot \boldsymbol{h}_{-}(\boldsymbol{t}-1)+\boldsymbol{b}\right) $ | (1) |
第n个神经元的计算方式为:
$ h\_(n, t)=\sigma (w\_n\cdot x\_t+u\_n\cdot h\_(n, t-1)+b\_n) $ | (2) |
和传统RNN以及LSTM相比,IndRNN在权重系数的计算方面做了调整,将权重矩阵U替换为独立的权重向量u。在式(1)中,⊙表示矩阵元素积。在t时刻,每个神经元只接受此刻的输入以及t-1时刻自身的状态作为输入。
IndRNN中的每个神经元都可以独立地处理自身的输出,不再受上一时刻其他神经元的影响,因此,在面对更长的时间序列时,也不会出现模型难以收敛的问题。此外,非饱和激活函数能够避免深层网络的层间梯度消失问题,使得IndRNN单元可以有效构建深层次的网络结构。
2.2.2 批标准化批标准化(BN)常用于优化深度神经网络,其在提升训练速度的同时也在一定程度上放宽了对调参的要求。此外,BN还可以起到类似于dropout一样的正则化效果,防止模型过拟合。BN操作流程具体如下:
1)批次均值(m为批次大小):
$ {\mu _B} = \frac{1}{m}\sum\limits_{i = 1}^m {{x_i}} $ | (3) |
2)批次方差:
$ {\sigma _{{B^2}}} = \frac{1}{m}\sum\limits_{i = 1}^m {{{\left( {{x_i} - {\mu _B}} \right)}^2}} $ | (4) |
3)归一化:
$ \widehat {\left( {{x_i}} \right)} = \frac{{{x_i} - {\mu _B}}}{{\sqrt {{\sigma _{{B^2}}} + \epsilon} }} $ | (5) |
4)缩放和平移:
$ {y_i} \leftarrow \gamma \widehat {\left( {{x_i}} \right)} + \beta \equiv {\rm{B}}{{\rm{N}}_{\gamma , \beta }}\left( {{x_i}} \right) $ | (6) |
在训练过程中,BN处理每一个mini-batch数据,使之服从N(0,1)的正态分布,从而减少内部神经元分布的改变。BN结构如图 2所示。
![]() |
Download:
|
图 2 BN结构 Fig. 2 BN structure |
在传统训练方法中,每个批次的数据分布不尽相同,因此,训练难度较高,通常通过减小学习率的方式使模型收敛,这会导致模型的训练效果在极大程度上受制于学习率。此外,过小的学习率还会导致模型收敛过慢、训练效率低下。在BN中,一方面可以选用较大的学习率来加快模型收敛并提升训练效率,另一方面可以起到正则化作用,从而取消dropout并简化网络结构。
2.2.3 解码单元为了构建一个深层、有良好收敛效果的解码端结构,本文模型使用IndRNN与BN来构建深层网络结构解码单元。在IndRNN单元中,神经元之间的相互连接依赖层间交互来完成,下一层的神将元会接受上一层所有神经元的输出作为输入(相当于全连接层),并使用BN层来起到加速网络收敛、防止网络过拟合等效果。
数据在IndRNN多层结构之间的传递通过如下方式:
$ {\boldsymbol{h}}_{f, t}={\boldsymbol{W}}_{f}{\boldsymbol{x}}_{f, t}+\mathrm{d}\mathrm{i}\mathrm{a}\mathrm{g}\left({\boldsymbol{u}}_{fi}\right){\boldsymbol{h}}_{f, t-1} $ | (7) |
$ {\boldsymbol{h}}_{s, t}={\boldsymbol{W}}_{s}{\boldsymbol{h}}_{f, t} $ | (8) |
假设
$ {\boldsymbol{W}}_{s}^{-1}{\boldsymbol{h}}_{s, t}={\boldsymbol{W}}_{f}{\boldsymbol{x}}_{f, t}+\mathrm{d}\mathrm{i}\mathrm{a}\mathrm{g}\left({\boldsymbol{u}}_{fi}\right){\boldsymbol{W}}_{s}^{-1}{\boldsymbol{h}}_{s, t-1} $ | (9) |
因此:
$ {\boldsymbol{h}}_{s, t}={\boldsymbol{W}}_{s}{\boldsymbol{W}}_{f}{\boldsymbol{x}}_{f, t}+{\boldsymbol{W}}_{s}\mathrm{d}\mathrm{i}\mathrm{a}\mathrm{g}\left({\boldsymbol{u}}_{fi}\right){\boldsymbol{W}}_{s}^{-1}{\boldsymbol{h}}_{s, t-1} $ | (10) |
令:
$ \boldsymbol{U}={\boldsymbol{W}}_{s}\mathrm{d}\mathrm{i}\mathrm{a}\mathrm{g}\left({\boldsymbol{u}}_{fi}\right){\boldsymbol{W}}_{s}^{-1} $ | (11) |
$ \boldsymbol{W}={\boldsymbol{W}}_{s}{\boldsymbol{W}}_{f} $ | (12) |
式(10)可写为:
$ {\boldsymbol{h}}_{t}=\boldsymbol{W}{\boldsymbol{x}}_{t}+\boldsymbol{U}{\boldsymbol{h}}_{t-1} $ | (13) |
因此,IndRNN可构建深层结构。
此外,通过在每层循环神经元之后连接BN层,从而“规范化”神经元的输出,起到优化网络结构的作用。因此,本文采用IndRNN+BN的方式构建解码单元。
在每个解码单元中,第一层由512个IndRNN单元构成,第二层是BN层,两层之间采用全连接方式,且BN层的输出为512维向量。深层解码端由7层解码单元构成,每层解码单元都将数据进行规范化后传入下一层解码单元。深层解码端的具体结构如图 3所示。
![]() |
Download:
|
图 3 深层解码端模型结构 Fig. 3 Deep decoder model structure |
词编码部分使用woed2vec进行映射,使用MS COCO2014数据集中的图像描述语句对其实现预训练。
3 实验验证本节首先通过加法实验对IndRNN与常用循环神经元进行性能对比,以验证IndRNN在面对长序列、深层次网络时的性能表现;然后分别使用IndRNN、LSTM和GRU单元搭建不同结构的解码端,在完成整个图像描述模型的训练后,使用BLEU、METEOR、CIDER等评分标准进行比较;最后使用本文解码单元构成深层解码端,并结合编码端共同构建图像描述模型,通过深度消融实验,选择效果最优的解码端网络深度(7层),验证具有深层解码端的图像描述模型在训练效率和整体评分方面的性能表现。
3.1 神经元性能对比实验通过加法问题[21]将IndRNN单元与常用循环神经元RNN、LSTM进行性能对比。在加法任务中,向模型输入2个长度为T的序列,第一个序列是一串在(0,1)之间均匀采样的数字,第二个序列是一串同等长度、其中只有2个数字为1而其余为0的数字,要求找到第一个序列中对应第二个序列中为1的2个数字的位置,并将第一个序列对应位置上的数字求和输出。
在此次实验中,分别采用不同的网络单元,将IndRNN、LSTM、RNN进行对比(GRU和LSTM效果相近,没有展示)。损失函数使用MSE(Mean Square Error),优化器采用Adam,时间序列长度分别使用T=100、T=500的步长,IndRNN、LSTM、RNN的具体收敛效果如图 4所示。
![]() |
Download:
|
图 4 神经元在不同步长下的收敛效果 Fig. 4 Convergence effect of neurons under different step size |
从图 4可以看出,在面对较长序列时,IndRNN单元具有更好的收敛效果。
采用序列步长为100,在RNN、LSTM和IndRNN网络中对神经元进行简单叠加,分别叠加2层、3层、4层、5层,在加法任务中RNN、LSTM、IndRNN的收敛情况如图 5所示。
![]() |
Download:
|
图 5 神经元在不同层数下的收敛效果 Fig. 5 Convergence effect of neurons under different layers |
从图 5可以看出,当网络深度叠加到4层时,较大的学习率(0.02)已经无法使得模型收敛,因此,采用更小的学习率(0.000 2)训练模型。实验结果表明,IndRNN单元在多层叠加时具有更好的性能表现,层间梯度消失导致的模型无法收敛程度降低。
3.2 深度消融实验深度消融实验构建完整的图像描述模型,使用不同结构的解码端在MS COCO2014数据集上进行模型训练,通过BLEU、METEOR、CIDER等评判指标衡量模型效果。
3.2.1 基于IndRNN的解码端利用不同神经元构建解码端,采用简单的全连接方式进行层数叠加。对比神经元有LSTM、GRU、IndRNN单元,结果如表 1所示,最优结果加粗表示。
![]() |
下载CSV 表 1 基于不同神经元结构的模型对比结果 Table 1 Comparison results of models based on different neuron structures |
LSTM和GRU的多层叠加会导致模型难以训练,因此,本次实验仅取2层参与对比。由于IndRNN层间梯度消失现象较轻,因此,设计更多层次的实验。由表 1可以看出,IndRNN单元在3层结构时具有最佳性能,更多层结构时反而效果不佳,这是由于在多层结构中,随着网络层数的堆积,学习率的初值设定需不断减小,过小的学习率使得网络收敛速度变得极为缓慢,而稍大的学习率则会导致模型收敛不佳。
3.2.2 深层解码端的深度消融实验在本次实验中,使用解码单元搭建不同深度的解码端结构,并参与图像描述模型的训练,最后进行模型效果评分,结果如表 2所示,最优结果加粗表示。
![]() |
下载CSV 表 2 不同深度解码端的模型效果对比 Table 2 Comparison of model effects with different depth decoders |
由表 2可以看出:当解码单元叠加至7层(即深度为7层的解码端)时,模型整体评分已取得最佳(8层的评分效果与7层相差无几,但层数的提升会导致模型训练复杂度提升),因此,本文最终选定深度为7层的解码单元构成深层解码端。此外,由于解码单元中BN层的加入,即使在整个模型的训练过程中采用0.2的学习率(双层LSTM模型学习率为0.000 2时方可收敛),模型依然能够高效收敛。
3.3 深层图像描述模型在本次实验中,词编码部分使用预训练好的word2vec模型,词向量映射大小为256维,解码端由深层解码端(7层解码单元)构成,利用端到端的方式进行训练,最终得到深层图像描述模型Deep-NIC,并将Deep-NIC与其他5种模型进行比较,性能对比结果如表 3所示,最优结果加粗表示。
![]() |
下载CSV 表 3 不同解码端结构的模型对比结果 Table 3 Model comparison results with different decoder structures |
Deep-NIC模型通过word2vec进行词编码,该编码方式在生成词向量的同时会顾及单词的上下文信息,因此,向量包含的信息会更丰富。然而,在单个词语的表征方面,不包含上下文信息的one-hot编码方式更具优势,因此,Deep-NIC模型在BLEU-1(单个词评价)的评分上稍有不佳,而在BLEU-4、METEOR、CIDER评判指标下表现较好。
3.4 Deep-NIC模型应用本次实验通过实例展示Deep-NIC模型的描述效果,并分析其执行效率。
3.4.1 描述效果分别使用3张照片作为Deep-NIC模型的输入,观察该模型在实际应用中的描述效果,如图 6所示。由图 6可以看出,Deep-NIC模型可以准确识别图片中的主要目标,并能够用恰当的语言对图片内容进行描述。
![]() |
Download:
|
图 6 Deep-NIC模型在不同场景下的应用效果 Fig. 6 Application effect of Deep-NIC model in different scenario |
除了要求对图片内容进行准确描述外,执行效率也是考量图像描述模型应用性能的标准之一。分别选取100张像素大小为1M以下、1M~5M、5M~10M的实景照片进行测试,分别统计Deep-NIC模型和基线模型生成描述所需时间,结果如表 4所示。
![]() |
下载CSV 表 4 不同模型的时间消耗对比 Table 4 Comparison of time consumption of different models |
从表 4可以看出,随着模型复杂度的提升,Deep-NIC在描述准确度提升的同时生成描述语言所消耗的时间也会增加,但和基线模型相比,由于Deep-NIC特殊的深度结构,即使具有高达7层的复杂解码结构,其时间消耗也在可接受范围之内。
4 结束语本文提出一种深层图像描述模型Deep-NIC。由IndRNN单元和BN层构成解码单元,解码单元能够使得解码端多层叠加,网络也更加易于训练,同时防止了过拟合问题的出现。Deep-NIC模型的解码端由7层解码单元构成,词编码部分使用预训练的word2vec。实验结果表明,与基线模型相比,Deep-NIC模型的BLEU-4、METEOR、CIDER评分均有提升。Deep-NIC模型中采用词嵌入的方式,导致其整体性能提升幅度不大,下一步将对词嵌入方式进行改进,以构建效果更优的图像描述模型。
[1] |
CHEN L J, ZHANG Y, ZHANG Y M, et al. Image description generation algorithm based on multi-attention and multi-scale feature fusion[J]. Journal of Computer Applications, 2019, 39(2): 354-359. (in Chinese) 陈龙杰, 张钰, 张玉梅, 等. 基于多注意力多尺度特征融合的图像描述生成算法[J]. 计算机应用, 2019, 39(2): 354-359. |
[2] |
TANG P J, WANG H L, XU K S. LSTM layer by layer multi-object optimization and multi-layer probability fusion image description[J]. Acta Automatica Sinica, 2018, 44(7): 1237-1249. (in Chinese) 汤鹏杰, 王瀚漓, 许恺晟. LSTM逐层多目标优化及多层概率融合的图像描述[J]. 自动化学报, 2018, 44(7): 1237-1249. |
[3] |
LECUN Y, BENGIO Y, HINTON G. Deep learning[J]. Nature, 2015, 521(7553): 436-444. DOI:10.1038/nature14539 |
[4] |
HOPFIELD J J. Neural networks and physical systems with emergent collective computational abilities[J]. Proceedings of the National Academy of Sciences of the United States of America, 1982, 79(8): 2554-2558. DOI:10.1073/pnas.79.8.2554 |
[5] |
MCNEELY-WHITE D, BEVERIDGE J R, DRAPER B A. Inception and ResNet features are(almost) equivalent[J]. Cognitive Systems Research, 2020, 59: 312-318. DOI:10.1016/j.cogsys.2019.10.004 |
[6] |
LI S, LI W, COOK C, et al. Independently Recurrent Neural Network(IndRNN): building a longer and deeper RNN[EB/OL]. [2020-05-05]. https://arxiv.org/pdf/1803.04831v3.pdf.
|
[7] |
WANG J, LI S, AN Z, et al. Batch-normalized deep neural networks for achieving fast intelligent fault diagnosis of machines[J]. Neurocomputing, 2019, 329(15): 53-65. |
[8] |
KULKARNI G, PREMRAJ V, ORDONEZ V, et al. Baby talk: understanding and generating simple image descriptions[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2013, 35(12): 2891-2903. |
[9] |
FARHADI A, HEJRATI S M M, SADEGHI M A, et al. Every picture tells a story: generating sentences from images[EB/OL]. [2020-05-05]. http://www.cs.cmu.edu/afs/.cs.cmu.edu/Web/People/afarhadi/papers/sentence.pdf.
|
[10] |
VINYALS O, TOSHEV A, BENGIO S, et al. Show and tell: a neural image caption generator[C]//Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2015: 12-15.
|
[11] |
XU K, BA J, KIROS R, et al. Show, attend and tell: neural image caption generation with visual attention[J]. Computer Ence, 2015, 5: 2048-2057. |
[12] |
LI J, MEI X, PROKHOROV D, et al. Deep neural network for structural prediction and lane detection in traffic scene[J]. IEEE Transactions on Neural Networks & Learning Systems, 2017, 28(3): 690-703. |
[13] |
QU Y, LIN L, SHEN F, et al. Joint hierarchical category structure learning and large-scale image classification[J]. IEEE Transactions on Image Processing, 2017, 26(9): 4331-4346. DOI:10.1109/TIP.2016.2615423 |
[14] |
SHELHAMER E, LONG J, DARRELL T. Fully convolutional networks for semantic segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(4): 640-651. DOI:10.1109/TPAMI.2016.2572683 |
[15] |
GONG C, TAO D, LIU W, et al. Label propagation via teaching-to-learn and learning-to-teach[J]. IEEE Transactions on Neural Networks and Learning Systems, 2017, 28(6): 1452-1465. DOI:10.1109/TNNLS.2016.2514360 |
[16] |
HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[C]//Proceedings of 2016 International Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2016: 770-778.
|
[17] |
DOGNIN P L, MELNYK I, MROUEH Y, et al. Adversarial semantic alignment for improved image captions[EB/OL]. [2020-05-05]. https://arxiv.org/pdf/1805.00063v3.pdf.
|
[18] |
SANGER T D. Optimal unsupervised learning in a single-layer linear feedforward neural network[J]. Neural Networks, 1989, 2(6): 459-473. DOI:10.1016/0893-6080(89)90044-0 |
[19] |
YAO T, PAN Y, LI Y, et al. Incorporating copying mechanism in image captioning for learning novel objects[C]//Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2017: 10-20.
|
[20] |
XU Y, WU B, SHEN F, et al. Exact adversarial attack to image captioning via structured output learning with latent variables[C]//Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2020: 142-156.
|
[21] |
HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780. DOI:10.1162/neco.1997.9.8.1735 |