对 7 年前 Hinton 提出的知识蒸馏方法(Knowledge Distillation,下文简称 KD)[1] 进行了解耦和分析,发现了一些限制 KD 性能的重要因素,进而提出了一种新的方法「解耦知识蒸馏」(Decoupled Knowledge Distillation,下文简称 DKD)[2],使得 logits 蒸馏重回 SOTA 行列。
1.DKD 蒸馏代码概述 DKD 蒸馏代码,全称为“Deep Knowledge Distillation”,是一种基于深度学习的知识蒸馏技术。它通过训练一个深度神经网络(称为学生网络)来模拟另一个已经训练好的深度神经网络(称为教师网络)的行为。这种方法可以有效地将教师网络中的知识传递给学生网络,从而实现模型压缩、加速和提高模型泛化能力等目...
因此将经典的KD损失分解为TCKD,NCKD之后我们引入两个超参数\alpha和\beta,形成DKD的损失函数: (7) 在上式中,可以调整\alpha和\beta来平衡两项,通过解耦TCKD和NCKD,DKD可以实现更好的logit蒸馏。 4. Experiments 以上分别是在三个数据集上的结果。 5. 讨论和结论 本文通过将经典的KD损失分解为目标类知识精馏...
首先,它可以用于模型压缩和加速。通过将大模型的知识传递给小模型,我们可以在不牺牲太多性能的情况下,大幅度减小模型的尺寸和计算资源需求,从而提高模型的部署效率。其次,DKD蒸馏策略也可以用于迁移学习和领域自适应。通过将大模型的知识迁移到小模型中,我们可以在新的任务或领域中更快地实现良好的性能,减少对大量...
DKD蒸馏策略在提高神经网络模型的泛化能力方面具有广泛的应用前景。首先,通过将大模型的知识传递给小模型,我们可以在小模型上取得接近大模型性能的目标,同时减小模型的尺寸和计算资源需求。这样,我们可以在资源受限的设备上部署更加高效的模型,提高模型的泛化能力。其次,DKD蒸馏策略也可以用于迁移学习和领域自适应。通...
1 DKD 原理分析 1.1 DKD 设计动机 现代知识蒸馏方法大多数注重深层的中间特征层面的知识蒸馏 (feature distillation),而对于相对而言比较原始的输出层面的知识蒸馏 (logit distillation) 的研究,因为性能不如前者而相对被忽略。本文提出了一种十分新颖的观点,即:输出知识蒸馏的潜力其实还没有得到完全开发。在本文中作者...
长知识丨蒸馏酒在我国是何时出现的 酒的种类繁多,风味各殊,其最本质的成分是都含有酒精即乙醇。酒精是大自然的赐予,含糖分的水果只要经过酵母菌的分解作用就能生成酒精。唐·苏敬《新修本草》说,作酒用曲,“而蒲桃、蜜等酒独不用曲”。不用曲的自然发酵之果酒在原始社会中已经出现,人类只有通过它才第一次接触...
在上式中,可以调整\alpha和\beta来平衡两项,通过解耦TCKD和NCKD,DKD可以实现更好的logit蒸馏。 以上分别是在三个数据集上的结果。 本文通过将经典的KD损失分解为目标类知识精馏(TCKD)和非目标类知识精馏(NCKD)两部分,为解释logit精馏提供了一种新的观点。分别对两部分的效果进行了研究和验证。更重要的是,揭示...
首先,我们来了解一下DKD蒸馏策略的基本原理。DKD蒸馏策略的核心思想是将大模型的知识转移到小模型中。具体而言,通过训练一个大型深度神经网络(教师模型)来拟合训练数据,并将其输出作为目标概率分布。然后,使用这个目标概率分布来指导训练一个小型模型(学生模型),使其能够在保留大模型知识的同时,具备更高的计算效率和较...
图6:解耦知识蒸馏 DKD 方法将 TCKD 和 NCKD 部分分开,分别乘以两个超参数 和 ,损失函数为: 通过调节超参数 和 ,可以减少 NCKD 被抑制的程度,从而更好地发掘 KD 的潜力。 DKD 方法伪代码为: 图7:DKD 方法伪代码 1.5 实验结果 作者在 CIFAR100 分类任务,ImageNet 分类任务,MS-COCO 目标检测任务上分别进...