Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏

摘要

阐述:知识蒸馏是一种通过利用教师模型的输出来增强学生模型泛化能力的技术。最近,基于特征图的变体探索了中间层中手动分配的师生对之间的知识转移,以进一步改进。

存在问题:然而,不同神经网络中的层语义可能不同,人工层关联中的语义失配将导致由于负正则化而导致性能退化。

解决方法:为了解决这个问题,提出了跨层知识蒸馏的语义校准(Semantic Calibration for cross layer Knowledge Distillement,SemCKD),它通过注意力机制为每个学生层自动分配教师模型的适当目标层。通过学习注意力分布,每个学生层提取包含在多个教师层中的知识,而不是特定的中间层,以进行适当的跨层监督。

介绍

不论在各个领域中,深度学习模型的发展趋势都可以大体分成两个个方向:更强大和更轻便。而在诸多技术之中,知识蒸馏(KD)是一条兼顾二个方向的解决方案,可以同时实现更好的模型性能,并保持轻便性。

轻量级模型的泛化能力一致被人诟病,但是最近的研究发现这一问题可以被特殊的再训练来解决。名为教师的强大模型被预先训练,其输出被用于提高名为学生的轻量级模型的性能。学生模型不使用离散标签,而是使用教师模型的班级预测作为有效的正则化,以避免让它陷入过拟合的局部最优。

传统知识蒸馏的问题在于,学生模型学习的目标仅限于教师模型的最终预测结果。尽管教师模型对于不同类别的相对概率可以包含远高于标准标签的信息量,但是这一经过复杂教师网络高度抽象化的知识转移方式忽略了中间层中所包含的有效的中间提取特征的过程。于是由前人提出了基于特征图的特殊表示,以让学生模型可以学习到更丰富的知识。基于特征图的知识提取成功的一种解释是,多层特征表示尊重分层概念学习过程,并将带来合理的归纳偏差。

特征蒸馏在提出的初期,研究者一般将教师模型一组中间层按顺序或者手动分配给学生模型中对应位置的中间层组。这样生硬的蒸馏策略可能会导致某些师生层对中的语义不匹配,从而导致学生模型训练中的负正则化和其性能的恶化。因此在特征蒸馏的过程中确保适当的层与层之间的关联成为了一个急需解决的问题,使得特征蒸馏可以更有效和更灵活的进行知识转移。

这篇文章便提出了一个跨层知识蒸馏的语义校准(Semantic Calibration for crosslayer Knowledge Distillement,SemCKD)以通过将传递保持在匹配的语义级别来开发中间知识。将注意力机制应用于自动学习软层关联,该机制有效地将学生层与多个语义相关目标层绑定,而不是教师模型中的固定目标层(即一对多的知识转移)。为了对齐每个层对中的特征图的空间维度以计算总损失,学生层的特征图被投影到与相关目标层中的特征图相同的维度。通过利用语义校准和跨多个层的特征图传输,可以在更适当的指导下有效地优化学生模型。

相关工作

(抽取背景理论部分讲解,具体工作可看原文)

知识蒸馏

随着硬件技术的不断发展,深度模型的参数量呈现出爆炸性的增长速度,参数量的扩大使得深度学习在诸多领域取得了其他方法难以企及的成就,但是在计算资源有限的设备上,却难以支撑这些庞大的深度模型进行高效预测。为了解决这些问题,研究者提出了诸多模型压缩的方法,如知识蒸馏、低秩近似,量化和修剪。在这些技术中,知识蒸馏可能是最容易实现的技术,也是硬件最友好的技术,因为它对常规训练程序的修改很小。

给定一个轻量级的学生模型,KD的目标是通过训练来匹配预先训练的笨重教师模型中的预测或soft-targets,从而提高其泛化能力[9]。KD成功的直观解释是,与标准标签相比,soft-targets中不同类别之间的细粒度信息可以提供额外的监督,以提高学生模型性能[9],[14]。这种改进的一种新解释是,soft-targets充当学习标签平滑正则化,以防止学生模型产生过度自信的预测。

特征图蒸馏

前人所提出的特征图蒸馏方案大多局限于手工设定的特征层关联方式,例如由于教师与学生模型的关联层在维度上有所不同,此时需要添加新的卷积层或合并层来使它们可以互相匹配,这一方法无疑引入了新的可学习参数,增大了蒸馏负担;一些其他无参数替代方案通过粗糙的成对相似矩阵或基于它们构建的混合核公式来捕获传递的知识。经过实验验证,这些方法会导致学生模型出现极大的负提升,限制了特征图提取的有效性。

语义校准的蒸馏

符号化知识蒸馏

符号解释总览
\rho = \left \{ \left ( x_{i},y_{i} \right ) \right \}_{i=1}^{N} N个数据的数据集,有K个类别
b 批量大小
F_{t_{l}}^{t}\in \mathbb{R}^{b*c_{t_{l}}*h_{t_{l}}*w_{t_{l}}} 教师的 l 层的输出
F_{s_{l}}^{s}\in \mathbb{R}^{b*c_{s_{l}}*h_{s_{l}}*w_{s_{l}}} 学生的 l 层的输出
t_{l},s_{l} 教师、学生的中间层,L为最大值且不一定相同
g_{i}^{s} 模型最后一层的第i个样本的输出
\sigma \left ( g_{i}^{s} \right ) 正确类别对应的概率结果
\L _{CE},\L _{KL} 交叉熵损失、KL散度最小化
T 温度
公式1
Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第1张图片 图1

传统知识蒸馏先令教师模型根据原本的特征-标签进行学习,然后将教师模型学习的结果,即soft-targets作为另一个标签,令学生模型同时学习原标签与新标签,并用公式1作为损失函数。

特征图蒸馏

如前所述,教师模型的特征图对于帮助学生模型获得更好的表现是有价值的。最近提出的特征图蒸馏方法可以总结为:对于尺寸为b的每个小批量,将以下损失添加到公式1中:

公式2
公式3

Trans^{t}\left ( \cdot \right )Trans^{s}\left ( \cdot \right )表示教师模型和学生模型在进行特征图知识转移之前的格式转换操作(前人具体选择参考表2);\mathbb{C} 表示层关联集合,集合元素为一对层的匹配,候选集合:\mathbb{C}=\left \{ \left ( 1,1 \right ) ,...,\left ( min\left ( s_{L},t_{L} \right ) ,min\left ( s_{L},t_{L} \right ) \right )\right \}共计min\left ( s_{L},t_{L} \right )个元素;Dist\left ( \cdot \right )表示计算两特征图之间的距离(前人具体选择参考表2)。

Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第2张图片 表2

FitNet[16]在学生模型的某个中间层上添加了卷积变换,即Conv(·),同时通过恒等变换I(·)保持教师模型的特征图不变。AT[17]鼓励学生通过引导注意力模仿老师的空间注意力图。VID[19]将知识转移表述为特征图之间的互信息(MI)最大化,并将距离函数表示为负对数似然(NLL)。

传递的知识也可以通过建立在其上的粗糙相似矩阵或混合核变换来捕获[18],[20]。MGD[21]使得候选层对中的特征图的信道维度通过分配模块ρ(·)匹配。请注意,HKD[20]所需的计算和存储资源几乎是其两倍。由于它首先将特征嵌入从教师转移到辅助模型,辅助模型遵循与学生相同的架构,但每层具有两个参数,然后执行从辅助到学生模型的特征图提取。

所有上述方法都基于指定的师生层对之间的固定关联来执行知识转移,这可能会导致有用信息的丢失。以一对一匹配为例,当s_{L}t_{L}不同时,会丢弃额外的层。此外,强制对齐来自相同层深度的特征图可能导致次优关联,因为学生层的更好选择可能来自不同或多个目标教师层。 

为了解决这些问题,本文提出了一种新的跨层知识提取来促进特征图表示的开发。基于我们学习的层关联权重,简单的卷积Trans^{t}\left ( \cdot \right )Trans^{s}\left ( \cdot \right )和MSE距离足以获得最先进的结果。

语义校准公式 

在本文的方法中,每个学生层通过注意力分配自动与那些语义相关的目标层相关联,如图2所示。使用软关联权重的训练鼓励学生模型收集和集成多层信息,以获得更合适的正则化。此外,SemCKD很容易适用于教师和学生模型中候选层的数量不同的情况。

Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第3张图片 图2  提出的知识蒸馏语义校准(SemCKD)概述。(a) 来自学生层1的特定实例的特征图被投影成三个单独的形式,以与来自相关目标层的特征图的空间维度对齐。学习到的注意力分配自适应地帮助学生模型专注于最语义相关的信息,以进行有效的提炼。(b) 首先计算每个堆叠的特征图之间的成对相似度,然后通过生成的查询向量和关键向量之间的相似度来获得关注权重。

 

SemCKD中的学习关联集\mathbb{C} 表示为:

公式4

相应的权重满足:\small \sum _{t_{l}=1}^{t_{L}}\alpha _{\left ( s_{l},t_{l} \right )}=1,s_{l}\in [1,...,s_{L}]。小批量实例的权重 \alpha _{\left (s_{l},t_{l} \right )}\in \mathbb{R}^{b*1} 表示目标层t_{l}在推导学生层s_{l} 的语义感知指导时所参与的程度。每个实例将为层对(s_{l}t_{l})保持其自己的关联权重\small alpha _{\left ( s_{l},t_{l} \right )}\left [ i \right ],该权重由给定特征图的函数F(·,·)计算 :

公式5

给定这些关联权重,每个学生层的特征图被投影到 \small t_{L} 个单独的张量中,以与来自每个目标层的特征的空间维度对齐:

公式6

F_{t_{l}}^{s`}\in \mathbb{R}^{b*c_{t_{l}}*h_{t_{l}}*w_{t_{l}}} 。每个函数Proj(·,·)包括一个三层堆栈,具有1×1、3×3和1×1卷积,以满足有效转换能力的需求。

损失函数:

对于每次训练中批量大小为b的实例,教师模型和学生模型将生成各自的多个层的特征图:F_{t_{1}}^{t},...,F_{t_{L}}^{t}F_{s_{1}}^{s},...,F_{s_{L}}^{s}。在注意力分配和维度投影之后,通过简单地使用MSE作为距离函数来获得SemCKD的特征图蒸馏损失:

Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第4张图片 公式7

每个学生模型的网络层通过公式6的投影函数进行变换,而与之配对的教师层则保持恒等。配备了学习的层关联权重,总损失通过来自候选师生层对的特征图中的每个单独距离的加权和来聚合。值得一提的是,上面提到的FitNet[16]可以理解为本算法的特殊情况,即对应层对权重为1,其它层对权重为0。

注意力分配:

该部分阐述如何计算权重!

前人的工作指出,随着层深度的增加,训练神经网络中包含的特征表示逐渐变得更加抽象。因此,教师和学生模型中的层语义通常是不同的。由于语义不匹配层造成的负面影响,现有的手工策略(未考虑到这一因素)可能不够[20]。为了进一步提高特征图提取的性能,每个学生层最好与最语义相关的目标层相关联。

基于注意力机制的层关联为这一目标提供了潜在可行的解决方案。SP.[18]基于对相似实例生成的特征图可能在不同中间层中以不同距离间隔进行聚合的观察,我们将成对相似矩阵的近似度视为固有语义相似性的良好度量(即以成对相似矩阵的近似值作为两特征图语义是否相似的标准)。这些矩阵计算如下(其中R()是一个reshape操作,A矩阵形为bxb):

公式8

作者受到自注意力结构的启发,通过MLP将每个学生层和相关目标层的成对相似矩阵分别投影到两个子空间中,以减轻噪声和稀疏性的影响(原理未知,欢迎讨论)。对于第i个实例,有:

公式9​​​​​

MLP_{Q}MLP_{K}在训练过程中学习参数,用以生成query和key,并且由所有实例共享。然后,\alpha _{\left (s_{l},t_{l} \right )}\left [ i \right ] 计算如下:

公式10

其中,用于计算注意力权重的F(·,·)被命名为非局部块中的嵌入高斯运算。

基于注意力的分配提供了一种可能的方法来抑制层配对不当造成的负面影响,并整合来自多个目标层的积极指导,在后续章节有所推理和验证。尽管我们提出的SemCKD仅提取了中间层中包含的知识,通过引入额外的正则化,例如特征嵌入蒸馏,可以进一步提高其性能。算法1总结了使用所提出的语义校准公式的完整训练过程。

Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第5张图片

软化注意力:

传统知识蒸馏有一个值得注意的点,即T--温度,在本文中一直不受“重视”,但在本节中,作者学习这一思路,对自己的算法做出了一定的改进,可以进一步提高SemCKD的性能。他们在公式10中加入了T参数,以得到软化注意力(softening attention)。

Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第6张图片 公式11​​​​​​

\tau被设置为一个常数,以抵消原始自注意框架中训练期间的极小梯度,但它被视为SemCKDτ中的一个新的超参数。

实验

实验设置

数据集:

在本文中,使用四个流行的数据集,包括CIFAR-100、STL-10、Tiny ImageNet和ImageNet,来执行一系列关于图像分类、转移学习、少镜头学习和噪声标签学习的任务。与先前的工作一样,采用了标准的预处理程序,即,通过信道均值和标准差对所有图像进行归一化。

网络架构:

基于流行网络的大量师生组合被用于评估。“VGG-”或“ResNet-”后面的数字表示网络的深度。“WRN-d-w”表示具有深度d和宽度因子w的wide-ResNet。“ResNet-8x4”、“ResNet-32x4”和“ResNet-34x4”或“ShuffleNetV2x0.5”中的“x”后面的数字表示每个层中的过滤器的数量是用特定因子扩展或收缩的。

比较方法:

本文比较了三种基于从不同位置转移知识的知识提取方法:

  1. 普通的soft-targets蒸馏
  2. 特征图蒸馏
  3. 特征编码蒸馏

评估指标:

除了在性能评估中广泛使用的Top-1测试准确度(%)外,还采用了另一种称为相对改善(RI)及其变体平均相对改善(ARI)的度量,以获得关于定量改善的直观感觉。

Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第7张图片

提出了一种称为语义不匹配分数(SM-score)的计算友好度量。SM得分是通过生成的每个相关师生层对的相似性矩阵之间的平均欧几里德距离来计算的。

不同特征图提取方法的比较

表3和表4给出了基于12种网络组合的CIFAR100的Top-1测试准确率(%),其中包括两种同质设置,即教师和学生共享相似的架构(VGG-8/13,ResNet-8x4/32x4)和十种异质设置。除了第一行和最后一行之外的每一列都包括在同一教师模型的监督下通过各种方法训练的某个学生模型的结果。还包括传统KD的结果,以供比较。有两种组合,MGD不适用,表示为“-”。

Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第8张图片 表三  在CIFAR-100上测试特征图蒸馏方法的精度。
Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第9张图片 表四  在CIFAR-100上测试特征图蒸馏方法的精度。

语义校准分析

在本节中,通过实验研究了由手动指定的层关联引起的负正则化,并通过提出的标准和视觉证据为SemCKD的成功提供了一些解释。

负正则化

当具有特定层关联的特征图提取比普通KD执行得差时,就会出现这一现象。为了揭示它的存在,作者在各种设置中仅使用一个指定的师生层对来训练学生模型。所涉及的网络架构包括

“VGG-8&ResNet-32x4”

“MobileNetV2&WRN-40-2”

“ShuffleNetV2&VGG-13”

“ResNet-8x4&ResNet32x4”。

每种情况下的候选目标层和学生层的数量分别为(3,4)、(3,3)、(4,3)和(3,5)。

Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第10张图片 图四  用四种模型组合说明CIFAR-100上的负正则化。x轴上的每个刻度标记表示学生层编号。每个指定师生层对的结果用不同的颜色条显示。

图3显示了具有这12或9个师生层组合的学生模型的结果。为了更好地进行比较,普通KD和SemCKD的结果绘制为具有不同颜色的虚线水平线。我们可以看到,对于某些层关联,学生模型的性能变得非常差,这可能是由大的语义差距造成的。典型结果包括图3(a)中的“学生第4层和目标第3层”、图3(b)中的学生第1、2和目标第三层”、图3(c)中“学生第1和目标第4层”以及图3(d)中的”学生第1层、第3层和目标三层”。

另一个发现是,一对一层关联是次优的,因为通过利用不同深度的目标层中的信息可以获得更好的结果,例如图3(b)中的“学生层1和目标层2”、图3(c)中的学生层3和目标层4”以及图3(d)中的”学生层1与目标层2“。尽管在某些情况下,使用某些手工层关联进行的训练可能会优于SemCKD,例如图3(b)中的“学生层-3,4和目标层-3”,但SemCKD在大量关联选择中仍然表现良好,尤其是对于任何网络组合的最佳层关联的知识事先都不可用。然而,SemCKD低于最佳的情况表明,本文的关联策略还有额外的改进空间。

语义不匹配评分

本节研究本文所提出的方法是否真的出现较少的语义不匹配现象,除了原本的SM-score,还加入了CKA来评估提取的特征图之间的相似性。

Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第11张图片 表6  CIFAR-100上VGG-8和ResNet-32x4的语义匹配评估。

软注意力

在本节中,作者对大量师生组合进行了实验,以验证SemCKD中软化注意力的有效性。

Cross-Layer Distillation with Semantic Calibration--带有语义校准的跨层蒸馏_第12张图片 图6  八种不同型号组合的CIFAR-100软化注意力的效果说明。

如图5所示,我们测试了具有不同柔软度 \tau 的每个学生模型的性能,并绘制了SemCKDτ结果的橙色曲线。为了在知识转移期间尽可能多地保留教师模型中的信息,先前的工作尝试将蒸馏位置调整到ReLU操作的前面,这被称为预激活蒸馏。我们还将此操作合并到SemCKD\tau中,并将此变体命名为SemCKD_{\tau }+Pre。此外,原始SemCKD的结果绘制为水平线进行比较。

在大多数情况下,我们可以看到,软化注意力确实会显著提高SemCKD的性能。另一个支持柔软度必要性的证据是,当τ小于1时,性能会显著下降。原因是,在这种情况下,注意力权重会变大,并使整体目标方向在很大程度上受到某一个分量的影响。

结论

在本文中,我们关注基于特征图的知识提取中的一个关键但被忽略的问题,即如何减轻手动指定层对中的负正则化导致的性能退化。我们的策略是使用注意力机制进行关联权重学习,基于此,可以在匹配的语义空间中传递知识。大量实验表明,SemCKD始终优于最先进的方法,我们的软化注意力变体SemCKD\tau进一步扩大了领先优势。此外,我们的方法很容易适用于不同的任务、网络架构,并且与特征嵌入蒸馏方法高度兼容。

 

你可能感兴趣的:(知识拓展,深度学习,人工智能,性能优化)