兼用域内外数据集的知识蒸馏方法和计算机设备与流程

未命名 08-02 阅读:77 评论:0


1.本技术涉及深度学习领域,特别是涉及一种兼用域内外数据集的知识蒸馏方法和计算机设备。


背景技术:

2.知识蒸馏通常利用教师模型对原始数据集进行预测后,利用原始数据集及其对应的预测值对学生模型进行训练,从而使学生模型和教师模型达到相似的预测效果。
3.原始数据集即教师模型训练过程中所使用的数据集,在利用知识蒸馏方法,对教师模型压缩获得学生模型的过程中,可能会遇到缺少原始数据集的问题,这种情况常常出现在数据隐私保护以及联邦学习场景下。
4.随着数据隐私变得越来越严格,许多研究人员和公司只能发布预训练模型,而不能发布其敏感的训练数据,这可能会对用户的模型压缩以及模型部署造成一定的影响。另一方面,在联邦学习场景下,参与方往往只能拿到训练好的模型,而缺乏相关的训练数据集。在这种缺失源数据集的场景下,从互联网收集的未标记的开放数据集通常被作为原始数据集的替代。在开放世界环境下,未标记的数据通常包含许多异常值和噪声,这可能会给知识蒸馏带来错误的学习目标并误导学生模型进行学习。例如,对抗样本可以通过对原图很小的改动就令深度学习模型对预测值有着极大的修改,甚至能达到置信度极高的错误分类预测。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种兼用域内外数据集的知识蒸馏方法的方法。
6.本技术兼用域内外数据集的知识蒸馏方法,包括:
7.得到训练完成的教师模型,利用所述教师模型的中间层信息训练域分类器,所述中间层信息来源于所述教师模型的中间层在每个批量归一化层之前的特征图;
8.训练完成的域分类器将开放数据集划分为由域内数据组成的域内数据集、以及由域外数据组成的域外数据集;
9.所述教师模型根据所述域内数据获得第一类预测值;
10.所述教师模型根据所述域外数据获得第二类预测值;
11.利用所述域内数据集和第一类预测值、利用所述域外数据集和第二类预测值训练学生模型。
12.可选的,所述域分类器包括基底模型和投影头,所述教师模型作为所述基底模型;
13.训练完成的域分类器将开放数据集划分为由域内数据组成的域内数据集、以及由域外数据组成的域外数据集,具体包括:
14.所述基底模型接收输入样本获得第一层次特征,所述投影头接收第一层次特征、以及所述批量归一化层中的特征平均值串联,并输出二者的相对距离;
15.根据所述相对距离将所述开放数据集划分为所述域内数据集和域外数据集。
16.可选的,根据所述相对距离将所述开放数据集划分为所述域内数据集和域外数据集,具体包括:
17.根据所述相对距离保留选择符合预期的、与所述第一层次特征相对应的输入样本置入域内数据集。
18.可选的,所述投影头接收第一层次特征、以及所述批量归一化层中的特征平均值串联,并输出二者的相对距离,具体包括:
19.所述投影头接收第一层次特征、所述批量归一化层中的特征平均值串联,并二者投影到嵌入空间中,所述相对距离为二者在投影在嵌入空间中的余弦距离。
20.可选的,所述基底模型接收输入样本获得第一层次特征,利用下式进行:
[0021][0022]
式中,x为输入样本;
[0023]
v(x)为输入样本的第一层次特征;
[0024]fi
表示基底模型对于输入样本x在第i个批量归一化层之前的特征图;
[0025]
gap表示将一张二维的特征图进行全局平均池化得到一个标量值;
[0026]
为串联操作。
[0027]
可选的,利用所述教师模型的中间层信息训练所述域分类器,具体包括:
[0028]
对输入样本进行数据增强,获得对比样本,所述输入样本和所述对比样本一一对应;
[0029]
基于所述输入样本获得第一层次特征,基于所述对比样本获得第二层次特征,所述第一层次特征和所述第二层次特征一一对应,基于所述对比样本获得第二层次特征,按照基于所述输入样本获得第一层次特征的方式进行;
[0030]
利用所述第一层次特征、所述第二层次特征、以及二者的对应关系训练所述域分类器。
[0031]
可选的,所述教师模型根据所述域外数据获得第二类预测值,具体包括:
[0032]
对于其中一个域外数据,所述域分类器接收基于所述域外数据的层次特征、接收所有域内数据的层次特征,输出域外数据的层次特征与每一域内数据的层次特征的相对距离,作为参照距离;
[0033]
对所述参照距离进行softmax函数归一化,获得归一化结果;
[0034]
结合所述教师模型对所有域内数据的第一类预测值,利用所述归一化结果对所述第一类预测值加权求和获得所述第二类预测值。
[0035]
可选的,对于其中一个域外数据,所述域分类器接收基于所述域外数据的层次特征、接收所有域内数据的层次特征,输出域外数据的层次特征与每一域内数据的层次特征的相对距离,作为参照距离,具体利用下式进行:式中:
[0036]
为第k个域外数据的层次特征;
[0037]
为第i个域内数据的层次特征;
[0038]
表示第k个域外数据的层次特征、以及第i个域内数据的层次特征,经由域分类器输出的相对距离。
[0039]
可选的,对所述参照距离进行softmax函数归一化,获得归一化结果;结合所述教师模型对所有域内数据的第一类预测值,利用所述归一化结果对所述第一类预测值加权求和获得所述第二类预测值,利用下式进行:
[0040]
式中:
[0041]
为第k个域外数据;
[0042]
为第k个域外数据的第二类预测值;
[0043]
表示第k个域外数据的层次特征、以及第i个域内数据的层次特征,二者经由域分类器输出的相对距离;
[0044]
表示第k个域外数据的层次特征、以及第j个域内数据的层次特征,二者经由域分类器输出的相对距离;
[0045]
τ为温度系数;
[0046]
为第i个域内数据;
[0047]
为教师模型对第i个域内数据的第一类预测值。
[0048]
本技术还提供一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现本技术所述的兼用域内外数据集的知识蒸馏方法的步骤。
[0049]
本技术兼用域内外数据集的知识蒸馏方法至少具有以下效果:
[0050]
本技术通过域分类器划分出域内数据集和域外数据集,有针对性地分别根据域内数据集和域外数据集获得两类预测值,第一类预测值和第二类预测值作为学生模型训练学习时使用的软标签,用于完成对学生模型的训练。本技术可以采用开放数据集进行知识蒸馏方法,弱化了知识蒸馏对原始数据集的依赖,减小了开放数据集中的噪声的负面影响。
附图说明
[0051]
图1为本技术一实施例中兼用域内外数据集的知识蒸馏方法的流程示意图;
[0052]
图2为本技术一实施例中兼用域内外数据集的知识蒸馏方法中域分类器的功能示意图;
[0053]
图3为一个实施例中计算机设备的内部结构图。
具体实施方式
[0054]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本技术,并不用于限定本技术。
[0055]
知识蒸馏通常是教师模型利用原始数据集及与其对应的预测值对学生模型进行训练,在无法使用原始数据集的情况下,如果将互联网收集的未标记的开放数据集作为原始数据集的替代,由于开放数据集包含许多异常值和噪声,这可能会给知识蒸馏带来错误的学习目标并误导学生模型进行学习。为了解决由异常值和噪声在知识蒸馏中引起的问题,本技术各实施例提出了兼用域内外数据集的知识蒸馏方法,以解决利用开放数据集的知识蒸馏问题。
[0056]
参阅图1和图2,本技术一实施例中提供一种兼用域内外数据集的知识蒸馏方法,包括步骤s100~步骤s500。其中:
[0057]
步骤s100,得到训练完成的教师模型,利用教师模型的中间层信息训练域分类器,中间层信息来源于教师模型的中间层在每个批量归一化层之前的特征图;
[0058]
步骤s200,训练完成的域分类器将开放数据集划分为由域内数据组成的域内数据集、以及由域外数据组成的域外数据集;
[0059]
步骤s300,教师模型根据域内数据获得第一类预测值;
[0060]
步骤s400,教师模型根据域外数据获得第二类预测值;
[0061]
步骤s500,利用域内数据集和第一类预测值、利用域外数据集和第二类预测值训练学生模型。
[0062]
本实施例中,通过域分类器划分出域内数据集和域外数据集,有针对性地分别根据域内数据集和域外数据集获得两类预测值,如图2所示,知识目录known category包括可靠知识和不可靠知识,通过域分类器domain classfier将其划分为域内数据集、域外数据集。
[0063]
本领域技术人员可知,第一类预测值更加可靠。第一类预测值和第二类预测值作为学生模型训练学习时使用的软标签,用于完成对学生模型的训练。本实施例弱化了知识蒸馏对原始数据集的依赖,减小了开放数据集中的噪声的负面影响。
[0064]
弱化参与方对原始数据集的依赖的实现原因,可通过域内数据检测来理解。域内数据检测,即从无标签的开放数据集中数据中检测域内数据和域外(out of domain,简称为ood)样本,例如图像分类模型在面对域外数据时,理想情况下应该输出各分类概率相同的高熵分布(低预测确定性),因为来自域外数据的输入图片不属于目标类别中的任何一类;但是通常情况下ood类别可能存在某些特征与目标类别相似,从而导致这一类别的预测概率较高而从带来误判。一个直观的区分域内域外数据的方法则是对输出概率的熵进行判断,如利用验证集计算模型有关域内和域外数据(域内样本)有关熵的阈值,将所有预测概率高于该阈值的样本认为是域外数据(域外样本)。但是这一方法在开放世界中往往难以使用,一些未知类别的数据甚至是噪声数据也会使得模型输出有把握(高预测确定性)的低熵预测。域分类器可以将无标签的开放数据集中的域内数据进行过滤,这部分域内数据d
id
将作为教师模型向学生模型传递知识的媒介。
[0065]
进一步地,域分类器包括基底模型和投影头,教师模型作为基底模型。基底模型需
要有较强的特征提取能力,将教师模型作为基底模型,能够提高域分类器的可靠性。可以理解,域分类器的训练主要是针对投影头的训练,投影头例如可以采用多层感知机。
[0066]
域内数据检测的问题可以形式化地表示为一个分类问题,具体地,从无标签的开放数据集du过滤出域内数据集d
id
,可以定义一个以样本x作为输入样本,域内置信度作为输出层信息的评分函数l(x),这样可以建立一个基于预定义阈值的简单域内数据分类器:
[0067]did
={x|l(x)>γ,x∈du}#(1)
[0068]
其中γ则是需要预定义的置信度。式(1)仅提供了评分函数l(x)的基本思路,对于具体的函数内容不再赘述。本实施例按照式(1)给出的基本思路基于输出预测熵值,在图像分类任务中深度学习模型在输出层给出的logits对应着模型对每个分类的评分,随后的softmax函数作为一种归一化方式将评分转换为类别的预测概率。基于熵的算法可以理解为以one-hot编码作为先验分布对输出分布进行匹配。这种匹配仅仅涉及到模型的最后一层,而对中间层丰富的维度特征不作约束。
[0069]
在利用教师模型的中间层信息,训练域分类器时,中间层信息来源于教师模型中间层内在每个批量归一化层之前的特征图。对于中间层特征的利用可以帮助模型更好地判断域内数据和域外噪声。深度学习模型如resnet等架构往往是由多个block组成,这些结构相似的block的堆叠做到了图像从低维到高维的特征匹配。从模型的结构上来讲,神经网络低维卷积数量小且维度低,特征图尺寸大分辨率高,导致整个神经元的感受野较小从而使得低维特征更多的是与图形图像有关的局部特征。而神经网络的高维卷积数量多且维度大,相应的特征图尺寸小分辨率低,整个神经元的感受野较大,能提取出更全局更与任务相关的特征。
[0070]
步骤s100中,利用教师模型的中间层信息训练域分类器,具体包括:步骤s110,对输入样本进行数据增强,获得对比样本,输入样本和对比样本一一对应;步骤s120,基于输入样本获得第一层次特征,基于对比样本获得第二层次特征,第一层次特征和第二层次特征一一对应,基于对比样本获得第二层次特征,按照基于输入样本获得第一层次特征的方式进行;步骤s130,利用第一层次特征、第二层次特征、以及二者的对应关系训练域分类器。
[0071]
步骤s110~步骤s130即域分类器完成对比学习的训练过程,对比学习为不同的样本建立一个更可靠的度量空间,即把教师模型提取的特征投影在超球面中,以对样本之间的距离利用更为直接的进行度量。
[0072]
为了识别这些异常值,需要一个更为合适的度量空间以及域内特征的先验分布作为标靶。本文利用自监督学习方法来从开放集数据中学习这种度量知识,与图像识别中使用的对比学习相比,本文的方法主要关注与任务相关的特征,这是通过从训练完成的教师模型那里获取多为层次特征来实现的。
[0073]
为了找到域外数据(异常值),需要一个更为合适的度量空间以及域内特征的先验分布作为标靶。本实施例利用自监督学习方法来从开放集数据中学习这种度量知识,与图像识别中使用的对比学习相比,本实施例主要关注与任务相关的特征,这是通过从训练完成的教师模型那里获取多为层次特征来实现的。利用的教师模型的中间层信息也可以看作是一种数据的增强,它擦除了与任务无关的异常特征并强制自监督对比学习捕获与任务相关的特征。
[0074]
对比样本通过数据增强构造,例如随机裁剪、水平翻转以及图像属性(亮度、对比
度、饱和度和色调)的随机变更。具体地,对于给定的无标签的开放数据集du以及模型f(x;θ),首先对每一个样本xi随机地进行数据增强从而得到一对正样本{xi,x
′i},即输入样本和对比样本一一对应。随后将数量为2n的批次输入到域分类器中,并计算每一个样本的第二层次特征{v1,v
′1,...,vn,v
′n},即可以知晓第一层次特征和第二层次特征一一对应的对应关系。
[0075]
步骤s200,具体包括步骤s210~步骤s230。
[0076]
步骤s210,基底模型接收输入样本获得第一层次特征,具体利用下式进行:
[0077][0078]
式中,x为输入样本;
[0079]
v(x)为输入样本的第一层次特征;
[0080]fi
表示基底模型对于输入样本x在第i个批量归一化层之前的特征图;
[0081]
gap表示将一张二维的特征图进行全局平均池化得到一个标量值;
[0082]
为串联操作。
[0083]
gap算子指的是全局平均池化(global average pooling),fi代表模型对于输入样本x在第i个批量归一化层之前的特征图,是简单的串联操作。gap算子将一张二维的特征图进行全局平均得到一个标量值,这个算子最初是被设计用来取代模型输出层的全连接层,gap层能加强类别得分和对应的卷积之间的联系,同时也能拥有更好的空间信息。本实施例对卷积层的输出做了全局平均池化,目的是将每个通道的特征进行聚合,同时也让语义信息和bn层的统计信息进行对齐。
[0084]
可以理解,在训练过程中,需要基于输入样本获得第一层次特征、基于对比样本获得第二层次特征,以完成对域分类器的训练。但是在应用过程中(步骤s320),不再需要基于对比样本获得第二层次特征。
[0085]
在神经网络中,不同通道之间的特征通常具有很强的相互依赖性,朴素的距离度量会更加关注那些幅度变化较大的通道,但无法捕获多个通道之间的结构化信息。本实施例提供的域分类器使用的评分函数解决了这一问题。本实施例基于输入样本、和对比样本,进行自监督学习。
[0086]
本实施例利用批量归一化层(batch normalization layer,bn层)作为先验分布的域内数据检测算法,以便于中间层信息的利用。几乎所有的现代神经网络都具有bn层,这是因为随着神经网络朝着更深更宽的目标发展,上层有关特征的微小扰动会对下层造成极大的影响,因此为了消除每一批次数据不同导致的特征具有偏差的问题,bn层被添加在卷积层之后对特征图作归一化处理。训练过程中特征图的均值和方差会被存储在bn层中,我们可以利用这些统计数据构架一个用于检测域内数据的先验分布,这部分额外的信息使得我们的算法相对仅使用分类概率的算法有着更好的鲁棒性。
[0087]
步骤s220,投影头接收第一层次特征、以及批量归一化层中的特征平均值串联,并输出二者的相对距离d(v(x),v
*
)。
[0088]
现在可以得出本文所提出的域内分类器的形式化定义,设存储在bn层中的特征平均值串联为v
*
,则可以我们通过如下方式从无标签数据集中提取出域内数据:
[0089]did
={x|d(v(x),v
*
)>∈,x∈du}#(3)
[0090]
式中,v(x)见公式(2),d(v(x),v
*
)是衡量层次特征与先验分布之间的置信度可以有多种实现方式,如简单的距离函数||v(x)-v
*
||等。但是普通的距离函数可能并不合适,因为我们不知道层次特征不同维度之间的重要性,同时不同类别的噪声样本也具有不同的差异性供模型进行判断。
[0091]
提取的域内数据提取后置入域内数据集d
id
内。中心节点会对无标签数据集du进行遍历,按照式(3)选择这一轮通信中的域内数据集d
id
,本文按照各分类的样本数目对du进行过滤,而非显式地设定阈值∈。
[0092]
步骤s220,具体包括:投影头接收第一层次特征、批量归一化层中的特征平均值串联,并二者投影到嵌入空间中,相对距离为二者在投影在嵌入空间中的余弦距离。
[0093]
步骤s230,根据相对距离将开放数据集划分为域内数据集和域外数据集,具体包括:根据相对距离保留选择符合预期的、与第一层次特征相对应的输入样本置入域内数据集。具体包括,按照相对距离的排列次序提取开放数据集中绝对数量或占比数量输入样本,置入域内数据集。这有利于生成各类别数目均衡的数据集d
id

[0094]
在步骤s210~步骤s230中,通过基底模型那里提取层次特征,然后以自监督的方式建立嵌入空间。然后使用嵌入空间来衡量不同数据点到先验分布(即bn层统计信息)的相对距离。应用启发式策略来选择若干n个域内数据(,从开放数据集中选择n个作为域内数据),并将其他样本视为域外数据。步骤s230中,相对距离符合预期可视为超参数是n的选择,即在域内数据过滤中选择多少个样本添加到域内数据集d
id
中。和单纯的过滤方法不同,这些域内数据会在后续的蒸馏过程中起到为其他数据打标签的作用,因此n的选择重要性不言而喻。当使用过大的n值时,一些异常值和噪声有可能会被错误地归类到域内数据集并用于标记其他数据,这可能会不利于学生模型的学习。相反,较小的n值不会引入负面因素,因此本文建议采用较小的n值。
[0095]
对于步骤s210~步骤s230,域分类器的投影头接收第一层次特征v(x)作为输入并将其投影到嵌入空间中,接收批量归一化层中的特征平均值串联并将其投影到嵌入空间中,并通过余弦距离衡量投影在嵌入空间中的距离。
[0096]
投影头包括全连接层和作为非线性的relu函数的激活函数,在投影过程能在投影的过程中将特征的重要程度和通道之间的相关性反映在高维嵌入空间中。另一方面,余弦距离会省略特征的绝对大小,达到类似将输入投影到超球面的效果,因此我们可以使用简单的线性距离来将相似的样本聚集在一起。
[0097]
使用式(2)来计算每一个样本的第二层次特征{v1,v
′1,...,vn,v
′n}后,按照下式计算自监督对比损失:
[0098][0099]
其中是一个指示函数,当k≠i时函数的值为1;式中的τ为温度参数,相似度函数sim(zi,zj)按如下方式进行计算:
[0100][0101]
其中h(*)代表本节阐述的多层感知机,起着将层次特征投影在超球面上的作用。
[0102]
上述过程利用对比学习能够做到自监督地训练一个投影头,但是还需要多层感知机具有部分和任务强相关的能力,即如式(3)中的评分函数d(v(x),v
*
)计算某个层次特征和bn层统计信息的距离。值得注意的是,v(x)计算的是某个样本的层次特征,而v
*
是从bn层的统计信息串联得到的,这两者从概念上有一定的不匹配;另外如之前所说,多层感知机将层次特征投影在超球面中,而v
*
在嵌入空间中只以一个点的形式存在,因此在这种情况下直接计算sim(v(x),v
*
)是不合适的。
[0103]
为了解决上述问题,本文提出了另一种建立对比学习多视角的方法:受到bn层聚合一个批次中所有样本特征的启发,我们随机将特征进行分组,并将分组结果作为自监督标签进行训练。
[0104]
具体地,本文将层次特征{v1,v2,...,vn}进行随机分组平均得到{g1,g2,...,gm},每个层次特征属于且只属于其中一个分组。随后将这些输入通过多层感知机投影到超球面中,对于每一层次特征vi尝试拉近其与所属分组gi的距离,而退远与其它分区的距离。目标函数可以形式化地描述为:
[0105][0106]
其中vi,gj属于一组正样例,即vi被分到了第j组;代表指示函数,当且仅当i≠j时值为1;τ是指温度参数,d()为相似度函数,计算方式见公式(5)。
[0107]
综上,自监督对比学习多层感知机的目标函数如下:
[0108][0109]
其中β为平衡两者损失的系数,训练时只有投影头的参数是可训练的,模型f(x;θ)的参数固定。
[0110]
本技术各实施例选择在通信中传递整个模型参数并在中心节点进行知识蒸馏的方案,蒸馏损失可以形式化地表示为:
[0111][0112]
其中d
kl
为kl散度,用来衡量两个分布之间的距离,τ是温度系数。
[0113]
开放数据集du经过随机的数据增强生成两对样本x和x

,其中的对应样本会被认为是正样例通过式(4)自监督地计算对比损失。样本经由上一轮的教师模型进行特征提取,并将自底向上的多层次特征拼接为一个全局的特征表达v,随后为了模仿bn层的计算模式随机对该特征表达进行分组并取均值得到g,最终由分组信息作为自监督标签计算对抗损失。
[0114]
在域分类器训练完成后,利用式(2)将bn层的统计信息提取成为判断域内数据的先验分布v
*
,随后遍历开放数据集du中的每一个样本并进行过滤。具体地,在过滤过程中,本文将模型的输出标签作为样本的类别标签,同时记录其经由域分类器输出的置信度;随后对类别内部的置信度进行排序,选择置信度排名靠前的样本作为域内数据添加到d
id
中。本文并不显示地指定置信度阈值,而是通过各类别内部的置信度排名进行过滤以生成类别数目平衡的域内数据集。
[0115]
上述各实施例中减少了兼用域内外数据集的知识蒸馏方法过于依赖于利用原始数据集进行知识转移这一现象,自监督地训练了域分类器将样本的层次特征投影至嵌入空间中,能够更好地利用线性距离判断样本和模型bn层之间的相似性。
[0116]
当域分类器提取出域内数据时,开放数据集就能够起到替代原始数据集的作用,然而开放数据集中可能存在大量的域外数据集,对于深度学习模型来讲数据集的大小极为重要,因此尽管开放数据集对于目标任务来讲存在着一定的噪声数据,但是这些数据同样存在着十分有用的知识,例如现实世界中的物体模式等。
[0117]
本实施例通过步骤s400有效利用域外数据集,将其同样作为知识传递的媒介。步骤s400获得第二类预测值可以理解为一种对域外数据的重标签方法,重标签方法是将这部分知识利用起来,具体方案是使用域内分布的样本对噪声数据进行重标签,使得学生模型能够将注意力集中在域内数据的范围中。利用教师模型对输入的样本(开放数据集内的数据)进行预测,对于获得的域内数据,这部分标签即是知识蒸馏时使用的标签域内数据集、及其软标签的使用、用来训练学生模型。同时这一部分标签也被用来对域外数据进行基于超球面度量空间的重标签,即获得第二类预测值。重标签的权重是同一批次数据中域内数据距离该样本的距离,温度参数τ使得相似样本做出的贡献更多。
[0118]
在域分类器过滤出域内数据集d
id
之后,步骤s400利用教师模型和域分类器对域外数据集d
ood
进行打软标签(获得第二类预测值)。具体地,本实施例希望得到一组由各类别预测值组成的软标签作为域外数据的新类别,随后将域内数据和域外数据同时作为媒介进行知识的转移。由于域分类器利用先验分布和输入层次特征之间的距离对开放数据集进行过滤,因此同样可以利用该超球面的距离(即投影头衡量的相对距离)对域外数据进行重新标签。
[0119]
以下对于步骤s400进行详细说明,步骤s400是基于步骤s300获得的第一类预测值实现的。步骤s400,教师模型根据域外数据获得第二类预测值,具体包括步骤s410~步骤s430。其中:
[0120]
步骤s410,对于其中一个域外数据,域分类器接收基于域外数据的层次特征、接收所有域内数据的层次特征,输出域外数据的层次特征与每一域内数据的层次特征的相对距离,作为参照距离。
[0121]
步骤s420,对参照距离进行softmax函数归一化,获得归一化结果。
[0122]
步骤s430,结合教师模型对所有域内数据的第一类预测值,利用归一化结果对第一类预测值加权求和获得第二类预测值。
[0123]
步骤s410~步骤s430中,层次特征具体为输入样本(域内数据、域外数据)输入至基底模型获得的,层次特征代表着教师模型对输入数据的一种特征表达,涵括从底层特征如图形的语义信息到顶层特征即任务相关信息的链接。基底模型将层次特征发送给投影
头,投影头来衡量两个样本之间的距离(具体通过投影在嵌入空间中的余弦距离进行衡量)。参照距离作为影响第二类预测值,使第二类预测值更加可靠。
[0124]
在步骤s410中,对于其中一个域外数据,域分类器接收基于域外数据的层次特征、接收所有域内数据的层次特征,输出域外数据的层次特征与每一域内数据的层次特征的相对距离,作为参照距离,具体利用下式进行:式中:
[0125]
为第k个域外数据的层次特征;
[0126]
为第i个域内数据的层次特征;
[0127]
表示第k个域外数据的层次特征、以及第i个域内数据的层次特征,经由域分类器输出的相对距离。
[0128]
在步骤s420,对参照距离进行softmax函数归一化,获得归一化结果;步骤s430,结合教师模型对所有域内数据的第一类预测值,利用归一化结果对第一类预测值加权求和获得第二类预测值,利用下式进行:
[0129]
式中:
[0130]
为第k个域外数据;
[0131]
为第k个域外数据的第二类预测值;
[0132]
表示第k个域外数据的层次特征、以及第i个域内数据的层次特征,二者经由域分类器输出的相对距离;
[0133]
表示第k个域外数据的层次特征、以及第j个域内数据的层次特征,二者经由域分类器输出的相对距离;
[0134]
τ为温度系数,用来缩放不同样例对最终目标做出的贡献;
[0135]
为第i个域内数据;
[0136]
为教师模型对第i个域内数据的第一类预测值。
[0137]
具体地,步骤s410~步骤s430,分批次进行,同一批次内包括若干域内数据和域外数据,在该批次数据内部利用式(9)对域外数据集内的样本进行软标签标记,即获得第二类预测值。
[0138]
在式(9)中,可以将每一个输入样本都可以理解为一个独有的分布,似的分布之间会共享着某些特征,从而为他们打上相同的标签有利于知识在教师模型和学生模型之间的转移。具体地,在蒸馏过程中,将域内数据和域外数据同时输入到教师模型中,随后将其层
次特征交给域分类器去计算分布特征之间的相似度(相对距离),利用该相似度的softmax函数作为重新标签的权重对域外数据打上新的标签。
[0139]
步骤s500可理解为学生模型从教师模型的软标签中学习知识。目标函数如下:
[0140][0141]
在式(10)中,目标函数由两个交叉熵损失项组成,分别为第一项和第二项。重新分配的软标签的第二项类似于传统知识蒸馏中使用的有监督训练,但是在本实施例用于纠正由噪声数据引起的错误的软目标,即损失函数的第一项。式(10)采用多目标优化的方式对学生模型的梯度进行更新,目标一期望学生模型对于任何输入都能匹配教师模型的输出,目标二则是对那些噪声数据进行修正,防止知识通过错误的媒介进行转移。
[0142]
其中n指该批次样本总量;
[0143]ft
(xi)为第i个样本xi的教师模型预测值;
[0144]fs
(xi)为第i个样本xi的学生模型预测值;
[0145]y*
(xi)为第i个样本xi的第二类预测值;
[0146]
β为权重系数。
[0147]
各实施例中提供的兼用域内外数据集的知识蒸馏方法,适用于使用无标签的开放数据集对深度学习模型进行知识蒸馏,以达到减少模型参数或适用特定任务的目标。方案通过引入一个自监督的域分类器来实现提取域内数据、以获得第二类预测值。域分类器旨在预测输入样本是否和基底模型在训练时使用的数据同分布。它在我们的方法中起着两个关键作用:1)从开放世界数据中检测域内数据集,用于获得第一类预测值;2)桥接域内和域外数集,获得相对距离,以获得第二类预测值。两类预测值均用于训练学生模型。
[0148]
各实施例中提供的技术思路在于人类可以根据他们学习到的知识来描述未知对象,在开放世界设置下,也可以用可靠的域内数据的预测来纠正那些不可靠噪声数据,并利用这些噪声数据进行进一步的学习,也就是利于域内数据使用域外数据。各实施例使用域分类器检测域内和域外数据来实现的基于开放数据集的知识蒸馏,在训练中域分类器桥接域内和域外数据并估计各样本之间的相对距离。最后,使用来自域内数据的可靠预测来执行重新标记操作以重新标记异常值。最终所有的开放数据集都将被投入知识蒸馏训练,实现开放数据集的充分使用。
[0149]
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0150]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程
序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种兼用域内外数据集的知识蒸馏方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0151]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0152]
步骤s100,得到训练完成的教师模型,利用教师模型的中间层信息训练域分类器,中间层信息来源于教师模型的中间层在每个批量归一化层之前的特征图;
[0153]
步骤s200,训练完成的域分类器将开放数据集划分为由域内数据组成的域内数据集、以及由域外数据组成的域外数据集;
[0154]
步骤s300,教师模型根据域内数据获得第一类预测值;
[0155]
步骤s400,教师模型根据域外数据获得第二类预测值;
[0156]
步骤s500,利用域内数据集和第一类预测值、利用域外数据集和第二类预测值训练学生模型。
[0157]
本实施例中,计算机程序产品包括程序代码部分,以用于当计算机程序产品由一个或多个计算装置执行时,执行本技术各实施例中兼用域内外数据集的知识蒸馏方法的步骤。计算机程序产品可被存储在计算机可读记录介质上。还可经由数据网络(例如,通过ran、经由因特网和/或通过rbs)提供计算机程序产品以便下载。备选地或附加地,该方法可被编码在现场可编程门阵列(fpga)和/或专用集成电路(asic)中,或者功能性可借助于硬件描述语言被提供以便下载。
[0158]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0159]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。不同实施例中的技术特征体现在同一附图中时,可视为该附图也同时披露了所涉及的各个实施例的组合例。
[0160]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。

技术特征:
1.兼用域内外数据集的知识蒸馏方法,其特征在于,包括:得到训练完成的教师模型,利用所述教师模型的中间层信息训练域分类器,所述中间层信息来源于所述教师模型的中间层在每个批量归一化层之前的特征图;训练完成的域分类器将开放数据集划分为由域内数据组成的域内数据集、以及由域外数据组成的域外数据集;所述教师模型根据所述域内数据获得第一类预测值;所述教师模型根据所述域外数据获得第二类预测值;利用所述域内数据集和第一类预测值、利用所述域外数据集和第二类预测值训练学生模型。2.如权利要求1所述的兼用域内外数据集的知识蒸馏方法,其特征在于,所述域分类器包括基底模型和投影头,所述教师模型作为所述基底模型;训练完成的域分类器将开放数据集划分为由域内数据组成的域内数据集、以及由域外数据组成的域外数据集,具体包括:所述基底模型接收输入样本获得第一层次特征,所述投影头接收第一层次特征、以及所述批量归一化层中的特征平均值串联,并输出二者的相对距离;根据所述相对距离将所述开放数据集划分为所述域内数据集和域外数据集。3.如权利要求2所述的兼用域内外数据集的知识蒸馏方法,其特征在于,根据所述相对距离将所述开放数据集划分为所述域内数据集和域外数据集,具体包括:根据所述相对距离保留选择符合预期的、与所述第一层次特征相对应的输入样本置入域内数据集。4.如权利要求2所述的兼用域内外数据集的知识蒸馏方法,其特征在于,所述投影头接收第一层次特征、以及所述批量归一化层中的特征平均值串联,并输出二者的相对距离,具体包括:所述投影头接收第一层次特征、所述批量归一化层中的特征平均值串联,并二者投影到嵌入空间中,所述相对距离为二者在投影在嵌入空间中的余弦距离。5.如权利要求4所述的兼用域内外数据集的知识蒸馏方法,其特征在于,所述基底模型接收输入样本获得第一层次特征,利用下式进行:式中,x为输入样本;v(x)为输入样本的第一层次特征;f
i
表示基底模型对于输入样本x在第i个批量归一化层之前的特征图;gap表示将一张二维的特征图进行全局平均池化得到一个标量值;为串联操作。6.如权利要求5所述的兼用域内外数据集的知识蒸馏方法,其特征在于,利用所述教师模型的中间层信息训练所述域分类器,具体包括:对输入样本进行数据增强,获得对比样本,所述输入样本和所述对比样本一一对应;基于所述输入样本获得第一层次特征,基于所述对比样本获得第二层次特征,所述第一层次特征和所述第二层次特征一一对应,基于所述对比样本获得第二层次特征,按照基
于所述输入样本获得第一层次特征的方式进行;利用所述第一层次特征、所述第二层次特征、以及二者的对应关系训练所述域分类器。7.如权利要求2所述的兼用域内外数据集的知识蒸馏方法,其特征在于,所述教师模型根据所述域外数据获得第二类预测值,具体包括:对于其中一个域外数据,所述域分类器接收基于所述域外数据的层次特征、接收所有域内数据的层次特征,输出域外数据的层次特征与每一域内数据的层次特征的相对距离,作为参照距离;对所述参照距离进行softmax函数归一化,获得归一化结果;结合所述教师模型对所有域内数据的第一类预测值,利用所述归一化结果对所述第一类预测值加权求和获得所述第二类预测值。8.如权利要求7所述的兼用域内外数据集的知识蒸馏方法,其特征在于,对于其中一个域外数据,所述域分类器接收基于所述域外数据的层次特征、接收所有域内数据的层次特征,输出域外数据的层次特征与每一域内数据的层次特征的相对距离,作为参照距离,具体利用下式进行:式中:为第k个域外数据的层次特征;为第i个域内数据的层次特征;表示第k个域外数据的层次特征、以及第i个域内数据的层次特征,经由域分类器输出的相对距离。9.如权利要求7所述的兼用域内外数据集的知识蒸馏方法,其特征在于,对所述参照距离进行softmax函数归一化,获得归一化结果;结合所述教师模型对所有域内数据的第一类预测值,利用所述归一化结果对所述第一类预测值加权求和获得所述第二类预测值,利用下式进行:式中:为第k个域外数据;为第k个域外数据的第二类预测值;表示第k个域外数据的层次特征、以及第i个域内数据的层次特征,二者经由域分类器输出的相对距离;表示第k个域外数据的层次特征、以及第j个域内数据的层次特征,
二者经由域分类器输出的相对距离;τ为温度系数;为第i个域内数据;为教师模型对第i个域内数据的第一类预测值。10.计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1~9任一项所述的兼用域内外数据集的知识蒸馏方法的步骤。

技术总结
本申请提供一种兼用域内外数据集的知识蒸馏方法和计算机设备,知识蒸馏方法包括:得到训练完成的教师模型,利用所述教师模型的中间层信息训练域分类器,所述中间层信息来源于所述教师模型的中间层在每个批量归一化层之前的特征图;训练完成的域分类器将开放数据集划分为由域内数据组成的域内数据集、以及由域外数据组成的域外数据集;所述教师模型根据所述域内数据获得第一类预测值;所述教师模型根据所述域外数据获得第二类预测值;利用所述域内数据集和第一类预测值、利用所述域外数据集和第二类预测值训练学生模型。本申请通过域分类器划分出域内数据集和域外数据集,弱化了知识蒸馏对原始数据集的依赖,减小了开放数据集中的噪声的负面影响。中的噪声的负面影响。中的噪声的负面影响。


技术研发人员:王德健 林博 王慧东 董科雄 赵冲
受保护的技术使用者:杭州医康慧联科技股份有限公司
技术研发日:2023.03.24
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐