目录
代码:https://github.com/Hao840/OFAKD
论文:Algorithms for learning kernels based on centered alignment.
1.论文核心
代码:https://github.com/Hao840/OFAKD
1.1 研究背景:
- 大多数现有的蒸馏方法,特别是基于暗示(hint-based)的方法,是在假设教师和学生模型属于同一个模型族的情况下设计的。
- 通过使用中心核对齐(CKA)来比较异构教师和学生模型之间的学习特征,我们观察到显着的特征分歧。
1.2 创新点:
- 我们将中间特征投影到一个对齐的潜在空间中,例如logits空间,其中架构特定的信息被丢弃。
- 我们引入了一个自适应的目标增强方案,以防止学生被无关信息的干扰。
2.具体方法
2.1 重新审视异构体系结构的特性提炼
通过CKA测量的中间特征的相似性热图,比较了CNN/MLP/VIT三种模型架构同架构和异架构特征之间的相似性。
可以明显看出异构模型特征之间的差异。
2.2 CKA方法介绍
论文:Algorithms for learning kernels based on centered alignment.
CKA是一种允许实现跨架构比较的特征相似性度量,因为它可以处理具有不同维度的输入。CKA在小批量上评估特征相似性。假设,是由两个不同模型提取出来的n个样本的特征其中和为特征的维度。CKA通过以下方式测量它们的相似性:
其中K=XX',L=YY' ,为希尔伯特-施密特独立准则:
其中
2.3 异构知识蒸馏
下图提供了拟议框架的概览。
异构特征提取的关键是对齐不匹配的表示。然而,现有方法通过卷积投影直接对齐特征的维度,这不是所有异构架构的通用解决方案。受早期退出模型架构的启发[1],我们通过向学生引入额外的退出分支来对齐logits空间中的特征。
2.4 自适应目标信息增强
虽然不同的模型在logits空间中学习相同的目标,但是它们不同的归纳偏差导致它们到达不同的目的地,即它们的预测分布是不相同的。这种差异导致了老师和学生对暗知识的理解不一致。为了弥补这一差距,我们建议增强目标类的信息,因为它总是与样本的真实的类相关,而不会带来信息失配的问题。具体为:
1.对目标类和非目标类信息进行解耦
笔者阅读过一篇专门对目标类和非目标类进行解耦方法DKD[2],有兴趣深挖可以阅读。本文的解耦方法为:
其是将目标类和非目标类的logits信息分开引导,用以增强对目标类信息的增强。进一步,我们将调制参数加入到项:
为了了解不同 下OFA损失的表现,将其二项式展开:
当 =1时OFA损失与寻常的KD损失一致,当=2时则损失为:
这样做可以保证当教师的目标类置信度低,也就是不自信时, 高阶项衰减的很快,这样可以避免学生模型从不自信的教师模型学习。
3.一些思考与启发
3.1 关于早期退出的全连接矩阵的问题
每个stage的特征都会经过一个全连接矩阵最终输出一个logits值,与教师模型最终输出的logits做一个OFA损失,在这个损失函数的引导下,每个stage的全连接矩阵都会被更新成提取特征分类信息的作用。
3.2 为什么早期退出可以实现异构模型的特征对齐
通过特征投影将特征投影到logits空间,在logits空间中的特征表示,已经去除了与特定架构相关的特性。
4.遗留问题
教师模型使用最后一层的logits,其已经是多层stage之后的结果,学生模型每一层stage都跟他对齐会不会出现信息不对称问题。
[1]. MULTI-SCALE DENSE NETWORKS FOR RESOURCE EFFICIENT IMAGE CLASSIFICATION
[2]. Decoupled Knowledge Distillation