广东工业大学学报  2023, Vol. 40Issue (4): 24-30, 36.  DOI: 10.12052/gdutxb.220018.
0

引用本文 

张家悦, 张灵. 基于增量式类激活知识的蒸馏学习方法[J]. 广东工业大学学报, 2023, 40(4): 24-30, 36. DOI: 10.12052/gdutxb.220018.
Zhang Jia-yue, Zhang Ling. Knowledge Distillation Method Based on Incremental Class Activation Knowledge[J]. JOURNAL OF GUANGDONG UNIVERSITY OF TECHNOLOGY, 2023, 40(4): 24-30, 36. DOI: 10.12052/gdutxb.220018.

基金项目:

广东省交通运输厅科技项目(科技-2016-02-030)

作者简介:

张家悦(1998–),男,硕士研究生,主要研究方向为深度学习。

通信作者

张灵(1968–),女,教授,主要研究方向为智能优化算法、深度学习及数字图像处理技术、分布式计算及大数据技术,E-mail:1252875930@qq.com

文章历史

收稿日期:2022-01-30
基于增量式类激活知识的蒸馏学习方法
张家悦, 张灵    
广东工业大学 计算机学院, 广东 广州 510006
摘要: 由于样本特征缺乏类别判定性且设备资源不足以支持样本类别结构学习,现有的知识蒸馏方法往往忽略了样本的类别知识蒸馏。针对此问题,本文提出一种增量式类激活知识蒸馏方法(Incremental Class Activation Knowledge Distillation,ICAKD)。首先,利用类激活梯度图提取具备类别判定性的样本特征,并提出类激活图约束损失。然后,构建存储类别判定性特征的增量式记忆库,保存多个训练批次样本并迭代更新。最后,计算记忆库内每一类样本的类质中心,并构造类别结构关系,根据类激活图约束和类别结构关系实现类别知识蒸馏。在Cifar10、Cifar100、Tiny-ImageNet、ImageNet等数据集上进行对比实验,结果表明本文所提出的方法对比类别结构蒸馏方法(Category Structure Knowledge Distillation,CSKD)在准确率上有0.4%~1.21%的提升,说明了类别判定性特征和增量式方法对类别知识蒸馏起到促进作用。
关键词: 知识蒸馏    类激活知识    增量式记忆库    类别结构    
Knowledge Distillation Method Based on Incremental Class Activation Knowledge
Zhang Jia-yue, Zhang Ling    
School of Computer Science and Technology, Guangdong University of Technology, Guangzhou 510006, China
Abstract: Due to the fact that features are not category-deterministic and the equipment resources are usually limit to support the category structure learning of samples, existing knowledge distillation methods possibly ignore the category knowledge distillation of samples. Therefore, this paper proposes a distillation method based on incremental class activation knowledge (ICAKD) . First, this paper uses the class activation gradient map to extract class-discriminative sample features and proposes a class-activation constraint loss. Then, an incremental memory bank is built to store class-deterministic features, and multiple training batch samples are saved and updated iteratively. Finally, our proposed method calculates the quasi-quality center of the samples in the memory bank to construct the category structure relationship, and further performs the category knowledge distillation according to the class-activation constraint and the category structure relationship. Experimental results on the Cifar10, Cifar100, Tiny-ImageNet, and ImageNet datasets show that the proposed method achieves a 0.4%~1.21% improvement in term of accuracy when compared with the Category Structure Knowledge Distillation(CSKD) methods, demonstrating the promising effectiveness of the characteristics and increment of category judgment for category knowledge distillation.
Key words: knowledge distillation    category activation knowledge    incremental memory bank    category structure    

知识蒸馏的效能依赖于对样本潜在知识的提取和处理,而样本类别作为样本的重要属性常常被忽视,主要原因在于所构造的样本特征往往不具有类别判定性。例如,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.1 梯度类别激活图

图2所示,首先确立由神经网络第i层生成类别激活图,并且定义各个通道的中间层特征图为 ${A}_{nm}^{e}(e\in \left\{1,\cdots ,k\right\})$ ,其中e为通道编号,第i层通道总数为knm分别为通道特征图的宽和高。利用反向传播机制,可以获取每个通道特征图所对应的特征梯度图,并将梯度值定义为 $\displaystyle\frac{\varPhi {Y}_{c}}{{A}_{nm}^{e}}$ ,其中, $ {Y}_{c} $ 是图像在训练后输出层所对应类别 $ c $ 的分数,依据图像的真实类别标签所取;C为不同类别标签对应的类别分数。如式 (1) 所示,对每个通道内 $ n\times m $ 个像素点的梯度值求和,并通过 $ \mathrm{A}\mathrm{v}\mathrm{g}\left(\mathrm{ }\right) $ 函数取平均值作为该通道的特征图梯度值 $ {\mathcal{a}}_{e} $

图 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)

接着,将中间层各个通道的特征图 $ {A}_{nm}^{e} $ 与对应的特征图梯度值 $ {\mathcal{a}}_{e} $ 相乘,并累加得到类激活图。如式 (2) 所示,使用 $ \mathrm{G}\mathrm{r}\mathrm{a}\mathrm{d}\mathrm{C}\mathrm{A}\mathrm{M}\left(\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\right) $ 函数表示类激活图函数,其中 $ {f}^{i} $ 表示图像在第i层的特征表示。

$ \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)

式中:类激活图采用 $ \mathrm{R}\mathrm{e}\mathrm{l}\mathrm{u}\left(\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\right) $ 函数去除负值是因为当类激活图某一像素点为负值时,在图像分类任务中起到了遏制分类的负作用。 $ \mathrm{G}\mathrm{r}\mathrm{a}\mathrm{d}\mathrm{C}\mathrm{A}\mathrm{M}\left(\right) $ 函数通过梯度加权的方式直观地表达出图像中对分类任务具有正向作用的区域。

由于教师网和学生网在结构和参数上不一致,得到的激活特征图在数值上也存在差异。为了约束因网络结构不匹配带来的误差,使用 $ \mathrm{v}\mathrm{e}\mathrm{c}\mathrm{t}\mathrm{o}\mathrm{r}\left(\mathrm{ }\right) $ 函数将激活特征图转换为向量,并且采用正则化手段,使学生模型模仿教师模型的激活点分布模式,以 $ L1 $ 范数计算实现约束效果,相关过程如式(3)和式(4)所示。

$ \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)

式中: $ {L}_{\mathrm{G}\mathrm{L}} $ 即为类激活值约束损失, $ b $ 是训练过程中一个批次内图像样本的数量, ${\boldsymbol{Q}}^{{\rm{t}}}$ ${\boldsymbol{Q}}^{{\rm{s}}}$ 分别指同一样本在教师模型和学生模型中的类激活向量。

2.2 增量式记忆库

在实验的每个批处理期间,教师记忆库和学生记忆库分别存储由教师模型和学生模型生成的类激活向量,而且都将重用来自前面多个训练阶段的样本类激活向量。如图3所示,记忆库采用固定内存大小,其大小远大于每个批处理所包含的样本数量,这保证了实验中每个类别所包含的样本数量足够多,所蒸馏的知识是类别级而非实例级。此外,记忆库采用增量式方法更新,缓冲样本特征表示的处理策略为先进先出,在当前批处理的样本需要加入记忆库且记忆库已经达到存储上限时,记忆库中最原始的批处理样本会被移除,更新为新的批处理样本。在后续的训练阶段不断循环上述过程,始终维护记忆库的更新迭代。

图 3 记忆库的更新流程 Figure 3 The process of updating memory bank

在记忆库大小方面,本文通过加快记忆库迭代更新的频率,在保证有充足的样本数据的情况下,减轻学生网络编码不一致带来的损失。记忆库样本数量只与数据集总类相关,根据数据集总类灵活调整记忆库的大小。具体设计如式 (5) 所示。

$ M=\frac{b H}{10} $ (5)

式中: $ M $ 指记忆库的样本总数, $ H $ 为数据集类别总数, $ b $ 为批处理样本大小。即使用Imagenet数据集、在 $ b $ 设置为128时,记忆库内样本总数也仅为12800,不会对内存有较大需求压力。有关记忆库具体性能在3.3.3节进行阐述。

2.3 类别结构约束

本文所提取到的特征向量是以类别得分为基础的特征空间响应值,如文献[16]所述,同类样本在空间激活的表达上是具有一定相似程度的。因此,为了构建类别级的样本结构关系,需要获取一个能够代表类别特性的通用特征表示。类质中心常用于概括一个类内的数据表示,在许多聚类算法中,通常先计算每个类的类质中心点,然后利用样本与类质中心点的关系作为分类的标准。因此,定义类质中心特征表示 ${\boldsymbol{Z}}^{c}$ 作为类特征通用表示,如式(6)所示。

$ {\boldsymbol{Z}}^{c}=\frac{\displaystyle{\sum} _{1}^{n}{\boldsymbol{Q}}^{i}}{{M}^{c}}({\boldsymbol{Q}}^{i}\in c) $ (6)

式中: $ {M}^{c} $ 指当前记忆库内包含 $ c $ 类图像特征向量的总数, ${\boldsymbol{Z}}^{c}$ $ c $ 类样本的类质心向量, $ n $ 表示记忆库内包含的样本总类别, ${\boldsymbol{Q}}^{i}$ 指记忆库内属于 $ c $ 类别的类激活向量。

本文希望以聚类的思想对样本类别进行归纳,求取类质中心,由类质中心表示作为该类的通用特征表示,最后通过类质中心构成类别结构关系,因此一个训练好的教师模型就能通过样本的类别结构监督学生模型。此外,使用类质中心作为代表性知识,有利于让同类样本特征聚集在同一位点,在满足蒸馏约束的同时,达到拉大类间距离,拉近类内距离的效果。

类别结构作为一种全局性知识,其优势在于泛化性和稳定性更强。如式(7)所示,选择欧氏距离度量两个类激活特征向量之间的关系,定义为 $ \psi \left( \right) $ 。它能反映类别之间的相似度关系,距离近则表示两个类别是具有较高共性的,所激活的空间区域也存在高重叠性;距离远则表示两个类别差异性较大,激活区域也不同。并且也由学生模型模仿样本在教师模型的分布,而不是数值,如式(8)所示,将类别的结构化关系定义为 $ \phi \left( \right) $ ,将所有类激活向量两两之间的距离分布统一归一化。最后,根据式(9),使用 $ L1 $ 范数对教师模型类别结构与学生模型类别结构的关系实现约束。

$ \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)

式中: ${\varphi }^{{\rm{t}}}$ 是教师模型的类别结构关系, ${\varphi }^{{\rm{s}}}$ 是学生模型的类别结构关系, $ {L}_{\mathrm{C}\mathrm{L}} $ 指类别结构损失。

2.4 训练损失函数

本文方法提出一个新的损失函数,损失函数由3个部分组成, $ {L}_{\mathrm{C}\mathrm{E}} $ 是学生模型输出和真实标签的交叉熵损失, $ {L}_{\mathrm{G}\mathrm{L}} $ 是教师模型对学生模型类激活图的约束损失, $ {L}_{\mathrm{C}\mathrm{L}} $ 是教师模型和学生模型之间以类别结构为核心的样本关系分布损失:

$ \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)

式中: $ \beta $ 为平衡损失函数的参数,类激活图知识和类别结构知识相互补充,共同作为正则化项进行蒸馏。本文所生成的类激活图充分表达了特征类别判定性,包含着丰富的类别分布知识,样本的类别标签作为先验知识能帮助我们锁定类别空间位置,让学生模型学习这种空间分布模式,增强了模型的泛化性和稳定性。

3 实验 3.1 实验流程

本节进一步对ICAKD算法的流程进行阐述,并给出详细的算法流程。

ICAKD算法

   输入:

    训练样本 $ {X=\left\{{x}_{1},{x}_{2},\cdots ,{x}_{k}\right\} }$ ,    训练样本标签 $ {Y=\left\{{y}_{1},{y}_{2},\cdots ,{y}_{k}\right\} }$ ,    教师模型预训练后网络 $ {T}$ 和参数 $ { {\theta }_{{\rm{t}}}}$ ,    学生模型初始化的网络 $ {S}$ 和参数 $ { {\theta }_{{\rm{s}}} }$ ,    教师记忆库 $ {{M}_{{\rm{t}}}}$ 和学生记忆库 $ {{M}_{{\rm{s}}}}$

   输出:

    学生模型更新后的网络 $ {\overline{S} }$ 和参数 $ {\overline{\theta } }$

   For $ {{X}_{a}} $ in $ {X}$

   1.选择一个批处理的训练样本 $ { {X}_{a}}$ 及其标签 $ { {Y}_{a}}$ 进行训练;   2.分别获取教师网络和学生网络中间第 $ i $ 层特征表示 $ {{f}^{i}=}$     ${T\left({X}_{a},{\theta }_{{\rm{t}}}\right) }$ $ {{f}^{i}=S\left({X}_{a},{\theta }_{{\rm{s}}}\right) }$ ;   3.依据类别标签 $ {{Y}_{a}}$ 和公式 (2) 分别计算教师模型和学生   模型类别激活图 $ {{g}^{{\rm{t}}}}$ $ { {g}^{{\rm{s}}} }$ ;   4.利用公式 (3) 将 $ {{g}^{{\rm{t}}}}$ ${g}^{{\rm{s}}}$ 转换为类激活向量 $ {{\boldsymbol{Q}}^{{\rm{t}}}}$ $ {{\boldsymbol{Q}}^{{\rm{s}}}}$ 并分别   存入记忆库 $ {{M}_{{\rm{t}}}}$ $ {{M}_{{\rm{s}}} }$ 中,若记忆库已满,则采用先进先   出策略继续更新;   5.分别取记忆库内的特征向量 $ {{\boldsymbol{Q}}^{{\rm{t}}}}$ $ {{\boldsymbol{Q}}^{{\rm{s}}}}$ ,求教师模型和学生   模型的类质中心 $ {{\boldsymbol{Z}}^{{\rm{t}}} }$ $ {{\boldsymbol{Z}}^{{\rm{s}}}}$ ,并利用公式 (7) 和公式 (8) 提   取样本类别结构关系;   6.通过损失函数更新学生参数 $ { \overline \theta }$ , $ {\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) }$

   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,损失结构参数 $ \beta $ 的值设置为 0.1。

实验结果如表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
3.3.2 Tiny-Imagenet/ImageNet(200) 数据集

Tiny-ImageNet是用于分类的 ImageNet的下采样版本。它由12万张图像组成,有200个类别,每个类别包含500个训练图像、50个验证图像和50个测试图像。而本文采用的ImageNet是由Aaron等[21]经过下采样建模重建的更加清晰的64×64 ImageNet数据集,数据共有1000个类,每个类包含有13000个训练集和50个测试集。由于实验设备限制,随机选择200个类的子集进行实验,其中图像预处理阶段随机裁剪之后的输入图像尺寸仍为64×64,实验设置的重量衰减系数为10−4。当进行Tiny-ImageNet实验时,将损失结构参数 $ \beta $ 设置为0.5,进行ImageNet(200)实验时,将损失结构 $ \beta $ 设置为0.3。

上述数据集包含了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)
3.3.3 增量式记忆库实验

为了探究增量式记忆库对类别结构蒸馏的提升作用,本文对ICAKD和CSKD采取了多种记忆库大小的设置,并在Cifar100数据集上进行实验,实验参数如3.3.1节所示。 $ M $ 为记忆库大小,当 $ M $ =128时,与单个批处理的大小相等,此时即为不采用记忆库的方法;本文还设定了多种不同记忆库大小 $ M $ 进行实验,其中 $ M $ =1280时,满足式(5)所示的记忆库大小。

表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所示,当 $ M $ 满足公式(5)时,学生模型的Top-1准确率最高。过大的记忆库会增大样本特征表示的偏差,对蒸馏学习起到负作用。较小的记忆库则会限制单批次处理样本数量,不利于样本类别结构的构建。本文通过加快迭代速度缓解学生模型编码不一致问题,一是通过计算得到的梯度类别激活图的非相关类别像素点激活值往往为0,对与分类起重要作用的区域的影响相对较浅;二是教师模型并不会进行参数更新,所获取的类别特征是精准的,对学生模型施加了约束。本文期望通过一个强力的教师模型让学生模型朝着正确的分布拟合,让学生模型尽可能关注到对分类具有正向作用的区域。

表 4 ICAKD在不同M取值下的对比结果 Table 4 Comparison results of ICAKD under different M values
3.3.4 超参数选择

表5说明了类别知识蒸馏的性能如何受到平衡参数 $ \beta $ 值的影响。本文用上文提及的4个数据集分别进行了测试,如表5所示,在数据集Cifar10和Cifar100中,随机选择0.01到1之间的数值,观察可知,过高或过低的 $ \beta $ 值都使得蒸馏性能变差,在0.1~0.3的范围内蒸馏性能保持稳健状态,且当 $ \beta =0.1 $ ,能够取得最优的蒸馏性能。同理,当 $ \beta $ =0.5时,ICAKD在Tiny-ImageNet数据集上能取到最优蒸馏效果; $ \beta $ =0.3时,ICAKD在ImageNet(200)数据集上能取得最优蒸馏效果。最佳 $ \beta $ 值因数据集不同而异,不同的数据集平衡参数 $ \beta $ 的取值也需要经过实验进行研究。

表 5 ICAKD在不同数据集上最优平衡参数β的对比结果 Table 5 Comparison results of optimal balance parameter β on different dataset for ICAKD
3.3.5 消融实验

本文对类激活约束损失( $ {L}_{\mathrm{G}\mathrm{L}} $ )和类别结构约束损失( $ {L}_{\mathrm{C}\mathrm{L}} $ )分别剥离进行消融研究。采用Cifar100数据集进行实验,实验参数同3.3.1节,结果如表6所示。当仅应用类激活约束或类别结构约束时,本文的方法也得到了类似的改进,并且两者对模型的识别率提升是相似的。但如果同时使用完整的类别知识损失,类激活约束和类别结构约束相互补充,分别从局部和全局的角度为蒸馏提供帮助,使得ICAKD能取得更好的推广效果。

表 6 ICAKD消融实验结果 Table 6 ICAKD Ablation experiment results
4 结语

本文提出了基于增量式类激活图的类别知识蒸馏方法,特点主要是生成了具有类别判定性的样本特征表示,构建了样本类别结构知识,并且使用增量式记忆库扩充了单个批处理训练中的样本特征数量。使用类别判定性特征强化了类别信息,排除了噪声干扰;记忆库的形式则突破了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.