【论文阅读】Decoupled Knowledge Distillation(CVPR2022)

【论文链接】https://arxiv.org/abs/2203.08679

【代码链接】GitHub - megvii-research/mdistiller: The official implementation of [CVPR2022] Decoupled Knowledge Distillation https://arxiv.org/abs/2203.08679

问题动机

        目前最先进的蒸馏方法主要基于从中间层提取深层特征,而大大忽视了逻辑蒸馏的意义。 Logit 蒸馏需要边际计算和存储成本,但性能较差。直观上,logit 蒸馏应该达到与特征蒸馏相当的性能,因为 logit 比深层特征具有更高的语义级别。为了提供研究逻辑蒸馏的新观点,本文将经典 KD 损失重新表述为两部分,即目标类知识蒸馏 (TCKD) 和非目标类知识蒸馏 (NCKD)。通过实证研究和证明了两部分的效果:TCKD 传递了关于训练样本“难度”的知识,而 NCKD 是逻辑蒸馏起作用的主要原因。更重要的是,本文发现经典的 KD 损失是一个耦合公式,(1) 抑制了 NCKD 的有效性,(2) 限制了平衡这两个部分的灵活性。

解决方法

        我们假设 logit 蒸馏的潜力受到未知原因的限制,导致性能不尽如人意。为了振兴基于 logits 的方法,我们通过深入研究 KD 的机制来开始这项工作。首先,我们将分类预测分为两个级别:(1)目标类和所有非目标类的二元预测和(2)每个非目标类的多类预测。基于此,我们将经典的 KD 损失重新表述为两部分,如图 b 所示。一种是针对目标类的二元 logit 蒸馏,另一种是针对非目标类的多类 logit 蒸馏。为了简化起见,我们将它们分别命名为目标分类知识蒸馏(TCKD)和非目标分类知识蒸馏(NCKD)。重新制定使我们能够独立研究这两个部分的影响。

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

        NCKD 只考虑非目标逻辑之间的知识。有趣的是,我们凭经验证明,仅应用 NCKD 可以获得与经典 KD 相当甚至更好的结果,表明非目标逻辑中包含的知识至关重要,这可能是突出的“暗知识”。

        对于来自t类的训练样本,分类概率定义为 p= [p_1,p_2,...,p_t,p_C] 其中 p_i 为第i个类别的概率,C为类别总数。z_i为第i类的对数。

         为了区分与目标类相关和不相关的预测,我们定义了以下符号。b = [p_t,p_{/t}]表示目标类 p_t 和所有其他非目标类p_{/t}的二元概率。

         \hat{p}_i 被定义为独立的非目标类之间的概率。\hat{p}_i = p_i / p_{/t}

        以下是DKD算法的伪代码:

实验结果

 

启发

 能否将这种模式的知识蒸馏应用到模态缺失和不缺失的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值