叶峰 陈彪 赖乙宗
基于特征空间嵌入的对比知识蒸馏算法
叶峰 陈彪 赖乙宗
(华南理工大学 机械与汽车工程学院,广东 广州 510640)
因能有效地压缩卷积神经网络模型,知识蒸馏在深度学习领域备受关注。然而,经典知识蒸馏算法在进行知识迁移时,只利用了单个样本的信息,忽略了样本间关系的重要性,算法性能欠佳。为了提高知识蒸馏算法知识迁移的效率和性能,文中提出了一种基于特征空间嵌入的对比知识蒸馏(FSECD)算法。该算法采用批次内构建策略,将学生模型的输出特征嵌入到教师模型特征空间中,使得每个学生模型的输出特征和教师模型输出的个特征构成个对比对。每个对比对中,教师模型的输出特征是已优化、固定的,学生模型的输出特征是待优化、可调优的。在训练过程中,FSECD缩小正对比对的距离并扩大负对比对的距离,使得学生模型可感知并学习教师模型输出特征的样本间关系,进而实现教师模型知识向学生模型的迁移。在CIFAR-100和ImageNet数据集上对不同师生网络架构进行的实验结果表明,与其他主流蒸馏算法相比,FSECD算法在不需要额外的网络结构和数据的情况下,显著提升了性能,进一步证明了样本间关系在知识蒸馏中的重要性。
图像分类;知识蒸馏;卷积神经网络;深度学习;对比学习
近十年,卷积神经网络在计算机视觉任务中取得了巨大的成功,并广泛应用于图像分类[1-6]、图像检测[7-8]和图像分割[9-10]等领域,其中图像分类被认为是其他视觉任务的基础。随着网络容量的增加,在有限的硬件资源下部署卷积神经网络变得越来越困难,获得准确率高且轻量级的卷积神经网络,对于实际应用至关重要。针对这一问题,研究者们提出了网络修剪[11]、量化[12]、低秩分解[13]和知识蒸馏[14-19]等技术。经典知识蒸馏(KD)方法最初由Hinton等[14]提出,该方法通过缩小两个卷积神经网络预测概率之间的Kullback-Leibler(KL)散度来实现卷积神经网络之间知识的迁移。知识蒸馏的原理在于,相较于原始的标签,教师模型的预测概率中隐含了输入样本与非目标类别之间相似性关系的信息。通常情况下,教师模型结构复杂,拥有良好的性能和泛化能力,学生模型是轻量级的,更适合部署在边缘设备,但性能不如教师模型。
Gou等[20]对主流的知识蒸馏方法做了梳理,从知识类别、训练方案、师生架构等角度对知识蒸馏方法进行了全面的介绍。根据文献[20],可以将知识蒸馏方法中教师模型的知识分为基于响应的知识、基于特征的知识以及基于关系的知识。Hinton等[14]提出的传统KD方法使用的是基于响应的知识。Zhao等[21]将KL散度分解为目标类知识蒸馏(TCKD)与非目标类知识蒸馏(NCKD)两部分,以研究目标类别的响应和非目标类别的响应对知识蒸馏的影响,结果发现NCKD更加重要且TCKD与NCKD是耦合的,并进一步提出了解耦知识蒸馏(DKD)用以实现解耦。
Romero等[17]通过缩小教师模型和学生模型中间特征层输出特征图的差异来训练学生模型,使用了基于特征的知识。该方法将教师模型某一隐含层之前的网络结构定义为Hint层,将学生模型某一隐含层之前的网络定义为Guided层,并定义教师模型和学生模型之间的距离为Hint层的输出特征与回归器转化后的Guided层输出特征之间的欧几里得距离。该方法将卷积神经网络知识的定义从网络的整体输出拓宽到中间层的隐含表达上。Zagoruyko等[18]从人类视觉体验中注意力的作用得到启发,提出了学生模型通过模仿教师模型的注意力特征图来提高学生模型性能的方法。该方法在训练过程中实时计算教师模型和学生模型的多个隐含层以及最终输出层的注意力特征图,并缩小教师模型和学生模型对应的注意力特征图之间的欧几里得距离。Heo等[19]对教师模型和学生模型的特征变换及距离函数的形式进行了全面的分析,认为对教师模型的特征进行变形会导致教师模型知识的缺失,提出了使用pre-ReLU的特征进行知识迁移的方法,同时设计了一个新的距离函数以实现教师模型和学生模型之间的知识迁移。
有些学者则提出要关注样本间关系所包含的丰富的结构信息,即使用基于关系的知识。Park等[15]提出了将教师模型输出特征之间的结构化关系迁移给学生模型的方法,同时提出了二阶的样本间距离损失和三阶的样本间角度损失,但该方法在计算距离时,分配给所有样本的权重是一样的,缺乏样本之间的相互重要性的考虑。Gou等[22]基于网络的注意力区域具有更多信息和使用单层特征图进行知识蒸馏容易过拟合等特点,利用来自多个中间层的注意力图构建样本间关系,在多种不同类型数据集上进行了广泛的实验并取得了优秀的结果。
近年来对比学习方法广泛应用于无监督学习[23-24],该方法通过缩小正对比对的距离并扩大负对比对的距离来实现特征聚类。有学者[16,25]尝试将对比学习引入知识蒸馏,以实现学生模型对教师模型的模仿,取得了一定的成绩,这些方法的基本原理是挖掘数据中的结构化关系,使用的也是基于关系的知识。在对比学习中,对比对的构建至关重要,目前主流的方法主要有两种。第一种方法是将同一图像进行两种不同的数据增强处理,得到该图像的两种数据增强形式且两种形式互为正例,并将批次内的其他图像数据增强形式作为负例。Xu等[25]采用了该方法构建对比对,提出了自我监督知识蒸馏(SSKD)方法,该方法在教师模型和学生模型分别独立进行对比学习,通过提高学生模型和教师模型的对比矩阵的相似度来实现知识蒸馏。该方法将批次内图像的数量扩大了两倍,因而计算和显存的消耗也扩大了两倍。第二种方法是将训练集所有图像在上一个迭代的特征存储在记忆库中。在当前迭代中,用输入网络的图像的输出特征和记忆库中相同类别的图像特征构建正对比对,并在记忆库中随机用其他图像的特征构建负对比对。Tian等[16]提出的对比表示知识蒸馏(CRD)算法属于此类,其优化目标是最大化教师模型和学生模型输出特征之间的互信息。虽然该方法没有提高计算上的消耗,但在训练时用内存库存储每个样本的特征需要大量额外的显存。此外,在CRD中还需要额外的网络模块对齐教师模型和学生模型输出特征的维度。
针对以上问题,文中提出了一种基于特征空间嵌入的对比知识蒸馏(FSECD)算法,该算法使用基于关系的知识和模型全连接层的输出作为输入,使得算法在保持高性能的同时,在硬件资源和计算耗时上的增加几乎可以忽略不计。在训练过程中,FSECD算法将对应相同输入图像的学生模型输出特征和教师模型输出特征组成正对比对,输入图像不互相对应的特征则视为负对比对,该操作等价于将任一学生网络输出特征嵌入到教师模型的特征空间中,在多个教师模型输出特征的作用下,根据梯度下降原理,自动靠近匹配度最高的教师模型输出特征。在此过程中,学生模型间接学习了教师模型的特征空间知识,实现对学生模型特征空间的优化。文中通过实验探究正/负例的两种选取策略对FSECD算法性能的影响,并在两个主流的图像分类数据集CIFAR-100和ImageNet上评估了文中所提出的知识蒸馏算法的性能。
式中:(·;)为卷积神经网络;τ为温度系数,用以调节损失函数的平滑度。假定卷积神经网络输入图像样本,并生成特征向量()。为了简单起见,文中将从()中省略,直接标记为,同时继承样本的上标和下标。
使用该损失函数训练卷积神经网络(·;)时,相似的输入图像的输出特征也会趋近,反之,则互相远离。默认情况下,为了保证训练时模型的稳定性,需要对特征使用2正则进行处理。
相较于学生模型,教师模型的结构更复杂,因此往往有强的分辨能力,在相同的训练条件下,教师模型的准确率也更高。本研究将学生模型输出的特征嵌入教师模型的特征空间,以学习教师模型输出的多个特征之间形成的结构化知识,实现更好的蒸馏效果。在使用FSECD算法训练的过程中,教师模型的参数被冻结,只优化学生模型的参数。
图1 正/负例的选取策略示意图
若采用类别级策略,即来自同一类别的图像互为正例,则标签为狗的样本,有两个正例和两个负例;若采取实例级策略,则只将同一图像的教师模型输出视为正例,其余为负例。此外,采用第二种策略时,可以将式(2)简化为
此处可以将实例级别策略视为一个多分类器,该分类器的权重由教师模型动态提供,实现将任一学生模型特征正确识别为对应教师模型特征的功能。无论采用哪种策略,都可以使学生模型向教师模型学习样本间的关系。每个学生模型的输出特征是独立优化的,但它们都被嵌入了同一个教师模型的特征空间并学习该特征空间的结构化知识,即学习和模仿的是同一个对象。在训练过程中,间接优化了学生模型自身的样本间关系,最终使得学生模型和教师模型具有相似的特征空间。
FSECD算法能够以模型的任一卷积层经全局平均池处理的输出特征为输入(需经全局平均池处理或展平处理),或者是以模型最终全连接层的输出特征为输入,然而后者与前者相比,具有以下两个优点:
图2 以全连接层输出特征为输入的FSECD算法的流程图
1)全连接层的输出特征具有更抽象的语义信息。在图像分类中,得到全连接层的输出特征的方法是将最后一层卷积层的特征依次输入全局平均池化层和全连接层。该操作在数学上等价于:先将最后一层的卷积层特征输入到一个卷积核大小为1的卷积层(且该卷积层输出通道数等于待预测的类别数),然后进行全局平均池化。因此,全连接层的输出特征可以视为一种特殊的卷积层特征,且该特征处于网络的最后一层。由于模型的层度越深,特征的语义越丰富,所以全连接层的输出特征是具有最高级别的语义的特征,用于知识蒸馏可以使学生模型学习到更好的知识。
2)不存在特征对齐的问题。无论网络结构和容量如何变化,全连接层输出特征的维数总是等于数据集要预测的类别数。采用全连接层的输出特征甚至可以在不知道教师网络结构的情况下进行蒸馏,即只需要教师模型的输出。使用卷积层的输出特征进行知识蒸馏,在教师网络和学生网络的特征维数不同时,存在特征维数对齐的问题。例如,将ResNet50模型的知识蒸馏给ResNet18模型时,教师模型的特征维数为2 048,而学生模型的特征维数为512,无法直接蒸馏,需要训练额外的模型分支以实现维度对齐。在网络结构不同时,特征维度对齐的情况会变得更加复杂。
基于以上原因,本研究采用全连接层的输出特征进行对比蒸馏,故不存在维度对齐问题。图2是以模型全连接层输出特征为输入的FSECD算法的流程图。
=CE+FSECD(4)
式中,是两种损失函数的平衡系数。
本研究采用图像分类领域主流的两个数据集(CIFAR-100[26]和ImageNet[27]数据集)对网络进行训练和测试。CIFAR-100数据集包含100个类别的图像,图像尺寸为32×32;训练集包含5万幅图像,每个类别各500幅图像;测试集包含1万幅图像,每个类别各100幅图像。在使用CIFAR-100数据集训练网络时,对训练集图像进行标准的数据增强处理,即在图像的每边填充4个像素,再重新将图像裁剪为32×32的大小,然后以50%的概率进行水平翻转;而对测试集图像不进行数据增强处理。ImageNet数据集的训练集包含128万幅图像,共1 000个类别,每个类别1 300幅图像左右;验证集包含5万幅图像,每个类别各50幅图像。在使用ImageNet数据集训练网络时,随机裁剪训练集图像中的一个区域并将该区域尺寸拉伸为224×224,然后以50%的概率进行水平翻转;而对测试集图像同样不进行数据增强处理。
本研究在Ubuntu环境下,使用Pytorch深度学习框架对不同的知识蒸馏算法的性能进行评估。为了覆盖相同/相异架构上的教师-学生模型,本研究在一系列不同架构的卷积神经网络上进行了实验,使用的卷积神经网络架构包括:
(1)WRN--[6],其中为该网络架构的深度因子,为宽度因子。
(2)ResNet。在CIFAR-100数据集上,ResNet表示具有3个卷积组的Cifar风格的ResNet[2],为该网络架构的深度因子,每个卷积组分别有16、32和64个通道。此外,ResNet8×4和ResNet32×4分别表示深度因子为8和32且具有4倍通道数的模型。在ImageNet数据集上,ResNet表示ImageNet风格的ResNet。
(3)MobileNetV1和MobileNetV2[5,28],本研究使用宽度因子为0.5的MobileNetV2。
(4)VGG[1],为该网络架构的深度因子,本研究采用具有Batchnorm层的VGG网络。
(5)ShuffleNet和ShuffleNetV2[3-4],其中ShuffleNet的模型宽度系数为3,ShuffleNetV2的模型尺寸系数默认为1。
为了与其他知识蒸馏算法进行客观的对比,所有实验均采用与文献[16]相同的实验设置。在CIFAR-100数据集上,所有网络训练240个回合,在第150、180和210个训练回合时学习率除以10;重量衰减和动量分别设置为5×10-4和0.9;所有网络的批次大小为128;ShuffleNet系列和MobileNetV2的学习率为0.02,其余模型的学习率为0.1;对于FSECD算法,温度系数设置为4,对于不同的师生对,损失函数平衡系数的取值是不同的,具体见表1。在ImageNet数据集上,网络训练100个回合,批次大小为512,学习率为0.2(学习率在第30、60和90个训练回合时除以10),重量衰减和动量分别设置为1×10-4和0.9,所有师生对的损失函数平衡系数都取为1,温度系数设置为8。
表1 教师+学生模型师生对的超参数取值
Table 1 Values of hyperparameter of teacher + student pairs
教师+学生模型师生对λ ResNet56+ResNet204 ResNet110+ResNet328 ResNet5+MobileNetV26 ResNet32×4+ ResNet8x410 ResNet32×4+ShuffleNetV18 ResNet32×4+ShuffleNetV28 WRN-40-2+WRN-40-18 WRN-40-2+WRN-16-212 WRN-40-2+ShuffleNetV18 VGG13+VGG84 VGG13+MobileNetV28
在CIFAR-100数据集上,本研究使用Top-1准确度cc1作为评价指标。设测试集的图像数量为,模型预测的概率最高的类等于真实标签的图像数量为1,则
在ImageNet数据集上,除了cc1外,还使用了Top-5准确度cc5作为评价指标。设真实标签是模型预测出的概率最高的5个类之一的图像数量为2,则
对同一网络模型,所有知识蒸馏算法重复进行3次训练,取3次训练的cc1和cc5作为该知识蒸馏算法的最终得分。CE表示只使用基于硬标签的交叉熵损失函数CE训练的算法。
文中通过实验比较了类别级策略和实例级策略对FSECD算法性能的影响,并对结果进行分析。两种策略的核心区别在于正/负例选取的标准,在批次大小较小时,由于批次内属于相同类别的图像数量较少,两种策略的实际差异不大;随着批次大小的增加,在每次迭代中属于同一类的样本数量将增加,两种策略的实际差异会不断扩大;使对比实验的结果差异更明显。为了更好地展示对比实验的结果,文中采用了3种批次大小,分别为128、512和1 024,选择WRN-40-2+WRN-40-1和ResNet32×4+ResNet8×4两对教师-学生模型师生对在CIFAR-100数据集上进行对比实验,结果见表2。从表中可知,当批次大小过大时,模型过拟合程度增大,导致网络性能下降,但相较于CE算法,采用两种选取策略的FSECD算法提升了网络的性能,并且使用实例级策略时性能提升的幅度更大。
表2 在CIFAR-100数据集上使用类别级策略和实例级策略的FSECD算法与CE算法的性能对比
Table 2 Comparison of performance among CE algorithm and FSECD algorithms with class-level policy and instance-level policy on CIFAR-100 dataset
算法教师+学生模型师生对Acc1/% B=128B=512B=1 024 CEWRN-40-2+WRN-40-173.2669.7568.11 ResNet32×4+ResNet8×472.5070.6369.14 类别级策略的FSECDWRN-40-2+WRN-40-173.3771.5270.33 ResNet32×4+ResNet8×475.7472.9471.24 实例级策略的FSECDWRN-40-2+WRN-40-174.4974.3973.26 ResNet32×4+ResNet8×476.5775.5874.58
当批次大小为512时,对于WRN-40-2+WRN-40-1师生对,相对于CE算法,使用实例级策略的FSECD算法的网络性能提升了4.64个百分点,而使用类别级策略的FSECD算法则使网络性能提升了1.77个百分点。对于WRN-40-2+WRN-40-1师生对,当批次大小分别为128、512、1 024时,采用实例级策略时网络的性能比采用类别级策略时分别多提升了1.12、2.87、2.93个百分点。可以看到,批次大小越大,采用实例级策略的FSECD算法在性能上超过采用类别级策略的FSECD算法的幅度也相应变大。同样的现象也存在于另一组师生对中。
采用实例级策略训练的卷积神经网络性能更好的原因在于:采用实例级策略训练时,训练的细粒度更高。实例级策略要求能够一一区分每一幅图像,而不是单纯地区分某一个类别,前者的难度要高于后者。采用实例级策略训练的模型,可以为每幅图像生成独特的特征,从而与教师图像生成的特征相对应,因此网络的性能更高。在后续与其他知识蒸馏算法的对比实验中,默认FSECD算法使用的是实例级策略。
在CIFAR-100数据集上,采用FSECD算法与其他主流的知识蒸馏算法(包括KD[14]、FitNets[17]、AT[18]、RKD[15]、OFD[19]、CRD[16]和DKD[21])进行了对比实验,结果见表3和表4,分别用粗体和斜体标记最优和次优的结果。从表3可见,对于实验的6组教师-学生模型师生对,使用FSECD算法训练的网络的cc1性能取得了4组最优和2组次优,这表明了特征空间嵌入的优越性。从表4可见,对于实验的5组教师-学生模型师生对,采用FSECD算法训练的网络的cc1性能取得了2组最优和2组次优,只有ResNet32×4+ShuffleNetV2师生对的cc1低于OFD和DKD。
表3 在CIFAR-100数据集上使用9种知识蒸馏算法训练的6种相同网络架构模型的Acc1对比
Table 3 Comparison of Acc1 among six models with the same network architecture trained by nine knowledge distillation algorithms on CIFAR-100 dataset %
算法ResNet56+ResNet20ResNet110+ResNet32ResNet32×4+ResNet8×4WRN-40-2+WRN-16-2WRN-40-2+WRN-40-1VGG13+VGG8 CE69.0671.1472.5173.2671.9870.36 KD70.6673.0873.3374.9273.5472.98 FitNet69.2171.0673.5073.5872.2471.02 AT70.5572.3173.4474.0872.7771.43 RKD69.6171.8271.9073.3572.2271.48 OFD70.9873.2374.9575.2474.3373.95 CRD71.1673.4875.5175.4874.1473.94 DKD1)71.3273.7775.9275.3274.1474.41 FSECD71.3973.5176.5775.6274.4974.11
1)使用作者提供的代码复现得到的结果,下同。
表4 在CIFAR-100数据集上使用9种知识蒸馏算法训练的5种相异网络架构模型的Acc1对比
Table 4 Comparison of Acc1 among five models with different network architectures trained by nine knowledge distillation algorithms on CIFAR-100 dataset %
算法ResNet32×4+ShuffleNetV1WRN-40-2+ShuffleNetV1VGG13+MobileNetV2ResNet50+MobileNetV2ResNet32×4+ShuffleNetV2 CE70.5070.5064.6064.6071.82 KD74.0774.8367.3767.3574.45 FitNet73.5973.7364.1463.1673.54 AT71.7373.3259.4058.5872.73 RKD72.2872.2164.5264.4373.21 OFD75.9875.8569.4869.0476.82 CRD75.1176.0569.7369.1175.65 DKD1)76.4576.6769.2969.9676.70 FSECD76.0176.3269.9770.0676.15
在ImageNet数据集上,采用FSECD算法与其他主流知识蒸馏算法(包括KD[14]、AT[18]、OFD[19]、CRD[16]和DKD[21]),对两组教师-学生模型师生对进行了对比实验,结果见表5。表5显示,对于具有相同网络架构的师生对ResNet34+ResNet18,DKD算法训练的网络的cc1略微超过FSECD算法,但差距非常小,为0.05%,这两种算法训练的网络的cc5几乎相等。对于具有相异网络架构的师生对ResNet50+MobileNetV1,使用FSECD算法训练的网络,其cc1和cc5性能均优于其他知识蒸馏算法。
在CIFAR100和ImageNet数据集上,FSECD和DKD算法均取得优秀的结果,然而FSECD算法使用的超参数少于DKD算法,使得文中FSECD算法的拓展性更好。
表5 ImageNet数据集上使用7种知识蒸馏算法训练的2种网络模型的Acc1和Acc5对比
Table 5 Comparison of Acc1 and Acc5 between two network models trained by seven knowledge distillation algorithms on ImageNet dataset
算法Acc1/%Acc5/% ResNet34+ResNet18ResNet50+MobileNetvV1ResNet34+ResNet18ResNet50+MobileNetV1 CE69.7568.8789.0788.76 KD71.0370.5090.0589.80 AT70.6969.5690.0189.33 CRD71.1771.3790.1390.41 OFD70.8171.2589.9890.34 DKD1)71.5472.0190.4390.02 FSECD71.4972.1990.4490.98
FSECD算法通过在每一个训练迭代内,学生模型输出特征根据与其他所有教师模型输出特征的关系,产生吸引或排斥的效果。文中用式(7)所示的损失函数替换式(4)中的FSECD,并将修改后的算法命名为FSECD_S。在FSECD_S中,只构建正对比对,不构建负对比对,学生模型只能学习到一对一的样本间关系的知识,无法学习到结构化的知识。
损失函数(7)只显式地最小化正对比对的距离,不考虑负对比对,无结构化知识的学习。文中选择WRN-40-2+WRN-40-1和ResNet32×4+ResNet8×4两组教师-学生模型师生对,在CIFAR-100数据集上进行实验,结果见表6。从表中可知:两种损失函数都可以提高模型的性能;FSECD算法提升学生模型性能的幅度更大,充分证明了基于特征空间嵌入进行结构化知识学习的重要性。
表6 在CIFAR-100数据集上结构化知识对模型性能的影响
Table 6 Influence of structural knowledge on the performance of models on CIFAR-100 dataset %
算法WRN-40-2+WRN-40-1ResNet32×4+ResNet8×4 CE71.9872.51 FSECD_S73.6674.49 FSECD75.7476.57
为探究充当负例的样本数量对FSECD算法的影响,比较了使用不同数量负例的学生模型的cc1得分。在每个训练迭代,对任一学生模型输出特征,先根据负例与该学生模型输出特征的相似度进行降序排序,然后只保留降序排列后top-的负例用于FSECD算法,此处是一个预先设置好的超参数。此外,还比较了只使用一个负例进行训练的学生模型的性能。在CIFAR100数据集上两组师生对的实验结果如表7所示。
表7 在CIFAR-100数据集上负例样本数对模型性能的影响
Table 7 Influence of the number of negative instances on the performance of models on CIFAR-100 dataset %
算法ResNet32×4+ResNet8×4ResNet56+ResNet20 CE72.5169.02 FSECD(1个负例)73.9270.08 FSECD(k=25%)75.8670.96 FSECD(k=50%)76.1471.15 FSECD(k=100%)76.5771.39
当只使用一个负例时,相对于CE算法,使用FSECD算法训练的ResNet8×4的cc1只提升了1.41个百分点,ResNet20的cc1只提升了1.06个百分点。随着使用负例的比例增大,学生模型的性能也不断提升,当=100%时,两个学生网络的cc1都达到峰值。该实验结果表明了负例数量的重要性。随着负例个数的增加,学生获取到更多教师特征空间的信息,使得学生模型的特征空间有更好的泛化能力,获得了更好的性能。
3.3.1温度系数对模型性能的影响
温度系数取不同值(1、2、4、6、8、10)时对模型性能的影响如图3所示,过高或过低的温度系数都会导致模型性能的下降。温度系数的最佳值与数据集预测类别的数量呈正相关关系。数据集预测类别的数量越多,合适的温度系数的数值就越大,而且它对模型不敏感。CIFAR-100数据集的类别数量为100,所用温度系数的数值在3到5之间;ImageNet数据集的类别数量为1 000,温度系数的数值设置为8比较合适。
3.3.2损失函数平衡系数对模型性能的影响
损失函数平衡系数取不同值(1、2、4、8、10、15、20)时对模型性能的影响如图4所示,随着损失函数平衡系数的增加,模型性能先上升后下降。损失函数平衡系数的最佳值需要根据网络模型师生对的情况进行调优,如ResNet32×4+ResNet8×4的损失函数平衡系数最佳值是10,而ResNet56-ResNet20的最佳值是4。此外,当损失函数平衡系数的取值过大导致网络性能下降时,不同网络性能的下降程度是不同的,如ResNet32×4-ResNet8×4相比其最佳性能下降的幅度不大,而ResNet56-ResNet20相比其最佳性能的下降幅度很大。
图4 在CIFAR-100数据集上损失函数平衡系数对模型性能的影响
文中使用t-SNE[29]来可视化ResNet8×4模型倒数第二层卷积层的特征,t-SNE算法可以在降维的同时,保持特征之间的相互关系。可视化是在CIFAR-100数据集的测试集上进行的,先对测试集上的每幅图像进行特征提取,然后使用t-SNE算法对高维特征进行降维。本研究将每个高维特征降到二维空间,并在二维地图上以点表示。
图5 基于t-SNE算法的特征可视化
KD和FSECD算法的t-SNE可视化结果如图5所示,由于ResNet8×4在测试集上的cc1在70%~80%之间,因此存在一些特征是分散的,而不是靠近其特征中心,在生成的特征分布图中心形成了一个不太清晰的区域。由特征分布图可知,使用FSECD算法得到的模型实现了更紧密的特征聚集和更高区分度的类间边界。
文中通过可视化距离矩阵,对比了采用KD和FSECD算法训练的学生模型与教师模型的相似程度,采用的网络模型师生对为ResNet32×4+ResNet8×4。
首先,按真实标签对测试集中的图像进行分类;然后,对于某一类别的所有图像,统计模型预测概率并取均值,对所有类别的图像进行预测后,可得到类别预测概率矩阵∈ R100×100,其中P,定义为所有真实标签为的图像被预测为类别的平均概率;最后,计算教师模型类别预测概率矩阵t和学生模型类别预测概率矩阵s之间的距离矩阵,计算公式为
为了可视化,对距离矩阵采用全局归一化:
可视化结果如图6所示,图中用颜色深浅表示该点距离的大小。学生模型与教师模型越相似,点的颜色越浅,同时也代表学生模型的性能越好。从图中可知,使用FSECD算法训练的学生模型欧几里得距离更小,进一步证明了FSECD算法迁移教师模型知识的优越性。
图6 两种算法的教师和学生模型的差异
本研究提出了一种基于特征空间嵌入的对比知识蒸馏算法FSECD,该算法将教师模型的结构化知识提取到学生模型。在每个训练迭代,批次内的教师模型输出特征或充当正例或充当负例,共同优化每个学生模型的输出特征。批次内的学生模型输出特征被嵌入到教师模型的特征空间,学习相同的结构化的教师模型的知识,最终学生模型模仿了教师模型的特征空间,并能够输出与教师相似的样本间关系,实现了知识的迁移。文中算法通过在批次内进行对比学习的对比对的构建,克服了以往对比学习需要额外的计算或内存的缺点,是一种高效简洁的知识蒸馏算法。本研究在CIFAR-100和ImageNet数据集上进行了大量的对比实验,结果显示,在大多数实验配置下,文中提出的算法均取得最优或次优的结果,充分证明了文中算法的优越性,并进一步证明了样本间关系在知识蒸馏中的重要性。
[1] SIMONYAN K,ZISSERMAN A.Very deep convolutional networks for large-scale image recognition [EB/OL].(2015-04-10)[2022-10-20].https://arxiv.org/abs/1409.1556v1.
[2] HE K,ZHANG X,REN S,et al.Deep residual learning for image recognition[C]∥ Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition.Las Vegas:IEEE,2016:770-778.
[3] ZHANG X,ZHOU X,LIN M,et al.ShuffleNet:an extremely efficient convolutional neural network for mobile devices[C]∥ Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Salt Lake City:IEEE,2018:6848-6856.
[4] MA N,ZHANG X,ZHENG H-T,et al.ShuffleNet V2:practical guidelines for efficient CNN architecture design[C]∥ Proceedings of the 15th European Conference on Computer Vision.Munich:Springer,2018:122-138.
[5] SANDLER M,HOWARD A,ZHU M,et al.MobileNetV2:inverted residuals and linear bottlenecks [C]∥ Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Salt Lake City:IEEE,2018:4510-4520.
[6] ZAGORUYKO S,KOMODAKIS N.Wide residual networks[EB/OL].(2017-06-14)[2022-10-20].https://arxiv.org/abs/1605.07146.
[7] REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once:unified,real-time object detection[C]∥ Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition.Las Vegas:IEEE,2016:779-788.
[8] LIU W,ANGUELOV D,ERHAN D,et al.SSD:single shot multibox detector[C]∥ Proceedings of the 14th European Conference on Computer Vision.Amsterdam:Springer,2016:21-37.
[9] HE K,GKIOXARI G,DOLLÁR P,et al.Mask R-CNN[C]∥ Proceedings of 2017 IEEE International Conference on Computer Vision.Venice:IEEE,2017:2961-2969.
[10] ZHAO H,SHI J,QI X,et al.Pyramid scene parsing network[C]∥ Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition.Honolulu:IEEE,2017:2881-2890.
[11] LUO J-H,WU J,LIN W.ThiNet:a filter level pruning method for deep neural network compression[C]∥ Proceedings of 2017 IEEE International Conference on Computer Vision.Venice:IEEE,2017:5058-5066.
[12] JACOB B,KLIGYS S,CHEN B,et al.Quantization and training of neural networks for efficient integer-arithmetic-only inference[C]∥ Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Salt Lake City:IEEE,2018:2704-2713.
[13] YU X,LIU T,WANG X,et al.On compressing deep models by low rank and sparse decomposition[C]∥ Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition.Honolulu:IEEE,2017:7370-7379.
[14] HINTON G,VINYALS O,DEAN J.Distilling the knowledge in a neural network[EB/OL].(2015-05-09)[2022-10-20].https://arxiv.org/abs/1503.02531.
[15] PARK W,KIM D,LU Y,et al.Relational knowledge distillation[C]∥ Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Long Beach:IEEE,2019:3967-3976.
[16] TIAN Y,KRISHNAN D,ISOLA P.Contrastive representation distillation[C]∥ Proceedings of the 8th International Conference on Learning Representations.Addis Ababa:OpenReview.net,2020:1-19.
[17] ROMERO A,BALLAS N,KAHOU S E,et al.FitNets:hints for thin deep nets[C]∥ Proceedings of the 3rd International Conference on Learning Representations.San Diego:OpenReview.net,2015:1-13.
[18] ZAGORUYKO S,KOMODAKIS N.Paying more attention to attention:improving the performance of convolutional neural networks via attention transfer[C]∥ Proceedings of the 5th International Conference on Learning Representations.Toulon:OpenReview.net,2017:1-13.
[19] HEO B,KIM J,YUN S,et al.A comprehensive overhaul of feature distillation[C]∥ Proceedings of 2019 IEEE/CVF International Conference on Computer Vision.Long Beach:IEEE,2019:1921-1930.
[20] GOU J,YU B,MAYBANK S J,et al.Knowledge distillation:a survey[J].International Journal of Computer Vision,2021,129(6):1789-1819.
[21] ZHAO B,CUI Q,SONG R,et al.Decoupled knowledge distillation[C]∥ Proceedings of 2022 IEEE/CVF Conference on Computer Vision and Pattern Recognition.New Orleans:IEEE,2022:11953-11962.
[22] GOU J,SUN L,YU B,et al.Multi-level attention-based sample correlations for knowledge distillation[J].IEEE Transactions on Industrial Informatics,2022,DOI:10.1109/TII.2022.3209672.
[23] CHEN T,KORNBLITH S,NOROUZI M,et al.A simple framework for contrastive learning of visual representations[C]∥ Proceedings of the Thirty-seventh International Conference on Machine Learning.Vienna:IMLS,2020:1597-1607.
[24] RADFORD A,KIM J W,HALLACY C,et al.Learning transferable visual models from natural language supervision[C]∥ Proceedings of the 38th International Conference on Machine Learning.Vienna:IMLS,2021:8748-8763.
[25] XU G,LIU Z,LI X,et al.Knowledge distillation meets self-supervision[C]∥ Proceedings of the 16th European Conference on Computer Vision.Glasgow:Springer,2020:588-604.
[26] KRIZHEVSKY A.Learning multiple layers of features from tiny images[D].Toronto:University of Toronto,2009.
[27] DENG J,DONG W,SOCHER R,et al.ImageNet:a large-scale hierarchical image database[C]∥ Proceedings of 2009 IEEE Conference on Computer Vision and Pattern Recognition.Miami:IEEE,2009:248-255.
[28] HOWARD A G,ZHU M,CHEN B,et al.MobileNets:efficient convolutional neural networks for mobile vision applications[EB/OL].(2017-04-17)[2022-10-20].https://arxiv.org/abs/1704.04861.
[29] Van der MAATEN L,HINTON G.Visualizing data using t-SNE[J].Journal of Machine Learning Research,2008,9(11):2579-2605.
Contrastive Knowledge Distillation Method Based on Feature Space Embedding
(School of Mechanical and Automotive Engineering,South China University of Technology,Guangzhou 510640,Guangdong,China)
Because of its important role in model compression, knowledge distillation has attracted much attention in the field of deep learning. However, the classical knowledge distillation algorithm only uses the information of a single sample, and neglects the importance of the relationship between samples, leading to its poor performance. To improve the efficiency and performance of knowledge transfer in knowledge distillation algorithm, this paper proposed a feature-space-embedding based contrastive knowledge distillation (FSECD) algorithm. The algorithm adopts efficient batch construction strategy, which embeds the student feature into the teacher feature space so that each student feature buildscontrastive pairs withteacher features. In each pair, the teacher feature is optimized and fixed, while student feature is to be optimized and tunable. In the training process, the distance for positive pairs is narrowed and the distance for negative pairs is expanded, so that student model can perceive and learn the inter-sample relations of teacher model and realize the transfer of knowledge from teacher model to student model. Extensive experiments with different teacher/student architecture settings on CIFAR-100 and ImageNet datasets show that, FSECD algorithm achieves significant performance improvement without additional network structures and data when compared with other cutting-edge distillation methods, which further proves the importance of the inter-sample relations in knowledge distillation.
image classification;knowledge distillation;convolutional neural network;deep learning;contrastive learning
Supported by the Key-Area R&D Program of Guangdong Province (2021B0101420003)
10.12141/j.issn.1000-565X.220684
2022⁃10⁃24
广东省重点领域研发计划项目(2021B0101420003)
叶峰(1972-),男,博士,副教授,主要从事机器视觉及移动机器人传感控制研究。E-mail:mefengye@scut.edu.cn
TP391
1000-565X(2023)05-0013-11