查看原文
其他

ICCV 2023 | 从蒸馏到自蒸馏:通用归一化损失与定制软标签

PaperWeekly 2024-01-16


©作者 | 美索不达米亚平原

本文介绍我们 ICCV 2023 关于知识蒸馏的工作: From Knowledge Distillation to Self-Knowledge Distillation: A Unified Approach with Normalized Loss and Customized Soft Labels, 文章包括了对 logit 蒸馏损失计算方法的改进,并基于改进后的公式提出了定制的软标签,用于实现自蒸馏。现在代码已经开源,欢迎大家使用。

论文标题:

From Knowledge Distillation to Self-Knowledge Distillation: A Unified Approach with Normalized Loss and Customized Soft Labels

论文链接:

https://arxiv.org/abs/2303.13005

代码链接:

https://github.com/yzd-v/cls_KD



简介

原生蒸馏使用教师的logits作为软标签,与学生的输出计算蒸馏损失。自蒸馏则试图在缺乏教师模型的条件下,通过设计的额外分支或者特殊的分布来获得软标签,再与学生的输出计算蒸馏损失。二者的差异在于获得软标签的方式不同。

这篇文章旨在,1)改进计算蒸馏损失的方法,使得学生能更好地使用软标签。2)提出一种通用的高效简单的方法获得更好的软标签,用于提升自蒸馏的性能和通用性。针对这两个目标,我们分别提出了Normalized KD(NKD)和Universal Self-Knowledge Distillation (USKD)。



方法与细节

1)NKD

表示 label 的值, 分类任务采用交叉熵作为模型训练的原损失:
原生的蒸馏损失表示为:
蒸馏损失的第一项和模型原损失一致,均是关于目标类别 target。而蒸馏损失的第二项则是交叉樀 的形式,交叉樀损失的优化目标是使 接近,观察蒸馏损失的第二项可知,
在训练中,学生输出的目标类别概率 是在不断变化的,无法恰好与 相等,这使得两个 non-target logits 的和不等,阻碍了 变得接近。因此我们针对两个 non-target logits 进行归一化,强制使他们相等,提出了 Normalized KD,用于更好地使用软标签:

2)USKD

根据 NKD 的公式,我们从 target 和 non-target 两个角度来人工设计软标签,以实现自蒸馏。首先针对 target 部分,教师输出的 在训练中是稳定的,并且反映了图片的分类难度。而在自蒸馏中,我们能使用的只有学生输出的 ,它在训练前期的值很小,并且不同样本间值的差异较小,此外随着模型的训练, 变化很大。
为了使得其向 接近,我们首先对其进行平方,以扩大样本间的值差异,接着我们提出了一种平滑方法来控制其在不同训练阶段的相对稳定,并获得 soft target label,用于计算 NKD 的第一部分 target 损失:
针对第二部分 soft non-target labels,其组成可以分为不同类别的顺序分布以及值的分布。首先针对顺序,我们提出对 CNN 模型的第三个 stage 输出或者 ViT 模型的中间层 token 进行分类,用一个小的权重对这个分类进行弱的监督,得到 weak logit ,再将 归一化后相加,得到的顺序作为最终 non-target label 的顺序
对于值的分布,我们采用了 Zipf's LS 的做法,并利用 进行排序,获得 soft non-target labels,用于计算 NKD 的第二部分 non-target 损失:



实验
我们首先在 CIFAR-100 和 ImageNet 上对 NKD 进行了验证,学生更好地利用了老师的软标签 soft labels,获得了更好的表现。

对于自蒸馏,我们也在 CIFAR-100 和 ImageNet 上对 USKD 进行了验证,并测试了自蒸馏所需要的额外训练时间,模型在很少的时间消耗下便获得了可观的提升。

我们的 NKD 和 USKD 同时适用于 CNN 模型与 ViT 模型,因此我们还在更多模型上进行了验证。


代码部分

我们已将代码开源:
https://github.com/yzd-v/cls_KD

开源代码基于 MMClassification,我们也在其中放了对应的模型,并且实现了一些其他文章,比如 DKD,MGD,SRRL,WSLD,ViTKD,欢迎大家试用。

此外,我们对 MMClassification 的 0.x 大版本与 1.x 大版本进行了蒸馏环境的适配,供大家交流学习。


更多阅读



#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧


·
·
·

继续滑动看下一个

ICCV 2023 | 从蒸馏到自蒸馏:通用归一化损失与定制软标签

向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存