一种基于在线对比蒸馏网络的广义持续分类方法

文档序号:31330472发布日期:2022-08-31 06:53阅读:110来源:国知局
一种基于在线对比蒸馏网络的广义持续分类方法

1.本发明涉及一种广义持续分类方法,特别涉及一种基于在线对比蒸馏网络的广义持续分类方法。


背景技术:

2.目前,近些年来,深度学习在图像分类、目标检测和语义分割等计算机视觉任务已经取得了很好的效果。然而,当在旧任务训练好的神经网络直接在新任务上训练时,新任务会严重干扰旧任务的性能,产生灾难性遗忘(catastrophic forgetting)问题。让神经网络从头开始训练显然会耗费更多的时间和计算资源,并且先前任务的数据由于隐私性等问题也不一定是再次获取的。人类拥有持续不断学习的能力,能在旧知识的基础上快速地学习新知识,而不会破坏先前学习知识的稳定性。我们希望神经网络能够具备人类这种持续不断学习的能力,持续学习(continual learning),也叫作增量学习(incremental learning)就是为克服灾难性遗忘问题而提出的。近些年来,大量持续学习的工作采用了经验回放(experience replay)的思想,存储一部分旧任务的样本,在训练新任务时对存储的样本进行回放,以此来缓解灾难性遗忘问题。
3.在现有的持续学习技术中,往往需要假定各个任务之间的类别是互不相交的,即新任务中的类别都是旧任务中没有出现过的,任务之间就存在清晰的任务边界,在现实世界的任务中这种先验知识极有可能是不存在的。现有的很多技术利用了这种现实任务中不太可能出现的先验知识,简化了持续学习问题的难度。例如,利用旧样本在过去时刻的模型输出正则旧样本在当前时刻的模型输出来缓解灾难性遗忘时,旧模型输出的维数和新模型输出的维数由于新类别的到来而变得不一致,在假设任务间类别互补想交的情况下,可以让新模型的输出只正则和旧模型相重合的一部分。以往利用任务间类别互不相交的持续方法就无法应用到广义持续学习的设置下。为此,在现实场景中解决灾难性遗忘问题的广义持续学习(general continual learning)技术逐渐受到关注。广义持续学习的目标是从非平稳的无限数据流中巩固所学知识,并快速地学习新知识。在广义持续学习的设置下,每个任务之间的类别可能是相交的,新任务中可能会出现旧类新样本,以往借助现实世界中并不一定存在的先验知识来解决持续学习的方法就很难应用到广义持续学习中。
4.广义持续学习是一种通用的持续学习场景,它也可以应用到经典的类增量学习(class incremental learning)、任务增量学习(task incremental learning)和领域增量学习(domain incremental learning)场景中。但是在广义持续学习的场景下进行图像分类时不能利用这些经典场景中特定的先验知识来缓解灾难性遗忘。这就意味着,在经验回放时,必须挖掘一些固有的非特定场景的信息来巩固旧任务的知识。


技术实现要素:

5.本发明为解决公知技术中存在的技术问题而提供一种基于在线对比蒸馏网络的广义持续分类方法。
6.本发明为解决公知技术中存在的技术问题所采取的技术方案是:一种基于在线对比蒸馏网络的广义持续分类方法,包括如下步骤:
7.步骤1,建立基于知识蒸馏的分类模型,该分类模型中包括教师模型和学生模型;教师模型和学生模型均设有特征编码器、分类器和特征映射器;设置学生模型的优化目标;初始化教师模型和学生模型的参数并赋予一个固定大小的缓冲区;
8.步骤2,当包含r个样本的一个批次数据流到来时,统计当前所遇到的样本数量,利用蓄水池采样的方法更新缓冲区;
9.步骤3,从缓冲区中随机采样s个样本,将这s个样本分别输入到教师模型和学生模型中,经过二者各自的特征编码器和分类器处理,分别得到对应这s个样本的教师模型和学生模型的分类输出数据;经过二者各自的特征编码器和特征映射器处理,分别得到对应这s个样本的教师模型和学生模型的特征嵌入数据;
10.步骤4,计算教师模型分类输出数据的质量分数,依据教师模型分类输出数据的质量分数调节不同样本在线知识蒸馏损失函数的权重,进一步计算教师模型和学生模型的在线蒸馏损失
11.步骤5,对教师模型和学生模型之间的特征嵌入数据进行对比,计算教师模型和学生模型的对比关系蒸馏损失
12.步骤6,利用自监督学习和监督对比学习帮助学生模型提取到判别性的特征,计算学生模型的自监督损失和监督对比学习损失
13.步骤7,基于经验回放,计算学生模型的交叉熵分类损失
14.步骤8,计算学生模型的总优化目标步骤8,计算学生模型的总优化目标α1至α3为各对应损失函数的超参数;利用随机梯度下降算法优化学生模型的参数;
15.步骤9,直接利用学生模型的参数来更新教师模型的参数。
16.进一步地,步骤2中,假设非平稳的数据流由n个样本不相交的任务{t1,t2,...,tn}组成,每个任务tn的训练集都是由带标签的数据组成,其中m为任务tn训练集的样本数量,xi为任务tn训练集中第i个图像样本,yi为任务tn训练集中第i个图像样本xi所标记的类别;缓冲区的容量为xj为缓冲区中第j个图像样本,yj为缓冲区中第j个图像样本xj所标记的类别;蓄水池采样的方法包括如下步骤:
17.步骤a1,判断当前所遇到的样本数量num和缓冲区容量之间的大小,若将样本(xi,yi)直接存储到缓冲区中;xi为任务tn训练集中第i个图像样本,yi为任务tn训练集中第i个图像样本xi所标记的类别;
18.步骤a2,若生成一个随机整数rand_num,这个随机整数的最小值为0,最大值为num-1;若用样本(xi,yi)替换缓冲区中的样本(x
rand_num
,y
rand_num
);x
rand_num
表示索引为rand_num的缓冲区中的图像样本,y
rand_num
表示索引为rand_num的缓冲区中的图像样本标签。
19.进一步地,步骤4中,计算教师模型分类输出数据的质量分数的方法如下所示:
20.设:表示一个容量为的缓冲区;xj为缓冲区中第j个图像样本,
yj为缓冲区中第j个图像样本xj所标记的类别;表示样本xj依次经过教师模型的特征编码器和分类器处理后得到的分类输出数据;ω(xj)为对应样本xj的教师模型分类输出数据的质量分数;ω(xj)的计算公式如下所示:
[0021][0022]
式中:
[0023]
ρ表示温度系数;
[0024]
c表示所有可能的类别数量;
[0025]
exp(
·
)表示以自然常数e为底数的指数函数;
[0026]
为分类输出数据中对应类别yj的分类输出数据;
[0027]
表示分类输出数据中各个类别的分类输出数据。
[0028]
进一步地,步骤4中,设表示样本xj依次经过学生模型的特征编码器和分类器处理后得到的分类输出数据;计算教师模型和学生模型的在线蒸馏损失的方法如下所不:
[0029][0030]
式中:|
·
|2表示l2范数;表示数学期望函数。
[0031]
进一步地,步骤5中,设:表示一个容量为的缓冲区;xj为缓冲区中第j个图像样本,yj为缓冲区中第j个图像样本xj所标记的类别;为样本xj输入到教师模型后,经过特征编码器和特征映射器得到的教师模型的特征嵌入数据;为样本xj输入到学生模型后,经过特征编码器和特征映射器得到的学生模型的特征嵌入数据;z
t
为当前批次所有的样本xj输入到教师模型后,经过特征编码器和特征映射器处理得到的所有教师模型特征嵌入数据的集合;zs为当前批次所有的样本xj输入到学生模型后,经过特征编码器和特征映射器得到的所有学生模型特征嵌入数据的集合;表示从zs采样得到的特征嵌入数据;z
t+
表示与具有相同类别标签的教师模型特征嵌入数据集;表示从z
t+
采样得到的特征嵌入数据;表示从z
t
采样得到的特征嵌入数据;计算教师模型和学生模型的对比关系蒸馏损失的方法如下所示:
[0032][0033]
[0034][0035]
式中:
[0036]
表示数学期望函数;
[0037]
|
·
|2表示l2范数;
[0038]
log(
·
)表示以自然常数e为底的自然对数函数;
[0039]
表示评判函数,用于判断特征嵌入数据和是否来源于它们的联合分布
[0040]
表示评判函数,用于判断特征嵌入数据和是否来源于它们的联合分布
[0041]
(
·
)
t
表示转置;
[0042]
exp(
·
)表示以自然常数e为底数的指数函数;
[0043]
τ表示温度系数。
[0044]
进一步地,步骤6中包括如下分步骤:
[0045]
步骤b1,设θ
t
,φ
t
,ψ
t
对应为教师模型的特征编码器、分类器和特征映射器,θs,φs,ψs对应为教师模型的特征编码器、分类器和特征映射器;将学生模型的每一个训练样本(x,y)进行一次随机的几何变换,得到扩增后的训练样本其中x表示图像样本,y为图像样本x所标记的类别,为几何变换后的图像样本,为几何变换的标签;将扩增后的训练样本输入到学生模型中,经过学生模型的特征编码器和特征映射器处理,得到相应的学生模型特征数据fs和特征嵌入数据其中:
[0046][0047][0048]
步骤b2,将得到的学生模型特征数据fs输入到一个多层感知器中,用于判断对训练样本进行几何变换的种类;设多层感知器的输出为ss,ss的计算公式如下所示:
[0049][0050]
步骤b3,计算自监督损失步骤b3,计算自监督损失的计算公式如下所示:
[0051][0052]
其中表示数学期望函数;
[0053]
softmax(
·
)表示softmax函数;
[0054]
l(
·
)表示交叉熵损失函数;
[0055]
步骤b4,设:表示一个容量为的缓冲区;xj为缓冲区中第j个图像样本,yj为缓冲区中第j个图像样本xj所标记的类别;为样本xj输入到学生模型后,经过特征编码器和特征映射器得到的学生模型的特征嵌入数据;表示得到的全体学生模型的特征嵌入数据和的集合;表示从采样得到的特征嵌入数据;表示与具有相同类别标签的学生模型特征嵌入数据集;表示从采样得到的特征嵌入数据;表示从采样得到的特征嵌入数据;基于原始的特征嵌入数据和扩增后的特征嵌入数据,利用学生模型中的这些特征嵌入数据进行监督对比学习,监督对比学习的损失函数的计算公式如下所示:
[0056][0057][0058][0059]
式中:
[0060]
其中表示数学期望;
[0061]
|
·
|2表示l2范数;
[0062]
log(
·
)表示以自然常数e为底的自然对数函数;
[0063]
表示特征嵌入数据和的距离;
[0064]
表示特征嵌入数据和的距离;
[0065]
exp(
·
)表示以自然常数e为底数的指数函数;
[0066]
表示转置;
[0067]
τ表示温度系数;
[0068]
步骤b5,将自监督损失和监督对比学习损失进行结合得到协作对比损失帮助学生模型更好地提取判别性的特征,的计算公式如下所示:
[0069][0070]
进一步地,步骤b1中,几何变换包括旋转、缩放和调整图像的宽高比。
[0071]
进一步地,步骤7中,假设非平稳的数据流由n个样本不相交的任务{t1,t2,...,tn}组成,设x表示任务tn和缓冲区中的图像样本,y为图像样本x所标记的类别;学生模型的交叉熵分类损失的计算公式如下所示:
[0072][0073]
式中:
[0074]
表示数学期望函数;
[0075]
softmax(
·
)表示softmax函数;
[0076]
l(
·
)表示交叉熵损失函数;
[0077]rs
(x)表示图像样本x依次经过学生模型的特征编码器和分类器处理后的分类输出数据。
[0078]
进一步地,步骤9中,利用学生模型的参数来更新教师模型的参数的具体方法如下所示:
[0079]
设θ
t
,φ
t
,ψ
t
对应为教师模型的特征编码器、分类器和特征映射器,θs,φs,ψs对应为教师模型的特征编码器、分类器和特征映射器;教师模型参数的更新方法为:
[0080]
θ
t


t
+(1-m)[(1-x)θ
t
+xθs];
[0081]
φ
t


t
+(1-m)[(1-x)φ
t
+xφs];
[0082]
ψ
t


t
+(1-m)[(1-x)ψ
t
+xψs];
[0083]
其中m表示动量因子,x服从伯努利分布(也称做0-1分布),定义为:
[0084]
p(x=k)=pk(1-p)
1-k
,k={0,1};
[0085]
其中伯努利概率p的取值范围是(0,1),通过伯努利概率p控制了教师模型的更新频率。
[0086]
进一步地,动量因子m的计算公式如下所示:
[0087]
m=min(itera/(itera+1),η);
[0088]
其中itera为当前学生模型的迭代次数,min(itera/(itera+1),η)表示itera/(itera+1)和η中较小的一个数,η为一个常数,一般设置为0.999。
[0089]
本发明具有的优点和积极效果是:本发明的一种基于在线对比蒸馏网络的的广义持续分类方法,利用在线知识蒸馏中教师-学生框架有效地巩固旧任务知识,从而使模型对新任务和旧任务都有很好的分类准确率。在训练阶段,本发明将对比学习的训练策略引入到在线知识蒸馏中,教师模型通过集成各个时刻学生模型的权重来实现知识的累积,学生模型通过向教师模型蒸馏分类输出数据和对比关系来缓解灾难性遗忘。教师模型和学生模型相互协作,让学生模型保持旧任务的性能,让教师模型在累积权重时累积到对旧任务和新任务更加均衡的权重,教师模型在学生模型训练新任务时也能更好指导学生模型巩固旧任务知识。在测试阶段,本发明采用教师模型进行测试,原因是教师模型集成了不同时刻学生模型擅长区分不同类别的优势,让教师模型能对所有的类别都有很好的分类性能。由此,本发明能够将有效集成学生网络的优势,提高教师网络在测试时的分类准确率。
附图说明
[0090]
图1为本发明的一种基于在线对比蒸馏网络的广义持续分类方法的工作流程图。
具体实施方式
[0091]
为能进一步了解本发明的发明内容、特点及功效,兹列举以下实施例,并配合附图
详细说明如下:
[0092]
请参见图1,一种基于在线对比蒸馏网络的广义持续分类方法,包括如下步骤:
[0093]
步骤1,建立基于知识蒸馏的分类模型,该分类模型中包括教师模型和学生模型;教师模型和学生模型均设有特征编码器、分类器和特征映射器;设置学生模型的优化目标;初始化教师模型和学生模型的参数并赋予一个固定大小的缓冲区。
[0094]
步骤2,当包含r个样本的一个批次数据流到来时,统计当前所遇到的样本数量,利用蓄水池采样的方法更新缓冲区。
[0095]
步骤3,从缓冲区中随机采样s个样本,将这s个样本分别输入到教师模型和学生模型中,经过二者各自的特征编码器和分类器处理,分别得到对应这s个样本的教师模型和学生模型的分类输出数据;经过二者各自的特征编码器和特征映射器处理,分别得到对应这s个样本的教师模型和学生模型的特征嵌入数据;即:将这s个样本依次经过教师模型的特征编码器和分类器处理后,得到教师模型的分类输出数据集;依次经过学生模型的特征编码器和分类器处理后,得到学生模型的分类输出数据集;依次经过教师模型的特征编码器和特征映射器处理后,得到教师模型的特征嵌入数据集;依次经过学生模型的特征编码器和特征映射器处理后,得到学生模型的特征嵌入数据集。
[0096]
步骤4,计算教师模型分类输出数据的质量分数,依据教师模型分类输出数据的质量分数调节不同样本在线知识蒸馏损失函数的权重,进一步计算教师模型和学生模型的在线蒸馏损失
[0097]
步骤5,对教师模型和学生模型之间的特征嵌入数据进行对比,计算教师模型和学生模型的对比关系蒸馏损失
[0098]
步骤6,利用自监督学习和监督对比学习帮助学生模型提取到判别性的特征,计算学生模型的自监督损失和监督对比学习损失
[0099]
步骤7,基于经验回放,计算学生模型的交叉熵分类损失
[0100]
步骤8,计算学生模型的总优化目标步骤8,计算学生模型的总优化目标α1至α3为各对应损失函数的超参数;利用随机梯度下降算法优化学生模型的参数。
[0101]
步骤9,直接利用学生模型的参数来更新教师模型的参数。
[0102]
优选地,步骤2中,可假设非平稳的数据流由n个样本不相交的任务{t1,t2,...,tn}组成,每个任务tn的训练集都是由带标签的数据组成,其中m为任务tn训练集的样本数量,xi为任务tn训练集中第i个图像样本,yi为任务tn训练集中第i个图像样本xi所标记的类别;缓冲区的容量为xj为缓冲区中第j个图像样本,yj为缓冲区中第j个图像样本xj所标记的类别;蓄水池采样的方法可包括如下步骤:
[0103]
步骤a1,判断当前所遇到的样本数量num和缓冲区容量b之间的大小,若num≤b,将样本(xi,yi)直接存储到缓冲区中;xi为任务tn训练集中第i个图像样本,yi为任务tn训练集中第i个图像样本xi所标记的类别。
[0104]
步骤a2,若生成一个随机整数rand_num,这个随机整数的最小值为0,最大值为num-1;若用样本(xi,yi)替换缓冲区中的样本(x
rand_num
,y
rand_num
);
x
rand_num
表示索引为rand_num的缓冲区中的图像样本,y
rand_num
表示索引为rand_num的缓冲区中的图像样本标签。
[0105]
优选地,步骤4中,计算教师模型分类输出数据的质量分数的方法可如下所示:
[0106]
可设:表示一个容量为的缓冲区;xj为缓冲区中第j个图像样本,yj为缓冲区中第j个图像样本xj所标记的类别;表示样本xj依次经过教师模型的特征编码器和分类器处理后得到的分类输出数据;ω(xj)为对应样本xj的教师模型分类输出数据的质量分数;ω(xj)的计算公式可如下所示:
[0107][0108]
式中:ρ表示温度系数;c表示所有可能的类别数量;exp(
·
)表示以自然常数e为底数的指数函数;为分类输出数据中对应类别yj的分类输出数据;表示分类输出数据中各个类别的分类输出数据。
[0109]
优选地,步骤4中,设表示样本xj依次经过学生模型的特征编码器和分类器处理后得到的分类输出数据;计算教师模型和学生模型的在线蒸馏损失的方法如下所示:
[0110][0111]
式中:|
·
|2表示l2范数;表示数学期望函数;exp(
·
)表示以自然常数e为底数的指数函数。
[0112]
优选地,步骤5中,可设:表示一个容量为的缓冲区;xj为缓冲区中第j个图像样本,yj为缓冲区中第j个图像样本xj所标记的类别;为样本xj输入到教师模型后,经过特征编码器和特征映射器得到的教师模型的特征嵌入数据;为样本xj输入到学生模型后,经过特征编码器和特征映射器得到的学生模型的特征嵌入数据;z
t
为当前批次所有的样本xj输入到教师模型后,经过特征编码器和特征映射器处理得到的所有教师模型特征嵌入数据的集合;zs为当前批次所有的样本xj输入到学生模型后,经过特征编码器和特征映射器得到的所有学生模型特征嵌入数据的集合;表示从zs采样得到的特征嵌入数据;z
t+
表示与具有相同类别标签的教师模型特征嵌入数据集;表示从z
t+
采样得到的特征嵌入数据;表示从z
t
采样得到的特征嵌入数据;计算教师模型和学生模型的对比关系蒸馏损失的方法可如下所示:
[0113]
[0114][0115][0116]
式中:表示数学期望函数;|
·
|2表示l2范数;log(
·
)表示以自然常数e为底的自然对数函数;表示评判函数,用于判断特征嵌入数据和是否来源于它们的联合分布来源于它们的联合分布表示评判函数,用于判断特征嵌入数据和是否来源于它们的联合分布是否来源于它们的联合分布表示转置;exp(
·
)表示以自然常数e为底数的指数函数;τ表示温度系数。
[0117]
优选地,步骤6中可包括如下分步骤:
[0118]
步骤b1,可设θ
t
,φ
t
,ψ
t
对应为教师模型的特征编码器、分类器和特征映射器,θs,φs,ψs对应为教师模型的特征编码器、分类器和特征映射器,将学生模型的每一个训练样本(x,y)进行一次随机的几何变换,得到扩增后的训练样本其中x表示图像样本,y为图像样本x所标记的类别,为几何变换后的图像样本,为几何变换的标签;将扩增后的训练样本输入到学生模型中,经过学生模型的特征编码器和特征映射器处理,得到相应的学生模型特征数据fs和特征嵌入数据其中:
[0119][0120][0121]
步骤b2,可将得到的学生模型特征数据fs输入到一个多层感知器中,用于判断对训练样本进行几何变换的种类;可设多层感知器的输出为ss,ss的计算公式可如下所示:
[0122][0123]
步骤b3,计算自监督损失步骤b3,计算自监督损失的计算公式可如下所示:
[0124][0125]
其中表示数学期望函数;softmax(
·
)表示softmax函数;l(
·
)表示交叉熵损失函数;
[0126]
步骤b4,可设:表示一个容量为的缓冲区;xj为缓冲区中第j个图像样本,yj为缓冲区中第j个图像样本xj所标记的类别;为样本xj输入到学生模型后,经过特征编码器和特征映射器得到的学生模型的特征嵌入数据;表示得到的全体学生模型
的特征嵌入数据和的集合;表示从采样得到的特征嵌入数据;表示与具有相同类别标签的学生模型特征嵌入数据集;表示从采样得到的特征嵌入数据;表示从采样得到的特征嵌入数据;基于原始的特征嵌入数据和扩增后的特征嵌入数据,可利用学生模型中的这些原始的特征嵌入数据和扩增后的特征嵌入数据进行监督对比学习,监督对比学习的损失函数的计算公式可如下所示:
[0127][0128][0129][0130]
式中:
[0131]
其中表示数学期望;|
·
|2表示l2范数;log(
·
)表示以自然常数e为底的自然对数函数;表示特征嵌入数据和的距离;表示特征嵌入数据和的距离;exp(
·
)表示以自然常数e为底数的指数函数;表示转置;τ表示温度系数;
[0132]
步骤b5,可将自监督损失和监督对比学习损失进行结合得到协作对比损失帮助学生模型更好地提取判别性的特征,的计算公式可如下所示:
[0133][0134]
优选地,步骤b1中,几何变换可包括旋转、缩放和调整图像的宽高比。
[0135]
优选地,步骤7中,可假设非平稳的数据流由n个样本不相交的任务{t1,t2,

,tn}组成,设x表示任务tn和缓冲区中的图像样本,y为图像样本x所标记的类别;学生模型的交叉熵分类损失的计算公式可如下所示:
[0136][0137]
式中:表示数学期望函数;softmax(
·
)表示softmax函数;l(
·
)表示交叉熵损失函数;rs(x)表示图像样本x依次经过学生模型的特征编码器和分类器处理后的分类输出数据。
[0138]
优选地,步骤9中,利用学生模型的参数来更新教师模型的参数的具体方法可如下所示:
[0139]
设θ
t
,φ
t
,ψ
t
对应为教师模型的特征编码器、分类器和特征映射器,θs,φs,ψs对应为教师模型的特征编码器、分类器和特征映射器;教师模型参数的更新方法可为:
[0140]
θ
t


t
+(1-m)[(1-x)θ
t
+xθs];
[0141]
φ
t


t
+(1-m)[(1-x)φ
t
+xφs];
[0142]
ψ
t


t
+(1-m)[(1-x)ψ
t
+xψs];
[0143]
其中m表示动量因子,x服从伯努利分布(也称做0-1分布),可定义为:
[0144]
p(x=k)=pk(1-p)
1-k
,k={0,1};
[0145]
其中伯努利概率p的取值范围是(0,1),可通过伯努利概率p控制了教师模型的更新频率。
[0146]
优选地,动量因子m的计算公式可如下所示:
[0147]
m=min(itera/(itera+1),η);
[0148]
其中itera为当前学生模型的迭代次数,min(itera/(itera+1),η)表示itera/(itera+1)和η中较小的一个数,η为一个常数,一般可设置为0.999。
[0149]
下面以本发明的一个优选实施例来进一步说明本发明的工作流程及工作原理:
[0150]
广义持续学习是从非平稳的数据流中巩固旧知识的同时累积新知识,最终完成对所有见过类别图像的分类预测。假设非平稳的数据流由n个样本不相交的任务{t1,t2,...,tn}组成,每个任务tn的训练集都是由带标签的数据组成,其中m为任务tn训练集的样本数量,xi为任务tn训练集中第i个图像样本,yi为任务tn训练集中第i个图像样本xi所标记的类别。在测试阶段,广义持续学习方法能对目前所见过的所有类别完成分类任务。每个任务tn的测试集都是由带标签的数据组成,其中p为任务tn测试集的样本数量,xq为任务tn测试集中第q个图像样本,yq为任务tn测试集中第q个图像样本xq所标记的类别。广义持续学习任务就是在目前训练过的所有任务{t1,t2,...,tn}测试集上进行类别预测。
[0151]
图1为本发明的一种基于在线对比蒸馏网络的广义持续分类方法的工作流程图。其中,表示一个容量为的缓冲区,xj为缓冲区中第j个图像样本,yj为缓冲区中第j个图像样本xj所标记的类别。表示在线蒸馏损失,表示对比关系蒸馏损失。设θ
t
,φ
t
,ψ
t
分别为教师模型的特征编码器、分类器和特征映射器,设θs,φs,ψs分别为学生模型的特征编码器、分类器和特征映射器,
[0152]
本发明的一种基于在线对比蒸馏网络的广义持续分类方法,其方法步骤如下:
[0153]
步骤1,在任务开始前,首先初始化教师模型和学生模型的参数并赋予固定大小的缓冲区:θ
t
=θs,φ
t
=φs,ψ
t
=ψs,
[0154]
步骤2,当包含bsz个样本的一个批次数据流到来时,统计当前所遇到的样本数量num,利用蓄水池采样的方法更新缓冲区这样确保所有样本被存储到缓冲区中的概率是相等的。对于某一个具体的样本,其利用蓄水池采样的具体步骤包括:
[0155]
(1)判断当前所遇到的样本数量num和缓冲区容量之间的大小,若将样本(xi,yi)直接存储到缓冲区中;
[0156]
(2)若生成一个随机整数rand_num,这个随机整数的最小值为0,最大值为num-1。若用样本(xi,yi)替换缓冲区中的样本(x
rand_num
,y
rand_num
);x
rand-num
表示索引为的缓冲区中的图像样本,y
rand_num
表示索引为的缓冲区中的图像样本标签。
[0157]
步骤3,从缓冲区中随机采样s个样本xj用以巩固旧知识,将这s个样本xj分别输入到教师模型和学生模型中,经过特征编码器和分类器得到的教师模型和学生模型的分类输出数据分别为:
[0158][0159][0160]
经过特征编码器和特征映射器得到的教师模型和学生模型的特征嵌入数据分别为:
[0161][0162][0163]
步骤4,设:表示样本xj依次经过教师模型的特征编码器和分类器处理后得到的分类输出数据;ω(xj)为对应样本xj的教师模型分类输出数据的质量分数;表示分类输出数据中各个类别的分类输出数据;设表示样本xj依次经过学生模型的特征编码器和分类器处理后得到的分类输出数据;为分类输出数据中对应类别yj的分类输出数据。
[0164]
通过感知器计算采样得到每一个样本的分类输出数据的质量分数ω(xj):
[0165][0166]
其中ρ为温度系数,c表示所有可能的类别数量,exp(
·
)表示以自然常数e为底数的指数函数。
[0167]
根据公式(1)、(2)和(5)计算在线蒸馏损失
[0168][0169]
其中|
·
|2表示l2范数,表示数学期望函数。通过赋予教师模型和学生模型的输出之差权重ω(xj),来让学生模型把更多的注意力放在样本的质量分数高的样本上。
[0170]
步骤5,对教师模型和学生模型之间的特征嵌入数据进行对比,根据公式(3)、(4)可以计算对比关系蒸馏损失
[0171][0172]
其中表示数学期望函数,log(
·
)表示以自然常数e为底的自然对数函数,为样本xj输入到教师模型后,经过特征编码器和特征映射器得到的教师模型的特征嵌入数据;为样本xj输入到学生模型后,经过特征编码器和特征映射器得到的学生模型
的特征嵌入数据;z
t
为当前批次所有的样本xj输入到教师模型后,经过特征编码器和特征映射器处理得到的所有教师模型特征嵌入数据的集合;zs为当前批次所有的样本xj输入到学生模型后,经过特征编码器和特征映射器得到的所有学生模型特征嵌入数据的集合;表示从zs采样得到的特征嵌入数据;z
t+
表示与具有相同类别标签的教师模型特征嵌入数据集;表示从z
t+
采样得到的特征嵌入数据;表示从z
t
采样得到的特征嵌入数据。
[0173]
表示评判函数,用于判断特征嵌入数据和是否来源于它们的联合分布其计算公式如下所示:
[0174][0175]
其中exp(
·
)表示以自然常数e为底数的指数函数,|
·
|2表示l2范数,(
·
)
t
表示转置,τ表示温度系数。
[0176]
表示评判函数,用于判断特征嵌入数据和是否来源于它们的联合分布其计算公式如下所示:
[0177][0178]
其中exp(
·
)表示以自然常数e为底数的指数函数,|
·
|2表示l2范数,(
·
)
t
表示转置,τ表示温度系数。
[0179]
步骤6,利用自监督学习和监督对比学习帮助学生模型提取到判别性的特征,其具体步骤包括:
[0180]
(1)将学生模型的每一个训练样本(x,y)进行一次随机的几何变换,得到扩增后的训练样本其中x表示图像样本,y为图像样本x所标记的类别,为几何变换后的图像样本,为几何变换的标签。几何变换包括旋转、缩放和调整图像的宽高比。这样就将学生模型的训练图像数量扩增为原来的两倍。对于进行随机几何变换的这一组图像将它们输入到学生网络中,会得到相应的学生模型特征和特征嵌入数据:
[0181][0182][0183]
(2)将得到的学生模型特征输入到一个多层感知器中,用于判断对训练样本进行几何变换的种类:
[0184][0185]
(3)计算自监督损失
[0186][0187]
其中表示数学期望函数,softmax(
·
)表示softmax函数,l(
·
)表示交叉熵损失函数。
[0188]
(4)设为样本xj输入到学生模型后,经过特征编码器和特征映射器得到的学生模型的特征嵌入数据;表示得到的全体学生模型的特征嵌入数据和的集合;表示从采样得到的特征嵌入数据;表示与具有相同类别标签的学生模型特征嵌入数据集;表示从采样得到的特征嵌入数据;表示从采样得到的特征嵌入数据;基于原始的特征嵌入数据和扩增后的特征嵌入数据,利用学生模型中的这些特征嵌入数据进行监督对比学习,监督对比学习的损失函数的计算公式如下所示:
[0189][0190][0191][0192]
式中:
[0193]
表示数学期望;log(
·
)表示以自然常数e为底的自然对数函数;
[0194]
表示特征嵌入数据和的距离;表示特征嵌入数据和的距离;exp(
·
)表示以自然常数e为底数的指数函数;|
·
|2表示l2范数;表示转置;τ表示温度系数。
[0195]
(5)对于自监督损失和监督对比学习损失进行结合得到协作对比损失帮助学生模型更好地提取判别性的特征:
[0196][0197]
步骤7,基于经验回放,计算学生模型的交叉熵分类损失:
[0198][0199]
其中,x表示任务tn和缓冲区中的图像样本,y为图像样本x所标记的类别;表示数学期望函数;softmax(
·
)表示softmax函数;l(
·
)表示交叉熵损失函数;rs(x)表示图像样本x依次经过学生模型的特征编码器和分类器处理后的分类输出数据。
[0200]rs
(x)表示图像样本x经过学生模型的特征编码器θs和分类器φs得到的输出:
[0201][0202]
步骤8,计算学生模型的总优化目标利用随机梯度下降算法优化学生模型的参数:
[0203][0204]
其中α1、α2和α3表示超参数。
[0205]
步骤9,教师模型直接利用学生模型的参数来更新教师模型的参数,不涉及梯度回传,设θ
t
,φ
t
,ψ
t
对应为教师模型的特征编码器、分类器和特征映射器,θs,φs,ψs对应为教师模型的特征编码器、分类器和特征映射器。其更新方法为:
[0206]
θ
t


t
+(1-m)[(1-x)θ
t
+xθs]
ꢀꢀ
(21);
[0207]
φ
t


t
+(1-m)[(1-x)φ
t
+xφs]
ꢀꢀ
(22);
[0208]
ψ
t


t
+(1-m)[(1-x)ψ
t
+xψs]
ꢀꢀ
(23);
[0209]
其中m表示动量因子,x服从伯努利分布(也称做0-1分布),定义为:
[0210]
p(x=k)=pk(1-p)
1-k
,k={0,1}
ꢀꢀ
(24);
[0211]
其中伯努利概率p的取值范围是(0,1),通过伯努利概率p控制了教师模型的更新频率。
[0212]
为了在模型训练的早期让教师模型快速地学习新知识,动量因子m设计为:
[0213]
m=min(itera/(itera+1),η)
ꢀꢀ
(25);
[0214]
其中itera为当前学生模型的迭代次数,min(itera/(itera+1),η)表示itera/(itera+1)和η中较小的一个数,η为一个常数,一般设置为0.999。
[0215]
本发明的一种基于在线对比蒸馏网络的的广义持续分类方法,能在任意时刻进行测试。在测试阶段,采用教师模型进行测试。原因在于不同时刻的学生模型擅长对不同的类别进行分类,从学生模型中学习的教师模型可以累积学习他们的优点。因此,教师模型比学生模型具有更强的区分所有看到的类别的能力。
[0216]
以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够理解本发明的内容并据以实施,不能仅以本实施例来限定本发明的专利范围,即凡本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1