面向小样本学习的知识蒸馏方法、装置及存储介质

文档序号:34664365发布日期:2023-07-05 12:45阅读:31来源:国知局
面向小样本学习的知识蒸馏方法、装置及存储介质与流程

本发明涉及深度学习的计算机视觉应用领域,尤其涉及一种面向小样本学习的知识蒸馏方法、装置及存储介质。


背景技术:

1、知识蒸馏方法基于“师生模型”训练范式,通过一个预训练好的教师模型,辅助训练新的学生模型。知识蒸馏技术的应用只需要教师和学生能够产生相似的输出,对二者的具体内部结构并没有强制性的要求。根据学生模型产生方式的不同,知识蒸馏可以大致分为“自蒸馏”和“轻量化蒸馏”两大类别。自蒸馏任务中,学生模型采用与教师模型相同的网络结构,此时要求学生模型训练后的性能可以超过教师模型。而轻量化蒸馏任务中,学生模型的参数规模大幅小于教师模型,此时不强制要求学生模型训练后的性能超过教师,只要优于其在无蒸馏训练时的对照性能,就可以证明蒸馏方法的有效性。

2、较传统知识蒸馏方法在应对小样本学习任务时具有局限性,可能导致小样本子任务只包含少量类别且类别顺序随机组合给蒸馏任务造成的不稳定性。


技术实现思路

1、发明目的:提出一种面向小样本学习的知识蒸馏方法、装置及存储介质,以解决现有技术存在的上述问题。

2、第一方面,提出一种面向小样本学习的知识蒸馏方法,步骤如下:

3、步骤(1):小样本图像数据集划分为类别空间互不重合的训练集、验证集、测试集;

4、步骤(2):基于常规分类任务预训练教师模型。对教师模型网络执行通道剪枝,得到轻量级的学生模型;

5、步骤(3):采用随机子任务模式进行小样本训练,每次只抽取固定数量的类别构造“n-way k-shot”小样本分类任务,所抽取的图像样本划分为支持集和查询集;

6、步骤(4):每个任务包含的图像样本经过统一预处理后,分别通过教师和学习模型的特征提取网络,得到两组图像特征;

7、步骤(5):学生模型基于自身输出,完成小样本度量分类,并计算分类损失;

8、步骤(6):根据所选蒸馏方法,基于教师模型和学生模型的输出计算蒸馏损失;

9、步骤(7):分类损失与蒸馏损失加权求和,作为整体对学生模型进行回传更新。

10、在进一步的实施细节中,步骤(1)使用到的数据集主要是miniimagenet和tieredimagenet。其中miniimagenet数据集共包含100个图像类,每类包含600张图像,其中64个类别用作训练,16个类别用作训练过程中的验证,另20个类别用作最终测试。tieredimagenet数据集的数据容量相对更大,其训练-验证-测试集分别包含互不重合的351,97,160个图像类别。

11、在进一步的实施细节中,步骤(2)对教师模型使用的完整特征提取网络(深度卷积神经网络结构)进行通道剪枝,除最初输入、最后输出通道外,各层i/o通道数减少50%,最终整体网络参数量缩减为原始教师模型的约1/3。剪枝后的轻量化网络参数重新初始化,作为学生模型从头开始训练。本发明中使用十二层残差网络(resnet12)作为教师模型的特征提取网络,在此基础上进行通道剪枝所得的轻量级网络(记作slim-resnet12)作为学生模型的特征提取网络。

12、在进一步的实施细节中,步骤(3)构建“n-way k-shot”小样本子任务的过程中,每次都只抽取固定数量的类别,以及每个类别只包含固定数量的图像样本。具体设置为:对于5way-5shot子任务,抽取5个类别,每个类别包含1张支持集样本和15张查询集样本;对于5way-5shot子任务,抽取5个类别,每个类别包含5张支持集样本和15张查询集样本。每个子任务所包含的类别组合都是完全随机的。

13、在进一步的实施细节中,步骤(4)中,图像的预处理包括尺寸统一缩放为84*84像素,进行随机数据增广变换,并基于数据集像素均值和方差的统计先验进行标准化。教师模型和学生模型的特征提取网络都是深度神经网络结构,由若干的卷积-池化-激活函数层复合构成。根据特征提取网络末尾是否包含全局池化层,所得特征又可分为全局特征(每张图像产生唯一特征向量)或局部特征(每张图像产生一批n>1个特征向量)。

14、在进一步的实施细节中,步骤(5)中学生模型提取到图像局部特征后,将其输入给小样本度量分类器。来自支持集样本的特征用于表征当前子任务所含类别的特征中心,度量分类器据此判断每个查询集样本与各个特征中心的相似度,将最相近的类别作为该查询集样本的预测分类结果。本发明中使用的小样本度量分类器为深度最近邻神经网络(deepnearest neighbor neural network,简记作dn4),是一种基于图像局部特征的分类器。

15、在进一步的实施细节中,其特征在于:步骤(6)的蒸馏损失计算,不同于传统蒸馏方法直接将kl散度约束作用小样本分类概率,新的小样本蒸馏方法转而利用模型提取的图像中间层特征(或特征间关系)或辅助分类器产生的固定分类概率进行蒸馏约束。由此避免了小样本子任务只包含少量类别且类别顺序随机组合给蒸馏任务造成的不稳定性,为学生模型的训练提供了相对恒定的更新方向。各方法蒸馏损失的具体计算方式如下:

16、基于辅助分类器的蒸馏:学生模型得到局部特征后,除完成小样本度量分类外,另将特征通过全局均值池化层和附加的辅助线性分类器,得到整个训练集类别空间上的固定分类概率s,与教师模型产生的同维分类概率t根据kl散度计算蒸馏损失。如下公式(1)所示:

17、lacd=dkl(s|t)#(1)

18、基于图像局部特征的蒸馏:教师模型和学生模型对同一样本分别得到两组局部特征,其中各自包含n个同维特征向量。对应同一位置的特征向量之间两两计算kl散度,之后加和得到最终蒸馏损失,如下公式(2)所示:

19、

20、基于图像内部关系的蒸馏:教师模型和学生模型对同一样本分别得到两组局部特征后,各自在所得特征间两两计算余弦相似度,得到两组n*n的相似度矩阵,分别记作rt和rs。两相似度矩阵的均方误差作为蒸馏损失,如下公式(3)所示:

21、

22、第二方面,提出一种面向小样本学习的知识蒸馏装置,该知识蒸馏装置包括:

23、第一模块,用于将小样本图像数据集划分为类别空间互不重合的训练集、验证集、测试集;

24、第二模块,基于常规分类任务预训练教师模型;对教师模型网络执行通道剪枝,得到轻量级的学生模型;

25、第三模块,采用随机子任务模式进行小样本训练,每次只抽取固定数量的类别构造“n-way k-shot”小样本分类任务,所抽取的图像样本划分为支持集和查询集;

26、第四模块,在每个任务包含的图像样本经过统一预处理后,分别通过教师和学习模型的特征提取网络,得到两组图像特征;

27、第五模块,将学生模型基于自身输出,完成小样本度量分类,并计算分类损失;

28、第六模块,根据所选蒸馏方法,基于教师模型和学生模型的输出计算蒸馏损失;

29、第七模块,用于对分类损失与蒸馏损失加权求和,作为整体对学生模型进行回传更新。

30、第三方面,提出一种计算机可读存储介质,存储介质中存储有至少一可执行指令,所述可执行指令在电子设备上运行时,使得电子设备执行如第一方面所述面向小样本学习的知识蒸馏方法的操作。

31、有益效果:

32、(1)本发明提出了三种面向小样本学习的知识蒸馏方法:基于辅助分类器的蒸馏方法(acd),基于图像局部特征的蒸馏方法(lfd),基于图像内部关系的蒸馏方法(ird)。

33、(2)本发明所提方法相较传统知识蒸馏,在小样本学习任务中对学生模型的性能提升更加显著。

34、(3)本发明所提方法在轻量化设置下的小样本学习任务中也有良好效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1