APP下载

基于CNN-LSTM的自动生成图像描述方法研究

2023-06-07彭姣丽李凌云骆又麟肖柏元

中国新技术新产品 2023年6期
关键词:神经元卷积权重

彭姣丽 李凌云 孙 兴 骆又麟 肖柏元

(湖南环境生物职业技术学院,湖南 衡阳 421000)

0 引言

自动生成图像描述(Image Captioning)[1]可以是在理解图像的基础上,根据输入图像的内容自动生成相应的描述性语句,这种描述性语句为文本形式,其本质是辅助计算机理解图像。图像描述的早期研究主要集中在提取低级特征上,例如对图像边缘、拐角和光流进行特征提取。随着具有高质量标注的大规模图像数据集和大幅度提高运算速度的硬件创新图像处理器出现,深度神经网络重新进入人们的视野[2]。在深度神经网络的相关方法中,卷积神经网络(Convolutional Neural Network,CNN)解决了计算机视觉领域中的许多问题,而循环神经网络(Recurrent Neural Network,RNN)和长短期记忆网络(Long Short-Term Memory,LSTM)被广泛应用于序列学习,例如机器翻译和图像描述等[3]。

与人工智能领域的其他算法相比,深度学习有很好的特征学习能力,在图像识别、文本分类、图像描述和故障检测等领域中都得到了广泛应用,具有较高的研究价值,受到社会各个领域专家、学者的青睐[4]。因此,将深度学习技术应用到自动生成图像描述问题中,具有非常重要的研究价值和应用价值。

1 深度学习网络架构

1.1 感知机

感知机可以接收多个输入信号,最后输出1 个信号。输入信号被送往神经元,分别乘以固定的权重,以计算送过来的信号总和,通过判断总和是否超过某个界限值来判断是否输出。感知机的模型如图1 所示。

图1 感知机模型

感知机接收2 个输入信号(x1、x2),输出信号为y,如公式(1)所示。

b可以控制神经元激活的容易程度,w1和w2可以控制各个信号的重要程度。

1.2 从感知机到神经网络

1 个由3 层神经元组成的神经网络模型如图2 所示[5]。最左侧为输入层,输入层中神经元的个数由输入数据的维度决定。中间为隐藏层,隐藏层通过输入层来接收信息,经过计算后将有用信息传递给输出层,隐藏层的层数以及神经元的个数不是固定的,在不同的分类中会根据需求进行设置。最右边为输出层,输出层是输出来自隐藏层的信息,得出最后的分类结果,输出层的神经元个数由分类类别的数量决定。

图2 3 层神经网络模型

在图2 中,输入层(第零层)有2 个神经元,第一隐藏层(第一层)有3 个神经元,第二隐藏层(第二层)有2 个神经元,输出层(第三层)有2 个神经元。

1.2.1 从输入层到第一隐藏层的信号传递

a(1)1表示从输入层到第一隐藏层的信号传递,a(1)1的值分为2 个部分:1) 权重与输入的乘积的和。2) 偏置。如公式(2)所示。

以此类推,a(1)2、a(1)3的计算方法也是类似的。第一个隐藏层的加权和如公式(3)所示。

式中:A(1)为第一隐藏层的输入信号;X为输入层的输入信号;W(1)为第一隐藏层的权重;B(1)为第一隐藏层的偏置。

A(1)、X、B(1)和W(1)的矩阵如公式(4)~公式(7)所示。

式中:、和分别为第一隐藏层的第一个、第二个和第三个输入信号;x1、x2分别为输入层的第一个、第二个输入信号;、和分别为第一隐藏层的第一个、第二个和第三个偏置;为输入层的第一个神经元x1到第一隐藏层的第一个神经元a1的权重;为输入层的第二个神经元x2到第一隐藏层的第一个神经元a1的权重;为输入层的第一个神经元x1到第一隐藏层的第二个神经元a2的权重;为输入层的第二个神经元x2到第一隐藏层的第二个神经元a2的权重;为输入层的第一个神经元x1到第一隐藏层的第三个神经元a3的权重;为输入层的第二个神经元x2到第一隐藏层的第三个神经元a3的权重。

1.2.2 从第一隐藏层到第二隐藏层的信号传递

与前一层的计算类似,先将a(2)1转化为公式(8)。

以此类推,a(2)2的计算方法也是类似的。第一隐藏层的加权和如公式(9)所示。

式中:A(2)为第二隐藏层的输入信号;Z(1)为第一隐藏层的输入信号;W(2)为第二隐藏层的权重;B(2)为第二隐藏层的偏置。

1.2.3 从第二隐藏层到输出层的信号传递

与前2 个步骤的不同点:第二隐藏层到输出层不再使用sigmoid 函数,而是使用softmax 函数。与前一层的计算类似,先将a(3)1转化为公式(10)。

以此类推,a(3)2的计算方法也是类似的。第一隐藏层的加权和如公式(11)所示。

式中:A(3)为输出层的输入信号;Z(2)为第二隐藏层的输入信号;W(3)为输出层的权重;B(3)为输出层的偏置。

输出层同样会使用激活函数对直接得到的输出信号进行转换,该文研究的自动生成图像描述属于多分类问题,因此该文采用softmax 函数作为隐藏层输出信号的激活函数。softmax函数输出的是大于0 且小于1 的实数,其输出值的总和为1。因为有了这个性质,所以才可以把softmax 函数的输出解释为概率,输出yk的概率如公式(12)所示。

式中:ak为第k个输入信号;ai为第i个输入信号。

1.3 卷积神经网络

在多种深度学习的网络框架中,应用广泛的框架有卷积神经网络(CNN),一般情况下,CNN 专门用来处理具有网格状拓扑结构的数据,例如图像。

卷积神经网络的基本原理就是通过学习多个能够提取输入数据特征的滤波器逐层卷积迟缓,从而发现并逐级提取隐藏的拓扑结构特征。卷积神经网络的实质是随着网络结构的加深,提取到的特征由表象逐渐变得抽象,最终获得带有数据平移、旋转及缩放不变性的特征表示。CNN 通常包括卷积层、池化层和全连接层,卷积神经网络的结构如图3 所示。

图3 卷积神经网络的结构图

1.3.1 卷积层

卷积层是卷积神经网络的核心组成部分,其主要功能是网络计算。卷积层就是在2 个矩阵之间进行点积运算,其中一个由1 组可以学习参数组成的矩阵称为卷积核,另一个矩阵是感受野区域。卷积核在空间上要比原始图像更小以及更深。说明如果图像由3 个通道组成(例如RGB 通道),那么卷积核的高度和宽度在空间上都会很小,但是深度会扩展到3 个通道。卷积操作如公式(13)所示。

式中:l为卷积的层数;*为卷积运算;k为卷积核;b为偏置;Mj为输入的局部感受野;xlj为第l层的第j个卷积核的输出特征图;f()为激活函数;xil-1为第l-1层的第i个卷积核的输出特征图;klij为第l层中第i个卷积核对第l-1 层第j个特征图的权重;blj为第l层中第j个卷积核的偏置。

1.3.2 池化层

池化层与卷积层相连(位于卷积层后),与卷积层交替出现。池化就是将一定范围内的像素经过池化压缩为单个像素,不仅会降低图片的尺寸,而且还尽可能地保留了有用信息。常用的池化方法一般包括平均值池化和最大值池化。平均值池化是求取局部邻域内的特征点的平均值,而最大值池化是选取局部邻域内特征点的最大值。图像经过池化操作后,分辨率降低,网络的训练参数减少,从而有效地避免或者减少网络出现过拟合现象。此外,下采样提取到的特征泛化能力强,且具有平移、形变不变性。池化操作如公式(14)所示。

式中:βlj为第l层的第j个卷积核的输出特征图的参数;down()为池化函数;bjl为第l层中第j个卷积核的偏置。

1.3.3 全连接层

全连接层在整个网络中起到分类器的作用,对经过多次卷积运算后高度抽象化的特征向量进行整合并映射到样本标记空间,从而得到每个类别的分类概率。由于softmax 函数的更新方法与神经网络相似,因此在分类任务中一般使用softmax 函数来归一化输出预测概率,以实现分类的目标。softmax函数的数学表达式为公式(12)。

1.4 长短期记忆网络

为了避免RNN 在处理长序列数据时容易出现梯度消失和梯度爆炸的问题,对传统RNN 进行改进,提出了长短期记忆网络,以改善长序列时出现的信息缺失问题。LSTM 主要是提出了3 种控制门结构(输人门、遗忘门和输出门),实现了对记忆单元存储历史进行增加和去除的功能。忘记长序列中的无用信息,以存储需要记住的距离较远的有用信息,从而更好地控制和发现序列数据的长时依赖性。LSTM 基本单元结构如图4 所示。

图4 LSTM 基本单元结构图

1.4.1 输入门

输入门可以控制输入节点的信息,其包括2 个部分,第一个部分使用digmoid 激活函数来确定需要输入的新信息,第二个部分使用tanh 激活函数控制存放在单元中的新信息。输入门的输出it和候选信息gt如公式(15)、公式(16)所示。

式中:Ui、Wi和bi分别为输入门i在t时刻输入向量的权重、在t-1 时刻输出向量的权重和输入门i的偏置;Ug、Wg和bg分别为候选信息g在t时刻输入向量的权重、在t-1 时刻输出向量的权重和候选信息g的偏置;σ为sigmoid 激活函数;tanh 为激活函数。

1.4.2 遗忘门

遗忘门可以控制当前LSTM 单元的丢弃信息。使用sigmoid 激活函数产生1 个0~1 的函数值,当函数值越小(即越接近0)时,说明当前节点包括的有用信息越少,因此传递较少的信息到下一时刻。相反,当函数值越大(即越接近1)时,说明当前节点包括的有用信息越多,因此传递更多的信息到下一时刻。遗忘门ft如公式(17)所示。

式中:Uf、Wf和bf分别为遗忘门f在t时刻输入向量的权重、在t-1 时刻输出向量的权重和遗忘门f的偏置。

1.4.3 记忆单元

记忆单元可以保护该单元的状态信息,实现状态更新,记忆单元ct如公式(18)所示。

式中:⊙为哈达玛积。

1.4.4 输出门

输出门可以控制输出节点的信息。首先,利用sigmoid函数确定输出信息,得到初始输出值ot。其次,使用tanh 函数将ct固定在-1~1 内。最后,与初始值ot进行逐点相乘,得到LSTM 单元的输出。因此,ht是由ot和记忆单元ct共同决定的,ot、ht如公式(19)、公式(20)所示。

式中:Uo、Wo和bo分别为输出门o在t时刻输入向量的权重、在t-1 时刻输出向量的权重和输出门o的偏置。

2 基于CNN-LSTM 的自动生成图像描述模型

2.1 CNN-LSTM 网络模型

自动生成图像描述方法的发展经历了3 个阶段:基于检索的自动生成图像描述、基于模板的自动生成图像描述和基于编码器-解码器的自动生成图像描述[6]。

该文采用的CNN-LSTM 网络模型属于基于编码器-解码器的自动生成图像描述模型,在该模型框架中,将输入的需要描述的图像视为源语言中的“句子”,使用编码器-解码器模型将输入“翻译”变为输出的对应的描述性句子[7]。Kiros R 等[8]将编码器-解码器框架引入图像描述生成领域,提出了联合的图像-文本嵌入模型和多模态神经语言模型,采用卷积神经网络(CNN)编码视觉数据,采用循环神经网络编码文本数据,再通过优化排序损失函数将编码的视觉数据映射到循环神经网络隐藏状态所属的嵌入空间,在嵌入空间中通过神经语言模型对视觉特征进行解码,从而可以逐词生成句子。该文按照NIC 模型的编码器-解码器结构来构造图像标注模型框架(如图5 所示),将可变长度的输入编码为固定维度的向量,再将其解码为所需要的输出语句。

图5 基于CNN-LSTM 的自动生成图像描述模型

2.2 自动生成图像描述的实现步骤

自动生成图像描述的实现步骤如下:1) 数据集的预处理。自动生成图像描述CNN-LSTM 网络模型的试验基于Fick8k、Flick30k 和MSCOCO 这3 个包括图像和英文标注的数据集,它们也是图像标注任务最常用的基准数据集[9]。在数据集的预处理阶段,分配训练集、验证集和测试集的图片数量,为下面的特征提取和句子生成做准备。2) 特征提取。当执行特征提取时,使用深度卷积神经网络将图片嵌入为固定长度的向量。3) 句子生成阶段。该阶段将特征提取阶段得到的固定长度的特征向量作为输入,单词序列将通过模型一个接一个生成并组合成对图像有意义的描述。

3 试验

3.1 试验数据集

数据集如下:1) Flickr8k 数据集。该数据集包括从Flickr网站上获取的80 000 张图像,该数据集中的图像主要包括人和动物,每张图像都有5 个人工标注。2) Flickr30k 数据集。该数据集是从Flickr8k 扩展得到的数据集,包括31 783张带标注的图像,该数据集中的图像主要涉及日常活动和事件中的人类。3) MSCOCO 数据集。该数据集是通过收集自然环境中具有共同对象的复杂日常场景的图像而创建的,为与其他研究保持一致,该文采用MSCOCO2014 版本数据集,每张图像都对应5~7 个人工标注句子,人工标注句子的平均长度为10.36 个单词。该试验使用的数据集统计信息见表1。

表1 试验数据集

3.2 试验结果和分析

在Fick8k、Flick30k 和MSCOCO 数据集对神经图像标注模型(NIC)和卷积神经网络-长短期记忆网络模型(CNN-LSTM)进行训练和测试,并对数据集的结果进行分析。为了验证该试验模型生成图像描述的质量,采用最广泛的评估图像描述的评价指标——双语替换评测(Bilingual Evaluation Understudy,BLEU)。

BLEU 可以评估生成的句子与参考句子的匹配程度,使用n-gram 方法对各种度量进行平均,n-gram 是常用于计算语言学的概率语言模型(完全匹配为1,完全不匹配为0)。n-gram 匹配的是n个单词长度的元组的相似度,匹配结果与单词顺序无关,匹配越多,生成的描述越接近数据集中的可参考描述。BLEU由惩罚因子BP与修正的n-gram 统计量精度pn的几何平均值相乘得到,pn、BP和BLEU如公式(21)、公式(22)和公式(23)所示。

式中:si={si1,si2,…,sim}为给定的标准文本句子;ci为生成的描述文本句子;hk(ci)为第k组长度为n的词组在生成的描述文本句子中出现的次数;hk(sij)为第k组长度为n的词组在给定的标准文本句子中出现的次数;lc、ls分别为给定的标准文本和生成的描述文本的长度;pn为n-gram的精确度。

通常根据BLEU来判断生成图像描述文本的质量:BLEU越大,表示其生成的描述文本与给定的标准文本意义越接近,也说明生成的描述越好。

当把N设为1、2、3 和4 时,使用NIC 模型和CNNLSTM 模型分别在Fick8k、Flick30k 和MSCOCO 进行BLEU评价[10]。Fick8k 数据集上的试验结果如图6 所示,Flick30k数据集上的试验结果如图7 所示,MSCOCO 数据集上的试验结果如图8 所示。

图6 Fick8k 数据集上的试验结果

图7 Fick30k 数据集上的试验结果

图8 MSCOCO 数据集上的试验结果

4 结语

该文研究了使用CNN-LSTM 模型自动生成图像描述,试验结果也验证了该方法的可行性。为了验证CNN-LSTM 模型的高效性和准确性,将它与NIC 模型进行对比,由对比结果可知,基于CNN-LSTM 模型自动生成图像描述的方法的正确率高,能更有效地提取完整的视觉语义信息,从而使图像描述与人工描述更接近,辅助计算机更全面地理解图像。

猜你喜欢

神经元卷积权重
《从光子到神经元》书评
基于3D-Winograd的快速卷积算法设计及FPGA实现
权重常思“浮名轻”
从滤波器理解卷积
为党督政勤履职 代民行权重担当
跃动的神经元——波兰Brain Embassy联合办公
基于傅里叶域卷积表示的目标跟踪算法
基于公约式权重的截短线性分组码盲识别方法
基于二次型单神经元PID的MPPT控制
毫米波导引头预定回路改进单神经元控制