一种基于元学习的无监督跨模态哈希检索方法与流程

文档序号:22470935发布日期:2020-10-09 22:01阅读:231来源:国知局
一种基于元学习的无监督跨模态哈希检索方法与流程

本发明涉及计算机视觉领域,更具体地,涉及一种基于元学习的无监督跨模态哈希检索方法。



背景技术:

随着信息化发展,多模态数据量的日益增多,跨模态检索的应用变得越来越重要,引起了人们的广泛关注,信息的存在方式并不是单一的,它是多种多样并且存在交叉。如何利用多种模态的信息互补帮助提高检索大规模数据库的效率变得尤为重要。

模态是指数据的存在形式,比如文本、音频、图像、视频等文件格式。虽然有些数据的存在形式不同,但都是描述同一事物或事件的。现有的检索技术主要为单模态检索和多模态检索。单模态检索要求查询词和检索集属于同一种模态类型,例如:查询词是图片,检索集也为图片集。而在多模态检索中,查询集和检索集必须至少有一个模态是相同的。例如:查询词是图片,文本,检索集是文本集。多模态检索融合了不同模态进行检索,利用不同模态的信息互补达到提高检索准确率的目的。而在跨模态检索中,查询的模态和检索集的模态是不同的,利用其中一种模态的数据作为查询,检索另一种模态的相关数据。例如:用图像数据检索文本数据。而在信息检索的需求往往不只是同一事件单一模态的数据,也可能需要其他模态的数据来丰富对同一事物或事件的认知,此时就需要跨模态检索来实现不同模态数据之间的检索。

多模态数据映射成二进制哈希码来完成检索的方法已经得到了广泛的研究,这些方法可分为三类:1)无监督方法;2)基于成对信息的方法;3)有监督方法。只利用同时出现的成对信息,例如:flicker数据集上的图像-标签对,是属于无监督方法。第二类方法利用了相似的成对信息和不相似的成对信息。有监督方法利用了标签信息。由于收集足够的相似性或标签信息,需要耗费大量的人力,因此本文研究的对象是无监督方法。

由于无监督方法缺乏大量标签信息,所以利用额外的无标签单模态数据集里预测梯度下降的方向,通过元学习的训练方法(maml),更新网络参数。元学习(metalearning),又叫做“学会学习”(learningtolearn),是利用以往的知识经验来指导新任务的学习,使模型具有学会学习的能力,而本发明的目的不是传统的适应新任务学习的目的,而是利用元学习的方法达到迁移学习的目的,从而获得更多弱监督信息。

申请号为201911065035.2的专利说明书中公开了一种多语义深度监督跨模态哈希检索方法,该方法利用深度神经网络,结合训练数据的监督语义信息,分别学习多个模态的哈希映射模型:将给定特定模态的图像查询数据送入到对应模态的神经网络中,通过深度网络所学习的哈希映射将图像模态数据转换为哈希码,然后与数据库中另一模态的哈希码进行距离的计算,最终返回与查询最相似的数据。然而,该专利无法实现利用元学习的方法达到迁移学习的目的,从而获得更多弱监督信息。



技术实现要素:

本发明提供一种基于元学习的无监督跨模态哈希检索方法,该方法实现利用元学习的方法达到迁移学习的目的,从而获得更多弱监督信息。

为了达到上述技术效果,本发明的技术方案如下:

一种基于元学习的无监督跨模态哈希检索方法,包括以下步骤:

s1:使用预训练好的resnet模型和bert模型提取辅助图像集、辅助文本集和目标跨模态数据集的高维实数特征;

s2:在特征提取模型后加上哈希检索表征转换层,即哈希模型;

s3:对辅助图像集和文本集进行聚类;

s4:利用元学习训练方法maml,在辅助数据集的帮助下对目标跨模态数据集进行训练,更新哈希模型;

s5:计算检索结果。

进一步地,所述步骤s1的具体过程是:

s11:利用预训练好的resnet模型提取辅助图像集的特征向量;

s12:利用预训练好的bert模型提取辅助文本集的特征向量。

进一步地,所述步骤s2的具体过程是:

s21:构建两个全连接层,分别将图像和文本从高维的特征向量映射成低维的实数向量,并且经过一个激活函数tanh,将向量上的实数元素的值映射到[-1,1]范围内,即图像哈希模型和文本哈希模型;

s22:在高维特征向量经过全连接层和激活函数后,通过将小于等于0的元素表示为0,将大于0的元素表示为1,把实数向量v转换为二进制码b,即哈希码,量化公式如下:

进一步地,所述步骤s3的具体过程是:

s31:随机选取k个聚类质心点{μ1,μ2,…,μk};

s32:对于每一个特征向量x(i),计算其与各聚类中心的距离dist(x(i),μj),把该特征向量划入距离最近的一个类x(i)∈μnearest;

s33:根据当前的划分情况,对于每个类重新计算聚类中心,假设对于类ci,其聚类中心为|ci|表示类ci里面的样本数量;

s34:重复步骤s32,s33,直到聚类中心的变化程度小于阈值或者达到最大运行次数,则停止运行;重复执行s31~s34步骤10次,选取一个最佳的聚类结果,并将辅助数据集中的特征向量及其对应的聚类结果标签保存下来。

进一步地,所述步骤s4的具体过程是:

s41:根据聚类过后的辅助单模态数据集,构建三元组<i,ipos,ineg>,<t,tpos,tneg>;

s42:将构建的单模态三元组输入到哈希网络中,计算三元组损失函数;

s43:通过三元组损失,计算网络参数的梯度,根据梯度值,计算网络权重,但是不更新网络参数;

s44:根据成对的目标跨模态数据集,构建三元组<ti,ii,ij>,<ii,ti,tj>,输入哈希网络,在s43步骤计算出来的网络参数的基础上,计算三元组损失函数,并更新网络参数。

进一步地,所述步骤s5中,计算检索准确性的过程如下:

s51:计算查询图像哈希码与所有文本哈希码之间汉明距离,汉明距离的计算方法是将对应位上的哈希码字做异或操作,并求和,即求不同取值的码元个数;

s52:按汉明距离从小到大排序,根据标签依次判断该图像是否与文本属于同类,同类即检索正确。

进一步地,步骤s52中,检索的平均正确率(ap)计算式为其中n+表示同类样本的个数,n表示检索集的总样本数,这里指文本哈希码的总个数,pk表示前k个样本的准确率,relk=1表示第k个样本与查询样本同类,反之,relk=0则为不同类。

进一步地,步骤s42中,三元组损失中的距离度量函数为欧式距离,以图像检索图像为例,根据聚类得到的标签,构建成了三元组<i,ipos,ineg>,其中i为目标样本,ipos为i的正样本,即同类图像,ineg为i的负样本,即不同类图像,它们输入到哈希网络得到的输出分别为hi(i),hi(ipos),hi(ineg),三元组损失如下:

m代表超参数margin,表示i和负样本ineg的距离与i和正样本ipos的距离的差最小为m。

进一步地,步骤s43,s44中,元学习训练方法maml训练方法具体如下:

通过辅助数据集构建的单模态三元组,计算梯度和梯度更新后的网络参数,仅仅计算梯度更新的网络参数,但不真正更新网络,图像哈希模型在经过一次梯度更新后的网络参数为其中,表示梯度,α表示辅助数据集的学习率,θi为原网络参数,θi′表示梯度更新后的网络参数;之后,通过目标数据集构建的跨模态三元组,并在之前计算的网络参数的基础上,计算三元组损失,并进行梯度回传,在原有网络参数上进行参数更新,θ={θi,θt},其中为跨模态三元组损失,代表在网络参数θ′的基础上计算的梯度,θ为原网络参数。

进一步地,步骤s42中,若构建跨模态三元组,以文本检索图像为例,默认成对的文本ti与图片ii的哈希码的相似度肯定要比不成对的ti和ij的哈希码的相似度要高,组成三元组<ti,ii,ij>,输入到哈希网络得到的输出分别为ht(ti),hi(ii),hi(ij),三元组损失如下:

与现有技术相比,本发明技术方案的有益效果是:

本发明使用预训练好的resnet模型和bert模型提取辅助图像集、辅助文本集和目标跨模态数据集的高维实数特征,并且经过哈希模型转换成二进制哈希码,从而减少存储空间;之后利用元学习训练方法(maml),在辅助数据集的帮助下对目标跨模态数据集进行训练,更新哈希模型,从而获得更多弱监督信息,使模型能够通过更多的信息进行训练,并提高检索的准确性。

附图说明

图1为本发明的算法流程图;

图2为本发明的maml方法示意图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

如图1-2所示,一种基于元学习的无监督跨模态哈希检索模型,包括以下步骤:

s1:使用预训练好的resnet模型和bert模型提取辅助图像集、辅助文本集和目标跨模态数据集的高维实数特征;

s2:在特征提取模型后加上哈希检索表征转换层,即哈希模型;

s3:对辅助图像集和文本集进行聚类;

s4:利用元学习训练方法(maml),在辅助数据集的帮助下对目标跨模态数据集进行训练,更新哈希模型。

s5:计算检索结果。

步骤s1的具体过程是:

s11:利用预训练好的resnet模型提取辅助图像集的特征向量(1000维);

s12:利用预训练好的bert模型提取辅助文本集的特征向量(768维)。

步骤s2的哈希模型的设计是:

s21:构建两个全连接层,分别将图像和文本从高维的特征向量映射成低维的实数向量,并且经过一个激活函数tanh,将向量上的实数元素的值映射到[-1,1]范围内,即图像哈希模型和文本哈希模型;

s22:在高维特征向量经过全连接层和激活函数后,通过将小于等于0的元素表示为0,将大于0的元素表示为1,把实数向量v转换为二进制码b,即哈希码。量化公式如下:

步骤s3的聚类(kmeans)具体步骤是:

s31:随机选取k个聚类质心点{μ1,μ2,…,μk};

s32:对于每一个特征向量x(i),计算其与各聚类中心的距离dist(x(i),μj),把该特征向量划入距离最近的一个类x(i)∈μnearest;

s33:根据当前的划分情况,对于每个类重新计算聚类中心,假设对于类ci,其聚类中心为|ci|表示类ci里面的样本数量;

s34:重复步骤s32,s33,直到聚类中心的变化程度小于阈值或者达到最大运行次数,则停止运行。重复执行s31~s34步骤10次,选取一个最佳的聚类结果,并将辅助数据集中的特征向量及其对应的聚类结果标签保存下来。

步骤s4的训练过程是:

s41:根据聚类过后的辅助单模态数据集,构建三元组<i,ipos,ineg>,<t,tpos,tneg>;

s42:将构建的单模态三元组输入到哈希网络中,计算三元组损失函数;

s43:通过三元组损失,计算网络参数的梯度,根据梯度值,计算网络权重,但是不更新网络参数;

s44:根据成对的目标跨模态数据集,构建三元组<ti,ii,ij>,<ii,ti,tj>,输入哈希网络,在s43步骤计算出来的网络参数的基础上,计算三元组损失函数,并更新网络参数。

步骤s5中,计算检索准确性(map)的过程如下(以图像检索文本为例):

s51:计算查询图像哈希码与所有文本哈希码之间汉明距离,汉明距离的计算方法是将对应位上的哈希码字做异或操作,并求和,即求不同取值的码元个数;

s52:按汉明距离从小到大排序,根据标签依次判断该图像是否与文本属于同类,同类即检索正确,平均准确率(ap)计算式为其中n+表示同类样本的个数,n表示检索集的总样本数,这里指文本哈希码的总个数,pk表示前k个样本的准确率,relk=1表示第k个样本与查询样本同类,反之,relk=0则为不同类。

步骤s42中,三元组损失中的距离度量函数为欧式距离,以图像检索图像为例,根据聚类得到的标签,构建成了三元组<i,ipos,ineg>,其中i为目标样本,ipos为i的正样本,即同类图像,ineg为i的负样本,即不同类图像,它们输入到哈希网络得到的输出分别为hi(i),hi(ipos),hi(ineg),三元组损失如下:

m代表超参数margin,表示i和负样本ineg的距离与i和正样本ipos的距离的差最小为m。

若构建跨模态三元组,以文本检索图像为例,默认成对的文本ti与图片ii的哈希码的相似度肯定要比不成对的ti和ij的哈希码的相似度要高,组成三元组<ti,ii,ij>,输入到哈希网络得到的输出分别为ht(ti),hi(ii),hi(ij),三元组损失如下:

步骤s43,s44中,maml训练方法具体如下:

通过辅助数据集构建的单模态三元组,计算梯度和梯度更新后的网络参数,仅仅计算梯度更新的网络参数,但不真正更新网络,图像哈希模型在经过一次梯度更新后的网络参数为其中,表示梯度,α表示辅助数据集的学习率,θi为原网络参数,θi′表示梯度更新后的网络参数。之后,通过目标数据集构建的跨模态三元组,并在之前计算的网络参数的基础上,计算三元组损失,并进行梯度回传,在原有网络参数上进行参数更新,θ={θi,θt},其中为跨模态三元组损失,代表在网络参数θ′的基础上计算的梯度,θ为原网络参数。

本发明使用预训练好的resnet模型和bert模型提取辅助图像集、辅助文本集和目标跨模态数据集的高维实数特征,并且经过哈希模型转换成二进制哈希码,从而减少存储空间;之后利用元学习训练方法(maml),在辅助数据集的帮助下对目标跨模态数据集进行训练,更新哈希模型,从而获得更多弱监督信息,使模型能够通过更多的信息进行训练,并提高检索的准确性。

相同或相似的标号对应相同或相似的部件;

附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1