本发明涉及计算机视觉领域,尤其涉及基于深度学习的跨模态检索方法。
背景技术:
随着信息时代的迅速发展,在线多媒体信息以惊人的速度增长,由于每个人都可以随时随地的发布各种多模态的信息,比如音乐、图片、视频音频等多种模态,信息变得多种多样的同时,准确的获取真正需要的信息也变得越来越困难。多模态的数据,不仅数据储量巨大以及大部分数据都是无标签数据,而且在多样的不同模态的数据有着难以跨越的“异构鸿沟”,所以如果构建不同模态之间的共享表示,提高精度和准确率,就是跨模态检索的重要性技术问题。
跨模态检索技术的核心是衡量不同数据之间的相似性。为了消除“异构鸿沟”,如何关联不同模态的信息成为了跨模态检索的关键,目前,大多数跨模态检索是将不同模态的样本映射到同一子空间。还可以根据使用信息分类为非监督方法和监督方法。监督方法则是使用了样本所带有的标签信息。
标签信息可以帮助不同的模态之间建立关系,因为不同的模态的样本具有相同的标签空间。目前所存在的方法中,标签更多地被视为另一个模态,或应用于计算相似度。为了提高跨模态检索的准确率和效率,我们不仅利用标签信息考虑到了模态间的关联,模态内的关联也至关重要。
技术实现要素:
本发明提出一种基于深度学习的有监督跨模态检索方法。该方法可以有效提高跨模态检索的效率和准确率。
本发明分别利用两个网络结构分别进行,利用densenet网络提取图片样本的高级语义表示,先利用word2vec预训练词向量,并通过文本cnn提取文本样本的高级语义表示。
该方法具体包括以下步骤:
步骤1:数据的预处理,对训练集的文本样本进行预训练。
步骤2:设计网络结构模型。
网络结构采用双cnn同时进行。通过densenet网络提取图片样本的高级语义表示。对于文本样本,先利用word2vec预训练词向量,再通过textcnn提取文本的高级语义表示。
步骤3:训练网络。将训练集中的样本(图片样本和文本样本)输入到编码器进行特征提取。
步骤4:计算网络的损失函数。进行反向传播,通过选定的优化器和相应参数对连接权重进行优化。训练多轮后得到最终的网络模型。
我们将损失函数设定为标签信息空间的损失,公共空间中两种模态下所有的样本的辨别力损失以及模态不变性损失。其中利用了三元组损失以及直接测量的方法得到损失函数的目标函数。
步骤5:对网络模型进行测试。将测试集的图像文本输入到训练好的模型,得到预测的图像文本的高级语义表示,通过计算得到的平均精度均值(map)对模型进行评估。
本发明有益效果如下:
传统的利用标签信息的跨模态检索,往往只考虑到了模态间的内容相似度,本发明仅考虑了标签信息空间的损失,还考虑到了公共空间中两种模态下所有的样本的辨别力损失以及模态不变性损失。对比现有的方法,本发明方法在不同的数据下分别提高了0.01~0.06个指标。
附图说明
图1是网络结构示意图;
具体实施方式
下面根据附图详细说明本发明,本发明的目的和效果将变得更加明显。
图1是跨模态检索系统的网络结构图。该系统呈现一个双层cnn结构,包含densenet图片网络和文本cnn网络。利用densenet获取4069维图片样本的向量。使用文本cnn获取300维的句子向量。
densenet的网络结构主要由denseblock和transition组成,denseblock采用densenet-b的结构,利用bootleneck层来减少计算量,在原有的结构中增加1x1conv。transition层,它主要是连接两个相邻的denseblock,并且降低特征图大小,最终获得4096维图片高级语义特征向量然后进行公共表示学习得到每个图片的公共表示。同样,遵循多个完全连通的层来学习文本的公共表示。我们用u=[u1,u2,...,un],v=[v1,v2,...,vn]以及y=[y1,y2,...,yn]来表示所有实例的图像表示矩阵、文本表示矩阵和标签矩阵。
我们强制这两个子网络共享最后一层权重,以确保这两个子网络为了学习图像和文本模式的共同表示空间。
步骤3训练网络,将图片训练数据的原始特征输入图片深度网络,将文本训练数据的原始特征输入文本深度网络。
步骤4是构造损失函数,并计算每一次向前传播的误差,通过反向传播算法对网络的权重进行更新。
将损失函数设置为:标签信息空间的损失、公共空间中两种模态下所有的样本的辨别力损失以及模态不变性损失。为了了解多媒体数据的鉴别特征,减小鉴别的误差损失,提出了在标签空间和公共表示空间中最小化鉴别损失。
标签信息空间中的损失是指利用一个线性分类器预测投影在公共表示空间中的样本的语义标签,用来保持特征投影后不同类别样本的区分性。
提出以下来衡量标签信息空间中的损失:
其中||·||f表示frobenius范数,p是线性分类器的投影矩阵,n是其所有的类别数。
此外利用三元组损失计算模态不变性损失公式。为了消除跨模态差异,尽量消除图像-文本对之间的距离。
设定目标样本ui为图像anchor,令vp为文本positive样本的距离比其他文本negative样本vn更为接近。计算公式如下:
其中||·||是为欧式距离,α指的是度量裕度。同理可以得到文本样本为anchor,图片样本为positive以及negative样本的计算公式:
由此可以看出由三元组计算尽量减小图像-文本对的距离,样本模态不变性损失的目标函数为:
其中,n表示所有的类别数。
对于两种模态下所有样本在共同表征空间中的损失,采取直接测量,其中模态间样本相似性的负对数似然计算方式为:
其中模态间样本相似性的负对数似然计算方式为:
图像模态间的计算方式:
文本模态间的计算方式为:
其中
所以两种模态下所有样本在共同表征空间中的损失为:
结合方程⑴、⑷、⑻得到跨模态检索损失函数的目标函数:
其中λ和μ是控制最后两个分量贡献的超参数。
最后保存好训练结束的模型,通过测试集进行测试,计算各项评价指标。
在这次实施例子中进行实施的数据集是pascalsentencedataset。该数据集总共有1000幅图像组成,被分为20个类别,每个图像都有5个对应的句子。我们选择40个图像-文本样本对进行训练,5个用于测试,5个用于验证。
在这次实施的过程中采取的评价指标是平均精度均值(map),平均精度均值是预测目标位置以及类别这一类算法的性能度量标准。
1.一种基于深度学习的跨模态检索方法,其特征在于包括如下步骤:
步骤1:数据的预处理,对训练集的文本样本进行预训练;
步骤2:设计网络结构模型;
网络结构模型采用双cnn同时进行:对于图片样本,通过densenet网络提取图片样本的高级语义表示;对于文本样本,先利用word2vec预训练词向量,再通过textcnn提取文本的高级语义表示;
步骤3:训练网络;将训练集中的样本输入到编码器进行特征提取;
步骤4:计算网络的损失函数;
进行反向传播,通过选定的优化器和相应参数对连接权重进行优化,训练多轮后得到最终的网络模型;
将损失函数设定为标签信息空间的损失,公共空间中两种模态下所有的样本的辨别力损失以及模态不变性损失;其中利用了三元组损失以及直接测量的方法得到损失函数的目标函数;
步骤5:对网络模型进行测试;将测试集的图像文本输入到训练好的模型,得到预测的图像文本的高级语义表示,通过计算得到的平均精度均值对模型进行评估。
2.根据权利要求1所述的一种基于深度学习的跨模态检索方法,其特征在于双层cnn结构,包含densenet图片网络和文本cnn网络;利用densenet获取4069维图片样本的向量;使用文本cnn获取300维的句子向量;densenet的网络结构主要由denseblock和transition组成,denseblock采用densenet-b的结构,利用bootleneck层来减少计算量,在原有的结构中增加1x1conv;transition层,它主要是连接两个相邻的denseblock,并且降低特征图大小,最终获得4096维图片高级语义特征向量然后进行公共表示学习得到每个图片的公共表示;同样,遵循多个完全连通的层来学习文本的公共表示;用u=[u1,u2,...,un],v=[v1,v2,...,vn]以及y=[y1,y2,...,yn]来表示所有实例的图像表示矩阵、文本表示矩阵和标签矩阵。
3.根据权利要求2所述的一种基于深度学习的跨模态检索方法,其特征在于强制这两个子网络共享最后一层权重,以确保这两个子网络为了学习图像和文本模式的共同表示空间。
4.根据权利要求3所述的一种基于深度学习的跨模态检索方法,其特征在于步骤4具体实现如下:
将损失函数设置为:标签信息空间的损失、公共空间中两种模态下所有的样本的辨别力损失以及模态不变性损失;
标签信息空间中的损失是指利用一个线性分类器预测投影在公共表示空间中的样本的语义标签,用来保持特征投影后不同类别样本的区分性;
提出以下来衡量标签信息空间中的损失:
其中||·||f表示frobenius范数,p是线性分类器的投影矩阵,n是其所有的类别数;
此外利用三元组损失计算模态不变性损失公式;设定目标样本ui为图像anchor,令vp为文本positive样本的距离比其他文本negative样本vn更为接近;计算公式如下:
其中||·||是为欧式距离,α指的是度量裕度;同理得到文本样本为anchor,图片样本为positive以及negative样本的计算公式:
由此看出由三元组计算尽量减小图像-文本对的距离,样本模态不变性损失的目标函数为:
其中,n表示所有的类别数;
对于两种模态下所有样本在共同表征空间中的损失,采取直接测量,其中模态间样本相似性的负对数似然计算方式为:
图像模态间的计算方式:
文本模态间的计算方式为:
其中
所以两种模态下所有样本在共同表征空间中的损失为:
结合方程⑴、⑷、⑻得到跨模态检索损失函数的目标函数:
其中λ和μ是控制最后两个分量贡献的超参数。
技术总结