AAAI 2023 | 动态温度超参蒸馏新方法

38c84aebef1a46eb314b29fe486cadea.gif

©作者 | Zheng Li

单位 | 南开大学

一句话概括:相对于静态温度超参蒸馏,本文提出了简单且高效的动态温度超参蒸馏新方法。

8903da29ef7cf6c0917fd57602c4763e.png

论文标题:

Curriculum Temperature for Knowledge Distillation

收录会议:

AAAI 2023

论文链接:

https://arxiv.org/abs/2211.16231

代码链接:

https://github.com/zhengli97/CTKD

5d1988f1e4393a940913f67aff30337f.png


背景问题

目前已有的蒸馏方法中,都会采用带有温度超参的 KL Divergence Loss 进行计算,从而在教师模型和学生模型之间进行蒸馏,公式如下:

eea412feefc44c600a8cf75f8a6308f6.png

其中,温度超参 的大小控制了两个预测结果 和 的平滑程度,决定了两个概率分布间的距离,τ 越大 (τ>1),就会使得概率分布越平滑 (soft),τ 越小 (0<τ<1),越接近 0,会使得概率分布越尖锐 (sharp)。τ 的大小影响着蒸馏中学生模型学习的难度,不同的 τ 会产生不同的蒸馏结果。

而现有工作普遍的方式都是采用固定的温度超参,一般会设定成 4。

8215c71a54d73ae65343311dd8135871.png

那么这就带来了两个问题: 

1. 不同的教师学生模型在 KD 过程中最优超参不一定是4。如果要找到这个最佳超参,需要进行暴力搜索,会带来大量的计算,整个过程非常低效。 

2. 一直保持静态固定的温度超参对学生模型来说不是最优的。基于课程学习的思想,人类在学习过程中都是由简单到困难的学习知识。那么在蒸馏的过程中,我们也会希望模型一开始蒸馏是让学生容易学习的,然后难度再增加。难度是一直动态变化的。 

于是一个自然而然的想法就冒了出来:在蒸馏任务里,能不能让网络自己学习一个适合的动态温度超参进行蒸馏,并且参考课程学习,形成一个蒸馏难度由易到难的情况? 

于是我们就提出了 CTKD 来实现这个想法。

6b18e6e9aef60f7d807369a9ac0fe831.png


方法

既然温度超参 τ 可以在蒸馏里决定两个分布之间的 KL Divergence,进而影响模型的学习,那我们就可以通过让网络自动学习一个合适的 τ 来达到以上的目的。 

于是以上具体问题就直接可以转化成以下的核心思想

在蒸馏过程里,学生网络被训练去最小化 KL loss 的情况下,τ 作为一个可学习的参数,要被训练去最大化 KL loss,从而发挥对抗 (Adversarial) 的作用,增加训练的难度。随着训练的进行,对抗的作用要不断增加,达到课程学习的效果。 

以上的实现可以直接利用一个非常简单的操作:利用梯度反向层 GRL (Gradient Reversal Layer) 来去反向可学习超参 τ 的梯度,就可以非常直接达到对抗的效果,同时随着训练的进行,不断增加反向梯度的权重 λ,进而增加学习的难度。 

CTKD 的论文的结构图如下:

86d03c5638c12db9f311317ba6f453fb.png

▲ Fig.1 CTKD网络结构图

CTKD 方法可以简单分为左右两个部分: 

1. 对抗温度超参 τ 的学习部分。这里只包含两个小模块,一个是梯度反向层 GRL,用于反向经过温度超参 τ 的梯度,另一个是可学习超参温度 τ。 

其中对于温度超参 τ,有两种实现方式,第一种是全局方案 (Global Temperature),只会产生一个 τ,代码实现非常简单,就一句话:

self.global_T = nn.Parameter(torch.ones(1), requires_grad=True)

第二种是实例级别方案 (Instance-wise Temperature),即对每个单独的样本都产生一个 τ,也就是对于一个 batch 中 128 个 sample,那么就生成对应 128 个 τ。代码实现也很简单,就是两层 conv 组成的 MLP。两种方案的对比图如 Fig.2 所示。

5fff01eb71e33ec9b979b06b39cc4f73.png

▲ Fig.2 两种不同的可学习温度超参实现

2. 难度逐渐增加的课程学习部分。 

随着训练的进行,不断增加 GRL 的权重 λ,达到增加学习难度的效果。在论文的实现里,我们直接采用 Co s的方式,让反向权重 λ 从 0 增加到 1。 

以上就是 CTKD 的全部实现,非常的简单有效。 

总结一下方法:CTKD 总共包含两个模块,梯度反向层 GRL 和温度预测模块,CTKD 方法可以作为即插即用的插件应用在现有的 SOTA 的蒸馏方法中,取得广泛的提升。

3678e0fb304ac6d84e7f1699b5fe7cdd.png


实验结果

三个数据集:CIFAR-100,ImageNet 和 MS-COCO。

CIFAR-100 上,CTKD 的实验结果:

58fbb4407c274614cc97b52b39333427.png

作为一个即插即用的插件,应用在已有的 SOTA 方法上:

c705608656eb976c03284c856af24196.png

在 ImageNet 上的实验:

fff49ca1d16e6b83de1f047ad9e1c903.png

在 MS-COCO 的 detection 实验上:

11ba796f6f50fe284347c81962632506.png

温度超参的整体学习过程可视化:

371af91e39555cb832135a72836906b7.png

由以上图可以看到,CTKD 整体的动态学习 τ 的过程。将 CTKD 应用在多种现有的蒸馏方案上,可以取得广泛的提升效果。欢迎大家试用。

更多阅读

47b509fa18eaec58353e12b80c546d83.png

1418079964e26e9fa522893fdccdcd33.png

f22b9e96173ecb3eedfc5217eafef341.png

566cf6b9c38cb20e344f5ce00a543ad9.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

f4c771859114588b9abb63e17816d287.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

4557597174f7e5ab36b9c1b608dc1a40.jpeg

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值