知识蒸馏的效能依赖于对样本潜在知识的提取和处理,而样本类别作为样本的重要属性常常被忽视,主要原因在于所构造的样本特征往往不具有类别判定性。例如,Zagoruyko等[1]提出的注意力蒸馏,将中间层所有通道卷积特征激活值的p范数求和作为样本特征表示,但是部分通道激活的是非类别相关空间区域,所得特征并不具备类别判定性,不能作为类别结构进行知识蒸馏。Chen等[2]首次提出了类别结构蒸馏 (Category Structure Knowledge Distillation,CSKD) ,但该方法将神经网络最后一层卷积的输出作为特征表示,没有解释特征具备类别判定性,只是观察了特征降维可视化之后的分布图,表明经过CSKD训练得到特征的区分度相比其他知识蒸馏方法较高。并且,该方法在实验阶段采用了128的批处理大小,而实验数据集如Cifar100等达到了100个类,在单批次的训练中,大部分类别的样本可能仅有一个,个体特征并不能充分代表类别特征,蒸馏过程中迁移的实际上是实例级知识,而非类别级知识,未能很好地发挥类别结构的效能。因此,为了更好地利用样本类别知识,需要找出具有类别判定性的特征表示。本文提出利用图像的梯度热力激活图 (Gradient Class Activation Mapping,Grad-CAM) ,生成具有类别判定性的类激活知识指导学生模型训练。同时,由于同一类样本的类别特征存在统一的激活模式,维护类别结构有利于捕捉分类的结构化知识,因此,在指导学生模型学习教师模型类激活图的基础上,本文还提出学习样本类别关系知识,从全局关系的角度补充蒸馏。此外,当类别数量增大 (如Cifar100)时,本文提出使用记忆库来保存前几个批处理的样本特征,以便采用增量式方法随着训练过程更新类别知识。记忆库能够保证在进行蒸馏训练时,每个类包含有足够的样本特征,在设备条件限制下尽可能提升类别结构蒸馏效能。
经过实验研究证明,本文所提出的方法在不同任务 (Cifar10、Cifar 100、Tiny-ImageNet和ImageNet) 上准确率都得到提高。特别是与CSKD相比,本文提出的方法分别在Cifar10上提升了0.4%、在Cifar100上提升了0.7%、在Tiny-ImageNet上提升了1.21%、在ImageNet上提升了1.11%,并且在训练时间消耗上比CSKD减少了50%。
1 相关工作深度神经网络在计算机视觉任务中表现出了非凡的性能,然而,大型模型通常只能在传统台式机上运行,很难部署在资源受限制的小平台上,如手机等。近年来,知识蒸馏技术得到充分的发展,并被证明是一种通过将知识从大型教师模型转移到小型学生模型来执行模型压缩的有效方法。样本知识一般有以下3种方式表达:(1) 基于响应的知识,如Hinton等[3]直接让学生层模仿教师层的最终预测,因为预测类别概率是高度抽象化的形式型知识,强制分类概率分布一致有利于知识的直接获取。文献[4-5]则通过实验表明基于响应的知识约束能起到类似于标签平滑和模型正则化的效果。(2) 基于特征的知识,旨在通过学生模型模仿教师模型的中间过程来提升学生模型的性能。Romero等[6]于2015 年首次提出FitNets,使用映射函数使教师模型与学生模型的中间层输出维度匹配,从而加速学生模型收敛和提升蒸馏性能;Jang等[7]提出通过训练一个元模型的方式,来决定教师模型各层的特征图知识迁移到学生模型各隐层的权重。另一种方式则是对中间层输出进行改进,提出注意力图,解释为神经网络对输入图像的激活。Huang等[8]使用神经元选择性转移,对注意力图进行了概括,将图像在中间层的激活作为知识,由学生模仿教师的激活分布;Wang等[9]通过添加额外模块判别特征通道重要性,得到中间层更具有说服力的特征注意力图表示,不但调整了迁移学习的正则化强度,而且动态确定了所需传输的重要特征,极大减少了预算与训练时间。(3) 基于关系的知识,着重捕获不同样本之间的关系,利用相似度等度量手段来表达样本特征之间的相关性。Park等[10]利用样本之间的角度结构和距离结构进行迁移,认为这种关系的高阶属性较低阶属性更具有不变性,有更好的效果;Peng等[11]提出了一种基于泰勒级数展开的广义核方法,更好地捕捉实例之间的相关性;Liu等[12]根据实例特征、实例关系和特征空间变换,对样本关系提出实例关系图建模 (Instance Relationship Graph ,IRG) ,强制学生模型的IRG与教师模型的IRG拟合,并认为这比直接模仿中间特征的方式更加稳健;然而,上述实例级关系都从全局信息出发,忽略了局部特征及其相关性。Li等[13]则提出建模实例之间的同一空间区域的局部信息,并且在建模之前利用注意力模块对类感知丰富区域进行提取,减少了实例关系的计算量;最近研究的蒸馏方法引入了其他概念,如Tian等[14]受对比学习的损失函数启发,提出从正负样本关系中学习更好的判别特征表示,实现了自监督特征迁移学习;Chen等[15]结合了上下文学习的概念,考虑到师生模型上下文表达意义的不同,手动关联会导致师生语义不匹配出现负正则化,因此提出通过学习注意力分布,让每个学生层从所有教师层提取知识,避免手动关联层对起到负正则化的作用;但是,以上方法都没有考虑到样本类别也能作为结构化知识进行提取。Yun等[16]就曾指出,同一类别的样本预测是趋同的,过于差异化的分布导致网络的预测过于自信,而强制网络以类别方式产生更有意义的预测,能显著提升网络的泛化性能。因此,本文方法侧重于利用类别知识进行蒸馏学习。
因为类别知识蒸馏需要获取具有类别性质的特征,因此需要探究图像在神经网络上是如何表达的。Zeiler 等[17]利用反卷积和反池化操作可视化神经网络,展示了CNN的每一层究竟学到了哪些特征;而Zhou等[18]首次提出了类别感知激活图(Class Activation Map,CAM),该方法生成的特征图通过高亮定位出图像的类别关注区域,具有实现类别判定和高分辨率的优点。但是在使用CAM时,需要将网络最后一层替换为全局平均池化层,部分网络使用CAM需要对网络结构进行修改。因此,Selvaraju等[19]在CAM的基础上进行推广提出Grad-CAM,它结合了引导反向传播和梯度加权,在网络上任意一层都可提取到类别感知激活图。而Li等[20]则提出了通过擦除迭代操作来进行自我指导的方案,经过两个阶段训练着重突出对分类任务有贡献的图像区域。上述工作表明了获取类别判定性特征是可实现的,因此,本文将利用类别判定性特征指导学生模型训练。
2 增量式类激活知识蒸馏算法本文提出的增量式类激活知识蒸馏算法(ICAKD),利用神经网络生成的类激活图进行蒸馏学习。如图1所示,算法整体结构包含2个部分,一是利用Softmax输出值反向传播,生成样本激活特征图,以对学生网络进行约束;二是采用增量式记忆库动态存储图像特征,构建类别结构关系,以对学生网络进行类别结构约束。
![]() |
图 1 增量式类激活知识蒸馏算法结构示意图 Figure 1 ICAKD Schematic |
如图2所示,首先确立由神经网络第i层生成类别激活图,并且定义各个通道的中间层特征图为
![]() |
图 2 梯度类别激活图生成流程 Figure 2 The process of generating Gradient category activation map |
$ {\mathcal{a}}_{e}=\mathrm{A}\mathrm{v}\mathrm{g}\left(\sum _{n}\sum _{m}\frac{\varPhi {Y}_{c}}{{A}_{nm}^{e}}\right) $ | (1) |
接着,将中间层各个通道的特征图
$ \mathrm{G}\mathrm{r}\mathrm{a}\mathrm{d}\mathrm{C}\mathrm{A}\mathrm{M}({f}^{i}) = \mathrm{R}\mathrm{e}\mathrm{l}\mathrm{u}\left({\sum} _{1}^{k}{\mathcal{a}}_{e}{A}_{nm}^{e}\right) $ | (2) |
式中:类激活图采用
由于教师网和学生网在结构和参数上不一致,得到的激活特征图在数值上也存在差异。为了约束因网络结构不匹配带来的误差,使用
$ \boldsymbol{Q}=\mathrm{v}\mathrm{e}\mathrm{c}\mathrm{t}\mathrm{o}\mathrm{r}(\mathrm{G}\mathrm{r}\mathrm{a}\mathrm{d}\mathrm{C}\mathrm{A}\mathrm{M}({f}^{i}) ) $ | (3) |
$ {L_{{\rm{GL}}}}=\sum\limits_{b}{\left\|\frac{{\boldsymbol{Q}}^{{\rm{t}}}}{{\left\|{\boldsymbol{Q}}^{{\rm{t}}}\right\|}_{2}}-\frac{{\boldsymbol{Q}}^{{\rm{s}}}}{{\left\|{\boldsymbol{Q}}^{{\rm{s}}}\right\|}_{2}}\right\|}_{1} $ | (4) |
式中:
在实验的每个批处理期间,教师记忆库和学生记忆库分别存储由教师模型和学生模型生成的类激活向量,而且都将重用来自前面多个训练阶段的样本类激活向量。如图3所示,记忆库采用固定内存大小,其大小远大于每个批处理所包含的样本数量,这保证了实验中每个类别所包含的样本数量足够多,所蒸馏的知识是类别级而非实例级。此外,记忆库采用增量式方法更新,缓冲样本特征表示的处理策略为先进先出,在当前批处理的样本需要加入记忆库且记忆库已经达到存储上限时,记忆库中最原始的批处理样本会被移除,更新为新的批处理样本。在后续的训练阶段不断循环上述过程,始终维护记忆库的更新迭代。
![]() |
图 3 记忆库的更新流程 Figure 3 The process of updating memory bank |
在记忆库大小方面,本文通过加快记忆库迭代更新的频率,在保证有充足的样本数据的情况下,减轻学生网络编码不一致带来的损失。记忆库样本数量只与数据集总类相关,根据数据集总类灵活调整记忆库的大小。具体设计如式 (5) 所示。
$ M=\frac{b H}{10} $ | (5) |
式中:
本文所提取到的特征向量是以类别得分为基础的特征空间响应值,如文献[16]所述,同类样本在空间激活的表达上是具有一定相似程度的。因此,为了构建类别级的样本结构关系,需要获取一个能够代表类别特性的通用特征表示。类质中心常用于概括一个类内的数据表示,在许多聚类算法中,通常先计算每个类的类质中心点,然后利用样本与类质中心点的关系作为分类的标准。因此,定义类质中心特征表示
$ {\boldsymbol{Z}}^{c}=\frac{\displaystyle{\sum} _{1}^{n}{\boldsymbol{Q}}^{i}}{{M}^{c}}({\boldsymbol{Q}}^{i}\in c) $ | (6) |
式中:
本文希望以聚类的思想对样本类别进行归纳,求取类质中心,由类质中心表示作为该类的通用特征表示,最后通过类质中心构成类别结构关系,因此一个训练好的教师模型就能通过样本的类别结构监督学生模型。此外,使用类质中心作为代表性知识,有利于让同类样本特征聚集在同一位点,在满足蒸馏约束的同时,达到拉大类间距离,拉近类内距离的效果。
类别结构作为一种全局性知识,其优势在于泛化性和稳定性更强。如式(7)所示,选择欧氏距离度量两个类激活特征向量之间的关系,定义为
$ \psi ({\boldsymbol{Z}}^{a},{\boldsymbol{Z}}^{b}) =\|{{\boldsymbol{Z}}^{a}-{\boldsymbol{Z}}^{b}}\|_{2} $ | (7) |
$ \varphi ({\boldsymbol{Z}}^{1},\cdots ,{\boldsymbol{Z}}^{n}) =\frac{(\psi ({\boldsymbol{Z}}^{1},{\boldsymbol{Z}}^{2}) ,\psi ({\boldsymbol{Z}}^{1},{\boldsymbol{Z}}^{3}) ,\cdots ,\psi ({\boldsymbol{Z}}^{n-1},{\boldsymbol{Z}}^{n}) ) }{{\displaystyle\sum }_{i,j}^{n}\psi ({\boldsymbol{Z}}^{a},{\boldsymbol{Z}}^{b}) }$ | (8) |
$ {L}_{\mathrm{C}\mathrm{L}}=\|{\varphi }^{{\rm{t}}}({\boldsymbol{Z}}^{1},\cdots ,{\boldsymbol{Z}}^{n}) -{\varphi }^{{\rm{s}}}({\boldsymbol{Z}}^{1},\cdots ,{\boldsymbol{Z}}^{n})\|_{1} $ | (9) |
式中:
本文方法提出一个新的损失函数,损失函数由3个部分组成,
$ \mathrm{L}\mathrm{o}\mathrm{s}\mathrm{s}={L}_{\mathrm{C}\mathrm{E}}+\beta \left({L}_{\mathrm{G}\mathrm{L}}+{L}_{\mathrm{C}\mathrm{L}}\right) $ | (10) |
式中:
本节进一步对ICAKD算法的流程进行阐述,并给出详细的算法流程。
ICAKD算法
输入:
训练样本
输出:
学生模型更新后的网络
For
1.选择一个批处理的训练样本
End for
3.2 实验设置实验中以 ResNet作为主要架构,教师网的结构为ResNet56,学生网的结构为ResNet20。所有网络均使用SGD和大小为128的批处理训练200个周期,动量大小为0.9。最初的学习率为0.1,分别在第100、第150个周期进行衰减,衰减系数为0.1。本文使用Pytorch框架来实施本文的方法,并在 Nvidia GTX 2080Ti GPU上进行评估。
本文在Cifar10、Cifar100、Tiny-ImageNet和ImageNet数据集进行测试,验证所提出方法的有效性。采用Top-1 Accuracy进行准确率评估,Top-1 Accuracy是指预测排名第一的类别与实际结果相符的准确率。实验还统计了每个周期的平均耗时,评估模型的运行效能。除了以学生模型 (Student) 作为基线任务,本文还与其他知识蒸馏方式进行了详细的对比,例如关系知识蒸馏 (Relational Knowledge Distillation, RKD) 、相关同余知识蒸馏 (Correlation Congruence Knowledge Distillation, CCKD) 和类别结构蒸馏 (CSKD) ,探索以类激活知识为基础的知识蒸馏特别之处。所有方法都在同一架构下实现和比较,对所有数据集内的图像都通过顺序执行随机水平翻转、图像填充、随机裁剪和均值标准归一化的数据增强。
3.3 实验结果及分析 3.3.1 Cifar10/Cifar100数据集Cifar10与Cifar100分别由10个类别和100个类别的32×32彩色图像组成,包含50000张训练图像和10000张测试图像。其中图像预处理阶段随机裁剪之后的输入图像尺寸仍为32×32,实验采用的重量衰减系数为5×10−4,损失结构参数
实验结果如表1所示,本文所提出的方法与Student、RKD和CCKD相比,虽然在平均训练耗时上略长,但是Top-1准确率在Cifar10数据集上分别提升0.69%、0.46%和0.18%,在Cifar100数据集上分别提升了2.35%、0.69%和0.59%。特别是与类别结构蒸馏CSKD相比,在Cifar10上准确率提升了0.4%,在Cifar100上准确率提升了0.77%,这表明了具有类别判定性特征构建的类别知识蒸馏更加精准和稳健。此外,本文方法和CSKD都需要计算额外的类别结构关系,导致单个训练周期时间过长,但本文方法较CSKD在平均训练耗时上仍有一定的提升。这是因为CSKD在蒸馏过程中还考虑了同一类内的实例结构关系,对类内样本之间的关系进行了再次计算。但是,同一类样本的特征表示是相似的,存在的差异不大,维护类内关系会占用大量的资源,会引入背景信息和非相关类知识,且实验结果也无法突出类别结构关系对蒸馏的促进作用。
![]() |
表 1 不同算法在Cifar10、Cifar100上的对比结果 Table 1 Comparison results of different algorithms on Cifar10 and Cifar100 |
Tiny-ImageNet是用于分类的 ImageNet的下采样版本。它由12万张图像组成,有200个类别,每个类别包含500个训练图像、50个验证图像和50个测试图像。而本文采用的ImageNet是由Aaron等[21]经过下采样建模重建的更加清晰的64×64 ImageNet数据集,数据共有1000个类,每个类包含有13000个训练集和50个测试集。由于实验设备限制,随机选择200个类的子集进行实验,其中图像预处理阶段随机裁剪之后的输入图像尺寸仍为64×64,实验设置的重量衰减系数为10−4。当进行Tiny-ImageNet实验时,将损失结构参数
上述数据集包含了200个类别,而实验设置的批处理大小仅为128,这对于构建类别级的关系知识是一个挑战。但是从表2的实验结果可以看出,本文所提出的方法在面对200个分类的数据集时仍有较好的表现。与Student、RKD和CCKD相比,由于训练样本尺寸和数据集总量的扩大,平均训练消耗了更多的时间,但Top-1准确率仍然更优,在Tiny-Imagenet上分别提升了1.56%、1.40%和1.10%,在ImageNet(200)上分别提升了2.55%、0.91%和0.71%,这表明构造类别知识蒸馏依然更加有效。而与类别结构蒸馏CSKD相比,本文的方法不仅平均训练耗时减少接近50%,而且在Tiny-ImageNet上准确率提升了1.21%,在ImageNet(200)上准确率提升了1.11%。这表明了在面对数据集种类超过批处理大小的情况下,本文方法能够更好地发挥类别结构的关系,促进学生模型性能的提升。
![]() |
表 2 不同算法在Tiny-ImageNet、ImageNet(200) 上的对比结果 Table 2 Comparison results of different algorithms on Tiny-ImageNet and ImageNet(200) |
为了探究增量式记忆库对类别结构蒸馏的提升作用,本文对ICAKD和CSKD采取了多种记忆库大小的设置,并在Cifar100数据集上进行实验,实验参数如3.3.1节所示。
如表3所示,对CSKD使用记忆库比无记忆库CSKD方法的准确率提升了0.21%,而使用记忆库的ICAKD则比无记忆库ICAKD的准确率提升了0.57%,这表明记忆库对于实现类别结构蒸馏是具有促进作用的。由于Cifar100图像集是随机加载的,在最坏的情况下,某个批处理阶段内的样本总共有100个类别,无法从单个样本的特征表示得到类的一般通用特征表示。而记忆库能够凝练出更加通用的类别特征,有效地提升类别结构的效能。
![]() |
表 3 ICAKD和CSKD在记忆库性能实验中的Top-1精度对比 Table 3 Top-1 accuracy comparison of ICAKD and CSKD in memory bank performance experiments |
此外,本文还研究了不同记忆库大小的设定。如表4所示,当
![]() |
表 4 ICAKD在不同M取值下的对比结果 Table 4 Comparison results of ICAKD under different M values |
表5说明了类别知识蒸馏的性能如何受到平衡参数
![]() |
表 5 ICAKD在不同数据集上最优平衡参数β的对比结果 Table 5 Comparison results of optimal balance parameter β on different dataset for ICAKD |
本文对类激活约束损失(
![]() |
表 6 ICAKD消融实验结果 Table 6 ICAKD Ablation experiment results |
本文提出了基于增量式类激活图的类别知识蒸馏方法,特点主要是生成了具有类别判定性的样本特征表示,构建了样本类别结构知识,并且使用增量式记忆库扩充了单个批处理训练中的样本特征数量。使用类别判定性特征强化了类别信息,排除了噪声干扰;记忆库的形式则突破了GPU等设备条件的限制,让类别结构表达更加完善,模型的泛化性和稳定性更强。最后实验证明了所提出方法在4个不同数据集上识别精度都得到了最佳表现,验证了记忆库对发挥类别结构知识起到了促进作用。
[1] |
ZAGORUYKO S, KOMODAKIS N. Paying more attention to attention: improving the performance of convolutional neural networks via attention transfer[EB/OL]. arXiv: 1612.03928 (2017-02-12) [2022-01-30].https://doi.org/10.48550/arXiv.1612.03928.
|
[2] |
CHEN Z, ZHENG X, SHEN H, et al. Improving knowledge distillation via category structure[C]//16th European Conference on Computer Vision. Glasgow: Springer, 2020: 205-219.
|
[3] |
HINTON G, VINYALS O, DEAN J. Distilling the knowledge in a neural network[EB/OL]. arXiv: 1503.02531 (2015-03-09) [2022-01-30]. https://doi.org/10.48550/arXiv.1503.02531.
|
[4] |
MÜLLER R, KORNBLITH S, HINTON G. When does label smoothing help?[C]//Annual Conference on Neural Information Processing Systems 2019. Vancouver: MIT Press, 2019: 4694-4703.
|
[5] |
DING Q, WU S, SUN H, et al. Adaptive regularization of labels[EB/OL]. arXiv: 1908.05474 (2019-08-15) [2022-01-30].https://doi.org/10.48550/arXiv.1908.05474.
|
[6] |
ROMERO A, BALLAS N, KAHOU S E, et al. FitNets: hints for thin deep nets[EB/OL]. arXiv: 1412.6550 (2015-03-27) [2022-01-30].https://doi.org/10.48550/arXiv.1412.6550.
|
[7] |
JANG Y, LEE H, HWANG S J, et al. Learning what and where to transfer[C]//Proceedings of the 36th International Conference on Machine Learning. Long Beach: PMLR, 2019: 3030-3039.
|
[8] |
HUANG Z, WANG N. Like what you like: knowledge distill via neuron selectivity transfer[EB/OL]. arXiv: 1707.012197 (2017-12-18) [2022-01-30].https://doi.org/10.48550/arXiv.1707.01219.
|
[9] |
WANG K, GAO X, ZHAO Y, et al. Pay attention to features, transfer learn faster CNNs[EB/OL]. (2019-09-26) [2022-01-30].https://openreview.net/forum?id=ryxyCeHtPB.
|
[10] |
PARK W, KIM D, LU Y, et al. Relational knowledge distillation[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) . Long Beach: IEEE, 2019: 3967-3976.
|
[11] |
PENG B, JIN X, LIU J, et al. Correlation congruence for knowledge distillation[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) . Long Beach: IEEE, 2019: 5007-5016.
|
[12] |
LIU Y, CAO J, LI B, et al. Knowledge distillation via instance relationship graph[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) . Long Beach: IEEE, 2019: 7096-7104.
|
[13] |
LI X, WU J, FANG H, et al. Local correlation consistency for knowledge distillation[C]//16th European Conference on Computer Vision. Glasgow: Springer, 2020: 18-33.
|
[14] |
TIAN Y, KRISHNAN D, ISOLA P. Contrastive representation distillation[EB/OL]. arXiv: 1910.10699 (2022-01-24) [2022-01-30].https://doi.org/10.48550/arXiv.1910.10699.
|
[15] |
CHEN D, MEI J P, ZHANG Y, et al. Cross-layer distillation with semantic calibration[C]//Thirty-Fifth AAAI Conference on Artificial Intelligence. Virtual Event: AAAI, 2021, 35(8) : 7028-7036.
|
[16] |
YUN S, PARK J, LEE K, et al. Regularizing class-wise predictions via self-knowledge distillation[C]//2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) . Seattle: IEEE, 2020: 13873-13882.
|
[17] |
ZEILER M D, TAYLOR G W, FERGUS R. Adaptive deconvolutional networks for mid and high level feature learning[C]//2011 International Conference on Computer Vision. Barcelona: IEEE, 2011: 2018-2025.
|
[18] |
ZHOU B, KHOSLA A, LAPEDRIZA A, et al. Learning deep features for discriminative localization[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) . Las Vegas: IEEE, 2016: 2921-2929.
|
[19] |
SELVARAJU R, COGSWELL M, DAS A, et al. Grad-CAM: visual explanations from deep networks via gradient-based localization[J].
International Journal of Computer Vision, 2020, 128(2): 336-359.
DOI: 10.1007/s11263-019-01228-7. |
[20] |
LI K, WU Z, PENG K C, et al. Tell me where to look: guided attention inference network[C]// 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018: 9215-9223.
|
[21] |
VAN O A, KALCHBRENNER N, KAVUKCUOGLU K. Pixel recurrent neural networks[C]//Proceedings of the 33nd International Conference on Machine Learning. New York: JMLR. org, 2016: 1747-1756.
|