论文解读 | 解耦知识蒸馏

本文介绍了论文“Decoupled Knowledge Distillation”,该论文重新审视了知识蒸馏的过程,提出了解耦知识蒸馏(DKD)的概念。DKD通过将知识蒸馏分解为目标类知识蒸馏(TCKD)和非目标类知识蒸馏(NCKD),提高了基于logit的蒸馏效率和性能。研究发现,NCKD对于基于logit的蒸馏至关重要,而TCKD的贡献则依赖于训练样本的难度。DKD在CIFAR-100和ImageNet等数据集上取得了与最先进的特征蒸馏方法相当的结果,同时保持了较低的计算和存储成本。

10 年来,DNN 的变革给计算机视觉领域带来了重大发展,促成了各种实时任务的繁荣,如图像分类、目标检测、语义分割等。然而强大的网络通常得益于大的网络容量,这通常以大量的计算和存储为代价,是工业应用所不喜欢的。在工业应用中,广泛采用的是轻量的模型。知识蒸馏是减小这种代价的一个有效方法,它可以把重型模型的知识迁移到轻型模型上,从而提高轻型模型的性能。知识蒸馏的概念最初是 Hinton 在论文 “Distilling the knowledge in a neural network” 中提出的,它通过最小化老师网络和学生网络输出 logit 的 KL 散度来完成知识迁移,见下图 (a)。但是自从 Fitnets 以来,有关知识蒸馏的研究大多都转移到了对中间层的深度特征的知识蒸馏,因为基于特征的蒸馏在各种任务上都性能更加优异。然而基于特征的蒸馏有一个缺点:在训练过程中,会引入大量额外的对计算和存储资源的需求。7881fcc48642f574f08e17bb772cc4e9.png

基于 logit 的蒸馏恰恰能解决这一问题,只是经典 KD 性能一般。从直觉上来说,基于 logit 的知识蒸馏应当能达到和基于特征的知识蒸馏相当的性能,因为 logits 相对于深层特征,表达了更高层次的语义。“Decoupled Knowledge Distillation”论文重构了经典知识蒸馏的表达方式,通过新的表达方式分析了经典的基于 logit 的知识蒸馏性能不理想的原因,并提出了解决问题的方法:解耦知识蒸馏(Decoupled Knowledge Distillation, DKD),一种新的基于 logit 的知识蒸馏,见上图 (b)。DKD 在各种任务上能达到 SOTA,比起基于特征的知识蒸馏,有着更高的训练效率和特征迁移性能。

重新思考知识蒸馏

重写知识蒸馏的公式

### 知识蒸馏解耦知识蒸馏的区别 #### 定义与核心概念 知识蒸馏是一种模型压缩技术,旨在利用复杂的大型模型(即教师模型)来指导小型模型(即学生模型)的学习过程[^3]。通过这种方式,学生模型能够继承教师模型的知识,在保持较小规模的同时达到较高的性能。 解耦知识蒸馏则是在传统知识蒸馏的基础上引入了一种新的机制——将教师模型的知识分解为多个独立的部分,并分别传递给学生模型的不同部分[^4]。这种方法的核心在于分离不同类型的“知识”,使得每一种知识可以被针对性地学习和优化。 --- #### 技术实现上的差异 ##### 1. **知识表示方式** - 在传统的知识蒸馏中,主要关注的是概率分布层面的信息转移,通常通过软目标(Soft Targets)的形式完成[^1]。这些软目标由教师模型经过调整后的输出构成,反映了类别间的相对关系。 - 解耦知识蒸馏进一步细化了这一过程,不仅考虑输出层的概率分布,还可能涉及中间特征映射、注意力权重等多种形式的隐含知识[^2]。这种多维度的知识提取有助于提高学生模型对复杂模式的理解能力。 ##### 2. **损失函数的设计** - 常规的知识蒸馏采用单一的整体损失函数,该函数结合了硬标签交叉熵以及基于温度缩放的KL散度项用于衡量师生之间预测一致性的程度[^1]: ```python loss = (1-alpha)*CE(y_true, y_pred) + alpha*KLDivLoss(p_teachers, p_students) ``` - 对于解耦版本而言,则会构建更加精细的分模块损失结构。例如,针对不同的子任务或者数据特性设置专属的目标约束条件,从而促进各方面的均衡发展[^4]: ```python total_loss = sum([lambda_i * specific_loss_i for i in range(num_components)]) ``` --- #### 应用场景分析 | 场景描述 | 知识蒸馏适用性 | 解耦知识蒸馏适用性 | |----------|------------------|----------------------| | 需要快速部署的小型化分类器开发 | 较高效率达成预期精度改进 | 如果存在显著异质性或多源输入信号时表现更好 | | 处理大规模图像识别问题下的资源受限设备适配 | 可有效降低计算需求并维持一定水准的表现力 | 当面临多种视觉属性联合判断的任务时更具优势 | | 自然语言处理领域内的嵌入式系统优化 | 提供简洁明了的语言理解框架转换途径 | 更适合那些需要区分语法语义等多个层次含义的应用场合 | --- ### 总结说明 虽然两者都致力于解决如何高效传授高级AI系统的智慧至简化版实例之中这个问题,但是它们各自侧重的角度有所不同:前者倾向于整体复制行为模式;而后者则是深入挖掘内在关联规律后再加以重组再现。因此,在具体选型过程中应当充分考虑到实际业务背景特点再做决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux基金会AI&Data基金会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值