本发明属于机器学习中的神经网络领域,尤其涉及一种基于动态多教师模型和结构化关系的知识蒸馏方法。
背景技术:
1、在机器学习方法中,模型压缩具有重要功能,它能使模型在较少参数下表现出接近于原模型的效果。一般来说,在未过拟合的情况下,模型的性能与参数量呈现一定程度的正相关性,但这也并不是说,参数越多,性能就一定更好。因为模型的性能会在参数增长过程中逐渐达到瓶颈。如图1所示,虽然最终模型性能都将趋于瓶颈,但相对于其他模型压缩方法(曲线a),知识蒸馏能通过获取知识的方式,取得更显著的训练效果(曲线b),在更少的模型参数下表现出更好的效果。
2、知识蒸馏是一种基于教师(teacher)-学生(student)架构的模型压缩方法。通过预训练好的,相对较为复杂的教师模型来训练模型参数小的,较为简陋的学生模型,使学生模型能够学习到复杂教师模型的暗知识,并将这些知识迁移到自己的学生模型中,从而使模型参数较为小的学生模型能够在受限机上展现出接近于教师模型的强大推理能力,实现模型压缩的目的。
3、知识蒸馏在在具体操作上可以有许多种优化方法,从而产生了许多变种,各个变种模型又能继续改进传统知识蒸馏,从而在正确率,收敛速度,参数量等方面进一步改善。目前主流的优化方案有多教师蒸馏,自蒸馏,半监督蒸馏等。本文则主要聚焦于多教师蒸馏,以及其衍生方法多教师权重自适应蒸馏。
4、多教师蒸馏相对于传统的知识蒸馏,使用了多个预训练好的教师模型来指导学生模型,相较于传统单教师模型,多教师具有更好的鲁棒性和准确性,避免了单个教师的偶发性偏差,学生模型的正确率和收敛速度得到提升,从而获得更好的模型压缩效果。多教师模型本身也有许多分类,如常见的平均教师模型,以及本文重点研究对象,多教师自适应权重蒸馏。
5、多教师自适应权重蒸馏的主要突破点在于,相较于普通的多教师平均蒸馏,对教师的权重进行了动态设定,允许输出正确率更高的教师拥有更高的权重,从而使学生模型在当前迭代次数中向此教师学习更多的知识。由于学习到了更正确的知识,学生模型自然能更快的收敛,且能够提高自身的正确率。
技术实现思路
1、本发明的目标是利用知识蒸馏实现模型压缩,并引入动态权重和结构化关系来缓解模型在压缩过程中出现的两类失真问题:一是不同教师模型具有不同的训练效果,训练水平也参差不齐,二是仅考虑标签输出,不考虑样本结构关系,导致训练失真。通过这种方式,我们旨在实现模型性能更好的学生模型。
2、本发明的思路为:通过余弦相似性动态计算教师模型权重,使具有更好性能的教师模型获得更多的训练权重,在此基础上引入结构化关系,计算教师模型多样本结构和学生模型结构差异,通过结构差异指导学生模型。最后通过教师模型损失,结构化损失和真实标签进行梯度下降,训练学生模型。
3、为解决上述技术问题,本发明的一种基于动态多教师模型和结构化关系的知识蒸馏方法的具体技术方案如下:
4、步骤1:获取图像数据集,数据集中有n个样本,每个样本表示为:,其中xi表示为样本,由多维张量构成,表示为其中表示多维张量,h,w表示维数,c表示图像通道数;yi表示样本标签,标注样本的结果;然后将数据集按比例随机划分训练集和测试集。
5、步骤2:数据预处理,对数据集中的样本进行预处理,同时不改变样本的标签;
6、步骤3:利用数据集对k个不同的教师模型进行训练和测试,获得当前任务下满足性能要求的教师模型,以及对教师模型进行性能测试来获取教师模型性能参数;
7、步骤4:设计学生网络,训练学生模型;
8、步骤5:多教师权重计算阶段;首先,每次迭代需要将训练集输入到多个教师网络中,得出教师网络的结果;其次,需要对教师模型的输出进行评价,评价方式为计算教师输出和样本标签结果之间的相似性,使用余弦相似性来计算:
9、
10、其中,表示第k个教师模型输出和样本标签结果yt之间的相似性,k表示第k个教师模型,i表示教师模型输出和样本标签的比较维度,总共有n维,j表示全部教师模型中的第j个教师,通过相似性为第k个教师模型赋予权重
11、步骤6:根据计算得到的权重,指导多教师模型对学生模型进行知识蒸馏,通过kl散度来生成学生模型和教师模型之间的损失,再用权重来加权相加,得到最终的基于响应的动态多教师损失
12、
13、其中,表示教师模型权重,os表示学生模型输出。
14、步骤7:结构化关系计算阶段;计算结构化关系基于位置距离结构关系以及角度结构关系;首先计算距离结构化关系采用曼哈顿距离,在一个样本集内,分别两两计算模型输出最后一层特征的曼哈顿距离,并累加求和:
15、
16、其中,d(x,y)表示样本间的曼哈顿距离,表示n号样本的第i维向量值,表示m号样本的第i维向量值;
17、采用以下激活函数防止曼哈顿距离过大:
18、
19、其中,lsrd表示距离结构损失,dt表示教师模型产生的曼哈顿距离,ds为学生模型产生的曼哈顿距离,γ为控制超过阈值数值的超参数;
20、然后计算基于角度的结构化关系,采用模型最后一层的输出,在一个样本集内两两使用归一化的向量差之间的内积,计算方式如下:
21、a(ti,tj,tk)=<eij,ekj>
22、
23、其中,a(ti,tj,tk)表示角度特征值,t表示样本,每次采用三个样本进行计算,eij表示li向量和lj向量的向量差,ekj同理;向量采用2范式向量;
24、同样的,采用激活函数防止损失过大:
25、
26、其中,lsra表示角度结构损失,at和as分别表示教师模型和学生模型的角度特征值;
27、最终的结构化损失为距离结构损失和角度结构损失两者之和:
28、
29、其中α1,β1为超参数;
30、步骤8:训练优化;采用多教师动态权重损失,结构化损失和模型输出的硬标签损失来进行优化,总损失采用如下计算方式:
31、
32、其中表示总的损失,α2,β2是超参数,表示模型输出和真实标签之间的损失,计算如下:
33、
34、步骤9:模型的反向推理;根据损失来进行反向梯度计算;
35、步骤10:反复迭代上述过程,直到达到最终迭代次数;
36、步骤11:模型分类结果的生成;使用训练集完成上述训练后,使用验证集进行学生模型输出,输出结果与与真实标签进行比较。
37、与现有技术相比,本发明具有以下有益效果:
38、1、本发明通过多教师动态权重,有效的解决了单教师学习知识单一性问题,同时也避免了常规多教师平均化处理所带来的平庸性问题,使每个教师根据其输出结果,对学生进行动态的指导,从而使学生模型更好的吸收多教师学习成果。
39、2、本发明使用结构化关系来辅助学生模型进行学习。学生模型不再只是简单的学习样本响应,也即样本模型输出的内容,更多地学习样本之间的空间关系,也就是距离,角度等信息,使学生模型学习到更丰富的内容,从而产生更好的学习效果。
1.一种基于动态多教师模型和结构化关系的知识蒸馏方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于动态多教师模型和结构化关系的知识蒸馏方法,其特征在于,所述步骤3具体包括以下步骤:
3.根据权利要求1所述的一种基于动态多教师模型和结构化关系的知识蒸馏方法,其特征在于,所述数据预处理包括对图像进行随机裁剪和水平翻转,同时对图像进行标准化将图像像素的值按通道进行归一化处理。
4.根据权利要求1所述的一种基于动态多教师模型和结构化关系的知识蒸馏方法,其特征在于,所述余弦相似性的计算具体如下:
5.根据权利要求4所述的一种基于动态多教师模型和结构化关系的知识蒸馏方法,其特征在于,所述结构化关系计算阶段采用以下激活函数防止曼哈顿距离过大:
