CN110347860B - 基于卷积神经网络的深度图像描述方法 - Google Patents
基于卷积神经网络的深度图像描述方法 Download PDFInfo
- Publication number
- CN110347860B CN110347860B CN201910583139.6A CN201910583139A CN110347860B CN 110347860 B CN110347860 B CN 110347860B CN 201910583139 A CN201910583139 A CN 201910583139A CN 110347860 B CN110347860 B CN 110347860B
- Authority
- CN
- China
- Prior art keywords
- len
- function
- tensor
- size
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本发明公开了一种基于卷积神经网络的深度图像描述方法,涉及计算机视觉与自然语言处理的交叉领域,涉及图像处理、自然语言理解、深度学习、机器学习等技术领域,解决了以往基于长短时神经网络的图像描述方法无法并行训练的问题。同时,本发明能够更好地捕捉到生成单词之间的长距依赖以及学习到如何自适应地关注图像和语言特征。
Description
技术领域
本发明涉及计算机视觉与自然语言处理的交叉领域,涉及图像处理、自然语言理解、深度学习、机器学习等技术领域,尤其涉及一种基于卷积神经网络的深度图像描述方法。
背景技术
近年来,图像描述任务在学术界受到广泛的研究。该任务的主要目的在于构建一种机器学习算法,在接收自然图片输入后,生成对该输入的语言描述。这一任务旨在对视觉环境进行语义解释,是视觉感知的高级任务。当前,主要的图像描述算法均基于编码器-解码器(Encoder-Decoder)的结构,这类框架使用一个深度卷积神经网络作为图像的编码器,将输入的原始图像编码为一个高维的特征向量。然后再使用长短时记忆网络(Long-Short-Term-Memory Network,LSTM)作为解码器,接收编码后的图像特征向量,并将其解码为自然语言。
这种基于长短时记忆网络的解码器模型有其固有缺陷。首先,训练数据必须按照前后顺序输入神经网络之中,以至于其不能进行并行计算,导致模型的优化时间较长。其次,这类模型在面对较长的输入数据时,不善于建模长句依赖,同时易产生梯度消失等问题。
为了解决这一问题,有研究者提出完全基于卷积神经网络(ConvolutionalNeural Network)的语言解码器,使得网络的训练能够并行化。
基于卷积神经网络的语言解码器存在以下几个问题。首先,该模型的注意力机制(attention)仅应用于图像特征和语言特征两个模态之间,忽略了语言局部特征之间的关联。其次,该模型在训练时是基于交叉熵损失来训练的,而在测试模型的过程中,我们需要用专用的指标来评价模型的好坏。因此,基于交叉熵损失训练的模型不一定能够使得生成的结果达到最优。最后,这种基于交叉熵的训练方式在训练时需要图像对应的真实文本标签,而在测试时,我们无法获得图像对应的真实文本标签,这将导致训练与测试出现偏差。
发明内容
本发明所要解决的技术问题是针对背景技术中所涉及到的缺陷,提供一种基于卷积神经网络的深度图像描述方法。
本发明为解决上述技术问题采用以下技术方案:
基于卷积神经网络的深度图像描述方法,包含以下步骤:
对MSCOCO训练数据集中的所有真实描述句子进行预处理,在所有真实描述句子的首部添加起始标识单词,在所有真实描述句子的结尾添加结尾标识单词;记录所有出现次数大于等于预设的第一次数阈值的单词,并将所有出现次数小于预设的第一次数阈值的单词替换为未知标识单词;
为所有单词标记索引,形成词汇表,将所有真实描述句子用单词的索引表示,即“one-hot”表示;
对于MSCOCO训练数据集中每一幅原始图像:
步骤1),将原始图像经过深度学习库的resize函数调整后,输入至预训练好的深度卷积神经网络,得到原始图像的特征图表示;
使用深度学习库中的网络构建函数构建两层的全连接神经网络M1,将原始图像的特征图表示输入全连接神经网络M1中,得到原始图像的图像特征表示;
将原始图像图像特征表示经过深度学习库中的维度调整函数,将其由三维调整为二维,得到调整过后的图像特征表示、记为m;
步骤2),使用深度学习库中的词嵌入网络构建函数构建词嵌入表示层,输入原始图像对应的真实描述句子的“one-hot”表示,对真实描述句子中的每个词做词嵌入操作,得到由词向量表示的真实描述句子的特征,记为x;
步骤3),使用深度学习库中的卷积网络构建函数构建一维卷积神经网络,输入真实描述句子的特征x,并将一维卷积神经网络的前一半通道输入深度学习库的GLU函数中,得到特征图s;将一维卷积神经网络的后一半通道输入深度学习库的GLU函数中,得到特征图c;
步骤4),使用深度学习库中的线性网络层构建函数构建四个全连接神经网络M2、M3、M4、M5,将s分别输入全连接神经网络M2、M3、M4中,得到3个输出,记为q,k,v;
用深度学习库中的维度调整函数,将q,k,v调整为sent_len*d1*d2的张量,d1为预设的第一二维长度阈值,d2为预设的第一三维长度阈值;利用深度学习库中的矩阵相乘函数,将q和k的转置进行乘积,并除以d1,得到d1个大小为sent_len*sent_len的张量后将其输入深度学习库中的softmax函数,对该张量的最后一个维度做softmax操作,得到大小为d1*sent_len*sent_len的张量,将该结果标记为word_score;
将word_score与v通过深度学习库中的矩阵相乘函数进行相乘,得到大小为sent_len*d1*d2的张量,通过深度学习库中的维度调整函数,调整为sent_len*dm大小的张量,dm=d1*d2,输入全连接神经网络M5中,得到大小为sent_len*dm的张量,重新记为s;
步骤5),使用深度学习库中的线性网络层构建函数构建四个全连接神经网络M6、M7、M8、M9,将c输入全连接神经网络M6中,得到大小为sent_len*dm的张量,记为q’;
将m分别输入全连接神经网络M7、M8中,得到2个输出,记为k’,v’,大小均为feat_len*dm;
用维度调整函数,将q’调整为sent_len*d3*d4的张量,将k’,v’调整为feat_len*d3*d4的张量,d3为预设的第二二维长度阈值,d4为预设的第二三维长度阈值;
利用矩阵乘法函数,将q和k的转置进行乘积,并除以d3,得到大小为d3*sent_len*feat_len的张量后将其输入深度学习库中的softmax函数,对该张量的最后一个维度做softmax操作,得到大小为d3*sent_len*feat_len的张量,标记为image_score;
将image_score与v通过矩阵乘法函数进行相乘,得到大小为sent_len*d3*d4的张量,通过维度调整函数,调整为sent_len*dm大小的张量,输入全连接神经网络M9中,得到大小为sent_len*dm的张量,重新记为c;
步骤6),利用深度学习库中的求均值函数对word_score的第二、三维度求平均,得到大小为sent_len*1的张量,利用求均值函数对image_score的第三个维度求平均得到大小为sent_len*feat_len的张量,利用深度学习库中的拼接函数将得到的大小为sent_len*1的张量和大小为sent_len*feat_len的张量在第二个维度上进行拼接,得到大小为sent_len*(feat_len+1)的张量;
利用softmax函数对大小为sent_len*(feat_len+1)的张量的第二个维度进行操作,得到sent_len*(feat_len+1)大小的张量,取其第二个维度的最后一个元素、大小为sent_len*1的张量记为β,根据公式β*s+(1-β)*c进行计算,得到大小为sent_len*dm维,记为x;
步骤7),重复步骤3)到步骤6),重复次数为预设的第二次数阈值,得到大小维sent_len*d_m的张量,记为h;
步骤8),利用深度学习库中的线性网络层构建函数,构建全连接神经网络M10,输入为大小为dm的维,输出为大小为dv的维;将h输入全连接神经网络M10,得到输出dm*dv大小的张量,将该张量输入pytorch中的softmax函数,得到dm*dv大小的张量,记为y;
步骤9),利用深度网络学习库中的优化器模块,构建优化器;利用深度学习库中的损失函数模块,构建交叉熵损失函数,将y及其对应的真实句子的“one-hot”表示输入该损失函数中,用深度学习库中的反向传播函数进行反向传播,然后利用优化器模块中的更新函数对模型参数进行更新;
步骤10),重复步骤9),重复次数为预设的第三次数阈值;
步骤11),下载CIDER指标计算模块;将步骤8)中的到的y输入深度学习库中的argmax函数,得到sent_len*1的句子“one-hot”表示,将该表示输入CIDER计算模块,得到该句子的得分值;利用损失函数公式Lrl(θ)=Ey[r(y)]计算该句子的损失,其中r表示CIDER计算模块,E表示期望值,通过其每个单词的概率的乘积得到,θ为模型中的所有参数;用深度学习库中的反向传播函数进行反向传播,然后利用优化器模块中的更新函数对模型参数进行更新;
步骤12),重复步骤11),重复次数为预设的第四次数阈值。
作为本发明基于卷积神经网络的深度图像描述方法进一步的优化方案,所述等于预设的第一次数阈值为5。
作为本发明基于卷积神经网络的深度图像描述方法进一步的优化方案,所述预设的第二次数阈值为6。
作为本发明基于卷积神经网络的深度图像描述方法进一步的优化方案,所述预设的第三次数阈值为20。
作为本发明基于卷积神经网络的深度图像描述方法进一步的优化方案,所述预设的第四次数阈值为10。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1.本发明采用卷积神经网络作为语言生成模型,能够更好地利用GPU的并行计算能力;
2.本发明能够更好地建模输入单词之间地长距依赖,学习到更好的特征表示;
3.本发明能够自适应动态地关注图像与语言的信息;
4.本发明生成的结果比现阶段所有基于卷积神经网络的模型生成的结果都要好。
附图说明
图1是自适应联合注意力模型的框架示意图;
图2是本发明中注意力可视化的效果示意图;
图3是本发明实施例生成结果的示意图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明可以以许多不同的形式实现,而不应当认为限于这里所述的实施例。相反,提供这些实施例以便使本公开透彻且完整,并且将向本领域技术人员充分表达本发明的范围。在附图中,为了清楚起见放大了组件。
本发明公开了一种基于卷积神经网络的深度图像描述方法,包含以下步骤:
准备好本发明的实验环境。本发明基于Linux 16.04版本,使用python2.7与python3.6作为编程语言,使用当前最常用的深度学习工具包pytorch和torchvision来构建基本模型。
准备好本发明使用的MSCOCO训练数据集,该数据集包含113280张原始图像以及配对的真实描述句子,每张图片对应5个真实的句子。
对MSCOCO训练数据集中的所有真实描述句子进行预处理,在所有真实描述句子的首部添加<S>单词,在所有真实描述句子的结尾添加<\S>单词。记录所有出现次数大于等于5次的单词,将所有出现次数小于5次的单词替换为<UNK>;为所有单词标记索引(按照记录的顺序,从1开始标记),形成词汇表,将所有的真实描述句子改成用单词的索引表示(设定句子最大长度为15,不足的位补0),即“one-hot”表示。
对于MSCOCO训练数据集中每一幅原始图像:
步骤1),输入大小经过pytorch中的transform模块中的resize函数重新调整(256x256)的原始图像,经过torchvision中预训练好的深度卷积神经网络(resnet101),输出图像的特征图表示(feature map,大小为1024*7*7),使用pytorch中的nn模块中的Linear函数构建两层的全连接神经网络(大小为1024*512),将特征图表示(1024*7*7)输入该步骤构建的神经网络中,得到(512*7*7)的图像特征表示。将该图像特征经过pytorch的view函数,得到49*512的图像特征表示,记为m。
步骤2),使用pytorch中的nn模块构建词嵌入表示层(nn.Embedding,大小为9376*512),输入原始图像对应的真实描述句子的“one-hot”表示至该词嵌入表示层,对句子中的每个词做词嵌入操作,输出由词向量(维度为512)表示的句子的特征(大小为15*512),记为x。
步骤3),使用pytorch中的nn模块构建一维卷积神经网络(nn.Conv1d)。该卷积神经网络的输入通道为512,输出通道为2048,卷积核大小为3。将句子特征x输入该卷积神经网络中,得到15*2048大小的特征图。将前1024个通道输入pytorch的函数GLU(nn.functional.glu)中,得到大小为15*512的特征图,记为s。将后1024个通道输入pytorch的函数GLU(nn.functional.glu)中,得到大小为15*512的特征图,记为c。
步骤4),使用pytorch的nn模块构建4个全连接神经网络(输入大小512维,输出大小512维),将s输入前3个神经网络中,得到3个输出,记为q,k,v,大小均为15*512。用pytorch的view函数,将q,k,v调整为15*8*64的张量。利用pytorch中的matmul函数,将q和k的转置(使用pytorch中的transpose函数得到)进行乘积,并除以8,得到8个大小为15*15的张量。将该结果输入pytorch的nn模块中的functional子模块中的softmax函数,对该张量的最后一个维度做softmax操作,得到大小为8*15*15的张量,将该结果标记为word_score。将该结果与v通过pytorch中的matmul函数进行相乘,得到大小为15*8*64的张量,通过pytorch中的view函数,调整为15*512大小的张量,输入该步骤中建立的第四个全连接神经网络中,得到大小为15*512的张量,重新记为s。
步骤5),使用pytorch的nn模块构建4个全连接神经网络(输入大小512维,输出大小512维),将c输入第一个神经网络中,得到大小为15*512的张量,记为q’。将m输入第2,3个神经网络中,得到2个输出,记为k’,v’,大小均为49*512。用pytorch的view函数,将q’调整为15*8*64的张量,将k’,v’调整为49*8*64的张量。利用pytorch中的matmul函数,将q和k的转置(使用pytorch中的transpose函数得到)进行乘积,并除以8,得到大小为8*15*49的张量。将该结果输入pytorch的nn模块中的functional子模块中的softmax函数,对该张量的最后一个维度做softmax操作,得到大小为8*15*49的张量,将该结果标记为image_score。将该结果与v通过pytorch中的matmul函数进行相乘,得到大小为15*8*64的张量,通过pytorch中的view函数,调整为15*512大小的张量,输入该步骤中建立的第四个全连接神经网络中,得到大小为15*512的张量,重新记为c。
步骤6),利用pytorch中的mean函数对word_score的第二,三维度求平均,得到15*1的张量。同样利用pytorch中的mean函数对image_score的第三个维度求平均得到15*49大小的张量。利用pytorch中的concat函数,将这两个函数在第二个维度上进行拼接,得到15*50大小的张量。再利用pytorch中的softmax函数对改张量的第二个维度进行操作,得到15*50大小的张量,取该张量第二个维度的最后一个元素,大小为15*1的张量,记为β,根据公式β*s+(1-β)*c计算结果,得到的输出记为x,大小为15*512维。
步骤7),重复步骤3)到步骤6)6次,最终能得到大小维15*512的张量,记为h。
步骤8),利用pytorch中的nn模块,构建全连接神经网络,输入大小为512维,输出大小为9376维。将h输入该模块,得到输出15*9376大小的张量,将该张量输入pytorch中的softmax函数,得到15*9376大小的张量,记为y。
步骤9),利用pytorch中的optim模块,构建adam优化器(optim.Adam),学习率设置为5e-5。利用pytorch中的nn模块,构建交叉熵损失函数(nn.CrossEntropyLoss),将步骤8)中生成的y及其对应的真实句子的“one-hot”表示输入该损失函数中,用pytorch中的backword函数进行反向传播,然后利用optim模块中的step函数对模型参数(从步骤1)到步骤8)中构建的所有模块的参数)进行更新,。
步骤10),重复步骤9)20次。
步骤11),从该链接https://github.com/tylin/coco-caption下载CIDER指标计算模块。将步骤8)中的到的y输入pytorch中的argmax函数,得到15*1的句子“one-hot”表示,将该表示输入CIDER计算模块,得到该句子的得分值。利用损失函数公式Lrl(θ)=Ey[r(y)]计算该句子的损失,其中r表示CIDER计算模块,E表示期望值,通过其每个单词的概率(步骤8)的乘积得到,θ为模型中的所有参数。再利用ytorch中的backword函数进行反向传播,然后利用optim模块中的step函数对模型参数(从步骤1)到步骤8)中构建的所有模块的参数)进行更新.
步骤12),重复步骤11)10次。
图1为我们提出的图像描述模型的总体框架。我们使用一个深度卷积神经网络对图像进行特征提取。利用两个卷积模块对语言特征进行变换。其中第一个卷积模块提取出的特征将被用于建模图像与语言之间的注意力,另一个则用于建模语言自身的注意力。
我们采用多头点乘注意力机制对语言自身注意力进行建模。令由卷积模块提取出的语言特征为s=(s1,s2,...,sn),我们定义三个投影矩阵将高维的特征向量投影到其子空间中,这里d表示模型中特征的维度大小,实验中我们设置为512维。假设该注意力模型共有h个子模块(实验中设定为6),则i表示的是其中第i个子模块。为了保持维度一致,我们令q=k=v=d/h。由此,我们可以得到三个特征矩阵Q,K,V,分别表示经过Wi q,Wi k,Wi v投影的特征,然后应用点乘注意力,计算其结果:
最后,我们将多个子模块得到的注意力结果进行拼接,得到:
MultiHead(s)=Concat(head1,head2,...,headh)WO
目前,我们的模型已经能够获取两种模态的注意力机制,为了使模型具备何时关注语言特征或者图像特征的能力,我们进一步提出自适应联合注意力机制。首先,我们通过计算注意力,可以得到每个特征的重要性得分矩阵:
h=β*s+(1-β)*c
交叉熵损失可以通过以下公式表达
其中I表示输入图像,为真实的文本标签。在这个损失的训练下,模型会产生训练-测试偏差以及训练-测试指标不同的问题。因此,我们引入了强化学习训练的方式,直接将评价指标作为奖励函数参与模型的训练,其损失函数可写为:
LRL(θ)=-Ey1:T~πθ[r(y1:T)]
为了增加样本的有效性以及训练效率,我们采用模型自身贪婪选择得到的解码结果作为强化学习中的baseline,则我们能得到模型的梯度:
实验结果:
我们在两个公开数据集上进行了实验验证,分别为MSCOCO数据集以及FLICKR30K数据集。MSCOCO数据集共有12万张图片,我们取11万张图片作为训练集,5000张作为验证集,剩余5000张作为测试集。表一为我们模型的实验结果。
表一 在MSCOCO数据集上的实验结果
FLICKR30K数据集包含3万张图片,表二为我们模型在该数据集上的表现。我们的模型在这两个数据集上均能取得最好的结果。
表二 在FLICKR30K数据集上的实验结果
我们还验证了所添加模块的有效性,从表三的结果可以看出,我们所添加的模块对模型能力的提升具有极大的增益作用。
表三 模块有效性验证
最后,我们可视化了模型学到的注意力结果,如图2所示,我们的模型能有有效地感知到视觉图像中的物体。
图3为模型生成的语言描述结果及其与其它模型的对比,可以看出我们的模型能够更好的生成非视觉词,生成的结果也更接近真实的数据集。
本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.基于卷积神经网络的深度图像描述方法,其特征在于,包含以下步骤:
对MSCOCO训练数据集中的所有真实描述句子进行预处理,在所有真实描述句子的首部添加起始标识单词,在所有真实描述句子的结尾添加结尾标识单词;记录所有出现次数大于等于预设的第一次数阈值的单词,并将所有出现次数小于预设的第一次数阈值的单词替换为未知标识单词;
为所有单词标记索引,形成词汇表,将所有真实描述句子用单词的索引表示,即“one-hot”表示;
对于MSCOCO训练数据集中每一幅原始图像:
步骤1),将原始图像经过深度学习库的resize函数调整后,输入至预训练好的深度卷积神经网络,得到原始图像的特征图表示;
使用深度学习库中的网络构建函数构建两层的全连接神经网络M1,将原始图像的特征图表示输入全连接神经网络M1中,得到原始图像的图像特征表示;
将原始图像图像特征表示经过深度学习库中的维度调整函数,将其由三维调整为二维,得到调整过后的图像特征表示、记为m;
步骤2),使用深度学习库中的词嵌入网络构建函数构建词嵌入表示层,输入原始图像对应的真实描述句子的“one-hot”表示,对真实描述句子中的每个词做词嵌入操作,得到由词向量表示的真实描述句子的特征,记为x;
步骤3),使用深度学习库中的卷积网络构建函数构建一维卷积神经网络,输入真实描述句子的特征x,并将一维卷积神经网络的前一半通道输入深度学习库的GLU函数中,得到特征图s;将一维卷积神经网络的后一半通道输入深度学习库的GLU函数中,得到特征图c;
步骤4),使用深度学习库中的线性网络层构建函数构建四个全连接神经网络M2、M3、M4、M5,将s分别输入全连接神经网络M2、M3、M4中,得到3个输出,记为q,k,v;
用深度学习库中的维度调整函数,将q,k,v调整为sent_len*d1*d2的张量,d1为预设的第一二维长度阈值,d2为预设的第一三维长度阈值;利用深度学习库中的矩阵相乘函数,将q和k的转置进行乘积,并除以d1,得到d1个大小为sent_len*sent_len的张量后将其输入深度学习库中的softmax函数,对该张量的最后一个维度做softmax操作,得到大小为d1*sent_len*sent_len的张量,将该结果标记为word_score;
将word_score与v通过深度学习库中的矩阵相乘函数进行相乘,得到大小为sent_len*d1*d2的张量,通过深度学习库中的维度调整函数,调整为sent_len*dm大小的张量,dm=d1*d2,输入全连接神经网络M5中,得到大小为sent_len*dm的张量,重新记为s;
步骤5),使用深度学习库中的线性网络层构建函数构建四个全连接神经网络M6、M7、M8、M9,将c输入全连接神经网络M6中,得到大小为sent_len*dm的张量,记为q’;
将m分别输入全连接神经网络M7、M8中,得到2个输出,记为k’,v’,大小均为feat_len*dm;
用维度调整函数,将q’调整为sent_len*d3*d4的张量,将k’,v’调整为feat_len*d3*d4的张量,d3为预设的第二二维长度阈值,d4为预设的第二三维长度阈值;
利用矩阵乘法函数,将q’和k’的转置进行乘积,并除以d3,得到大小为d3*sent_len*feat_len的张量后将其输入深度学习库中的softmax函数,对该张量的最后一个维度做softmax操作,得到大小为d3*sent_len*feat_len的张量,标记为image_score;
将image_score与v通过矩阵乘法函数进行相乘,得到大小为sent_len*d3*d4的张量,通过维度调整函数,调整为sent_len*dm大小的张量,输入全连接神经网络M9中,得到大小为sent_len*dm的张量,重新记为c;
步骤6),利用深度学习库中的求均值函数对word_score的第二、三维度求平均,得到大小为sent_len*1的张量,利用求均值函数对image_score的第三个维度求平均得到大小为sent_len*feat_len的张量,利用深度学习库中的拼接函数将得到的大小为sent_len*1的张量和大小为sent_len*feat_len的张量在第二个维度上进行拼接,得到大小为sent_len*(feat_len+1)的张量;
利用softmax函数对大小为sent_len*(feat_len+1)的张量的第二个维度进行操作,得到sent_len*(feat_len+1)大小的张量,取其第二个维度的最后一个元素、大小为sent_len*1的张量记为β,根据公式β*s+(1-β)*c进行计算,得到大小为sent_len*dm维,记为x;
步骤7),重复步骤3)到步骤6),重复次数为预设的第二次数阈值,得到大小维sent_len*d_m的张量,记为h;
步骤8),利用深度学习库中的线性网络层构建函数,构建全连接神经网络M10,输入为大小为dm的维,输出为大小为dv的维;将h输入全连接神经网络M10,得到输出dm*dv大小的张量,将该张量输入pytorch中的softmax函数,得到dm*dv大小的张量,记为y;
步骤9),利用深度网络学习库中的优化器模块,构建优化器;利用深度学习库中的损失函数模块,构建交叉熵损失函数,将y及其对应的真实句子的“one-hot”表示输入该损失函数中,用深度学习库中的反向传播函数进行反向传播,然后利用优化器模块中的更新函数对模型参数进行更新;
步骤10),重复步骤9),重复次数为预设的第三次数阈值;
步骤11),下载CIDER指标计算模块;将步骤8)中的到的y输入深度学习库中的argmax函数,得到sent_len*1的句子“one-hot”表示,将该表示输入CIDER计算模块,得到该句子的得分值;利用损失函数公式Lrl(θ)=Ey[r(y)]计算该句子的损失,其中r表示CIDER计算模块,E表示期望值,通过其每个单词的概率的乘积得到,θ为模型中的所有参数;用深度学习库中的反向传播函数进行反向传播,然后利用优化器模块中的更新函数对模型参数进行更新;
步骤12),重复步骤11),重复次数为预设的第四次数阈值。
2.根据权利要求1所述的基于卷积神经网络的深度图像描述方法,其特征在于,所述预设的第一次数阈值为5。
3.根据权利要求1所述的基于卷积神经网络的深度图像描述方法,其特征在于,所述预设的第二次数阈值为6。
4.根据权利要求1所述的基于卷积神经网络的深度图像描述方法,其特征在于,所述预设的第三次数阈值为20。
5.根据权利要求1所述的基于卷积神经网络的深度图像描述方法,其特征在于,所述预设的第四次数阈值为10。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910583139.6A CN110347860B (zh) | 2019-07-01 | 2019-07-01 | 基于卷积神经网络的深度图像描述方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910583139.6A CN110347860B (zh) | 2019-07-01 | 2019-07-01 | 基于卷积神经网络的深度图像描述方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347860A CN110347860A (zh) | 2019-10-18 |
CN110347860B true CN110347860B (zh) | 2021-07-09 |
Family
ID=68177726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910583139.6A Active CN110347860B (zh) | 2019-07-01 | 2019-07-01 | 基于卷积神经网络的深度图像描述方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347860B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111126282B (zh) * | 2019-12-25 | 2023-05-12 | 中国矿业大学 | 一种基于变分自注意力强化学习的遥感图像内容描述方法 |
CN112116685A (zh) * | 2020-09-16 | 2020-12-22 | 中国石油大学(华东) | 基于多粒度奖励机制的多注意力融合网络的图像字幕生成方法 |
CN112508096B (zh) * | 2020-12-08 | 2022-03-25 | 电子科技大学 | 一种基于几何自注意力机制的图像自动标注方法 |
CN114052795B (zh) * | 2021-10-28 | 2023-11-07 | 南京航空航天大学 | 一种结合超声自主扫描的病灶成像及防误扎治疗系统 |
CN115936073B (zh) * | 2023-02-16 | 2023-05-16 | 江西省科学院能源研究所 | 一种语言导向卷积神经网络及视觉问答方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391709A (zh) * | 2017-07-28 | 2017-11-24 | 深圳市唯特视科技有限公司 | 一种基于新型注意模型进行图像字幕生成的方法 |
US9836671B2 (en) * | 2015-08-28 | 2017-12-05 | Microsoft Technology Licensing, Llc | Discovery of semantic similarities between images and text |
CN108415888A (zh) * | 2018-02-12 | 2018-08-17 | 苏州思必驰信息科技有限公司 | 用于神经网络语言模型的压缩方法和系统 |
CN109447242A (zh) * | 2018-10-10 | 2019-03-08 | 复旦大学 | 基于迭代学习的图像描述重生成系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766324B (zh) * | 2017-09-25 | 2020-09-01 | 浙江大学 | 一种基于深度神经网络的文本一致性分析方法 |
-
2019
- 2019-07-01 CN CN201910583139.6A patent/CN110347860B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9836671B2 (en) * | 2015-08-28 | 2017-12-05 | Microsoft Technology Licensing, Llc | Discovery of semantic similarities between images and text |
CN107391709A (zh) * | 2017-07-28 | 2017-11-24 | 深圳市唯特视科技有限公司 | 一种基于新型注意模型进行图像字幕生成的方法 |
CN108415888A (zh) * | 2018-02-12 | 2018-08-17 | 苏州思必驰信息科技有限公司 | 用于神经网络语言模型的压缩方法和系统 |
CN109447242A (zh) * | 2018-10-10 | 2019-03-08 | 复旦大学 | 基于迭代学习的图像描述重生成系统及方法 |
Non-Patent Citations (1)
Title |
---|
"基于主动学习的人脸标注研究";孙金等;《计算机科学》;20180930;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110347860A (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347860B (zh) | 基于卷积神经网络的深度图像描述方法 | |
US11315570B2 (en) | Machine learning-based speech-to-text transcription cloud intermediary | |
Le | A tutorial on deep learning part 2: Autoencoders, convolutional neural networks and recurrent neural networks | |
KR102382499B1 (ko) | 번역 방법, 타깃 정보 결정 방법, 관련 장치 및 저장 매체 | |
WO2020140487A1 (zh) | 用于智能设备的人机交互语音识别方法及系统 | |
CN107480206B (zh) | 一种基于多模态低秩双线性池化的图像内容问答方法 | |
CN110929515A (zh) | 基于协同注意力和自适应调整的阅读理解方法及系统 | |
CN112115687B (zh) | 一种结合知识库中的三元组和实体类型的生成问题方法 | |
CN113934890B (zh) | 一种文字自动生成场景视频的方法及系统 | |
US11803618B2 (en) | N-best softmax smoothing for minimum bayes risk training of attention based sequence-to-sequence models | |
CN112560456B (zh) | 一种基于改进神经网络的生成式摘要生成方法和系统 | |
CN111125333B (zh) | 一种基于表示学习与多层覆盖机制的生成式知识问答方法 | |
US20210227223A1 (en) | System and methods for artificial intelligence explainability via symbolic generative modeling | |
CN111783423A (zh) | 解题模型的训练方法及装置、解题方法及装置 | |
CN112348911A (zh) | 基于语义约束的堆叠文本生成细粒度图像方法及系统 | |
Shankar et al. | Non-parallel emotion conversion using a deep-generative hybrid network and an adversarial pair discriminator | |
CN111402365B (zh) | 一种基于双向架构对抗生成网络的由文字生成图片的方法 | |
US11615247B1 (en) | Labeling method and apparatus for named entity recognition of legal instrument | |
CN113140023A (zh) | 一种基于空间注意力的文本到图像生成方法及系统 | |
US20220101122A1 (en) | Energy-based variational autoencoders | |
Shu et al. | Residual stacking of rnns for neural machine translation | |
CN113554040B (zh) | 一种基于条件生成对抗网络的图像描述方法、装置设备 | |
US20220101145A1 (en) | Training energy-based variational autoencoders | |
CN114925699A (zh) | 一种基于风格变换的高迁移性对抗文本生成方法 | |
CN114611488A (zh) | 一种知识增强的非自回归神经机器翻译方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |