Py学习  »  Git

CVPR 2024|涨点!中科院&中山大学提出:知识蒸馏中的Logit标准化!

CVer • 3 周前 • 31 次点击  

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

点击进入—>【Mamba/扩散和多模态】微信交流群

添加微信:CVer5555,小助手会拉你进群!

扫描下方二维码,加入CVer学术星球可以获得最新顶会/顶刊上的论文ideaCV从入门到精通资料,及最前沿应用!发论文/搞科研/涨薪,强烈推荐!

作者丨派派星  转载自:极市平台

 

传统知识蒸馏默认学生/教师网络的温度是全局一致的,这种设置迫使学生模仿教师的logit的具体值,而非其关系,本文提出了 logit 标准化,解决了这个问题。 

论文https://arxiv.org/pdf/2403.01427.pdf

代码https://github.com/sunshangquan/logit-standardization-KD

代码已开源,欢迎star :)

0. 背景介绍

什么是知识蒸馏?2015年,Hinton[1]注意到深度学习模型变得越来越大,率先想到是否可以利用一个训练好的大模型(俗称Teacher、教师模型),教授一个小模型(俗称Student、学生模型)进行学习。

以常见的分类问题举例, 给定一个包含 个样本的图像分类数据集 是其中第 个样本图像, 对应的标签(数据集如果有 个类, 则 为 1 至 之间的一个整数, 代表图像属于第 个类), 学生网络 和教师网络 会读取一张输入图像 , 输出各自的logit:

我们用带有温度 的softmax函数, 就可以将logit转换为概率密度的形式:

其中 分别是学生和教师预测的概率密度, 其满足

随后,就可以用KL散度将学生的输出和教师的输出进行定量对比,以此作为损失函数对学生网络进行优化:整个过程可以看下面的图1a。

知识蒸馏经典工作解读:https://zhuanlan.zhihu.com/p/102038521

1. 动机

距离Hinton[1]2015年提出知识蒸馏已经过去了9年,温度这个超参数最早就被设定为教师、学生之间共享的,并且是对所有样本都全局不变的,而这样的设置并没有理论支持。已有工作中,CTKD[2]引入了对抗学习,针对不同难度的样本选择不一样的温度,但是它仍然让学生和教师共享温度;ATKD[3]则是引入一种锐利度指标,针对性地选择学生和教师之间的温度平衡。但是他们均没有讨论学生和教师的温度来自于哪里,也没有理论性地讨论它们是否可以全局不一致、学生教师之间不共享。因此针对这个问题,文章做出了三个贡献:

  1. 文章基于信息论中的熵最大化理论,推导了含有超参数温度的softmax函数表达式。基于推导过程,发现温度并没有明显的约束条件,即没有理论强制学生和教师在全局范围内共享温度(见1.1.1、1.1.2)

  2. 文章发现已有的“共享温度”的设置会导致两个问题:

  • 学生网络被迫输出和教师网络相当的logit(见1.2)
  • KL散度难以真实反映学生的蒸馏效果(见2.3)
  1. 文章提出了logit标准化,可作为预处理辅助现有基于logit的知识蒸馏算法。
图1. logit标准差辅助的知识蒸馏和传统知识蒸馏的对比

1.1 超参数-温度的来源

这部分推导了带有超参数温度的softmax函数,如果只想看结论,可直接跳到1.3小节

1.1.1 教师网络的温度

基于 Edwin[5] 1957年提出的最大熵理论 (Maximum-Entropy Principle), 可以证明出分关任务的softmax函数是求解条件摘最大化问题的唯一解形式, 也就是说, 对于一个训绕好的教师网婉, 面对以下两个条件, 其概率密度 应该使得熵处于最大值, 两个条件分别为

  1. 变量向量 需要求和为 1 。也就是说, 它满足概率密度的形式

  2. 原始logit向量 的期望为正确的logit项。也就是说, 它需要预测正确

其数学表达为以下式子:

针对这个求解问题, 可以利用拉格朗日乘子法, 引入拉格朗日乘子 (条件1) 和 (条件 2), 将条件优化变为单一表达式:

对目标函数求导后取零, 即可得到优化问题的解的形式。于是我们对 求偏导, 得到:

对其取 0 ,我们得到

此处的 就变成了我们常见的softmax的分母,公式(7)就变为了我们常见的softmax函数。而 就是我们常见的温度变量, 它的值取 1 时, 就是分类任务中不带有温度的KL散度函数。

1.1.2 学生网络的温度

与上一小节类似,我们针对蒸馏任务,引入一个新的约束条件:

  1. 学生logit向量的期望需要等于教师logit的期望。也就是说,需要学生学习到教师的知识

加入这第三个约束的求解问题的数学表达为:

类似地引入拉格朗日乘子 (条件1)、 (条件2) 、 (条件3), 可以将条件优化变为单一表达式:

求偏导, 得到:

对其取 0 , 并且设 , 我们得到

其中为了简洁, 分母为 。公式(11)变为了我们常见的softmax函数。而 就是我们常见的温度变量, 它与 取等时, 就是蒸馏任务中最常见的学生、教师共享温度的情况。

讨论:

问题1: 学生和教师之间是否可以取不同的温度?

答: 如果对公式(5)和公式(8)分别对 和 求偏导,则其偏导表达式均会退回到对应的条件约束表达式,表达式恒成立,其结果与这三个变量 和 也因此无关,所以其取值井没有明显的约束形式。如果我们取 ,就是我们常见知识蒸馏中共享温度的情况。

问题2: 蒸馏过程中是否可以对不同样本取不同的温度?

答:与问题 1 类似,其取值井没有明显的约束形式,因此可以针对样本选择温度的取值。

1.2 共享温度的弊端(1/2)

上一小节讨论了“学生和教师网络是否可以针对样本选择不同的温度”的问题,但是我们还并不知道是否有必要选择不同的温度值,因此本节展示传统知识蒸馏共享温度带来的弊端。

首先我们将之前的softmax表达式统一得到一个一般形式,其表示为:

其中 分别为学生 和教师 的 softmax 表达式中的偏置项 和缩放项( , 其中偏置项虽然可以通过分子分母相消, 但是其有稳定 it均值的作用 (之后2.2节中提到)。

对于一个蒸馏好的理想学生, 我们假设对于给定样本, 其损失函数( 散度)达到最小值。也就是说, 这个理想学生可以完美学习教师的概率, 那对于任意索引 , 都可以得到

那么对于任意一对索引 , 我们有:

将上面的式子按 从 1 到 求和, 然后除以 , 可以得到:

其中 分别是学生和教师logit的均值。然后我们对公式(14)按 从 1 到 求和, 我们可以得到:

其中, 是标准差函数。假设我们设定教师和学生的温度相同, 即 , 那么公式(14)就会变为:

由此可以看出经典知识蒸馏问题中共享温度的设定, 最终会强制学生和教师logit之间存在一个固定的差 , 但是考虑到学生网络和教师网络之间的能力差距, 学生很难生成与教师 logit 的均值相当的logit (见图2横轴)。

图2. 不同尺寸网络的logit均值和标准差的双变量散点图

图2展示了不同尺寸网络输出的logit均值和标准差,可以看出尺寸较大的网络均值更接近于0,标准差也越小,也就是logit更紧凑。由此规律可以看出,较小的学生网络确实难以输出和较大的教师网络相当的logit范围。

1.3 小节

我们从本节可以得到以下结论:

  • 学生、教师网络的温度没有明显的约束条件,不必一定全局共享,可以人为指定
  • 在温度共享的情况下,学生、教师网络之间有一个logit范围的强制性匹配
  • 基于学生、教师网络的能力差距, 上述强制性匹配很可能限制学生网络的蒸馏效果

2. 提出方法:Logit标准化

2.1 算法

为了打破上述的强制性匹配, 文章基于公式(14)的形式, 提出了logit标准化, 即把 代入softmax函数:

其中 函数就是一种加权 -score标准化函数, 其表达形式如算法1所示, 通过引入一个基础温度 来控制标准化后的logit值域(见2.2优势第四条)。而完整的logit标准化知识烝馏算法则如算法2所示。

算法1:Z-score函数算法;算法2:logit标准化的知识蒸馏算法

2.2 优势

这样 -score标准化后的logit, , 有至少四个好处(所有证明可见文章补充材料):

  • 均值为零

之前的工作 常常有学生/教师logit的均值为 0 的假设, 但是如图 2 所示, 其几乎是不可能真实实现的,而基于提出的logit标准化函数,logit均值会自动变为 0 。

  • 标准差为

这个性质也是 -score自带的性质, 证明简单。这条性质使学生、教师logit被投影到同一范围的类-高斯分布内, 而由于其投影过程是多对一的, 意味着其反向过程是不确定的, 确保了学生的原始logit可以不受“强制性匹配”的副作用影响。

  • 单调性

其定义为给定一串索引序列 , 如果其可以将原始logit进行由小到大的排序, 即 , 那么其也能够将变 换后 logiti 进行相对应的 排序, 即 。由于 -score属于线性变换函数, 这条性质自动满足。这条性质确保了学生能够学习到教师网络logit必要的内在关系。

  • 有界性, 上下界为

这条性质需要几步证明,可查询补充材料。这个性质保证了我们可以自己控制softmax函数内logit 的值域范围,能够保证数值计算的稳定性。

2.3 Toy Case:共享温度的慗端 (2/2)

上文中提到共享温度有两个算端,文章此时举例了一个toy case展示其第二个弊端的过程,如图3 所示。

有两个学生网络 , 一起向教师 学习。 的logit范围与 相仿, 而 的logit范围远小于 的logit, 所以 的损失函数 小于 的损失函数 。然而其二者的预测结果却和损失函数的优劣产生了矛盾: 预测的 "Bird" 错误了, 而 预测的 “Dog" 却是正确了。

这一矛盾说明了:在学生、教师共享温度的设定下,KL散度可能无法准确描述学生的蒸馏性能和学习效果!

图3. 一个toy case,展示了“温度共享”带来的KL散度无法准确评估学生网络性能的情况

而如果使用文章提出的logit标准化 (见图3下半部分), 标准化后的 的logit计算的损失函数 大于 的标准化后的logit计算的损失函数 , 与其二者预测结果相符, 解决了上述问题。

3. 实验结果

3.1 数值结果

在CIFAR-100上的结果如表1、2所示,文章在四个现有的logit知识蒸馏算法上进行了验证,分别为KD[1]、CTKD[2]、DKD[9]和MLKD[10]。

表1. CIFAR-100上面的蒸馏结果,此表为学生、教师的网络结构不同的情况
表2. CIFAR-100上面的蒸馏结果,此表为学生、教师的网络结构相同的情况

在ImageNet上的结果如表3所示。

3.2 消融实验

针对超参数 , 文章在 四种情况下做了消融实验, 下表表 4 展示了 的情况, 可以看出在 的时候, 均有不错的效果, 当其取 9 的时候效果最佳。

3.3 可视化结果

  • logit范围:

从图4第一行中,可以看出经典知识蒸馏算法可以迫使学生产生与教师logit相仿的logit范围,但是其预测的最大logit值没有达到教师的值(12),预测产生了错误。而文章的方法可以使原始logit摆脱“强制性匹配”(见图4b第一行),而其标准化后的logit结果则与教师的几乎完美匹配(见图4c第一行)。从图4第二行中可以从全局角度得出类似的结论。

图4. 第一行:一组学生、教师logit的柱状图可视化案例;第二行:学生、教师logit之间的平均差值的热度图
  • 特征可视化:

图5展示了四种基于logit知识蒸馏的t-SNE特征可视化,可以看出没有logit标准化进行蒸馏的网络输出特征没有很好地散落开,而logit标准化进行蒸馏的网络特征具有更好的可辨别性。

图5. 四种基于logit知识蒸馏的特征可视化

3.4 教师-学生鸿沟问题

学生、教师之间由于能力差距,强的老师可能无法做一个好的老师,文章将这个现象解释为学生难以输出与教师logit相仿范围的logit,而这又是现有知识蒸馏所强制强迫的,因此限制了学生的学习。图6展示了一组没有经过logit标准化的传统蒸馏和经过logit标准化的蒸馏的logit双变量分布可视化,可以看出传统知识蒸馏仍然无法使学生、教师之间的分布重合(粉色、紫色);而logit标准化后的logit分布则可以完全重合(深绿色、橙色)。

图6. logit均值和标准差的双变量散点图

表5展示了一组不同能力老师的蒸馏效果,可以看出logit标准化普遍地提升了学生的性能,弥补了学生、教师网络之间的学习鸿沟。

参考资料

  • [arXiv 2015] Distilling the Knowledge in a Neural Network https://arxiv.org/abs/1503.02531
  • [AAAI 2023] Curriculum Temperature for Knowledge Distillation https://arxiv.org/abs/2211.16231
  • [OpenReview 2022] Reducing the Teacher-Student Gap via Adaptive Temperatures  https://openreview.net/forum?id=h-z_zqT2yJU
  • [arXiv 2023] NormKD: Normalized Logits for Knowledge Distillation https://arxiv.org/abs/2308.00520
  • [Physical Review 1957] Information Theory and Statistical Mechanics https://journals.aps.org/pr/abstract/10.1103/PhysRev.106.620
  • [ICCV 2019] On the efficacy of knowledge distillation. https://openaccess.thecvf.com/content_ICCV_2019/papers/Cho_On_the_Efficacy_of_Knowledge_Distillation_ICCV_2019_paper.pdf
  • [AAAI 2020] Improved knowledge distillation via teacher assistant https://ojs.aaai.org/index.php/AAAI/article/view/5963/5819
  • [ICCV 2021] Densely guided knowledge distillation using multiple teacher assistants https://openaccess.thecvf.com/content/ICCV2021/papers/Son_Densely_Guided_Knowledge_Distillation_Using_Multiple_Teacher_Assistants_ICCV_2021_paper.pdf
  • [CVPR 2022] Decoupled Knowledge Distillation https://openaccess.thecvf.com/content/CVPR2022/papers/Zhao_Decoupled_Knowledge_Distillation_CVPR_2022_paper.pdf
  • [CVPR 2023] Multi-Level Logit Distillation https://openaccess.thecvf.com/content/CVPR2023/papers/Jin_Multi-Level_Logit_Distillation_CVPR_2023_paper.pdf

何恺明在MIT授课的课件PPT下载

在CVer公众号后台回复:何恺明,即可下载本课程的所有566页课件PPT!赶紧学起来!

CVPR 2024 论文和代码下载

在CVer公众号后台回复:CVPR2024,即可下载CVPR 2024论文和代码开源的论文合集


Mamba和多模态学习交流群成立

扫描下方二维码,或者添加微信:CVer5555,即可添加CVer小助手微信,便可申请加入CVer-Mamba和多模态微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer、NeRF、3DGS、Mamba等。


一定要备注:研究方向+地点+学校/公司+昵称(如Mamba或者多模态+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

▲扫码或加微信号: CVer5555,进交流群


CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉(知识星球),已汇集近万人!


扫码加入星球学习


▲点击上方卡片,关注CVer公众号

整理不易,请点赞和在看

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/168856
 
31 次点击