跨模态检索方法、装置、设备及计算机可读存储介质与流程

    专利2022-07-08  94


    本申请涉及计算机领域,尤其涉及一种跨模态检索方法、一种跨模态检索装置、一种跨模态检索设备及一种计算机可读存储介质。



    背景技术:

    随着智能移动终端的普及,每个用户可以随时随地的发布与接收包括文本、图片、视频、音频等在内的多种模态数据,这带来了丰富的内容。然而,丰富的内容给用户带来更多的往往是选择的痛苦,获取真正需求的信息变得愈发困难。丰富的信息需要经过精准的筛选呈现在用户面前,对于检索系统,需要以用户为中心提供精准化的检索与服务。因此,跨模态检索系统成为了当今关注的热点。

    例如,图像文本跨模态检索是一个重要且具有挑战性的经典计算机视觉任务,在搜索引擎、智能网上商城、学前教育等领域具有广泛的应用。而当前的检索仅仅停留在单模态阶段,比如当前主流搜索引擎虽然可以做到用户输入文本返回系列图片或图像,但这种检索依赖的是图片本身标注好的文本信息,所以本质上仍然是以文本搜索文本的单模态检索。

    现有技术中公开有基于生成式对抗网络的跨模态检索方法,包括步骤1、先利用特征提取方法对输入模态的数据和目标模态的数据进行特征提取,步骤2、建立和训练生成式对抗网络(generativeadversarialnetworks,gan)模型,使得gan模型可由输入模态的数据生成目标模态的数据,步骤3、利用gan模型生成的目标模态的数据与步骤1中获取的对应模态的数据进行相似度匹配,即进行欧式距离的计算;步骤4、将欧式距离的计算结果从小到大排列,从而得到跨模态检索的结果;欧式距离越小,排名越靠前的结果与检索目标的相似度越高。

    然而,不同模态的样本之间具有异质性,给跨模态衡量样本相似性带来很大困难;同时由于标准训练数据集较少,无法去学习到一个更具判别力的嵌入子空间,因此对一些难样本进行有效的区分和检索。



    技术实现要素:

    本申请实施例所要解决的技术问题在于,提供一种跨模态检索方法、一种跨模态检索装置、一种跨模态检索设备及一种计算机可读存储介质,能够区分噪点和密集纹理,解决现有技术中不同模态的样本之间具有异质性,给跨模态衡量样本相似性带来很大困难的技术问题,并能够提高跨模态检索的准确率。

    为了解决上述技术问题,本申请实施例一方面公开了一种跨模态检索方法,包括:

    获取第一模态数据和待检索的第二模态数据;

    将所述第一模态数据和所述第二模态数据输入训练好的跨模态检索网络;

    通过所述跨模态检索网络提取所述第一模态数据的第一特征和所述第二模态数据的第二特征,根据所述第一特征和所述第二特征的匹配度输出检索结果;所述检索结果用于表征从所述第一模态数据中检索出的与所述第二模态数据匹配的数据;

    其中,所述跨模态检索网络包括利用神经网络基于数据集中的原始数据和生成数据进行训练而来的网络;所述生成数据包括由生成式对抗网络中训练好的生成器基于所述原始数据生成的数据;所述生成器与所述生成式对抗网络中的判别器同时进行训练,用于将所述原始数据中属于第二模态的数据生成属于第一模态的数据。

    本申请实施例另一方面公开了一种跨模态检索方法,包括:

    基于数据集中的原始数据对生成式对抗网络中的生成器以及判别器进行训练;

    通过训练好的生成器基于所述原始数据生成的生成数据;所述生成器用于对所述原始数据中属于第二模态的数据生成属于第一模态的数据;

    利用神经网络基于所述原始数据和所述生成数据训练得到跨模态检索网络;其中,所述跨模态检索网络用于对输入的第一模态数据和待检索的第二模态数据进行特征提取,并输出检索结果;所述检索结果用于表征从所述第一模态数据中检索出的与所述第二模态数据匹配的数据。

    本申请实施例另一方面公开了一种跨模态检索装置,包括:

    数据获取单元,用于获取第一模态数据和待检索的第二模态数据;

    数据输入单元,用于将所述第一模态数据和所述第二模态数据输入训练好的跨模态检索网络;

    检索单元,用于通过所述跨模态检索网络提取所述第一模态数据的第一特征和所述第二模态数据的第二特征,根据所述第一特征和所述第二特征的匹配度输出检索结果;所述检索结果用于表征从所述第一模态数据中检索出的与所述第二模态数据匹配的数据;

    其中,所述跨模态检索网络包括利用神经网络基于数据集中的原始数据和生成数据进行训练而来的网络;所述生成数据包括由生成式对抗网络中训练好的生成器基于所述原始数据生成的数据;所述生成器与所述生成式对抗网络中的判别器同时进行训练,用于将所述原始数据中属于第二模态的数据生成属于第一模态的数据。

    本申请实施例另一方面公开了一种跨模态检索装置,包括:

    第一训练单元,用于基于数据集中的原始数据对生成式对抗网络中的生成器以及判别器进行训练;

    数据生成单元,用于通过训练好的生成器基于所述原始数据生成的生成数据;所述生成器用于对所述原始数据中属于第二模态的数据生成属于第一模态的数据;

    第二训练单元,用于利用神经网络基于所述原始数据和所述生成数据训练得到跨模态检索网络;其中,所述跨模态检索网络用于对输入的第一模态数据和待检索的第二模态数据进行特征提取,并输出检索结果;所述检索结果用于表征从所述第一模态数据中检索出的与所述第二模态数据匹配的数据。

    本申请实施例另一方面公开了一种跨模态检索设备,其特征在于,包括处理器,所述处理器,其中,所述处理器被配置用于调用存储的跨模态检索程序,执行上述跨模态检索方法。

    本申请实施例另一方面公开了一种计算机可读存储介质,所述计算机存储介质存储有程序指令,所述程序指令当被处理器执行时使所述处理器执行上述跨模态检索方法。

    实施本申请实施例,利用神经网络基于数据集中的原始数据和生成数据对跨模态检索网络进行训练;该生成数据包括由生成式对抗网络中训练好的生成器基于该原始数据生成的数据;该生成器与该生成式对抗网络中的判别器同时进行训练,用于将该原始数据中属于第二模态的数据生成属于第一模态的数据。通过生成数据能够有效的扩充数据集,并且能够与很多的模型结构相结合,具有较高的普适性;通过采用更多的训练数据,能够学习到一个更有判别力的嵌入特征子空间,能够挖掘跨模态之间的细粒度匹配关系,增强样本间区分度,同时减少模态间的异构性,获得更好的嵌入空间内的跨模态之间的判别特征,从而能够降低不同模态之间相似性判断的难度,从而有效地提升跨模态检索的准确性。并且,为了达到本申请跨模态检索的准确性,本申请通过引入的增强嵌入空间模型(即更有判别力的嵌入特征子空间),并通过生成对抗时网络结合强化学习的训练策略来扩充训练数据,相对于现有技术而言运算效率更高,占用的计算机运算资源更少,因此可以提高计算机性能。

    附图说明

    为了说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作介绍。

    图1是本申请实施例中一种系统架构的示意性框图;

    图2是本申请实施例提供的一种芯片硬件结构;

    图3是本申请实施例提供的跨模态检索方法的流程示意图;

    图4是本申请提供的跨模态检索方法的另一实施例的流程示意图;

    图5是本申请提供的跨模态检索方法的另一实施例的流程示意图;

    图6是本申请实施例中一种卷积神经网络的示意性框图;

    图7是本申请实施例提供的跨模态检索装置的结构示意图;

    图8是本申请提供的跨模态检索装置的另一实施例的结构示意图;

    图9是本申请实施例提供的一种跨模态检索设备的结构示意图;

    图10是本申请实施例中另一种跨模态检索设备的示意性框图。

    具体实施方式

    下面将结合本申请实施例中的附图,进行说明。

    为了更好的理解本申请实施例提供的跨模态检测方法,先说明该跨模态检测方法可以应用的技术场景。具体而言,本申请实施例的跨模态检测方法可以应用在如下所示的场景a、场景b和场景c中,但本申请实施例的跨模态检测方法不限于这三种应用场景。下面分别对场景a、场景b和场景c进行简单的介绍。

    场景a:

    针对图像数据、文本数据进行检索匹配。当用户查看某张图像或图片时,想要描述该图像的内容或属性等,当前用户往往只能靠自身的认知能力和描述能力,来写出该图像的内容或属性等信息。而通过本申请实施例的跨模态检索方法,可以将目标图像作为查询输入来自动生成与该目标图像匹配的文本描述,并推荐给用户,那么用户除了靠自身的认知能力和描述能力,还可以参考该生成的文本描述来得到该图像的内容或属性等信息。

    场景b:

    针对图像数据、语音数据进行检索匹配。例如手机智能语音搜图,当前智能手机都搭载了语音助手,但是面对手机中的海量图片或者视频,这些语音助手却无法根据用户的语音来搜到相应的图像视频。这本身就是一个跨模态检索问题,涉及到用户语音的识别和理解,然后跟手机相册中的图像内容进行匹配。通过本申请实施例的跨模态检索方法,可以将用户语音作为查询输入,通过在手机相册中的图像内容进行检索匹配,自动生成与该用户语音匹配的图像。

    场景c:

    针对视频数据、音乐数据的检索匹配。例如给娱乐短视频/广告视频配乐。当用户录制一个娱乐短视频例如抖音视频时,对其进行配乐时特别重要的,但是当前软件都要求用户去手动寻找适合该视频内容的音乐。通过本申请实施例的跨模态检索方法,可以利用跨模态检索的技术把视频作为查询来自动寻找与之最为匹配的音乐,进行个性化推荐,例如主要是考虑视频的动作、镜头转换要与音乐节拍等进行匹配。

    下面从模型训练侧和模型应用侧对本申请提供的方法进行描述:

    本申请实施例提供的跨模态检测方法涉及的训练方法,涉及计算机视觉的处理或自然语言的处理,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对数据集中训练数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的跨模态检索网络或跨模态检索模型;并且,本申请实施例提供的跨模态检测方法可以运用生成式对抗网络中训练好的生成器和判别器,将输入数据输入到所述训练好的生成器中,得到生成数据。在跨模态检索网络训练完毕后,通过本申请实施例提供的跨模态检测方法可以利用该跨模态检索网络对输入的不同模态的数据进行检索匹配,得到检索结果。

    由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。

    (1)图像识别

    本申请实施例中,图像识别是利用图像处理和机器学习、计算机图形学等相关方法,根据图像识别图像所属的分类或者图像的属性等。例如,场景a和场景b中,识别图像的内容、属性或所属的分类等等。

    (2)文本识别

    本申请实施例中,文本识别也成为自然语言识别,是利用语言学、计算机科学、人工智能等相关方法,根据文本识别文本所表达的意图、情感或者其他属性等。

    (3)神经网络

    神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:

    其中,s=1、2、……n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activationfunctions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。

    (4)深度神经网络

    深度神经网络(deepneuralnetwork,dnn),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从dnn按不同层的位置划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i 1层的任意一个神经元相连。虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,b是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于dnn层数多,则系数w和偏移向量b的数量也就很多了。这些参数在dnn中的定义如下所述:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第l-1层的第k个神经元到第l层的第j个神经元的系数定义为需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。

    (5)卷积神经网络

    卷积神经网络(cnn,convolutionalneuronnetwork)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(featuremap)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。

    卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。

    (6)循环神经网络(rnn,recurrentneuralnetworks)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。rnn之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,rnn能够对任何长度的序列数据进行处理。对于rnn的训练和对传统的cnn或dnn的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将rnn进行网络展开,那么其中的参数,如w,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法backpropagationthroughtime(bptt)。

    既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?rnn就应运而生了。rnn旨在让机器像人一样拥有记忆的能力。因此,rnn的输出就需要依赖当前的输入信息和历史的记忆信息。

    (7)损失函数

    在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(lossfunction)或目标函数(objectivefunction),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。

    例如,本申请中,在对初始样本生成器的优化过程中,因为希望初始样本生成器的输出的第一生成样本尽可能的接近真实样本。由于预设判别器为训练好的神经网络,预设判别器可以准确识别真实样本所属的分类。当预设判别器可以准确识别第一生成样本所属的分类时,可以认为第一生成样本和真实样本特性相似,即接近真实样本。因此,通过比较预设判别器对第一生成样本的判定结果与和真正想要的真实结果,再根据两者之间的差异情况来更新初始样本生成器中每一层神经网络的权重向量(当然,在第一次更新之前通常会有过程,即为初始样本生成器中的各层预先配置参数),比如,如果预设判别器的判定结果的值高了,就调整权重向量让它的值低一些,不断的调整,直到预设判别器能够预测出与真实结果非常接近的值。因此,就需要预先定义“如何比较判定结果和真实结果之间的差异”,这便是损失函数(lossfunction)或目标函数(objectivefunction),它们是用于衡量判定结果和真实结果的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么初始样本生成器的训练就变成了尽可能缩小这个loss的过程。

    (8)反向传播算法

    卷积神经网络可以采用误差反向传播(backpropagation,bp)算法在训练过程中修正初始样本生成器中参数的大小,使得初始样本生成器的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始样本生成器中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的目标样本生成器的参数,例如权重矩阵。

    (9)生成式对抗网络

    生成式对抗网络(generativeadversarialnetworks,gan)是一种深度学习模型。该模型中至少包括两个模块:一个模块是生成模型(generativemodel,本申请实施例中也称生成网络),另一个模块是判别模型(discriminativemodel,本申请实施例中也称为判别网络),通过这两个模块互相博弈学习,从而产生更好的输出。生成模型和判别模型都可以是神经网络,具体可以是深度神经网络,或者卷积神经网络。gan的基本原理如下:以生成图片的gan为例,假设有两个网络,g(generator)和d(discriminator),其中g是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做g(z);d是一个判别网络,用于判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出d(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,如果为0,就代表不可能是真实的图片。在对该生成式对抗网络进行训练的过程中,生成网络g的目标就是尽可能生成真实的图片去欺骗判别网络d,而判别网络d的目标就是尽量把g生成的图片和真实的图片区分开来。这样,g和d就构成了一个动态的“博弈”过程,也即“生成式对抗网络”中的“对抗”。最后博弈的结果,在理想的状态下,g可以生成足以“以假乱真”的图片g(z),而d难以判定g生成的图片究竟是不是真实的,即d(g(z))=0.5。这样就得到了一个优异的生成模型g,它可以用来生成图片。

    下面介绍本申请实施例提供的系统架构。

    参见附图1,本申请实施例提供了一种系统架构100。如所述系统架构100所示,数据采集设备160用于采集训练数据,本申请实施例中训练数据包括:多种模态的数据,比如图像或图片数据、文本数据、视频数据、音乐数据等等;并将训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据和预设判别器121训练得到训练后的目标生成器101。训练过程可包括,训练设备120将第一训练数据输入初始生成器122,得到第一生成样本,初始生成器122可以为深度神经网络;进一步地,将第一生成样本输入预设判别器121,得到判别结果,其中,该预设判别器121是经过第一训练数据训练得到的,第一训练数据包括真实样本和真实样本对应的分类;进而,根据判别结果确定第一生成样本的真实结果,根据第一真实样本的真实结果与判别结果的差异等更新初始生成器122,得到目标生成器101。训练设备120基于训练数据得到目标生成器101的详细描述可参见下述实施例的相关描述,此处不对此展开。在训练生成器的同时本申请实施例的跨模态检索方法也基于训练数据对预设判别器121进行训练,得到训练后的目标判别器102,详细描述可参见下述实施例的相关描述,此处不对此展开。

    由于进行跨模态检索的标准训练数据集为预先存在匹配关系的多模态数据,因此该标准训练数据集较少,本申请实施例通过训练得到的目标生成器101基于数据库130中的数据生成得到生成数据,然后将该生成数据添加到该数据库130中,从而能够有效的扩大训练数据集。

    训练设备120基于数据库130中原先存在的原始训练数据(即原始数据)以及添加的生成数据,对跨模态检索网络进行训练,得到训练后的跨模态检索网络103,执行设备110即可利用训练后的跨模态检索网络103对输入的跨模态数据进行检索匹配,输出检索结果。详细描述可参见下述实施例的相关描述,此处不对此展开。

    需要说明的是,在实际的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标样本生成器101的训练,也有可能从云端获取或者自己生成训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。

    根据训练设备120训练得到的目标样本生成器101可以应用于不同的系统或设备中,如应用于图1所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,ar/vr,车载终端等,还可以是服务器或者云端等。

    值得注意的是,附图1仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。

    下面介绍本申请实施例提供的一种芯片硬件结构。

    图2为本申请实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器20。该芯片可以被设置在如图1所示的执行设备110中,用以完成计算模块171的计算工作。该芯片也可以被设置在如图1所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型/规则101。卷积神经网络中各层的算法均可在如图2所示的芯片中得以实现。

    神经网络处理器20可以是npu,tpu,或者gpu等一切适合用于大规模异或运算处理的处理器。以npu为例:npu可以作为协处理器挂载到主cpu(hostcpu)上,由主cpu为其分配任务。npu的核心部分为运算电路203,通过控制器204控制运算电路203提取存储器(201和202)中的矩阵数据并进行乘加运算。

    在一些实现中,运算电路203内部包括多个处理单元(processengine,pe)。在一些实现中,运算电路203是二维脉动阵列。运算电路203还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路203是通用的矩阵处理器。

    举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路203从权重存储器202中取矩阵b的权重数据,并缓存在运算电路203中的每一个pe上。运算电路203从输入存储器201中取矩阵a的输入数据,根据矩阵a的输入数据与矩阵b的权重数据进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)208中。

    统一存储器206用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(dmac,directmemoryaccesscontroller)205,被搬运到权重存储器202中。输入数据也通过dmac被搬运到统一存储器206中。

    总线接口单元(biu,businterfaceunit)210,用于dmac和取指存储器(instructionfetchbuffer)209的交互;总线接口单元201还用于取指存储器209从外部存储器获取指令;总线接口单元201还用于存储单元访问控制器205从外部存储器获取输入矩阵a或者权重矩阵b的原数据。

    dmac主要用于将外部存储器ddr中的输入数据搬运到统一存储器206中,或将权重数据搬运到权重存储器202中,或将输入数据搬运到输入存储器201中。

    向量计算单元207多个运算处理单元,在需要的情况下,对运算电路203的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。向量计算单元207主要用于神经网络中非卷积层,或全连接层(fc,fullyconnectedlayers)的计算,具体可以处理:pooling(池化),normalization(归一化)等的计算。例如,向量计算单元207可以将非线性函数应用到运算电路203的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元207生成归一化的值、合并值,或二者均有。

    在一些实现中,向量计算单元207将经处理的向量存储到统一存储器206。在一些实现中,经向量计算单元207处理过的向量能够用作运算电路203的激活输入,例如用于神经网络中后续层中的使用,如图2所示,若当前处理层是隐含层1(231),则经向量计算单元207处理过的向量还可以被用到隐含层2(232)中的计算。

    控制器204连接的取指存储器(instructionfetchbuffer)209,用于存储控制器204使用的指令;

    统一存储器206,输入存储器201,权重存储器202以及取指存储器209均为on-chip存储器。外部存储器独立于该npu硬件架构。

    其中,图2所示的卷积神经网络中各层的运算可以由运算电路203或向量计算单元207执行。

    下面详细描述本申请实施例涉及的方法。

    图3为本申请实施例提供的跨模态检索方法的流程示意图,该方法具体可以由如图1所示的训练设备120执行。

    可选的,该方法可以由cpu处理,也可以由cpu和gpu共同处理,也可以不用gpu,而使用其他适合用于神经网络计算的处理器,如图2所示的神经网络处理器20,本申请不做限制。该方法可以包括如下部分或全部步骤:

    步骤s300:基于数据集中的原始数据对生成式对抗网络中的生成器以及判别器进行训练;

    具体地,可以基于数据集中的原始数据,采用最大似然准则对生成式对抗网络中的生成器进行训练,基于所述生成器生成的数据采用三类判别损失函数对生成式对抗网络中的判别器进行训练;将训练后的生成器通过强化学习策略进行训练,同时继续采用三类判别损失函数对生成式对抗网络中的判别器进行训练。

    在其中一种实施方式中,所述基于数据集中的原始数据,采用最大似然准则对生成式对抗网络中的生成器进行训练,可以具体包括:基于数据集中的原始数据,利用最大似然准则损失函数并采用亚当(adam)优化算法进行初始化训练。所述将训练后的生成器通过强化学习策略进行训练,可以具体包括:引入强化学习策略和蒙特卡洛搜索技术,采用adam优化算法对初始化训练后的生成器进行训练,直至收敛。

    在其中一种实施方式中,可以利用三类判别损失函数对生成式对抗网络中的判别器进行训练,分别使得由生成器生成的样本的标签为假,真实样本的标签为真。同时判断图像内容和文本描述内容是否匹配。同时采用“adam优化算法”进行初始化训练。

    步骤s302:通过训练好的生成器基于所述原始数据生成的生成数据;

    具体地,所述生成器用于对所述原始数据中属于第二模态的数据生成属于第一模态的数据。也就是说,本申请实施例的跨模态检索方法并非对两种模态数据的特征从两个方向来进行对抗式生成,而是从一种模态单方向、端到端地到另一种模态的生成;本申请实施例并非主要为了利用对抗学习来拉近跨模态数据的语义鸿沟,即并非主要为了强制拉近跨模态数据之间的语音鸿沟,而是主要为了合成更多数据,来强化模型训练。

    例如,以图像文本跨模态检索为例,本申请实施例并非对图像文本的特征从两个方向来进行对抗式生成,而是从原始图像单方向、端到端地到文本的生成。本申请实施例更多是为了从图像数据生成文本数据,以合成更多数据,来强化模型训练。

    步骤s304:利用神经网络基于所述原始数据和所述生成数据训练得到跨模态检索网络。

    具体地,基于所述原始数据和所述生成数据,使用长短时记忆网络提取属于第一模态的数据的第一特征,使用深度神经网络提取属于第二模态的数据的第二特征,并采用线性变换映射到嵌入子空间中;在所述嵌入子空间中计算每一对属于第一模态的数据和属于第二模态的数据的余弦相似度,并采用三元组损失函数对每一个输入批量进行训练,采用adam优化算法进行训练,直到模型收敛,得到跨模态检索网络。

    实施本申请实施例,利用神经网络基于数据集中的原始数据和生成数据对跨模态检索网络进行训练;该生成数据包括由生成式对抗网络中训练好的生成器基于该原始数据生成的数据;该生成器与该生成式对抗网络中的判别器同时进行训练,用于将该原始数据中属于第二模态的数据生成属于第一模态的数据。通过生成数据能够有效的扩充数据集,并且能够与很多的模型结构相结合,具有较高的普适性;通过采用更多的训练数据,能够学习到一个更有判别力的嵌入特征子空间,能够挖掘跨模态之间的细粒度匹配关系,增强样本间区分度,同时减少模态间的异构性,获得更好的嵌入空间内的跨模态之间的判别特征,从而能够降低不同模态之间相似性判断的难度,从而有效地提升跨模态检索的准确性。

    本申请实施例中的跨模态检索网络用于对输入的第一模态数据和待检索的第二模态数据进行特征提取,并输出检索结果;所述检索结果用于表征从所述第一模态数据中检索出的与所述第二模态数据匹配的数据。

    下面结合图4示出的本申请提供的跨模态检索方法的另一实施例的流程示意图,该方法具体可以由如图1所示的执行设备110执行。

    可选的,该方法可以由cpu处理,也可以由cpu和gpu共同处理,也可以不用gpu,而使用其他适合用于神经网络计算的处理器,如图2所示的神经网络处理器20,本申请不做限制。该方法可以包括如下部分或全部步骤:

    步骤s400:获取第一模态数据和待检索的第二模态数据;

    具体地,本申请实施例的第一模态与第二模态为两种不同的模态,例如第一模态为文本,第二模态为图像;或者第一模态为音乐,第二模态为视频,等等。

    步骤s402:将所述第一模态数据和所述第二模态数据输入训练好的跨模态检索网络;

    具体地,所述跨模态检索网络包括利用神经网络基于数据集中的原始数据和生成数据进行训练而来的网络;所述生成数据包括由生成式对抗网络中训练好的生成器基于所述原始数据生成的数据;所述生成器与所述生成式对抗网络中的判别器同时进行训练,用于将所述原始数据中属于第二模态的数据生成属于第一模态的数据。该跨模态检索网络可以为通过上述图3实施例训练出来的检索网络,这里不再赘述。

    步骤s404:通过所述跨模态检索网络提取所述第一模态数据的第一特征和所述第二模态数据的第二特征,根据所述第一特征和所述第二特征的匹配度输出检索结果。

    下面以第一模态数据为文字数据,第二模态数据为图像数据为例,结合图5示出的本申请提供的跨模态检索方法的另一实施例的流程示意图,进行说明。在对生成式对抗网络中的生成器以及判别器进行训练之前,还可以对图像数据进行增强处理,具体可以包括如下步骤:

    步骤s500:将训练数据集中的图像数据归一化成统一的大小,然后对于归一化后的数据,随机的采取镜像的处理方式,进行图像数据增强;

    步骤s502:将增强后的图像数据送入预训练好的某深度主干卷积神经网络中;

    具体地,可以选取深度主干卷积神经网络的某一中间卷积层的输出特征图,使用全连接层进行图像的特征进行进一步提取;利用得到的图像特征向量经过线性映射作为初始全局图像特征向量。

    在其中一种实施方式中,若对文本数据进行特征提取时,本申请实施例可以采用双向循环神经网络框架来提取文本描述特征,具体步骤可以为:

    利用某自然语言句法分析工具,提取句子中的m个名词短语,对短语中的每个单词,首先进行词向量嵌入,而后将这些词向量按序输入双向循环神经网络中,将最终双向隐含状态的输出进行串联,并经过线性变换,得到每个短语对应的特征向量;对于文本描述,首先对于句子中的每个单词进行词向量嵌入,而后将这些词向量按序输入长短时记忆网络中,得到初始文本描述特征向量。

    步骤s504:采用最大似然准则对生成式对抗网络中的生成器进行训练;采用三类判别损失函数对生成式对抗网络中的判别器进行训练;

    具体地,本申请实施例可以分别使得由生成器生成的样本的标签为假,真实样本的标签为真。同时判断图像内容和文本描述内容是否匹配。

    步骤s506:对得到的预训练好的生成式对抗网络中的生成器采用强化学习策略进行训练;同时继续采用三类判别损失函数对生成式对抗网络中的判别器进行训练;

    具体地,可以参考上述图3实施例中的步骤s300,这里不再赘述。

    步骤s508:利用训练好的生成式对抗网络的生成器对于数据集中的图像进行图像文本生成;

    具体地,本申请实施例并非对图像文本的特征从两个方向来进行对抗式生成,而是从原始图像单方向、端到端地到文本的生成。本申请实施例更多是为了从图像数据生成文本数据,以合成更多数据,来强化模型训练。

    步骤s510:利用神经网络基于所述原始数据和所述生成数据训练得到跨模态检索网络;

    具体地,检索网络分别使用深度卷积神经网络和长短时记忆网络对于图像和文本特征的提取,特征向量经过线性变换后被映射到嵌入空间中,对每一个批量的数据分别计算每一组图像和文本的余弦相似度,最后使用三元组损失函数对于检索网络进行训练。

    也就是说,本申请实施例包含图像文本生成和图像文本跨模态检索两个阶段。对于图像文本生成阶段,其中包含使用结合强化学习策略生成式对抗网络进行图像文本生成,这种方法能够有效的扩充训练数据集;对于图像文本跨模态检索,其中分别采用深度卷积神经网络和长短时记忆网络进行图像和文本描述的特征提取,分别经过线性变换将特征映射到嵌入子空间中,最后计算每组图像和文本特征向量之间的特征相似性;最后利用两阶段训练方案,分别使用最大似然准则和强化学习策略进行生成式对抗网络两个阶段的训练,然后使用生成器生成关于给定图像更多的图像文本描述,从而扩充原始训练集,最后使用所有数据进行检索网络的训练。

    步骤s512:测试时将图片和文本描述分别利用训练好的跨模态检索网络进行特征提取,得到图像特征和文本特征,然后根据不同样本之间的余弦相似度进行排序,得到最终的检索结果序列。

    通过本申请实施例的跨模态检索方法,引入的增强嵌入空间模型,一方面能够挖掘图像与文本描述的细粒度匹配关系,增强样本间区分度,同时减小模态间的异构性,获得更好的嵌入空间内的图像和文本描述之间的判别特征,能够使得模型能够更加关注于训练数据集中出现频率较低的文字与给定图片的匹配关系;另一方面,通过生成式对抗网络结合强化学习的训练策略能够有效的扩充数据集,以某大型图像文本跨模态检索数据库为例,包含82,783张图像,每张图像对应5条文本描述,共计可以生成413,915条文本描述。这是一种通用的方法,能够与很多的模型结构相结合,具有较高的普适性,这种方法能够有效地提升图像文本跨模态检索的准确性。

    并且,现有技术侧重从特征层面生成跨模态数据,这其实是非常难的,因为特征通常是高纬度的(比如图像是4096维度)。现有技术通常进行特征维度相互独立的假设来进行粗略生成,因此生成的结果包含很多噪声,会影响模型关联跨模态数据。而本申请的方法是端到端的从图像到文本生成,是非常容易操作的,且可以采用现在图像描述领域的很多高效模型来进行替代与优化,因此本申请实际生成的数据时非常真实的,可以直接用于模型训练的。

    另外,现有方案利用跨模态之间的特征生成作为一种约束,强制拉近跨模态数据之间的语义鸿沟,但是一般对于实际结果的提升是极其有限的,且需要大量超参数来进行调试。而本申请的方法是利用数据层面的生成来产生大量额外训练数据,能够帮助模型更好的拟合现有数据,学习更加判别性的跨模态关联表示。此外我们的模型还具有很大潜力,当给定大规模训练数据,其近乎可以无限制地生成尽量多的数据,这样能够有利于学习更加复杂、层数更深的模型。

    在其中一种实施方式中,步骤s502中的卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deeplearning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,cnn是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。

    如图6所示,卷积神经网络(cnn)600可以包括输入层610,卷积层/池化层620(其中池化层为可选的),以及神经网络层630。

    卷积层/池化层620:

    卷积层:

    如图6所示卷积层/池化层620可以包括如示例621-626层,举例来说:在一种实现中,621层为卷积层,622层为池化层,623层为卷积层,624层为池化层,625为卷积层,626为池化层;在另一种实现方式中,621、622为卷积层,623为池化层,624、625为卷积层,626为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。

    下面将以卷积层621为例,介绍一层卷积层的内部工作原理。

    卷积层621可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depthdimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。

    这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络600进行正确的预测。

    当卷积神经网络600有多个卷积层的时候,初始的卷积层(例如621)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络600深度的加深,越往后的卷积层(例如622)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。

    池化层:

    由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图6中620所示例的621-626各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。

    神经网络层630:

    在经过卷积层/池化层620的处理后,卷积神经网络600还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层620只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络600需要利用神经网络层630来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层630中可以包括多层隐含层(如图6所示的631、632至63n)以及输出层640,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像生成、文本生成、样本生成等等……

    在神经网络层630中的多层隐含层之后,也就是整个卷积神经网络600的最后层为输出层640,该输出层640具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络600的前向传播(如图6由610至640方向的传播为前向传播)完成,反向传播(如图6由640至610方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络600的损失,及卷积神经网络600通过输出层输出的结果和理想结果之间的误差。

    需要说明的是,如图6所示的卷积神经网络600仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。

    通过本申请实施例的跨模态检索方法,利用增强嵌入空间进行图像区域和文本描述名词短语之间更有区分度的匹配。该方法能够同时增强图像和文本两个模态的特征表达,一定程度减轻不同模态表达之间的语义鸿沟。利用生成式对抗网络生成逼近真实样本分布的样本,能够有效的扩充数据集,同时使得模型更加关注于训练数据中词频较少的单词,有助于缓解图像和文本之间的语义鸿沟问题。基于获得的增强后的嵌入子空间内的特征表达,包含文本名词短语及图像区域对应特征,能够更好的区分图像和文本之间的差异,能够更全面的学习到图像和文本语义相关的判别特征,从而能够更好的对语义内容相关的图像和文本进行成功的检索。

    为了便于更好地实施本申请实施例的上述方案,本申请还对应提供了一种跨模态检索装置,如图7示出的本申请实施例提供的跨模态检索装置的结构示意图,(该装置具体可以是图1执行设备110),跨模态检索装置70包括:数据获取单元700、数据输入单元702和检索单元704,其中,

    数据获取单元700用于获取第一模态数据和待检索的第二模态数据;

    数据输入单元702用于将所述第一模态数据和所述第二模态数据输入训练好的跨模态检索网络;

    检索单元704用于通过所述跨模态检索网络提取所述第一模态数据的第一特征和所述第二模态数据的第二特征,根据所述第一特征和所述第二特征的匹配度输出检索结果;所述检索结果用于表征从所述第一模态数据中检索出的与所述第二模态数据匹配的数据;

    其中,所述跨模态检索网络包括利用神经网络基于数据集中的原始数据和生成数据进行训练而来的网络;所述生成数据包括由生成式对抗网络中训练好的生成器基于所述原始数据生成的数据;所述生成器与所述生成式对抗网络中的判别器同时进行训练,用于将所述原始数据中属于第二模态的数据生成属于第一模态的数据。

    本申请实施例中的跨模态检索装置70各单元用于对应执行上述各方法实施例中图1至图6实施例中的跨模态检索方法中执行设备执行的步骤,这里不再赘述。

    如图8示出的本申请提供的跨模态检索装置的另一实施例的结构示意图,(该装置具体可以是图1训练设备120),跨模态检索装置80包括:第一训练单元800、数据生成单元802和第二训练单元804,其中,

    第一训练单元800用于基于数据集中的原始数据对生成式对抗网络中的生成器以及判别器进行训练;

    数据生成单元802用于通过训练好的生成器基于所述原始数据生成的生成数据;所述生成器用于对所述原始数据中属于第二模态的数据生成属于第一模态的数据;

    第二训练单元804用于利用神经网络基于所述原始数据和所述生成数据训练得到跨模态检索网络;其中,所述跨模态检索网络用于对输入的第一模态数据和待检索的第二模态数据进行特征提取,并输出检索结果;所述检索结果用于表征从所述第一模态数据中检索出的与所述第二模态数据匹配的数据。

    在其中一种实施方式中,第一训练单元800可以用于:

    基于数据集中的原始数据,采用最大似然准则对生成式对抗网络中的生成器进行训练,基于所述生成器生成的数据采用三类判别损失函数对生成式对抗网络中的判别器进行训练;

    将训练后的生成器通过强化学习策略进行训练,同时继续采用三类判别损失函数对生成式对抗网络中的判别器进行训练。

    在其中一种实施方式中,所述基于数据集中的原始数据,采用最大似然准则对生成式对抗网络中的生成器进行训练,包括:基于数据集中的原始数据,利用最大似然准则损失函数并采用adam优化算法进行初始化训练;

    所述将训练后的生成器通过强化学习策略进行训练,包括:引入强化学习策略和蒙特卡洛搜索技术,采用adam优化算法对初始化训练后的生成器进行训练,直至收敛。

    在其中一种实施方式中,第二训练单元804可以用于:

    基于所述原始数据和所述生成数据,使用长短时记忆网络提取属于第一模态的数据的第一特征,使用深度神经网络提取属于第二模态的数据的第二特征,并采用线性变换映射到嵌入子空间中;

    在所述嵌入子空间中计算每一对属于第一模态的数据和属于第二模态的数据的余弦相似度,并采用三元组损失函数对每一个输入批量进行训练,采用adam优化算法进行训练,直到模型收敛,得到跨模态检索网络。

    本申请实施例中的跨模态检索装置80各单元用于对应执行上述各方法实施例中图1至图6实施例中的跨模态检索方法中训练设备执行的步骤,这里不再赘述。

    图9是本申请实施例提供的一种跨模态检索设备的结构示意图。图9所示的跨模态检索设备900(该设备具体可以是一种计算机设备)包括存储器901、处理器902、通信接口903以及总线904。其中,存储器901、处理器902、通信接口903通过总线904实现彼此之间的通信连接。

    存储器901可以是只读存储器(readonlymemory,rom),静态存储设备,动态存储设备或者随机存取存储器(randomaccessmemory,ram)。存储器901可以存储程序,当存储器901中存储的程序被处理器902执行时,处理器902和通信接口903用于执行本申请实施例的跨模态检索方法的各个步骤。

    处理器902可以采用通用的中央处理器(centralprocessingunit,cpu),微处理器,应用专用集成电路(applicationspecificintegratedcircuit,asic),图形处理器(graphicsprocessingunit,gpu)或者一个或多个集成电路,用于执行相关程序,以执行本申请方法实施例的跨模态检索方法。

    处理器902还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的样本生成器的训练方法的各个步骤可以通过处理器902中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器902还可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器901,处理器902读取存储器901中的信息,结合其硬件完成本申请方法实施例的跨模态检索方法。

    通信接口903使用例如但不限于收发器一类的收发装置,来实现装置900与其他设备或通信网络之间的通信。例如,可以通过通信接口903获取训练数据。

    总线904可包括在装置900各个部件(例如,存储器901、处理器902、通信接口903)之间传送信息的通路。

    上述各个功能器件的具体实现可以参见上述各个方法实施例中相关描述,本申请实施例不再赘述。

    图10为本申请实施例中另一种跨模态检索设备的示意性框图;图10所示的跨模态检索设备1000(该装置1000具体可以是一种终端)包括存储器1001、基带芯片1002、射频模块1003、外围系统1004和传感器1005。基带芯片1002包括至少一个处理器10021,例如cpu,时钟模块10022和电源管理模块10023;外围系统1004包括摄像头10041、音频模块10042、触摸显示屏10043等,进一步地,传感器1005可以包括光线传感器10051、加速度传感器10052、指纹传感器10053等;外围系统1004和传感器1005包括的模块可以视实际需要来增加或者减少。上述任意两个相连接的模块可以具体通过总线相连,该总线可以是工业标准体系结构(英文:industrystandardarchitecture,简称:isa)总线、外部设备互连(英文:peripheralcomponentinterconnect,简称:pci)总线或扩展标准体系结构(英文:extendedindustrystandardarchitecture,简称:eisa)总线等。

    射频模块1003可以包括天线和收发器(包括调制解调器),该收发器用于将天线接收到的电磁波转换为电流并且最终转换为数字信号,相应地,该收发器还用于将该手机将要输出的数字信号据转换为电流然后转换为电磁波,最后通过该天线将该电磁波发射到自由空间中。射频模块1003还可包括至少一个用于放大信号的放大器。通常情况下,可以通过该射频模块1003进行无线传输,如蓝牙(英文:bluetooth)传输、无线保证(英文:wireless-fidelity,简称:wi-fi)传输、第三代移动通信技术(英文:3rd-generation,简称:3g)传输、第四代移动通信技术(英文:the4thgenerationmobilecommunication,简称:4g)传输等。

    触摸显示屏10043可用于显示由用户输入的信息或向用户展示信息,触摸显示屏10043可包括触控面板和显示面板,可选的,可以采用液晶显示器(英文:liquidcrystaldisplay,简称:lcd)、有机发光二极管(英文:organiclight-emittingdiode,简称:oled)等形式来配置显示面板。进一步的,触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器10021以确定触摸事件的类型,随后处理器10021根据触摸事件的类型在显示面板上提供相应的视觉输出。触控面板与显示面板是作为两个独立的部件来实现跨模态检索设备1000的输入和输出功能,但是在某些实施例中,可以将触控面板与显示面板集成而实现跨模态检索设备1000的输入和输出功能。

    摄像头10041用于获取图像,并可以输入到训练后的跨模态检索网络。

    音频输入模块10042具体可以为麦克风,可以获取语音,并可以输入到训练后的跨模态检索网络。

    传感器1005用于可以包括光线传感器10051、加速度传感器10052、指纹传感器10052,其中,光线传感器10051用于获取环境的光强,加速度传感器10052(比如陀螺仪等)可以获取跨模态检索设备1000的运动状态,指纹传感器10053可以输入的指纹信息;传感器1005感应到相关信号后将该信号量化为数字信号并传递给处理器10021做进一步处理。

    存储器1001可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1001可选的还可以包括至少一个位于远离前述处理器10021的存储装置,该存储器1001可以具体包括存储指令区和存储数据区,其中,存储指令区可存储操作系统、用户接口程序、通信接口程序等程序,该存储数据区可存储该处理在执行相关操作所需要的数据,或者执行相关操作所产生的数据。

    处理器10021是跨模态检索设备1000的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行存储在存储器1001内的程序,以及调用存储在存储器1001内的数据,执行跨模态检索设备1000的各项功能。可选的,处理器10021可包括一个或多个应用处理器,该应用处理器主要处理操作系统、用户界面和应用程序等。在本申请实施例中,处理器10021读取存储器1001中的信息,结合其硬件完成本申请实施例的跨模态检索方法。

    通过射频模块1003用户实现该跨模态检索设备1000的通信功能。

    需要说明的是,上述各个功能单元的具体实现可以参见上述各个方法实施例中相关描述,本申请实施例不再赘述。上述各个操作的具体实现及有益效果还可以对应参照上述图1至图6中提供的实施例及其可能的实施例的相应描述。

    本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

    本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。

    作为实例而非限制,此类计算机可读存储媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(dsl)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、dsl或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。

    可通过例如一或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。

    本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(ic)或一组ic(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。

    以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。


    技术特征:

    1.一种跨模态检索方法,其特征在于,包括:

    获取第一模态数据和待检索的第二模态数据;

    将所述第一模态数据和所述第二模态数据输入训练好的跨模态检索网络;

    通过所述跨模态检索网络提取所述第一模态数据的第一特征和所述第二模态数据的第二特征,根据所述第一特征和所述第二特征的匹配度输出检索结果;所述检索结果用于表征从所述第一模态数据中检索出的与所述第二模态数据匹配的数据;

    其中,所述跨模态检索网络包括利用神经网络基于数据集中的原始数据和生成数据进行训练而来的网络;所述生成数据包括由生成式对抗网络中训练好的生成器基于所述原始数据生成的数据;所述生成器与所述生成式对抗网络中的判别器同时进行训练,用于将所述原始数据中属于第二模态的数据生成属于第一模态的数据。

    2.如权利要求1所述的方法,其特征在于,所述第一模态数据包括文本数据;所述第二模态数据包括图像数据。

    3.一种跨模态检索方法,其特征在于,包括:

    基于数据集中的原始数据对生成式对抗网络中的生成器以及判别器进行训练;

    通过训练好的生成器基于所述原始数据生成的生成数据;所述生成器用于对所述原始数据中属于第二模态的数据生成属于第一模态的数据;

    利用神经网络基于所述原始数据和所述生成数据训练得到跨模态检索网络;其中,所述跨模态检索网络用于对输入的第一模态数据和待检索的第二模态数据进行特征提取,并输出检索结果;所述检索结果用于表征从所述第一模态数据中检索出的与所述第二模态数据匹配的数据。

    4.如权利要求3所述的方法,其特征在于,所述基于数据集中的原始数据对生成式对抗网络中的生成器以及判别器进行训练,包括:

    基于数据集中的原始数据,采用最大似然准则对生成式对抗网络中的生成器进行训练,基于所述生成器生成的数据采用三类判别损失函数对生成式对抗网络中的判别器进行训练;

    将训练后的生成器通过强化学习策略进行训练,同时继续采用三类判别损失函数对生成式对抗网络中的判别器进行训练。

    5.如权利要求3所述的方法,其特征在于,所述利用神经网络基于所述原始数据和所述生成数据训练得到跨模态检索网络,包括:

    基于所述原始数据和所述生成数据,使用长短时记忆网络提取属于第一模态的数据的第一特征,使用深度神经网络提取属于第二模态的数据的第二特征,并采用线性变换映射到嵌入子空间中;

    在所述嵌入子空间中计算每一对属于第一模态的数据和属于第二模态的数据的余弦相似度,并采用三元组损失函数对每一个输入批量进行训练,采用adam优化算法进行训练,直到模型收敛,得到跨模态检索网络。

    6.如权利要求3所述的方法,其特征在于,所述基于数据集中的原始数据,采用最大似然准则对生成式对抗网络中的生成器进行训练,包括:基于数据集中的原始数据,利用最大似然准则损失函数并采用adam优化算法进行初始化训练;

    所述将训练后的生成器通过强化学习策略进行训练,包括:引入强化学习策略和蒙特卡洛搜索技术,采用adam优化算法对初始化训练后的生成器进行训练,直至收敛。

    7.一种跨模态检索装置,其特征在于,包括:

    数据获取单元,用于获取第一模态数据和待检索的第二模态数据;

    数据输入单元,用于将所述第一模态数据和所述第二模态数据输入训练好的跨模态检索网络;

    检索单元,用于通过所述跨模态检索网络提取所述第一模态数据的第一特征和所述第二模态数据的第二特征,根据所述第一特征和所述第二特征的匹配度输出检索结果;所述检索结果用于表征从所述第一模态数据中检索出的与所述第二模态数据匹配的数据;

    其中,所述跨模态检索网络包括利用神经网络基于数据集中的原始数据和生成数据进行训练而来的网络;所述生成数据包括由生成式对抗网络中训练好的生成器基于所述原始数据生成的数据;所述生成器与所述生成式对抗网络中的判别器同时进行训练,用于将所述原始数据中属于第二模态的数据生成属于第一模态的数据。

    8.一种跨模态检索装置,其特征在于,包括:

    第一训练单元,用于基于数据集中的原始数据对生成式对抗网络中的生成器以及判别器进行训练;

    数据生成单元,用于通过训练好的生成器基于所述原始数据生成的生成数据;所述生成器用于对所述原始数据中属于第二模态的数据生成属于第一模态的数据;

    第二训练单元,用于利用神经网络基于所述原始数据和所述生成数据训练得到跨模态检索网络;其中,所述跨模态检索网络用于对输入的第一模态数据和待检索的第二模态数据进行特征提取,并输出检索结果;所述检索结果用于表征从所述第一模态数据中检索出的与所述第二模态数据匹配的数据。

    9.一种跨模态检索设备,其特征在于,包括处理器,所述处理器,其中,所述处理器被配置用于调用存储的跨模态检索程序,执行如权利要求1-6任一项所述的方法。

    10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-6任一项所述的方法。

    技术总结
    本申请实施例公开了跨模态检索方法,包括:获取第一模态数据和待检索的第二模态数据;将第一模态数据和第二模态数据输入训练好的跨模态检索网络;通过跨模态检索网络提取第一模态数据的第一特征和第二模态数据的第二特征,根据第一特征和第二特征的匹配度输出检索结果;检索结果用于表征从第一模态数据中检索出的与第二模态数据匹配的数据;其中,跨模态检索网络包括利用神经网络基于数据集中的原始数据和生成数据进行训练而来的网络;生成数据包括由生成式对抗网络中训练好的生成器基于原始数据生成的数据;生成器与生成式对抗网络中的判别器同时进行训练,用于将原始数据中属于第二模态的数据生成属于第一模态的数据。

    技术研发人员:王亮;黄岩;陈泽睿
    受保护的技术使用者:腾讯科技(深圳)有限公司;中国科学院自动化研究所
    技术研发日:2019.09.12
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-21551.html

    最新回复(0)