【论文速递】CVPR2022 - 解耦知识蒸馏

简介: 【论文速递】CVPR2022 - 解耦知识蒸馏

【论文速递】CVPR2022 - 解耦知识蒸馏

【论文原文】:Decoupled Knowledge Distillation

获取地址:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9879819

博主关键词: 解耦,目标知识蒸馏,非目标知识蒸馏

推荐相关论文:

-无

摘要:

最先进的蒸馏方法主要基于从中间层蒸馏深层特征,而Logit蒸馏的重要性则被大大忽视。为了提供研究logit蒸馏的新观点,我们将经典KD损失重新表述为两部分,即目标类知识蒸馏(TCKD)和非目标类知识蒸馏(NCKD)。我们实证调查并证明了两部分的效果:TCKD传递有关训练样本“难度”的知识,而NCKD是logit蒸馏工作的突出原因。更重要的是,我们揭示了经典的KD损失是一个耦合公式,它(1)抑制了NCKD的有效性,(2)限制了平衡这两部分的灵活性。为了解决这些问题,我们提出了解耦知识蒸馏(DKD),使TCKD和NCKD能够更高效、更灵活地发挥作用。与复杂的基于特征的方法相比,我们的DKD在CIFAR-100、ImageNet和MS-COCO数据集上获得了相当甚至更好的结果,并且在图像分类和目标检测任务中具有更好的训练效率。本文证明了logit蒸馏的巨大潜力,希望对未来的研究有所帮助。该代码可在 https://github.com/megviiresearch/mdistiller 获得。

关键词 :解耦,目标知识蒸馏,非目标知识蒸馏。

简介:

在过去的几十年中,深度神经网络(DNN)彻底改变了计算机视觉领域,它成功地推动了各种真实场景任务,例如图像分类[9],[13],[21],目标检测[8],[27]和语义分割[31],[45]。 .然而,强大的网络通常受益于大模型容量,从而带来高昂的计算和存储成本。在广泛使用轻型模型的工业应用中,这种成本并不可取。文献表明,降低成本的潜在方向是知识蒸馏(KD)。KD 代表了一系列方法,专注于将知识从重模型(教师)转移到轻模型(学生),这可以提高轻模型的性能而不会引入额外的成本。

0ea3eec9b45bda0562279456d36ee97.png

Fig. 1. Illustration of the classical KD [12] and our DKD.

KD的概念最早是在[12]中提出的,通过最小化教师和学生预测对数之间的KL-散度来转移知识(图1a)。自[28]以来,大多数研究注意力都集中在从中间层的深层特征中提取知识上。与基于logits的方法相比,特征蒸馏在各种任务上的表现都更胜一筹,因此对Logit蒸馏的研究几乎没有任何深入。然而,基于特征的方法的训练成本并不令人满意,因为在训练期间引入了额外的计算和存储使用(例如,网络模块和复杂操作)来提炼深层特征。

Logit蒸馏仅需要微小的计算和存储成本,但性能较差。直观地说,logit 蒸馏应该达到与特征蒸馏相当的性能,因为 logit 的语义级别高于深层特征。我们假设 logit 蒸馏的潜力受到未知原因的限制,导致性能不理想。为了提高基于logit的方法,我们通过深入研究KD的机制来开始这项工作。首先,我们将分类预测分为两个级别:(1)目标类和所有非目标类的二元预测和(2)每个非目标类的多类别预测。基于此,我们将经典KD损耗[12]重新表述为两部分,如图1b所示。一种是针对目标类的二元 logit 蒸馏,另一种是针对非目标类的多类别 logit 蒸馏。为简化起见,我们分别将它们命名为目标分类知识蒸馏(TCKD)和非目标分类知识蒸馏(NCKD)。重新制定使我们能够独立研究这两个部分的效果。

TCKD通过二元对数蒸馏传递知识,这意味着只提供目标类的预测,而每个非目标类的具体预测是未知的。一个合理的假设是,TCKD转移了关于训练样本“难度”的知识,即知识描述了识别每个训练样本的难度。为了验证这一点,我们从三个方面设计了实验,以增加训练数据的“难度”,即更强的增强,更嘈杂的标签和固有的挑战性数据集。

NCKD只考虑非目标logits的知识。有趣的是,我们凭经验证明,只有应用NCKD才能达到与经典KD相当甚至更好的结果,这表明非目标logits中包含的知识至关重要,这可能是突出的“黑暗知识”。

更重要的是,我们的改革方案表明,经典的KD损失是一个高度耦合的公式(如图1b所示),这可能是logit蒸馏潜力有限的原因。首先,NCKD损失项由一个系数加权,该系数与教师对目标类的预测信心呈负相关。因此,较大的预测分数将导致较小的权重。耦合显著抑制了NCKD对预测良好的训练样本的影响。这种抑制是不可取的,因为教师对培训样本越有信心,它就能提供越可靠和有价值的知识。其次,TCKD和NCKD的意义是耦合的,即不允许将TCKD和NCKD分开加权。这种限制是不可取的,因为TCKD和NCKD应该分开考虑,因为它们的贡献来自不同方面。

总体而言,我们的贡献总结如下:

  • 我们通过将经典KD分为TCKD和NCKD来研究logit蒸馏提供了有见地的观点。此外,还分别分析和证明了两个部分的效果。
  • 我们揭示了由其高度耦合公式引起的经典KD损耗的局限性。将NCKD与教师的信心相结合会抑制知识转移的有效性。TCKD与NCKD的耦合限制了平衡这两个部件的灵活性。
  • 我们提出了一种名为DKD的有效Logit蒸馏方法来克服这些限制。DKD在各种任务上实现了最先进的性能。我们还凭经验验证了与基于特征的蒸馏方法相比,DKD具有更高的训练效率和更好的特征可转移性。
目录
相关文章
|
机器学习/深度学习 算法 知识图谱
机器学习常用距离度量
机器学习常用距离度量
415 0
[✔️]AudioRelay将电脑的声音投射在手机上
[✔️]AudioRelay将电脑的声音投射在手机上
3190 0
|
关系型数据库 MySQL 数据库
数据库读写分离后的数据同步方式
【6月更文挑战第5天】该文介绍了应对大并发请求的数据库解决方案,主要涉及MySQL的主从同步和读写分离。根据业务对数据一致性和延迟的容忍度选择合适模式,读写分离则能进一步优化数据库负载。
611 3
数据库读写分离后的数据同步方式
|
10月前
|
机器学习/深度学习
DeepSeek进阶开发与应用2:DeepSeek中的自定义层与复杂模型构建
本文深入探讨了如何在DeepSeek框架中创建自定义神经网络层,以满足复杂应用的需求。通过继承`Layer`基类并实现`__init__`和`call`方法,用户可以轻松定义自定义层,如特定初始化方法的全连接层。文中还展示了如何使用自定义层构建复杂的深度学习模型,并通过示例代码详细说明了其应用。最后,文章强调了自定义层在提升模型灵活性和性能方面的重要性。
|
11月前
|
设计模式 架构师 安全
一文详解架构设计的本质
本文分为三个部分,从思维讲起到系统逆向分析,到后面的正向设计。从“道,理,术”三个角度诠释了系统架构设计的全面知识体系。
|
消息中间件 网络协议 安全
C# 一分钟浅谈:WebSocket 协议应用
【10月更文挑战第6天】在过去的一年中,我参与了一个基于 WebSocket 的实时通信系统项目,该项目不仅提升了工作效率,还改善了用户体验。本文将分享在 C# 中应用 WebSocket 协议的经验和心得,包括基础概念、C# 实现示例、常见问题及解决方案等内容,希望能为广大开发者提供参考。
920 0
|
存储 机器学习/深度学习 测试技术
[大语言模型-论文精读] 以《黑神话:悟空》为研究案例探讨VLMs能否玩动作角色扮演游戏?
[大语言模型-论文精读] 以《黑神话:悟空》为研究案例探讨VLMs能否玩动作角色扮演游戏?
|
机器学习/深度学习
|
机器学习/深度学习 JSON 自然语言处理
新一代开源语音库CoQui TTS冲到了GitHub 20.5k Star
新一代开源语音库CoQui TTS冲到了GitHub 20.5k Star
1075 0