模型训练方法、数据识别方法和数据识别装置技术领域
本公开涉及模型训练方法、数据识别方法和数据识别装置。更具体地,本发明涉及利用知识蒸馏(knowledge distillation)来学习有效的数据识别模型。
背景技术
最近,通过采用深度学习网络,数据识别的准确性大大提高。然而,速度是许多应用场景下需要考虑的关键因素,而在保证运算速度的同时也要保证应用场景所需要的准确性。因此,尽管数据识别例如对象检测等的进步依赖于越来越深的深度学习体系结构,但是这种不断深入的体系结构导致运行时不断增加的计算开销。因此,提出了知识蒸馏的概念。
复杂的深度学习网络结构模型可以是若干个单独模型组成的集合,或者可以是在若干约束条件下训练得到的较大的网络模型。一旦复杂的网络模型训练完成,便可以用另一种训练方法将需要配置在应用端的缩小模型从复杂模型中提取出来,即知识蒸馏。知识蒸馏是一种在大模型监督下训练快速神经网络模型的实用方法。最常用的步骤是从大型神经网络层提取输出,然后强制小型神经网络输出相同的结果。这样,小型神经网络就可以学习大模型的表达能力。这里的小型神经网络又被称为“学生”模型,而大型神经网络又被称为“教师”模型。
在常规的知识蒸馏方法中,“学生”模型和“教师”模型的输入通常是相同的。但是,如果改变原始的训练数据集,例如将原始的训练数据集中的训练数据改变一定的变化量,则传统方法需要重新训练“教师”模型,然后使用知识蒸馏方法来训练“学生”模型。这种方法导致了较大的运算负担,因为必须重新训练大规模的、难以训练的“教师”模型。
因而,在本发明中提出了一种新的学生模型训练方法。应该注意,上面对技术背景的介绍只是为了方便对本申请的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本申请的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
发明内容
在下文中将给出关于本公开的简要概述,以便提供关于本公开的某些方面的基本理解。应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图确定本公开的关键或重要部分,也不是意图限定本公开的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
为了实现本公开的目的,根据本公开的一个方面,提供了训练与教师模型对应的学生模型的方法,教师模型是以第一输入数据作为输入数据并且以第一输出数据作为输出目标经过训练得到的,方法包括:将第二输入数据作为输入数据并且将第一输出数据作为输出目标对学生模型进行训练,其中所述第二输入数据是通过改变第一输入数据而得到的数据。
根据本公开的另一方面,提供了数据识别方法,包括:使用训练与教师模型对应的学生模型的方法训练得到的学生模型进行数据识别。
根据本公开的另一方面,还提供了数据识别装置,包括:至少一个处理器,被配置成执行数据识别方法。
根据本公开内容,提出了一种新的模型训练方法来增加经训练的学生模型的鲁棒性,而无需重新训练教师模型。根据本公开内容,教师模型的训练输入仍然为原始数据,而学生模型的训练输入是通过改变原始数据而得到的数据。通过这种方式,学生模型的输出仍然与教师模型相同,这意味着无论数据差异如何,都能够对学生模型进行训练而无需重新训练教师模型。
附图说明
参照下面结合附图对本公开实施方式的说明,会更加容易地理解本公开的以上和其它目的、特点和优点,在附图中:
图1是示出常规的学生模型训练方法的示意图;
图2是示出根据本公开实施方式的学生模型训练方法的示意图;
图3是根据本公开实施方式的学习模型训练方法的流程图;
图4示出了根据本公开实施方式的数据识别方法的流程图;
图5示出了根据本公开实施方式的数据识别装置的示意图;
图6是示出可用来实现根据本公开的实施方式的学生模型训练方法或数据识别方法的装置的通用机器的结构简图。
具体实施方式
在下文中将结合附图对本公开的示例性实施方式进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,本领域技术人员在实现实施方式的过程中可以做出很多特定于实施方式的决定,以便实现实施方式,并且这些决定可能会随着实施方式的不同而有所改变。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与根据本公开的方案密切相关的部件,而省略了与本公开关系不大的其他细节。
下面参考附图描述这里公开的示例性实施例。应当注意,出于清楚的目的,在附图和描述中省略了有关所属技术领域的技术人员知道但是与示例性实施例无关的部分和过程的表示和说明。
本领域的技术人员可以理解,示例性实施例的各方面可以被实施为系统、方法或计算机程序产品。因此,示例性实施例的各个方面可以具体实现为以下形式,即,可以是完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)、或组合软件部分与硬件部分的实施例,本文可以一般称为"电路"、"模块"或"系统"。此外,示例性实施例的各个方面可以采取体现为一个或多个计算机可读介质的计算机程序产品的形式,该计算机可读介质上面体现有计算机可读程序代码。可以例如通过计算机网络来分发计算机程序,或者计算机程序可以位于一个或更多个远程服务器上,或被嵌入设备的存储器中。
可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是,但不限于电的、磁的、光的、电磁的、红外线的、或半导体的系统、设备或装置、或前述各项的任何适当的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储装置、磁存储装置、或前述各项的任何适当的组合。在本文语境中,计算机可读存储介质可以是任何含有或存储供指令执行系统、设备或装置使用的或与指令执行系统、设备或装置相联系的程序的有形介质。
计算机可读信号介质可以包括例如在基带中或作为载波的一部分传播的其中带有计算机可读程序代码的数据信号。这样的传播信号可以采取任何适当的形式,包括但不限于电磁的、光的或其任何适当的组合。
计算机可读信号介质可以是不同于计算机可读存储介质的、能够传达、传播或传输供指令执行系统、设备或装置使用的或与指令执行系统、设备或装置相联系的程序的任何一种计算机可读介质。
体现在计算机可读介质中的程序代码可以采用任何适当的介质传输,包括但不限于无线、有线、光缆、射频等等、或上述各项的任何适当的组合。
用于执行这里公开的示例性实施例的各方面的操作的计算机程序代码可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言,诸如"C"程序设计语言或类似的程序设计语言。
以下参照按照示例性实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图来描述这里公开的示例性实施例的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理设备的处理器以生产出一种机器,使得通过计算机或其它可编程数据处理设备执行的这些指令产生用于实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能够指引计算机或其它可编程数据处理设备以特定方式工作的计算机可读介质中,使得存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令的制造品。
也可以把计算机程序指令加载到计算机或其它可编程数据处理设备上,导致在计算机或其它可编程数据处理设备上执行一系列操作步骤以产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1是示出常规的学生模型训练方法的示意图。
在该常规的学生模型训练方法中,通过使用教师和学生模型的输出之间的差异来部署知识蒸馏,以训练小而快速的学生模型。这种方法可以迫使学生模型学习教师模型的表达能力。
通常,在常规的学生模型训练过程中每个样本将被同样对待,即每个样本产生的损失的权重将是相同的。但这种方法又是不利的,因为教师模型对不同的样本具有不同的置信度,这意味着损失也应当相应地以不同权重加权。因此下面提出根据本公开实施方式的方案来解决该问题。
图2是示出根据本公开实施方式的学生模型训练方法的示意图。
在根据本公开实施方式的学生模型训练方法中,同样通过使用教师和学生模型的输出之间的差异来部署知识蒸馏,以训练小而快速的学生模型来迫使学生模型学习教师模型的表达能力。而与如图1所述的常规的学生模型学习方法不同的是,这里的学生模型的输入被添加了一个变化量Δ。然而,输出目标仍然采用与教师模型的输出目标同样的目标来训练学生模型。按照这种方式训练的学生模型可以适用改变的输入数据,从而能够被应用到更多的应用场景中。
根据本公开实施方式的学习模型训练方法使用神经网络训练学生模型·,神经网络使用通过简化生物神经元的功能而配置的人工神经元,并且人工神经元可以通过具有连接权重的边缘彼此连接。连接权重(神经网络的参数)是边缘的预定值,并且还可以称为连接强度。神经网络可以通过人工神经元执行人脑的认知功能或学习过程。人造神经元也可以称为节点。
神经网络可包括多个层。例如,神经网络可以包括输入层,隐藏层和输出层。输入层可以接收用于执行训练的输入并将输入发送到隐藏层,并且输出层可以基于从隐藏层的节点接收的信号生成神经网络的输出。隐藏层可以设置在输入层和输出层之间。隐藏层可以将从输入层接收的训练数据改变为容易预测的值。包括在输入层和隐藏层中的节点可以通过具有连接权重的边缘彼此连接,并且包括在隐藏层和输出层中的节点也可以通过具有连接权重的边缘彼此连接。输入层、隐藏层和输出层可以分别包括多个节点。
神经网络可以包括多个隐藏层。包括多个隐藏层的神经网络可以称为深度神经网络。训练深度神经网络可以称为深度学习。包括在隐藏层中的节点可以称为隐藏节点。深度神经网络中提供的隐藏层的数量不限于任何特定数量。
可以通过监督学习来训练神经网络。监督学习是指将输入数据和与其对应的输出数据提供给神经网络,并更新边缘的连接权重以便输出对应于输入数据的输出数据的方法。例如,模型训练设备可以通过delta规则和误差反向传播学习来更新人工神经元之间的边缘的连接权重。
深度网络,是深层次的神经网络。深度神经网络从结构上讲与传统的多层感知机没有什么不同,并且在做有监督学习时算法也是一样的。唯一的不同是这个网络在做有监督学习前要先做非监督学习,然后将非监督学习学到的权值当作有监督学习的初值进行训练。这个改变其实对应着一个合理的假设。用P(x)表示用无监督学习对网络进行预训练得到的数据的一种表示,然后用有监督学习对网络进行训练(如BP算法),得到P(Y|X),其中Y为输出(比如类别标签)。该假设认为P(X)的学习有助于P(Y|X)的学习。这种学习思路相对于单纯的有监督学习而言有助于降低过拟合的风险,因为它不仅学习了条件概率分布P(Y|X),还学习了X和Y的联合概率分布。
根据本公开实施方式的学习模型训练方法使用深度神经网络,特别是卷积神经网络。近些年,提出了卷积神经网络(Convolutional Neural Network,CNN),其是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。它包括卷积层(convolutional layer)和池化层(pooling layer)。CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显式的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。因此,根据本公开实施方式的学习模型训练方法优选使用卷积神经网络,通过迭代地减少教师模型的输出与学生模型的输出之间的差异来训练学生模型。由于卷积神经网络对于本领域技术人员是公知的,本公开内容并不对其原理进行更详细的描述。
图3示出了根据本公开实施方式的学习模型训练方法的流程图。
参照图3,在步骤301处,预先获取已训练的教师模型或临时训练教师模型,其中该教师模型是以作为第一输入数据的未经改变的样本作为输入数据并且以第一输出数据作为输出目标经过训练得到的。在步骤302处,将作为第二输入数据的经改变的样本作为输入数据并且将与教师模型相同的第一输出数据作为输出目标对学生模型进行训练,其中第二输入数据是通过改变第一输入数据而得到的数据,该改变是与第一输入数据的类型相对应的信号处理方法。步骤301和步骤302中的训练通过卷积神经网络完成。
在常规的对学生模型进行训练步骤中,将与教师模型相同的第一输入数据的样本作为输入数据并且将与教师模型相同的第一输出数据作为输出目标对学生模型进行训练。这个过程可以通过下面的公式(1)来表达:
S(xi)=T(xi)   (1)
在上面的公式(1)中,S表示学生模型,T表示教师模型,xi表示训练样本。即,在常规的学生模型训练方法中,学生模型和教师模型的输入样本是相同的。因此,一旦输入样本发生变化,就需要重新训练教师模型,再通过知识蒸馏获得新的学生模型。
教师模型和学生模型的输出之间的差异可以表示为损失函数。常用的损失函数包括:1)Logit损失;2)特征L2损失;和3)学生模型softmax损失。下面将对这三个损失函数进行详细说明。
1)Logit损失
Logit损失用于表示由教师模型和学生模型生成的概率分布之间的差异。这里,使用KL散度来计算该损失函数,其中KL散度即相对熵,是用于描述两个概率分布和差异的一种常见方法,Logit损失函数如以下公式所示:
在公式(2)中,,LL表示Logit损失,xt(i)表示教师模型将样本分类到第i个类别的概率,xs(i)表示学生模型将样本分类到第i个类别的概率,m表示类别的总数量。
2)特征L2损失
特征L2损失通过以下公式来表示:
在公式(3)中,L
F表示特征L2损失,m表示类别的总数量(样本x
i的总数量),
表示样本x
i经过学生模型输出的输出特征,
表示样本x
i经过教师模型输出的输出特征。
3)学生模型softmax损失
在公式(4)中,L
s表示softmax损失,m表示类别的总数量(样本x
i的总数量),y
i是x
i的标签,
表示样本x
i经过学生模型输出的输出特征,其余参数例如W和b均是softmax中的常规参数,W为系数矩阵,b为偏置,这些参数都是通过训练而确定的。
基于以上三个损失函数,总的损失可以表示为以下公式:
L=λLLL+λFLF+λSLs   (5)
其中,λL、λF、λS均是通过训练得到的。
下面对与上述传统的学生模型训练步骤不同的训练步骤302。
与上述常规的学生模型训练方法的步骤不同,在根据本公开实施方式的图3所示的步骤302中,学生模型的输入被添加了一个变化量Δ,这个过程可以通过下面的公式(6)来表达:
S(xi+Δ)=T(xi)   (6)
在上面的公式(6)中,S表示学生模型,T表示教师模型,xi表示训练样本,Δ表示改变xi的变化量。该变化量是与输入数据即样本的类型相对应的信号处理方法。例如,假如训练样本为图像,Δ可以是例如对图像进行降采样处理所造成的改变量。输入数据的类型包括但不限于图像数据、语音数据或文本数据。总之,在根据本公开实施方式的学生模型训练方法中,学生模型和教师模型的输入样本是不同的。
在将变化量Δ添加到训练数据之后,学生模型和教师模型的训练样本域将变得不同。在根据本公开实施方式的学生模型训练方法中,直接使用常规方法中的Logit损失和特征L2损失训练的学生模型无法对数据或对象进行准确的识别。基于原始输入样本与经改变的数据样本间存在的数据关联性,考虑采用域相似性度量-多核最大均值差异(MK-MMD)作为损失函数。通过将域间距离度量变更为多核最大均值差异MK-MMD,可以同时衡量多个适配层的域间距离,并且MK-MMD的参数学习并不会增加深度神经网络的训练时间。通过基于MK-MMD的损失函数的学生模型学习方法学习的模型,在多个不同类型的任务上都能够取得较好的分类效果。所使用的MK-MMD函数表示为下面的公式(7):
在上面的公式(7)中,N和M分别表示对应于样本集x和y中的一个类别中的样本数。在根据本公开实施方式的学生模型训练方法中,对应于学生模型的一个类别的样本数与教师模型的一个类别的样本数优选为相同,即在下面的各个公式中,优选地,N和M具有相同的值。
利用上面的MK-MMD函数(对应于下面公式中的MMD)对Logit损失进行优化,即将Logit损失修改为:
在上面的公式(8)中,LL表示经修改的Logit损失,xt(i)表示教师模型将样本分类到第i个类别的概率,xs(i)表示学生模型将样本分类到第i个类别的概率,m表示类别的总数量。
接下来,利用上面的MK-MMD函数(对应于下面公式中的MMD)对特征损失进行优化,即将特征损失修改为:
在公式(9)中,L
F表示经修改的特征损失,m表示类别的总数量(样本x
i的总数量),
表示样本x
i经过学生模型输出的输出特征,
表示样本x
i经过教师模型输出的输出特征。
学生模型softmax损失与根据图1所述的学生模型softmax损失一致,即表示如下:
在上面的公式(10)中,L
s表示softmax损失,m表示类别的总数量(样本x
i的总数量),y
i是x
i的标签,
表示样本x
i经过学生模型输出的输出特征,其余参数例如W和b均是softmax中的常规参数,W为系数矩阵,b为偏置,这些参数都是通过训练而确定的。
基于以上三个损失函数,总的损失可以表示为以下公式:
L=λLLL+λFLF+λSLs   (11)
其中,λL、λF、λS均是通过训练得到的。通过迭代地减少该总的损失来训练学生模型。
图4示出了根据本公开实施方式的数据识别方法的流程图。
参照图4,在步骤401处,预先获取已训练的教师模型或临时训练教师模型,其中该教师模型是以作为第一输入数据的未经改变的样本作为输入数据并且以第一输出数据作为输出目标经过训练得到的。在步骤402处,将作为第二输入数据的经改变的样本作为输入数据并且将与教师模型相同的第一输出数据作为输出目标对学生模型进行训练,其中第二输入数据是通过改变第一输入数据而得到的数据,该改变是与第一输入数据的类型相对应的信号处理方法。步骤401和步骤402中的训练通过卷积神经网络完成。在步骤403中,使用步骤402中得到的学生模型进行数据识别。
在根据本公开实施方式的图4所示的步骤402中,学生模型的输入被添加了一个变化量Δ,这个过程可以通过下面的公式(12)来表达:
S(xi+Δ)=T(xi)   (12)
在上面的公式(12)中,S表示学生模型,T表示教师模型,xi表示训练样本,Δ表示改变xi的变化量。该变化量是与输入数据即样本的类型相对应的信号处理方法。例如,假如训练样本为图像,Δ可以是例如对图像进行降采样处理所造成的改变量。输入数据的类型包括但不限于图像数据、语音数据或文本数据。
在将变化量Δ添加到训练数据之后,学生模型和教师模型的训练样本域将变得不同。在根据本公开实施方式的学生模型训练方法中,直接使用如图1所示的常规方法中的Logit损失和特征L2损失训练的学生模型无法对数据或对象进行准确的识别,因此在本方法中无法直接使用原始Logit损失和特征L2损失。基于原始输入样本与经改变的数据样本间存在的数据关联性,考虑采用域相似性度量-多核最大均值差异(MK-MMD)作为损失函数。
通过将域间距离度量变更为多核最大均值差异MK-MMD,可以同时衡量多个适配层的域间距离,并且MK-MMD的参数学习并不会增加深度神经网络的训练时间。通过基于MK-MMD的损失函数的学生模型学习方法学习的模型,在多个不同类型的任务上都能够取得较好的分类效果。所使用的MK-MMD函数表示为下面的公式(13):
在上面的公式(13)中,N和M分别表示对应于样本集x和y中的一个类别中的样本数。在根据本公开实施方式的学生模型训练方法中,对应于学生模型的一个类别的样本数与教师模型的一个类别的样本数优选为相同,即在下面的各个公式中,优选地,N和M具有相同的值。
利用上面的MK-MMD函数(对应于下面公式中的MMD)对Logit损失进行优化,即将Logit损失修改为:
在上面的公式(14)中,LL表示经修改的Logit损失,xt(i)表示教师模型将样本分类到第i个类别的概率,xs(i)表示学生模型将样本分类到第i个类别的概率,m表示类别的总数量。
接下来,利用上面的MK-MMD函数(对应于下面公式中的MMD)对特征损失进行优化,即将特征损失修改为:
在公式(15)中,L
F表示经修改的特征损失,m表示类别的总数量(样本x
i的总数量),
表示样本x
i经过学生模型输出的输出特征,
表示样本x
i经过教师模型输出的输出特征。
学生模型softmax损失与根据图1所述的学生模型softmax损失一致,即表示如下:
在上面的公式(16)中,L
s表示softmax损失,m表示类别的总数量(样本x
i的总数量),y
i是x
i的标签,
表示样本x
i经过学生模型输出的输出特征,其余参数例如W和b均是softmax中的常规参数,W为系数矩阵,b为偏置,这些参数都是通过训练而确定的。
基于以上三个损失函数,总的损失可以表示为以下公式:
L=λLLL+λFLF+λSLs   (17)
其中,λL、λF、λS均是通过训练得到的。通过迭代地减少该总的损失来训练学生模型。
图5示出了根据本公开实施方式的数据识别装置的示意图。
图5所示的数据识别装置500,包括至少一个处理器501,其被配置成执行数据识别方法。数据识别装置还可以包括存储单元503和/或通信单元502,其中存储单元503用于存储待识别的数据和/或识别后得到的数据,通信单元502用于接收待识别的数据和/或发送识别后的得到的数据。
根据本公开的各种实施方式,教师模型和学生模型的输入数据可以包括图像数据、语音数据或文本数据之一。
图6是示出可用来实现根据本公开的实施方式的信息处理装置和信息处理方法的通用机器700的结构简图。通用机器700可以是例如计算机系统。应注意,通用机器700只是一个示例,并非暗示对本公开的方法和装置的使用范围或者功能的局限。也不应将通用机器700解释为对上述信息处理方法和信息处理装置中示出的任一组件或其组合具有依赖或需求。
在图6中,中央处理单元(CPU)701根据只读存储器(ROM)702中存储的程序或从存储部分708加载到随机存取存储器(RAM)703的程序执行各种处理。在RAM 703中,还根据需要存储当CPU 701执行各种处理等等时所需的数据。CPU 701、ROM 702和RAM 703经由总线704彼此连接。输入/输出接口705也连接到总线704。
下述部件也连接到输入/输出接口705:输入部分706(包括键盘、鼠标等等)、输出部分707(包括显示器,例如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分708(包括硬盘等)、通信部分706(包括网络接口卡例如LAN卡、调制解调器等)。通信部分706经由网络例如因特网执行通信处理。根据需要,驱动器710也可连接到输入/输出接口705。可拆卸介质711例如磁盘、光盘、磁光盘、半导体存储器等等可以根据需要被安装在驱动器710上,使得从中读出的计算机程序可根据需要被安装到存储部分708中。
在通过软件实现上述系列处理的情况下,可以从网络例如因特网或从存储介质例如可拆卸介质711安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图6所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质711。可拆卸介质711的例子包含磁盘(包含软盘)、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 702、存储部分708中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
此外,本公开还提出了一种存储有计算机可读的程序指令的计算机程序产品。所述指令代码由计算机读取并执行时,可执行上述根据本公开的信息处理方法。相应地,用于承载这种程序指令的上面列举的各种存储介质也包括在本公开的范围内。
上面已通过框图、流程图和/或实施方式进行了详细描述,阐明了根据本公开的实施方式的装置和/或方法的具体实施方式。当这些框图、流程图和/或实施方式包含一个或多个功能和/或操作时,本领域的技术人员明白,这些框图、流程图和/或实施方式中的各功能和/或操作可以通过各种硬件、软件、固件或实质上它们的任意组合而单独地和/或共同地实施。在一种实施方式中,本说明书中描述的主题的几个部分可通过特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其他集成形式实现。然而,本领域的技术人员会认识到,本说明书中描述的实施方式的一些方面能够全部或部分地在集成电路中以在一个或多个计算机上运行的一个或多个计算机程序的形式(例如,以在一个或多个计算机系统上运行的一个或多个计算机程序的形式)、以在一个或多个处理器上运行的一个或多个程序的形式(例如,以在一个或多个微处理器上运行的一个或多个程序的形式)、以固件的形式、或以实质上它们的任意组合的形式等效地实施,并且,根据本说明书中公开的内容,设计用于本公开的电路和/或编写用于本公开的软件和/或固件的代码完全是在本领域技术人员的能力范围之内。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。涉及序数的术语并不表示这些术语所限定的特征、要素、步骤或组件的实施顺序或者重要性程度,而仅仅是为了描述清楚起见而用于在这些特征、要素、步骤或组件之间进行标识。
综上,在根据本公开的实施方式中,本公开提供了如下方案,但不限于此:
方案1.一种训练与教师模型对应的学生模型的方法,所述教师模型是以第一输入数据作为输入数据并且以第一输出数据作为输出目标经过训练得到的,所述方法包括:
将第二输入数据作为输入数据并且将所述第一输出数据作为输出目标对所述学生模型进行训练,其中所述第二输入数据是通过改变所述第一输入数据而得到的数据。
方案2.根据方案1所述的方法,其中,对所述学生模型进行训练包括:
通过迭代地减少所述教师模型的输出与所述学生模型的输出之间的差异来训练所述学生模型。
方案3.根据方案2所述的方法,基于所述第一输入数据与所述第二输入数据之间的数据相关性来确定用于计算所述差异的差异函数。
方案4.根据方案3所述的方法,其中,所述差异函数为MK-MMD。
方案5.根据方案3或4所述的方法,其中,在训练所述学生模型的过程中使用所述差异函数来计算Logit损失函数和特征损失函数。
方案6.根据方案3或4所述的方法,其中,在训练所述学生模型的过程中计算Softmax损失函数。
方案7.根据方案6所述的方法,其中,所述教师模型和所述学生模型具有相同的Softmax损失函数。
方案8.根据方案1至4之一所述的方法,其中,所述第一输入数据包括图像数据、语音数据或文本数据之一。
方案9.根据方案5所述的方法,其中所述改变是与所述第一输入数据的类型相对应的信号处理方法。
方案10.根据方案1至4之一所述的方法,其中所述第一输入数据的样本数量与所述第一输入数据的样本数量相同。
方案11.根据方案1至4之一所述的方法,其中通过训练出的分别用于多个损失函数的多个权重来确定用于计算所述差异的差异函数。
方案12.根据方案1至4之一所述的方法,其中利用卷积神经网络来训练所述学生模型。
方案13.一种数据识别方法,包括:
使用根据方案1至8之一所述的方法训练得到的学生模型进行数据识别。
方案14.一种数据识别装置,包括:
至少一个处理器,被配置成执行方案13所述的方法。
方案15.一种存储有程序指令的计算机可读存储介质,当所述程序指令被计算机执行时用于执行方案1-13所述的方法。
尽管上面已经通过对本公开的具体实施方式的描述对本公开进行了披露,但是,应该理解,本领域的技术人员可在所附权利要求的精神和范围内设计对本公开的各种修改、改进或者等同物。这些修改、改进或者等同物也应当被认为包括在本公开的保护范围内。