掌桥专利:专业的专利平台
掌桥专利
首页

一种模型的训练方法、数据处理方法及设备

文献发布时间:2023-06-19 11:32:36


一种模型的训练方法、数据处理方法及设备

技术领域

本申请涉及人工智能领域,尤其涉及一种模型的训练方法、数据处理方法及设备。

背景技术

以大量标注数据作为网络训练的“燃料”,深度学习算法在各个计算机视觉任务中都表现出了优异的性能(如,图像分类、目标检测、视频分析等)、机器翻译、语音识别等领域中。然而,不同源域的数据(即有标签的数据)之间存在着较大的域间差异,这些差异使得直接将在某个源域上学习到的知识迁移到具有不同数据分布的其他目标域时性能大大的降低,极大地增加了深度学习算法部署的难度。

为了解决这个问题,迁移学习方法、无监督领域自适应(unsupervised domainadaptation,UDA)算法、多源域适应算法被提出,这些算法致力于学习域不变的特征(即从不同域的数据中提取的特征与其来自哪个域无关,也就是数据间的可迁移特征),以便更好的将在源域学习到的知识迁移到目标域上,提升目标域的性能。

目前,大部分的迁移学习方法主要是通过对抗训练或者基于对抗生成的损失等方式来减小从源域和目标域上提取的特征之间的差异,这种通过对抗训练学习提取域不变特征的方式使得模型训练过程不稳定,且增加了训练难度;大部分无监督域适应方法则针对的是单个源域到单个目标域的,然而实际应用中有很多相关的源域都能用来提升模型在目标域的性能表现;多源域适应算法志在利用相关的源域数据,学习到与任务相关的不同源域共通的域无关特征,从而提升模型在目标域上的泛化能力及判别力,目前多源域适应算法仅考虑源域和目标域之间成对的关联,而忽略了所有域之间的关联。

发明内容

本申请实施例提供了一种模型的训练方法、数据处理方法及设备,用于为每个域(包括目标域和多个源域)的每个类别建立原型(即类别中心),再在每个域内基于计算出的原型建立一个关系矩阵(即相似度矩阵),之后根据每个域各自对应的相似度矩阵构建得到一个目标张量,通过相似度矩阵构建域之间的高阶关联,并将该高阶关联融合进目标损失函数,使得模型学习提取域无关的特征,从而提升模型在目标域上的性能。

基于此,本申请实施例提供以下技术方案:

第一方面,本申请实施例首先提供一种模型的训练方法,可用于人工智能领域中,该方法包括:首先,训练设备通过模型计算多个源域中每个源域各自对应的相似度矩阵(可称为第一相似度矩阵),其中,该多个源域是基于目标任务的特性选择出来的与其相关的多个源域,例如,假设选择了与目标任务相关的M个源域,那么针对这M个源域中的每个源域,训练设备都可通过模型计算得到每个源域各自对应的第一相似度矩阵,一共可得到M个第一相似度矩阵。在本申请实施例中,每个第一相似度矩阵用于表征各自对应源域的类别中心两两之间的相似度值,该类别中心为每个源域中样本的真实标签对应类别的中心。此外,训练设备除了通过模型计算多个源域中每个源域各自对应的相似度矩阵之外,还要进一步通过该模型计算目标域对应的相似度矩阵(可称为第二相似度矩阵),其中,第二相似度矩阵用于表征目标域的伪类别中心两两之间的相似度值,该伪类别中心为目标域中样本的伪标签对应类别的中心。训练设备在计算得到每个源域各自对应的第一相似度矩阵和目标域对应的第二相似度矩阵之后,为了对所有域之间的关系进行整体的约束,训练设备将根据每个第一相似度矩阵和该第二相似度矩阵得到目标张量,该目标张量具体可以是一个三阶张量。训练设备在得到目标张量后,就可根据该目标张量以及基于目标任务确定的子损失函数(可称为第一子损失函数)得到最终用于训练模型的目标损失函数,其中,该第一子损失函数用于表征输入该模型的训练样本与输出的预测结果之间的差异,该训练样本为上述来自多个源域的样本,例如,假设源域的数量为M,那么用于训练该模型的训练样本为来自于这M个源域的样本。训练设备在构建好目标损失函数之后,将利用该目标损失函数对该模型进行迭代训练,直至达到训练终止条件。

在本申请上述实施方式中,本申请实施例首先为每个域(包括目标域和多个源域)的每个类别建立原型(即类别中心),再在每个域内基于计算出的原型建立一个关系矩阵(即相似度矩阵),之后根据每个域各自对应的相似度矩阵构建得到一个目标张量,通过相似度矩阵构建域之间的高阶关联,并将该高阶关联融合进目标损失函数,使得模型学习提取域无关的特征,从而提升模型在目标域上的性能。本申请主要是针对目前多源域适应方法存在的部分问题的改进,通过本申请实施例提供的模型的训练方案,不会额外增加推理阶段的运行时间及计算开销。

在第一方面的一种可能实现方式中,训练设备根据每个第一相似度矩阵和第二相似度矩阵得到目标张量的具体实施方式可以是:首先,训练设备根据每个第一相似度矩阵和第二相似度矩阵组合得到原始的三阶张量(可称为第一高阶张量),之后,对该第一高阶张量进行低秩约束,得到该目标张量。

在本申请上述实施方式中,阐述了训练设备根据每个第一相似度矩阵和第二相似度矩阵得到目标张量的一种具体实现方式,借助张量的低秩约束挖掘多个源域和目标域之间的高阶关联,增强了不同域上提取的特征的一致性,使得模型即使在没有见过的目标域上也有不错的性能提升。

在第一方面的一种可能实现方式中,训练设备对该第一高阶张量进行低秩约束的方式具体可以是:训练设备先对该第一高阶张量进行旋转操作(旋转操作的目的要对M+1所在的维度进行后续操作),得到第二高阶张量,然后对该第二高阶张量进行核范数约束,从而得到目标张量。

在本申请上述实施方式中,阐述了训练设备进行低秩约束的一种具体实现方式,易于实现。

在第一方面的一种可能实现方式中,训练设备对该第二高阶张量进行核范数约束的方式具体可以是:首先,训练设备对该第二高阶张量进行快速傅里叶变换(fast fouriertransform,FFT),得到第三高阶张量,之后,在频域中对第三高阶张量进行奇异值分解操作,得到分解结果,该分解结果由三个张量U、S、V组成。其中,U、V为正交的张量(可看作张量S的基张量),具体用于表征张量S的大小,张量S即为在以U、V为基向量时的分解结果。之后,对该分解结果(即张量S)进行最小化约束,得到约束结果;最后,对该约束结果进行逆快速傅里叶变换(invert fast fourier transform,IFFT),得到目标张量。

在本申请上述实施方式中,阐述了训练设备进行核范数约束的一种具体实现方式,简单易操作。

在第一方面的一种可能实现方式中,由于旋转操作的目的要对第一高阶张量中M+1所在的维度进行后续操作,因此,训练设备对该第一高阶张量进行旋转操作可以是水平旋转操作,也可以是垂直旋转操作,具体此处不做限定。

在本申请上述实施方式中,阐述了旋转操作的几种旋转方式,具备灵活性。

在第一方面的一种可能实现方式中,训练设备根据第一子损失函数和目标张量得到目标损失函数的具体实现方式可以是:首先,训练设备根据第一张量取值与目标张量构建得到第二子损失函数,该第一张量取值为向该模型输入第一训练样本时该目标张量的值,该第一训练样本为所述源域中的任意一个样本,最后,训练设备根据该第一子损失函数和得到的该第二子损失函数得到最终的目标损失函数。

在本申请上述实施方式中,由于目标张量不可求导,在训练过程中难以进行梯度回传,因此,为了使得目标损失函数更容易优化,本申请实施例通过引入一个辅助张量来优化该目标损失函数的表达方式,使得构建的目标损失函数更好的指导模型的训练过程。

在第一方面的一种可能实现方式中,训练终止条件可以有多种判断方式,包括但不限于:目标损失函数达到预设阈值、目标损失函数开始收敛或训练达到预设轮次。

在本申请上述实施方式中,具体阐述了几种训练终止条件的具体表现形式,具备广泛性和可选择性。

本申请实施例第二方面还提供一种数据处理方法,该方法包括:首先,执行设备获取待处理的输入数据,该输入数据与待执行的目标任务相关,例如,当目标任务是分类任务,那么输入数据就是指用于进行分类的数据。最后,执行设备通过该训练后的模型对输入数据进行处理,从而得到输出数据(如,预测结果、检测结果等)。该训练后的模型具体为经过上述训练阶段得到的模型,具体请参参阅上述图3和图4对应实施例所述,此处不予赘述。

在本申请上述实施方式中,阐述了将训练后得到的模型部署在目标设备上执行目标任务,该训练后的模型可提高目标设备的推理速度,增强用户的使用体验。

在第二方面的一种可能实现方式中,根据目标任务的不同,输入数据的类型也不同,例如,输入数据可以是图像数据,也可以是音频数据,还可以是文本数据,其数据类型由待处理的目标任务决定,具体此处不做限定。

在本申请上述实施方式中,模型对输入的数据类型不做限定,具体与对应的目标任务相关,因此通过本申请实施例训练得到的模型具备广泛适用性。

本申请实施例第三方面提供一种训练设备,该训练设备具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

本申请实施例第四方面提供一种执行设备,该执行设备具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

本申请实施例第五方面提供一种训练设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请实施例第一方面或第一方面任意一种可能实现方式的方法。

本申请实施例第六方面提供一种执行设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请实施例第二方面或第二方面任意一种可能实现方式的方法。

本申请第六方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的方法,或,使得计算机可以执行上述第二方面或第二方面任意一种可能实现方式的方法。

本申请实施例第七方面提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任意一种可能实现方式的方法,或,使得计算机可以执行上述第二方面或第二方面任意一种可能实现方式的方法。

本申请实施例第八方面提供了一种芯片,该芯片包括至少一个处理器和至少一个接口电路,该接口电路和该处理器耦合,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,至少一个处理器用于运行计算机程序或指令,其具有实现如上述第一方面或第一方面任意一种可能实现方式的方法的功能,或,其具有实现如上述第二方面或第二方面任意一种可能实现方式的方法的功能,该功能可以通过硬件实现,也可以通过软件实现,还可以通过硬件和软件组合实现,该硬件或软件包括一个或多个与上述功能相对应的模块。此外,该接口电路用于与该芯片之外的其它模块进行通信,例如,该接口电路可将芯片上训练后得到的模型发送给各种设备(如,手机、智能手表、智能眼镜等)执行相关目标任务(如,目标检测、物体识别、语音识别任务等)。

附图说明

图1为本申请实施例提供的人工智能主体框架的一种结构示意图;

图2为本申请实施例提供的任务处理系统的一种系统架构图;

图3为本申请实施例提供的模型的训练方法的一种流程示意图;

图4为本申请实施例提供的一个技术框图;

图5为本申请实施例提供的模型的训练方法的一个总体流程图;

图6为本申请实施例提供的一个总体框架图;

图7为本申请实施例提供的数据处理方法的一种流程示意图;

图8为本申请实施例提供的应用场景的一个示意图;

图9为本申请实施例提供的应用场景的一个示意图;

图10为本申请实施例提供的应用场景的一个示意图;

图11为本申请实施例提供的应用场景的另一示意图;

图12为本申请实施例方法在Digits数据集上5个不同的域的相似度矩阵的可视化的一个示意图;

图13为本申请实施例提供的训练设备的一个示意图;

图14为本申请实施例提供的执行设备的一个示意图;

图15为本申请实施例提供的训练设备的另一示意图;

图16为本申请实施例提供的执行设备的另一示意图;

图17为本申请实施例提供的芯片的一种结构示意图。

具体实施方式

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

本申请实施例涉及了许多关于模型的相关知识,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。应理解的是,相关的概念解释可能会因为本申请实施例的具体情况有所限制,但并不代表本申请仅能局限于该具体情况,在不同实施例的具体情况可能也会存在差异,具体此处不做限定。

(1)神经网络

神经网络可以是由神经单元组成的,具体可以理解为具有输入层、隐含层、输出层的神经网络,一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。其中,具有很多层隐含层的神经网络则称为深度神经网络(deep neural network,DNN)。神经网络中的每一层的工作可以用数学表达式

需要注意的是,在本申请实施例中,基于机器学习任务所采用的模型,本质都是神经网络。

(2)损失函数(loss function)

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

(3)反向传播算法

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

(4)源域(source domain)、目标域(target domain)

源域:与当前要解决的任务相关的其他有标注数据源或者数据集;

目标域:从当前需要解决的任务中采集的数据(无标注或有少量标注),源域和目标域往往属于同一类任务,但是分布不同。

(5)无监督领域自适应(unsupervised domain adaptation,UDA)

无监督领域自适应也可称为无监督域自适应,是一种针对解决源域和目标域分布偏移的机器学习算法。各式各样的无监督领域自适应方法旨在通过学习源域和目标域的域不变特征,从而在目标域没有或少量标签的情况下,将从源域学到的知识应用于目标域。

(6)低秩(low-lank)约束

信息时代使得人类面临分析和处理各种大规模数据信息的问题,如监控设备拍摄的大量图像/视频、数据库中大规模文本等,在对大规模数据处理之前,首先需要对数据进行数学表示,而矩阵是最常用的数学表达方式,这些大规模数据矩阵往往是低秩的。以数据矩阵为例,低秩表现为数据矩阵的行(列)向量中的极大线性无关组中含有少量的向量,通俗来讲,即矩阵的阶梯形中存在大量元素零。由此可知,秩可以度量相关性,而矩阵的相关性实际上带有矩阵的结构信息,如果矩阵之间各行的相关性很强,那么就表示这个矩阵实际可以投影到更低维的线性子空间,也就是用几个向量就可以完全表达,它就是低秩的。

由此可得出,如果矩阵表达的是结构性信息,例如图像、用户-推荐表等等,那么这个矩阵各行之间存在这一定的相关性,那这个矩阵一般就是低秩的。现实存在的数据往往是低秩的,这是因为人们普通认为数据稀疏性是导致数据低秩的重要原因之一,而稀疏数据普遍存在,使得现实数据呈现低秩性,如,黑白照片、稀疏矩阵等。

具体来说,如果X是一个m行n列的数值矩阵,rank(X)是X的秩,假如rank(X)远小于m和n,则称X是低秩矩阵,而低秩约束就是约束rank(X)。低秩矩阵每行或每列都可以用其他的行或列线性表出,可见它包含大量的冗余信息。利用这种冗余信息,可以对缺失数据进行恢复,也可以对数据进行特征提取。

(7)核范数(nuclear norm)

核范数||W||*是指矩阵奇异值的和,可用来约束低秩。这是因为rank()是非凸的,在优化问题里面很难求解,需要寻找它的凸近似来近似它,rank(W)的凸近似就是核范数||W||*。

在介绍本申请实施例前,先对目前几种常见的多源域适应方法进行简单介绍,使得后续便于理解本申请实施例。

方式一,基于分类器权重的加权求和

该方式通过对多源域适应进行理论分析,提出了一个新的泛化误差上界,基于该上界,模型在目标域上的上界可以由多个源域的误差加权求平均得到。具体地,直接通过对抗训练学习不同域的分类器的权重,并利用源域分类器的组合得到目标域的预测结果。

该方式的具体实施过程主要包括两步:1)给每个图像赋予一个域标签,该域标签就用于表征该图像来自来个域(是源域还是目标域,如果是源域,具体是来自哪个源域等信息),并通过多个域判别器(即分类器)进行对抗学习,使得模型学习提取域不变的特征;2)通过对步骤1)中学习到的各分类器权重进行加权求平均,得到模型在目标域上的分类器。

由上述可知,该方式是通过对抗训练的方式学习提取域不变特征,这种方式使得模型训练不稳定,而且该方法同时训练多个域判别器增加了训练难度,并且该方式只是简单的通过加权求平均的方式对从不同域(包括目标域)提取的特征进行拟合,各个域上提取的数据特征分布的一致性并没有增强。

方式二,基于动量的多域匹配

该方式利用矩阵匹配进行多源域适应学习,相较于方式一通过对抗学习的方法,该技术通过各个不同域(包括目标域)两两之间的域对齐来将不同域的特征分布进行对齐,从而减小域之间提取的特征的差异。另外,同方式一的方法类似,该技术仍然需要学习每个源域的分类器的权重,然后加权融合多个源域的分类器作为目标域的分类器。

由上述可知,该方式只是挖掘了成对的域之间的关联,没有挖掘所有域之间的一个高阶关联,剥离了单个域与其他所有域之间的联系,另外,该方式在推理过程中需要用到源域的分类器,这会增加推理时的时间,加大计算开销。

方式三,基于图卷积神经网络(graph convolutional network,GCN)的多源域适应

方式三与方式二相似,同样旨在对齐不同域的原型(即类别中心)的分布。不同的是,方式三在方式二的基础上更进一步引入了GCN,利用GCN来学习如何更好地融合各个域得到目标域的分类结果。

该方式的具体实施过程主要包括三个阶段:1)特征提取,提取图像的深度特征,2)构建邻接矩阵,利用提取的特征计算各个域的类别中心,然后计算不同域类别间的邻接矩阵,3)预测结果更新,利用GCN基于构建的邻接矩阵进行推理,得到更新的分类结果。

由上述可知,该方式构建了域之间的关系,但是,该方案依赖于第二阶段构建的邻接矩阵,邻接矩阵需要存储下来以供后续推理阶段使用,这会极大地增加推理时的时间及计算开销(尤其是当源域及类别数量较多时)。

综上所述,为解决上述方式所带来的缺陷,本申请实施例提供了一种模型的训练方法、数据处理方法及设备,用于为每个域(包括目标域和多个源域)的每个类别建立原型(即类别中心),再在每个域内基于计算出的原型建立一个关系矩阵(即相似度矩阵),之后根据每个域各自对应的相似度矩阵构建得到一个目标张量,通过相似度矩阵构建域之间的高阶关联,并将该高阶关联融合进目标损失函数,使得模型学习提取域无关的特征,从而提升模型在目标域上的性能。

具体地,相对于方式一,本申请实施例将不同域上的建立的相似度矩阵堆叠构建成一个目标张量,能够有效的增强模型在各个不同的域上特征分布的一致性,并且不需要使用对抗训练,减小了网络训练难度;相对方式二,本申请实施例能够从整体挖掘所有域之间的关联,并且不会增加推理阶段的任何开销;相对方式三,本申请实施例只是在训练时约束模型的特征提取,推理时只需要通过特征提取以及分类即可得到最终结果,不会增加推理时的任何额外开销。

下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

首先,对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。

(1)基础设施

基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。

(2)数据

基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。

(3)数据处理

数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。

其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。

推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。

决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。

(4)通用能力

对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。

(5)智能产品及行业应用

智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、智慧城市等。

本申请实施例可以应用在模型的优化设计上,具体地,可应用在模型的损失函数的优化设计上。通过本申请优化过损失函数的模型具体可以应用在人工智能领域的各个细分领域中,如,计算机视觉领域中的图像处理领域,语义分析领域等等,具体的,结合图1来讲,本申请实施例中基础设施获取的数据集中的数据可以是通过摄像头、雷达等传感器获取到的不同类型的多个数据(也可称为训练样本或训练数据,多个训练样本就构成训练集),训练集中的训练样本可以是多个图像数据,也可以是多个视频数据,还可以是文本数据、音频数据等,只要该训练集满足用于对模型进行迭代训练的功能即可,具体本申请实施例对训练集内的数据类型不限定。

需要注意的是,本申请实施例用于训练模型的训练集包括来自多个源域的样本,例如,根据目标任务选择与之相关的现有的n个源域(n≥2),这n个源域所包括的所有样本可构成本申请实施例所述的训练集,也可以是从这n个源域各自取一部分样本(如,各自取50%的样本)构成本申请实施例所述的训练集,具体此处不做限定。

为了便于理解本方案,接下来结合图2对本申请实施例提供的任务处理系统的框架进行介绍,请先参阅图2,图2为本申请实施例提供的任务处理系统的一种系统架构图,在图2中,任务处理系统200包括执行设备210、训练设备220、数据库230、客户设备240、数据存储系统250和数据采集设备260,执行设备210中包括计算模块211和输入/输出(I/O)接口212。

其中,在训练阶段,数据采集设备260可以用于获取用户需要的开源的大规模数据集(即训练集),并将训练集存入数据库230中,该训练集包括来自多个源域的样本(可称为训练数据或训练样本),训练数据可以是图像数据,也可以是视频数据,还可以是音频数据、文本数据等,具体与待执行的目标任务相关,此处不做限定。训练设备220基于数据库230中的维护的训练集对本申请模型201进行训练,训练后的模型201可以应用于不同的系统或设备(即执行设备210)中,例如,可以应用在手机、平板、笔记本电脑等端侧设备,也可以应用在智能手表、智能手环、智能眼镜等可穿戴设备,还也可以应用在智能汽车、网联汽车、机器人等智能移动体,还可以应用在监控系统(如,摄像头)、安防系统中的网联摄像机(IPcamera,IPC)、增强现实(augmented reality,AR)、虚拟现实(virtual reality,VR)、身份识别装置(如,考勤机、打卡机等)、智能音箱等边缘设备上,具体地,上述训练得到的模型201并不限定只应用在上述所述设备上,还可以应用在云服务器、计算平台等其他任意可部署神经网络的设备上,本申请对此不做限定。

在推理阶段,执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。数据存储系统250可以置于执行设备210中,也可以为数据存储系统250相对执行设备210是外部存储器。计算模块211通过训练后的模型201实现针对输入数据的处理,该处理过程与目标任务相关,例如,图像增强任务、目标检测任务、分类任务、语义分割任务等。

在图2中,执行设备210配置有I/O接口212,与外部设备进行数据交互,“用户”可以通过客户设备240向I/O接口212输入数据。如,客户设备240可以是监控系统的摄像设备,通过该摄像设备拍摄的图像作为输入数据输入至执行设备210的计算模块211,由计算模块211对输入的图像进行对应处理后得出结果(如,预测结果、检测结果等,具体与目标任务相关),再将该结果输出至摄像设备,或,将该结果直接在执行设备210的显示界面(若有)进行显示,或,将该结果保存在执行设备210的存储介质上,以用于后续的下游任务,具体如何处置该输出结果,此处不做限定;此外,在本申请的一些实施方式中,客户设备240也可以集成在执行设备210中,如,当执行设备210为手机时,则可以直接通过该手机获取到目标任务(如,可以通过该手机的摄像头拍摄到图像,或,通过该手机的录音模块录取到的目标语音等,此处对目标任务不做限定)或者接收其他设备(如,另一个手机)发送的目标任务,再由该手机内的计算模块211对该目标任务进行对应处理后得出结果,并直接将该结果呈现在手机的显示界面或进行保存。此处对执行设备210与客户设备240的产品形态不做限定。

值得注意的,图2仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备210中;在图2中,客户设备240相对执行设备210是外部设备,在其他情况下,客户设备240也可以集成在执行设备210中。

本申请的一些实施例中,例如图2中,训练设备220与执行设备210为分布独立的设备,但图2仅是本发明实施例提供的任务处理系统的一种架构示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。在本申请的另一些实施例中,训练设备220和执行设备210可以集成于同一设备中。此外,图2中的示例不用于限定每种设备的数量,例如,数据库230可以与多个客户设备240通信。

还需要说明的是,本申请实施例所述的模型201的训练过程可以是在云侧实现,例如,可以由云侧的训练设备220(该训练设备220可设置在一个或多个服务器或者虚拟机上)获取训练集,并根据训练集内的训练样本对模型进行训练,得到训练后的模型201,之后,该训练后的模型201再发送给执行设备210进行应用,例如,若目标任务是与图像数据相关的任务,如,分类任务,那么该训练后的模型201可被发送给执行设备210进行特征提取、分类等操作;若目标任务是与音频数据、文本数据等相关的任务,那么该训练后的模型201可被发送给执行设备210进行相关任务的处理。示例性地,图2对应的系统架构中所述,就是由训练设备220对模型进行训练,训练后的模型201再发送给执行设备210进行使用;上述实施例所述的模型201的训练也可以是在终端侧实现,即训练设备220可以是位于终端侧,例如,可以由终端设备(如,手机、智能手表等)、轮式移动设备(如,自动驾驶车辆、辅助驾驶车辆等)等获取训练集,并根据训练集内的训练样本对模型进行训练,得到训练后的模型201,该训练后的模型201就可以直接在该终端设备使用,也可以由该终端设备发送给其他的设备进行使用。具体本申请实施例对模型201在哪个设备(云侧或终端侧)上进行训练或应用不做限定。

由于模型的应用一般分为两个阶段:训练阶段和推理阶段,下面分别从这两个阶段,对本申请实施例提供的模型的训练方法和数据处理方法的具体流程进行描述。

一、训练阶段

本申请实施例中,训练阶段为上述图2中训练设备220利用训练集中的训练样本对模型201执行训练操作的过程。具体请参阅图3,图3为本申请实施例提供的模型的训练方法的一种流程示意图,具体可以包括如下步骤:

301、训练设备通过模型计算多个源域中的每个源域各自对应的第一相似度矩阵,并通过所述模型计算目标域对应的第二相似度矩阵。

首先,训练设备通过模型计算多个源域中每个源域各自对应的相似度矩阵(可称为第一相似度矩阵),其中,该多个源域是基于目标任务的特性选择出来的与其相关的多个源域,例如,假设选择了与目标任务相关的M个源域,那么针对这M个源域中的每个源域,训练设备都可通过模型计算得到每个源域各自对应的第一相似度矩阵,一共可得到M个第一相似度矩阵。

在本申请实施例中,每个第一相似度矩阵用于表征各自对应源域的类别中心两两之间的相似度值,该类别中心为每个源域中样本的真实标签对应类别的中心。在本申请实施例中,类别中心实际就是“原型”,比如,源域中有3个类别“猫”、“狗”、“鸟”的数据,每种类别的数据各有5个,每个数据可投影为高维空间的一个点,属于同一类别的数据就会靠的比较近,对其求平均,就可得到对应的类别中心。此外,由于目标域的数据是无标签的数据,针对其中的每个数据,是通过计算所有伪标签的位置来得到类别中心的(就称为伪类别中心)。

需要说明的是,在本申请实施例中,不管是第一相似度还是第二相似度,每个相似度矩阵内有一个或多个元素,如2×5的矩阵,就对应有10个元素,每个元素表示两个类别中心之间的相似度,如,矩阵中有10个元素,每个源域都有4个类别中心(如,“猫”、“狗”、“鸟”、“马”这4个类别的中心),两两类别中心的相似度值就一共有10个,与元素的取值是一一对应的。

训练设备除了通过模型计算多个源域中每个源域各自对应的相似度矩阵之外,还要进一步通过该模型计算目标域对应的相似度矩阵(可称为第二相似度矩阵),其中,第二相似度矩阵用于表征目标域的伪类别中心两两之间的相似度值,伪类别中心为目标域中样本的伪标签对应类别的中心。由于目标域上的数据(如,图像)没有标注,因此将目标域中的数据(如,图像)输入到模型中得到分类置信度矩阵,该分类置信度矩阵中的每个元素的取值表示该图像属于各个类别的概率大小,从中选取元素取值小于特定阈值的数据作为训练样本,并且模型的输出即作为所选择图像的标签q,该标签q即为所述的伪标签。

为便于理解,下面以输入模型的训练样本为图像为例,对训练设备通过模型计算多个源域中每个源域各自对应的相似度矩阵以及计算目标域对应的相似度矩阵的具体实现方式进行介绍。

训练设备首先通过特征提取器E(该特征提取器E属于该模型中的一部分)对输入的训练图像进行特征提取(如,将训练图像映射到低维空间,输出一个特征向量),然后通过如下公式1更新源域m上每个类别的类别中心(即原型):

其中,S

针对每个源域,都可通过上述公式(1)得到每个类别的原型,这里需要注意的是,所有源域包括的类别数量和类型需保持一致,例如,假设类别数量C=5,且具体的类别分别为“动物”、“天空”、“建筑”、“花朵”、“草地”,那么每个源域都需包括这5个类别的训练样本。

类似地,对于目标域

其中,

需要注意的是,在本申请的一些实施方式中,可以采用在线更新类别中心(每个batch都需更新)的方式,由于每个batch的随机采样可能造成类别中心点计算的巨大波动,因此在本申请实施例中,可采用指数移动平均的方法进行更新,该更新方法如下公式(3)所示:

f

其中,α是指数衰减率,是一个超参数,经验取值在0.5左右(其他取值也可以),I是当前的迭代次数(一次迭代次数指的是当前一个batch的训练样本),f

这里需要注意的是,在本申请实施例中,每个训练轮次可以一个batch为单位,一个batch包括一个小批量的训练样本,即每个源域和目标域各取k个样本,得到一个batch的总的训练样本(M+1)×k。

为了捕获每个域上样本的结构信息以及探索类别间潜在的关系,本申请实施例基于之前计算的原型,利用高斯核来构建不同域上的相似度矩阵

其中,

302、训练设备根据每个第一相似度矩阵和该第二相似度矩阵得到目标张量。

训练设备在计算得到每个源域各自对应的第一相似度矩阵和目标域对应的第二相似度矩阵之后,为了对所有域之间的关系进行整体的约束,训练设备将根据每个第一相似度矩阵和该第二相似度矩阵得到目标张量,该目标张量具体可以是一个三阶张量。

需要说明的是,在本申请的一些实施方式中,训练设备根据每个第一相似度矩阵和第二相似度矩阵得到目标张量的具体实施方式可以是:首先,训练设备根据每个第一相似度矩阵和第二相似度矩阵组合得到原始的三阶张量(可称为第一高阶张量),之后,对该第一高阶张量进行低秩约束,得到该目标张量。

具体地,本申请实施例将前面得到的相似度矩阵

还需要说明的是,在本申请的一些实施方式中,训练设备对该第一高阶张量进行低秩约束的方式具体可以是:训练设备先对该第一高阶张量进行旋转操作(旋转操作的目的要对M+1所在的维度进行后续操作),得到第二高阶张量,然后对该第二高阶张量进行核范数约束,从而得到目标张量。需要注意的是,在本申请的一些实施方式中,该旋转操作可以是水平旋转操作,也可以是垂直旋转操作,具体此处不做限定。

具体地,可参阅图4,图4为本申请实施例提供的技术框图,对于原始的三阶张量

还需要说明的是,在本申请的一些实施方式中,训练设备对该第二高阶张量进行核范数约束的方式具体可以是:首先,训练设备对该第二高阶张量进行快速傅里叶变换(fast fourier transform,FFT),得到第三高阶张量,之后,在频域中对第三高阶张量进行奇异值分解操作,得到分解结果,该分解结果由三个张量U、S、V组成。其中,U、V为正交的张量(可看做张量S的基张量),具体用于表征张量S的大小,张量S即为在以U、V为基向量时的分解结果。在本申请实施例中,为了剪切冗余信息,得到精简信息,还可以在得到该分解结果后,对该分解结果进行收缩操作(即剪除冗余信息),也就是上述所述的最小化约束,得到约束结果;最后,对该约束结果进行逆快速傅里叶变换(invert fast fourier transform,IFFT),得到目标张量。

具体地,依然以图4为例,为了利用核范数来约束模型的训练,需对张量

需要注意的是,训练设备将

其中,输入:对于任意输入张量

303、训练设备根据第一子损失函数和目标张量得到目标损失函数,该第一子损失函数根据目标任务确定,且该第一子损失函数用于表征输入该模型的训练样本与输出的预测结果之间的差异,该训练样本包括来自上述多个源域的样本。

训练设备在得到目标张量后,就可根据该目标张量以及基于目标任务确定的子损失函数(可称为第一子损失函数)得到最终用于训练模型的目标损失函数,该训练样本为上述来自多个源域的样本,例如,假设源域的数量为M,那么用于训练该模型的训练样本为来自于这M个源域的样本。

其中,在本申请实施例中,该第一子损失函数用于表征输入该模型的训练样本与输出的预测结果之间的差异。作为一个示例,当目标任务为分类任务、目标检测等任务时,训练样本上标注有该训练样本对应的真值标签(即真实标签),这种情况下,第一子损失函数表征的是输入该模型的训练样本对应的预测结果(即模型对该训练样本进行预测得到的预测标签)与该训练样本真值标签之间的差异;作为另一示例,当目标任务是图像增强(如,超分辨重建任务、去噪声任务等)时,训练样本一般具有与其对应的另一个真值样本,该真值样本为该训练样本对应的真实增强样本,这种情况下,第一子损失函数表征的是输入该模型的训练样本对应的预测结果(即模型对该训练样本进行增强得到的增强图像)与该训练样本对应的真值样本之间的差异。

具体地,本申请实施例构建的目标损失函数可如下公式(5)所示:

其中,相似度矩阵

需要注意的是,在本申请实施例的一种可能的实施方式中,x为源域(多个源域)上的训练样本,y为训练样本x对应的真实标签,在这种情况下,仅是将这多个源域上的样本作为训练数据对该模型进行训练,此时第一子损失函数

其中,p

在本申请实施例的一种可能的实施方式中,还可以将目标域中的样本也纳入到训练过程中来,在这种情况下,x包括源域(多个源域)上的训练样本以及目标域上的样本,y为样本x对应的标签,具体地,若样本x属于源域上的训练样本,那么y就是样本x的真实标签,若样本x属于目标域上的样本,那么y就是样本x的伪标签。此时,第一子损失函数

其中,

需要说明的是,在本申请上述实施例中,由于

具体地,在目标损失函数中引入一个辅助张量

其中,μ是惩罚系数,

304、训练设备利用该目标损失函数对该模型进行迭代训练,直至达到训练终止条件。

训练设备在构建好目标损失函数之后,将利用该目标损失函数对该模型进行迭代训练,直至达到训练终止条件。

需要说明的是,在申请实施例中,可以通过设计一个新的交替的更新方法来更新辅助张量

在本申请实施例中,下面以模型包括特征提取器和分类器为例,对本申请实施例的整体优化流程进行说明,该整体优化流程可如下算法所示:

输入:训练样本S

输出:优化后的模型参数包括特征提取器Θ

迭代变量iter从1到max_iter最大的迭代次数循环:

a.通过梯度优化的方法更新网络参数Θ

b.通过奇异值分解优化更新A,即:

奇异值分解:

奇异值收缩:

还需要说明的是,在本申请的一些实施方式中,训练终止条件可以有多种判断方式,包括但不限于:

(1)目标损失函数达到预设阈值。

本申请实施例中,可事先对目标损失函数设置一个阈值(如,0.03),在对整个模型进行迭代训练的过程中,每次训练结束后都判断当前轮次训练得到的目标损失函数的取值是否达到阈值,若没达到,则继续训练,若达到设置的预设阈值,则终止训练,且当前轮次训练确定的模型中各个网络的模型参数的取值就作为最终训练好的模型的模型参数取值。

(2)目标损失函数开始收敛。

本申请实施例中,在对整个模型进行迭代训练的过程中,若当前轮次训练得到的目标损失函数的取值与上一轮次训练得到的目标损失函数的取值之间的差值在预设范围(如,在0.01)之内,则认为该目标损失函数收敛了,则可终止训练,那么该当前轮次训练确定的模型中各个网络的模型参数的取值就作为最终训练好的模型的模型参数取值。

(3)训练达到预设轮次。

本申请实施例中,可预先配置对模型进行训练的迭代轮次(如,1000次),每个轮次训练结束后,都可将对应该轮次的整个模型中各个网络的模型参数的取值存储下来,直至训练的迭代次数达到预设次数,之后,利用测试数据对各个轮次得到的模型进行验证,从中选择性能最好的那组模型参数的取值作为该模型最终的模型参数的取值,或者,将最后一次训练得到的那组模型参数作为该模型最终的模型参数的取值。

在本申请上述实施方式中,本申请实施例首先为每个域(包括目标域和多个源域)的每个类别建立原型(即类别中心),再在每个域内基于计算出的原型建立一个关系矩阵(即相似度矩阵),之后根据每个域各自对应的相似度矩阵构建得到一个目标张量,通过相似度矩阵构建域之间的高阶关联,并将该高阶关联融合进目标损失函数,使得模型学习提取域无关的特征,从而提升模型在目标域上的性能。相对于方式一,本申请实施例将不同域上的建立的相似度矩阵堆叠构建成一个目标张量,能够有效的增强模型在各个不同的域上特征分布的一致性,并且不需要使用对抗训练,减小了网络训练难度;相对方式二,本申请实施例能够从整体挖掘所有域之间的关联,并且不会增加推理阶段的任何开销;相对方式三,本申请实施例只是在训练时约束模型的特征提取,推理时只需要通过特征提取以及分类即可得到最终结果,不会增加推理时的任何额外开销。

综上所述,本申请主要是针对目前多源域适应方法存在的部分问题的改进,通过本申请实施例提供的模型的训练方案,不会额外增加推理阶段的运行时间及计算开销,本申请实施例构建不同域的高阶关联并利用张量低秩进行约束,增强了不同域上提取的特征的一致性,使得模型即使在没有见过的目标域上也有不错的性能提升。

为便于理解上述实施例的总体流程,下面以图5为例,对本申请实施例提供的模型的训练方法的总体流程进行介绍,其中,图5中灰色底框中的“张量低秩约束”是本申请实施例的核心,首先,是各个域(包括目标域和多个源域)的数据(如,图像)输入到模型(可以共享权重的模型)中进行特征提取,然后利用提取的特征计算各个类别的原型,也就是类别中心(对于目标域则需先生成伪标签)。得到每个类别的中心后计算各个域上类别的相似度矩阵,最后利用相似度矩阵构建高阶张量,并利用张量低秩约束使得各个域的关系矩阵相似来增强从不同域提取的特征的一致性。

基于该图5的总体流程示意图,其对应的总体框架图可如图6所示,以目标任务为图像分类为例进行说明,本申请的核心装置可如图5所示,其中,该模型500主要包括:特征提取器501,原型计算单元502、相似度矩阵构建器503、张量低秩约束单元504、分类器505(分类器505在目标任务为分类任务时存在),其中,特征提取器501是一个深度学习模型,不同的域共享,用于提取图像的深度特征;原型计算单元502用于基于提取得到的图像的特征计算每个域的各个类别的原型,也就是类别中心;相似度矩阵构建器503主要是利用得到的各个域的不同类别的原型,计算类别之间的相似性关系(即相似度矩阵);张量低秩约束单元504是本申请实施例的主要构件,其通过对构建好的高阶域间关系张量施加低秩约束,增强各个域类别原型的一致性。分类器505用于对输入的特征进行识别,得到输出图像属于各个类别的概率大小。

二、推理阶段

本申请实施例中,训练阶段描述的是上述图2中的执行设备210利用训练后的模型201对输入的数据(如,图像)进行处理的过程,具体请参阅图7,图7为本申请实施例提供的数据处理方法的一种流程示意图,具体可以包括如下步骤:

701、执行设备获取与目标任务相关的输入数据。

首先,执行设备获取待处理的输入数据,该输入数据与待执行的目标任务相关,例如,当目标任务是分类任务,那么输入数据就是指用于进行分类的数据。

需要注意的是,在本申请实施例中,根据目标任务的不同,输入数据的类型也不同,例如,输入数据可以是图像数据,也可以是音频数据,还可以是文本数据,其数据类型由待处理的目标任务决定。这里对几种典型目标任务的应用场景进行阐述:

1)目标任务是目标检测任务

目标检测任务一般针对图像中的目标物体的检测,在这种情况下,输入数据一般是指输入的图像,执行设备将获得的图像输入到训练后的模型,通过该训练后的模型对输入的图像进行目标检测,得到检测结果,即输出数据是检测结果。

2)目标任务是分类任务

一种实施例中,分类任务可以是针对图像进行的,在这种情况下,输入数据是指输入的图像,执行设备将获得的图像输入到训练后的模型,通过该训练后的模型对输入的图像进行分类,输出分类结果,即输出数据是图像的分类结果。

另一种实施例中,分类任务除了可以是针对图像进行的,还可以是针对文本或音频,在这种情况下,输入数据就是指对应的文本数据或音频数据,执行设备将获得的文本数据或音频数据输入到训练后的模型,通过该训练后的模型对输入的文本或音频进行分类,输出分类结果,即输出数据是文本的分类结果或音频的分类结果。

以上仅是针对几种场景的目标任务进行说明,在不同的目标任务中,输入数据和输出数据是与该目标任务相关的,具体此处不在示例。

702、执行设备通过训练后的模型对所述输入数据进行处理,得到输出数据,该训练后的模型利用构建的目标损失函数训练得到。

最后,执行设备通过该训练后的模型对输入数据进行处理,从而得到输出数据(如,预测结果、检测结果等)。该训练后的模型具体为经过上述训练阶段得到的模型,具体请参参阅上述图3和图4对应实施例所述,此处不予赘述。

需要说明的是,本申请实施例中经过训练得到的模型可以应用在多种场合中用于处理对应的目标任务,如,可以应用在各个存在多个与目标域任务相关的标注数据需要进行域适应的视觉任务训练中,通过构建不同域的高阶关联增强不同域上模型特征提取的一致性。可帮助现有的方法在不需要采集大量的目标域上的标注数据的情况下,将模型快速部署到相应的目标任务上,提升模型在目标域上的性能表现。本申请实施例的具体应用包括但不限于:图像语义分割、目标检测、图像分类等各计算机视觉领域,甚至可以应用到非视觉任务中(如,语音识别、文本分类等)。下面将对多个落地到产品的多个应用场景进行介绍。

(1)图像分类

图像分类是计算机视觉的基础任务,其在现实中有着广泛的应用,如物体识别、垃圾分类等等。标注数据一般比较难以获得。因此,在真实业务场景中,越来越重视如何充分利用好已有的相关的标注数据并将模型学习到的知识迁移到目标场景中,实现对数据的重复利用,甚至利用合成数据绕过数据标注的困难。本申请实施例提供的基于张量奇异值分解的方法训练得到的模型,能够有效地约束不同域的特征提取的一致性,增强模型的泛化能力。

作为一种示例,如图8所示,本申请实施例训练后的模型可应用于图像分类中的相册分类,用户在手机和云盘上存储了大量图片,按照类别对相册进行分类管理能提高用户的使用体验。利用本申请实施例的训练后的模型对相册中的图片进行分类,能够得到按照类别进行排列或者存储的相册,可以方便用户对不同的物体类别进行分类管理,从而方便用户的查找,能够节省用户的管理时间,提高相册管理的效率。其中,在根据分类类别对相册中的图片进行排列时,可以将属于同一类的图片排列在一行或者一行。例如,在最终得到的相册中,第一行的图片都属于飞机,第二行的图片都属于汽车。

(2)物体检测

物体检测也是十分常见的业务场景,也有着非常广泛的应用。其标注相对于图像分类来说较更加困难,标注更加耗时耗力。现有的方法大部分都需要在每个新场景重新标注大量的数据来训练模型,这使得很多模型部署困难。因此,利用本申请实施例方法可以较为容易的利用已有的相关标注数据以及目标域的无标签数据提升模型在目标域上的性能,使得已有的方法能够快速的部署到每个相应的目标场景中去。

作为一种示例,本申请实施例训练后的模型可应用于物体检测中的目标识别,针对得到的图片,还可以利用本申请实施例训练后的模型寻找包含有目标对象的图片,例如,如图9所示,可以利用本申请实施例训练后的模型对拍照得到的街景寻找该街景图片中是否有目标对象,如是否存在图9中左边的人脸模型。

作为另一示例,本申请实施例训练后的模型可应用于物体检测中的智能驾驶的物体识别,在自动驾驶的应用场景中,可以利用本申请实施例训练后的模型对安装在车辆上的传感器(如,摄像头)拍摄到的图像数据或视频数据中的图像进行处理,从而能够自动识别出在行驶过程中路面上的各种障碍物的类别,例如,可以自动识别出自车的前方行驶路面是否有障碍物以及何种障碍物(如,迎面驶来的卡车、行人、骑行者等关键障碍物,或,路边的灌木丛、树木、建筑物等非关键障碍物等)。

(3)拍照识物

用户在拍照时,可以利用本申请实施例训练后的模型对拍到的照片进行处理,能够自动识别出被拍物体的类别,例如,可以自动识别出被拍物体是何种花卉、动物等。例如,利用本申请实施例训练后的模型对拍照得到的共享单车进行识别,能够识别出该物体属于自行车,进一步的,还可以显示该自行车的相关信息,具体可如图10所示。

(4)语音识别

作为一个示例,本申请训练好的模型还可用于语音识别(如,翻译机同声传译),具体请参阅图11,翻译机同声传译是一个语音识别和机器翻译问题。在语音识别和机器翻译问题上,本申请训练后的模型可以是卷积神经网络(卷积神经网络是常用的一种识别模型),在需要同声传译的场景,必须达到实时语音识别并进行翻译,这就要求部署在设备上的卷积神经网络需要计算速度快,而本申请训练好的模型由于计算量低(本申请训练后的模型只是在训练时约束模型的特征提取,不会增加推理时的任何额外开销),使得其运行更快,能够很好的满足上述语音识别的应用场景对卷积神经网络的一系列要求。

应理解,上文介绍的图像分类(如,相册分类)、物体检测(如,目标识别、智能驾驶的物体识别等)、拍照识物、语音识别等只是本申请实施例的数据方法所应用的几个具体场景,本申请实施例训练后的模型在应用时并不限于上述场景,其还可以应用在人工智能领域的各个细分领域中,如,语义分析领域等,只要能使用神经网络的领域和设备,都可应用本申请实施例提供的训练好的模型,此处不再举例示意。

为了对本申请实施例所带来的有益效果有更为直观的认识,以下对本申请实施例所带来的技术效果作进一步的对比。经过本申请实施例提供的模型训练方法得到的训练后的模型在Digits和Office-31数据集的分类结果与其他方法的对比分别如下述表1和表2所示,其中,T-SVDNet为本申请实施例方法,part是指用了数据集里的部分训练数据,all是用了数据集里的所有数据。

表1.本申请实施例方法在Digits数据集上的分类结果与其他方法的对比

表2.本申请实施例方法在Office-31数据集上的分类结果与其他方法的对比

此外,本申请实施例方法在不同的模块的消融实验在Digits数据集上的性能如下表3所示,由表1至表3可知,本申请实施例方法在在多个多源域到目标域的场景下均取得了良好的效果。

表3.本申请实施例方法在Digits数据集上的消融实验结果与其他方法的对比

图12为本申请实施例方法在Digits数据集上5个不同的域的相似度矩阵的可视化(目标域为mm),第一行是没有施加低秩约束的结果,第二行是施加了低秩约束的结果。由图12可知,施加了低秩约束的效果远好于没有施加低秩约束的效果。

在上述实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体参阅图13,图13为本申请实施例提供的一种训练设备的示意图,该训练设备1300具体可以包括:计算模块1301、第一构建模块1302、第二构建模块1303以及训练模块1304,其中,计算模块1301,用于通过模型计算多个源域中的每个源域各自对应的第一相似度矩阵,并通过该模型计算目标域对应的第二相似度矩阵,每个第一相似度矩阵用于表征各自对应源域的类别中心两两之间的相似度值,该第二相似度矩阵用于表征该目标域的伪类别中心两两之间的相似度值,该类别中心为该每个源域中样本的真实标签对应类别的中心,该伪类别中心为该目标域中样本的伪标签对应类别的中心;第一构建模块1302,用于根据每个第一相似度矩阵和该第二相似度矩阵得到目标张量;第二构建模块1303,用于根据第一子损失函数和该目标张量得到目标损失函数,该第一子损失函数根据目标任务确定,该第一子损失函数用于表征输入该模型的训练样本与输出的预测结果之间的差异,该训练样本包括来自该多个源域的样本;训练模块1304,用于利用该目标损失函数对该模型进行迭代训练,直至达到训练终止条件。

在一种可能的设计中,第一构建模块1302,具体用于:根据每个第一相似度矩阵和该第二相似度矩阵构建得到第一高阶张量,并对该第一高阶张量进行低秩约束,得到该目标张量。

在一种可能的设计中,第一构建模块1302,具体还用于:对该第一高阶张量进行旋转操作,得到第二高阶张量,之后,对该第二高阶张量进行核范数约束,得到该目标张量。

在一种可能的设计中,第一构建模块1302,具体还用于:对该第二高阶张量进行快速傅里叶变换,得到第三高阶张量,之后,在频域中对该第三高阶张量进行奇异值分解操作,得到分解结果,该分解结果由三个张量U、S、V组成。其中,U、V为正交的张量(可看作张量S的基张量),具体用于表征张量S的大小,张量S即为在以U、V为基向量时的分解结果。之后,对该分解结果(即张量S)进行最小化约束,得到约束结果,最后,对该约束结果进行逆快速傅里叶变换,得到该目标张量。

在一种可能的设计中,旋转操作包括:水平旋转操作,或,垂直旋转操作。

在一种可能的设计中,第二构建模块1303,具体用于:根据第一张量取值与该目标张量构建得到第二子损失函数,该第一张量取值为向该模型输入第一训练样本时该目标张量的值,该第一训练样本为该源域中的任意一个样本,最后,根据该第一子损失函数和该第二子损失函数得到该目标损失函数。

需要说明的是,训练设备1300中各模块/单元之间的信息交互、执行过程等内容,与本申请中图3或图4对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

本申请实施例还提供一种执行设备,具体参阅图14,图14为本申请实施例提供的一种执行设备的示意图,该执行设备1400具体可以包括:获取模块1401以及处理模块1402,其中,获取模块1401,用于获取与目标任务相关的输入数据;处理模块1402,用于通过训练后的模型对该输入数据进行处理,得到输出数据,该训练后的模型利用目标损失函数训练得到,该目标损失函数根据第一子损失函数和目标张量得到,该目标张量根据每个第一相似度矩阵和第二相似度矩阵得到,该每个第一相似度矩阵和该第二相似度矩阵由该模型计算得到,一个第一相似度矩阵对应一个源域,该每个第一相似度矩阵用于表征各自对应源域的类别中心两两之间的相似度值,该第二相似度矩阵用于表征该目标域的伪类别中心两两之间的相似度值,该类别中心为该每个源域中样本的真实标签对应类别的中心,该伪类别中心为该目标域中样本的伪标签对应类别的中心。

在一种可能的设计中,该输入数据至少包括如下任意一项:图像数据、音频数据或文本数据。

需要说明的是,执行设备1400中各模块/单元之间的信息交互、执行过程等内容,与本申请中图7对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

接下来介绍本申请实施例提供的另一种训练设备,请参阅图15,图15为本申请实施例提供的训练设备的一种结构示意图,训练设备1500上可以部署有图13对应实施例中所描述的训练设备1300,用于实现图13对应实施例中训练设备1300的功能,具体的,训练设备1500由一个或多个服务器实现,训练设备1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1522和存储器1532,一个或一个以上存储应用程序1542或数据1544的存储介质1530(例如一个或一个以上海量存储设备)。其中,存储器1532和存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备1500中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在训练设备1500上执行存储介质1530中的一系列指令操作。

训练设备1500还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

本申请实施例中,中央处理器1522,用于执行图3或图4对应实施例中的训练设备执行模型的训练方法。例如,中央处理器1522可以用于:通过模型计算多个源域中每个源域各自对应的相似度矩阵(可称为第一相似度矩阵),其中,该多个源域是基于目标任务的特性选择出来的与其相关的多个源域,在本申请实施例中,每个第一相似度矩阵用于表征各自对应源域的类别中心两两之间的相似度值,该类别中心为每个源域中样本的真实标签对应类别的中心。此外,除了通过模型计算多个源域中每个源域各自对应的相似度矩阵之外,还要进一步通过该模型计算目标域对应的相似度矩阵(可称为第二相似度矩阵),其中,第二相似度矩阵用于表征目标域的伪类别中心两两之间的相似度值,该伪类别中心为目标域中样本的伪标签对应类别的中心。在计算得到每个源域各自对应的第一相似度矩阵和目标域对应的第二相似度矩阵之后,为了对所有域之间的关系进行整体的约束,训练设备将根据每个第一相似度矩阵和该第二相似度矩阵得到目标张量,该目标张量具体可以是一个三阶张量。在得到目标张量后,就可根据该目标张量以及基于目标任务确定的子损失函数(可称为第一子损失函数)得到最终用于训练模型的目标损失函数,其中,该第一子损失函数用于表征输入该模型的训练样本与输出的预测结果之间的差异,该训练样本为上述来自多个源域的样本,例如,假设源域的数量为M,那么用于训练该模型的训练样本为来自于这M个源域的样本。在构建好目标损失函数之后,将利用该目标损失函数对该模型进行迭代训练,直至达到训练终止条件。

需要说明的是,中央处理器1522执行上述各个步骤的具体方式,与本申请中图3或图4对应的方法实施例基于同一构思,其带来的技术效果也与本申请上述实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

接下来介绍本申请实施例提供的一种执行设备,请参阅图16,图16为本申请实施例提供的执行设备的一种结构示意图,执行设备1600具体可以表现为各种终端设备,如虚拟现实VR设备、手机、平板、笔记本电脑、智能穿戴设备、监控数据处理设备或者雷达数据处理设备等,此处不做限定。其中,执行设备1600上可以部署有图14对应实施例中所描述的执行设备1400,用于实现图14对应实施例中执行设备1400的功能。具体的,执行设备1600包括:接收器1601、发射器1602、处理器1603和存储器1604(其中执行设备1600中的处理器1603的数量可以一个或多个,图16中以一个处理器为例),其中,处理器1603可以包括应用处理器16031和通信处理器16032。在本申请的一些实施例中,接收器1601、发射器1602、处理器1603和存储器1604可通过总线或其它方式连接。

存储器1604可以包括只读存储器和随机存取存储器,并向处理器1603提供指令和数据。存储器1604的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器1604存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。

处理器1603控制执行设备1600的操作。具体的应用中,执行设备1600的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。

本申请上述图7对应实施例揭示的方法可以应用于处理器1603中,或者由处理器1603实现。处理器1603可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1603中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1603可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1603可以实现或者执行本申请图8对应的实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1604,处理器1603读取存储器1604中的信息,结合其硬件完成上述方法的步骤。

接收器1601可用于接收输入的数字或字符信息,以及产生与执行设备1600的相关设置以及功能控制有关的信号输入。发射器1602可用于通过第一接口输出数字或字符信息;发射器1602还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1602还可以包括显示屏等显示设备。

本申请实施例中,在一种情况下,处理器1603,用于获取待处理的输入数据,该输入数据与待执行的目标任务相关,例如,当目标任务是分类任务,那么输入数据就是指用于进行分类的数据,并通过该训练后的模型对输入数据进行处理,从而得到输出数据(如,预测结果、检测结果等)。该训练后的模型可以是经过本申请图3或图4对应的训练方法得到,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图3或图4所示实施例描述的训练设备所执行的步骤,或者,使得计算机执行如前述图7所示实施例描述的执行设备所执行的步骤。

本申请实施例提供的训练设备、执行设备等具体可以为芯片,芯片包括:处理单元和通信单元,该处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使训练设备内的芯片执行上述图3或图4所示实施例描述的训练设备所执行的步骤,或者,使得执行设备内的芯片执行如前述图7所示实施例描述的执行设备所执行的步骤。

可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。

具体的,请参阅图17,图17为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 200,NPU 200作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路2003,通过控制器2004控制运算电路2003提取存储器中的矩阵数据并进行乘法运算。

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

举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器2002中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器2001中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)2008中。

统一存储器2006用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)2005,DMAC被搬运到权重存储器2002中。输入数据也通过DMAC被搬运到统一存储器2006中。

总线接口单元2010(bus interface unit,简称BIU),用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)2009的交互。

总线接口单元2010,用于取指存储器2009从外部存储器获取指令,还用于存储单元访问控制器2005从外部存储器获取输入矩阵A或者权重矩阵B的原数据。

DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器2006或将权重数据搬运到权重存储器2002中或将输入数据数据搬运到输入存储器2001中。

向量计算单元2007包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。

在一些实现中,向量计算单元2007能将经处理的输出的向量存储到统一存储器2006。例如,向量计算单元2007可以将线性函数和/或非线性函数应用到运算电路2003的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元2007生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路2003的激活输入,例如用于在神经网络中的后续层中的使用。

控制器2004连接的取指存储器(instruction fetch buffer)2009,用于存储控制器2004使用的指令;

统一存储器2006,输入存储器2001,权重存储器2002以及取指存储器2009均为On-Chip存储器。外部存储器私有于该NPU硬件架构。

其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述第一方面方法的程序执行的集成电路。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。

相关技术
  • 一种数据处理方法、模型训练方法、装置及电子设备
  • 一种数据处理方法、模型训练方法、装置及电子设备
技术分类

06120112964882