Dynamic Temperature Knowledge Distillation动态温度知识蒸馏

摘要

在知识蒸馏(KD)领域中,温度在调节标签柔软度方面起着关键作用。传统方法通常在整个KD过程中采用静态温度,这无法解决具有不同难度水平的样本的细微复杂度,并且忽略了不同师生配对的独特能力。这导致了不太理想的知识转移。为了改进知识传播过程,我们提出了动态温度知识蒸馏(DTKD)方法,该方法在每个训练迭代中同时对教师和学生模型引入动态、协作的温度控制。特别是,我们提出了“锐度”作为量化模型输出分布的平滑度的度量。通过最小化教师和学生之间的锐度差异,我们可以分别得出他们的样本特定温度

介绍

通常,教师的输出过于尖锐(自信),使得学生很难学习到错误类之间的细微差异。因此,经常使用由“温度”调节的soft标签来改善KD性能。在实践中,知识蒸馏的损失函数通常由两部分组成:硬标签的交叉熵损失和软标签的KL散度损失。温度对软标签的光滑度影响很大。较大的温度使软标签更光滑,较小的温度使软标签更锐利。一些研究发现,固定的温度可能会阻碍KD过程,因此致力于探索KD过程中温度的动态调节。例如,退火KD认为调节温度可以弥合师生网络之间的容量差距,并提出通过模拟退火来控制温度。CTKD表明,在学生学习生涯中,任务难度水平可以通过一个动态的、可学习的温度来控制。这些方法忽略了学生和教师网络输出分布之间平滑度的差异,而且它们都对教师和学生应用相同的温度。此外,上述方法需要添加新的模块或增加训练成本,这大大降低了它们使用的灵活性。因此,在最近开发的KD算法中,经验固定温度仍然存在(例如DKD,NormKD)源于与我们类似的观点,采用输出logit的归一化来建立整个分布的一致程度的平衡。然而,他们的方法并没有考虑到教师和学生模型之间合作的动力,导致学生的自信水平明显较低,这使得它们在实际部署中不太实用。

与之前的大多数工作不同,我们的工作基于以下观察:如果教师和学生共享一个固定温度,他们的logits(网络输出)的平滑度通常存在差异,这可能会阻碍KD过程。当学生的能力受到限制时,这种现象变得更加明显,如图1所示。

image-20240513162815409

ResNet8学生与不同大小的教师配对,4.0温度下vanillaKD的效果通常比基线差。为了解决这种不匹配的平滑性,本文引入了动态温度知识蒸馏(DTKD)。特别是,我们建议使用logsumexp函数来量化logits分布的清晰度。因此,锐度之间的差异反映了对数分布平滑度之间的差异。通过最小化锐度差异,我们可以在每次训练迭代中分别和协作地获得老师和学生的样本温度。因此,在老师和学生之间建立了一个温和的共同点,这有助于学生更有效地向老师学习。大量实验表明,DTKD有效地提高了KD性能。特别是,在与KD相同的参考温度下,同一ResNet8学生的性能远高于基线,如图1所示。这表明,阻碍蒸馏的确实是流畅度的不匹配,而不是学生有限的学习能力。

贡献

(1)我们研究了师生网络Logit平滑度的差异对KD的影响。这种差异通常存在于每个样本的logits中,阻碍了KD过程。

(2)我们提出了logsumexp函数来量化logits的锐度,并引入基于锐度差最小化的动态温度知识蒸馏,在每次迭代中分别获得每个样本的教师和学生温度。

(3)与以往的温度调节方法相比,我们的方法在无需额外计算的情况下,为教师和学生共同寻找合适的温度,同时减轻了模型间隙和任务难度的问题。

方法

背景

vanilla KD只专注于对齐教师和学生之间的logit输出。对于给定的训练样本x带有一个one-hot的真值标签y,分别从教师网络和学生网络中得到相应的输出logits image-20240513165050200。向量image-20240513165124834由元素image-20240513165131937组成,每个元素代表教师网络第i个类的输出logit,其中K表示数据集中类的总数,v遵循同样的结构。

softmax后u和v对应的分类概率为image-20240513165311311。在vanilla KD中,在softmax计算过程中,image-20240513165406098被固定温度image-20240513165413722软化。如下所示:

image-20240513165423267

显然,温度T控制着概率的软化程度。当T为1.0时,上述计算变为普通的softmax操作。最终KD损失由交叉熵损失(T=1.0)和KL散度损失组成,如下所示:

image-20240513165551939

image-20240513165707204是平衡两个损失权重的参数,将KL乘以image-20240513165715080的原因是使两种损失的梯度相等。

Sharpness作为一个统一的度量标准

最近,一些研究工作发现,固定温度并不总是KD工艺的最佳选择。这个问题已经从两个角度进行了调查。从模型的角度来看,调节温度可能会缓解教师和学生之间的能力差距[Jafari等,2021],[Yuan等,2023]。从任务的角度来看,调节温度可能有助于设置适当的任务难度水平[Li et al ., 2023]。因此,一个全面的温度调节机制应该兼顾这两个方面。

与以前的工作不同,我们提出了一个统一的度量标准,有可能涵盖这两个问题。特别要注意的是,模型输出逻辑的形状代表了它对其预测的置信度,这受到预测能力和任务难度的影响。因此,我们假设教师和学生的输出形状的适当对齐可能能够减轻两个方面的问题。请注意,共享温度可以减少logit之间的形状差异,但不能消除差异。为了解决这个问题,我们首先使用logsumexp函数量化输出的平滑度,表示为清晰度。假设对数z = [z1, z2,…], zK],锐度定义如下:

image-20240514190643282

**锐度值高表示网络输出logit的平滑度较低,而锐度值低则表示网络输出logit的平滑度较高。**因此,我们用锐度来表示logits的平滑度,它受到模型预测能力和样本任务难度的双重影响,如图2所示。例如,不同预测能力的网络表现出明显不同的清晰度,如图2 (a)所示。一个有能力的教师的输出更清晰,因为他对自己的预测更有信心。在相同的网络模型中,不同的样本可以表现出不同程度的预测困难。这种变化也会影响最终输出逻辑的清晰度,如图2 (b)所示。

image-20240514190723660

Dynamic Temperature Knowledge Distillation

由于共享温度不能使两组logit的平滑性相等,一个自然的想法是,具有较高清晰度的logit(通常是教师网络的输出)应该具有较高的温度,而具有较低清晰度的logit(通常是学生网络的输出)应该具有较低的温度。因此,我们的目标是同时调节老师和学生的温度,这样,老师的对数软化了一点,而学生的对数软化了一点,他们的锐利程度是相等的。我们从一个共同的固定温度τ开始,将教师的温度设为τ +δ,而学生的温度设为τ−δ。我们可以通过最小化温度为τ + δ时教师输出u和温度为τ−δ时学生输出v之间的锐度差来找到这样一个合适的δ。也就是说,找到合适的δ,使:

image-20240514190831933

因为差是一个凸函数,所以有一个唯一的δ。我们特别提出以下主张:

命题1。假设u和v是rn中的向量,τ1和τ2是两个非零标量实数,那么我们可以推出

image-20240514191023791

根据命题2,为使式(3)的差最小,令τ1 = τ + δ, τ2 = τ−δ,设

image-20240514191100649

最后,我们可以确定教师和学生的温度为:τ + δ = 2x x+y τ, τ−δ = 2y x+y τ。

DTKD的损失函数为:

image-20240514191131562

其中Ttea = 2x x+y τ, Tstu = 2y x+y τ。大量研究表明,在大多数情况下,使用固定温度进行知识蒸馏是有效的。因此,除了DTKD,我们还纳入了定温KD。在实际应用中,我们给它分配一个相对较小的损失权值。

最后,完全损失函数为:

image-20240514191151324

image-20240514191203651

Effectiveness of DTKD

请注意,如果我们的目标是简单地消除老师和学生输出之间的清晰度差异,那么我们可以使用无限多对温度。对于极端情况,如果我们设定温度对于正无穷(或接近零),这两种形状都将非常平坦(或尖锐)。然而,我们的假设表明,我们确定一个适当的δ,可以帮助我们找到一个适度的共同点,为教师和学生的顺利。特别地,在每次迭代中,δ由参考温度τ和两个模型的logits共同决定。如图3所示,使用DTKD,在训练过程中,每对师生的温度越来越接近。这是合理的,因为整体训练难度应该逐渐增加。随着老师体温的下降,标签变得“更难”。

这使得学生的任务更加困难,因为它获得的错误类的信息更少了。从学生的角度来看,随着学生的能力越来越强,增加温度可以继续为老师提供丰富的错误课程信息,防止学生过快地变得过于自信。同样值得注意的是,对于同一个老师(wrn402)和不同的学生(wrn162和ShuV1),温度的适应是不同的,这表明DTKD也照顾了不同对模型的能力差距。在下一节中,大量的实验进一步证明了我们方法的有效性。

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值