大数跨境
0
0

还能将知识蒸馏理解为正则化?Tf-KD:从标签平滑正则化的角度重新审视知识蒸馏

还能将知识蒸馏理解为正则化?Tf-KD:从标签平滑正则化的角度重新审视知识蒸馏 极市平台
2023-01-07
0
↑ 点击蓝字 关注极市平台
作者丨科技猛兽
编辑丨极市平台

极市导读

 

作者从标签平滑正则化的角度和 KD 关系的角度提出以下两个论点:KD 是一种可学习的标签平滑正则化。标签平滑正则化为 KD 提供了一个虚拟的 Teacher 模型。基于这些分析,本文进一步提出了一种无教师知识蒸馏方法,并在分类任务上验证了其性能。>>加入极市CV技术交流群,走在计算机视觉的最前沿

本文目录

1 把知识蒸馏理解为正则化:从标签平滑正则化的角度重新审视知识蒸馏
(来自 NUS,华为诺亚方舟实验室)
1.1 Tf-KD 论文解读
1.1.1 背景和动机
1.1.2 探索性实验
1.1.3 标签平滑正则化和知识蒸馏
1.1.4 无教师知识蒸馏策略
1.1.5 实验结果

1 把知识蒸馏理解为正则化:从标签平滑正则化的角度重新审视知识蒸馏

论文名称:Revisiting Knowledge Distillation via Label Smoothing Regularization

论文地址:

https://arxiv.org/pdf/1909.11723

本文发现:

  • 除了 Teacher 可以帮助提高 Student 性能以外,Student 也可以通过逆向 KD 提高 Teacher 性能
  • 一个缺乏训练的,准确度远低于学生的 Teacher 模型,仍然可以显著提高 Student 模型。

为了解释这些现象,作者从标签平滑正则化的角度和 KD 关系的角度提出以下两个论点:

  1. KD 是一种可学习的标签平滑正则化。
  2. 标签平滑正则化为 KD 提供了一个虚拟的 Teacher 模型。

基于这些分析,本文进一步提出了一种无教师知识蒸馏 (Tf-KD) 方法。Tf-KD 可以直接用于训练深度神经网络。在没有任何额外计算成本的情况下,Tf-KD 在 ImageNet 上比建立好的基线模型提高了 0.65%,优于标签平滑正则化。

1.1.1 背景和动机

知识蒸馏旨在将知识从一个 Teacher 转移到另一个 Student 模型。关于 KD 的一种常见观点是:Teacher 模型的 soft target 的不同类别之间相似度信息的 "dark knowledge" 可以帮助增强学生模型的性能。作者在本文中通过以下几个探索性实验来检查 (并反对) 这一观点,并指出:教师模型中的 soft target 为学生模型提供的有效正则化的作用,才是真正重要的。

1.1.2 探索性实验

首先作者做了两个探索性实验:

  1. Reversed Knowledge Distillation (Re-KD): 让 Student 模型教 Teacher 模型 (通过转移 soft target)。
  2. Defective Knowledge Distillation (De-KD): 让一个缺乏训练的,准确度远低于学生的 Teacher 模型,来教 Student 模型。

按照上面的常见观点,我们应该得到下面的结论:

  1. Teacher 模型不会通过 Student 的训练得到显著的增强。因为性能较弱的 Student 模型太弱,不能提供类别之间可靠的相似度信息。
  2. 缺乏训练的 Teacher 模型也不会增强学生模型的性能。因为缺乏训练的 Teacher 模型不能提供类别之间可靠的相似度信息。比如,假设 Teacher 的准确率只有10%,那么学生将从其软目标中学习,误差为 90%,因此 Student 不应该得到提高,甚至表现会更差。

但是,作者通过大量实验观察到了相互矛盾的结果。实验结果如下。

Re-KD 实验

在图1的 Table.1 中,通过向 Student 学习,Teacher 的性能得到了显著的改善,尤其是 ResNet18 和 ResNet50 的 Teacher 模型。两位教师在以 MobileNetV2 和 ShuffleNetV2 作为 Student 训练时,性能提升的幅度均超过1.1%。同样也可以在 CIFAR10 和 Tiny-ImageNet 上观察到类似的结果。可以看到,在大多数情况下,Normal KD 的效果更好。需要注意的是,Re-KD 以教师的准确率作为基线准确率,比 Normal KD 要高很多。然而,在某些情况下,我们可以发现 Re-KD 优于 Normal KD。例如,在图1的 Table.2 中,通过 MobileNetV2 的教学,学生模型只能提高 0.31%,但是通过向学生学习,教师 MobileNetV2 可以提高 0.92%。

图1:Re-KD 实验结果

Re-KD 实验结论: 除了 Teacher 可以帮助提高 Student 性能以外,优秀的 Teacher 也可以通过向较弱的 Student 学习而显著增强。

De-KD 实验

作者在 CIFAR100 和 Tiny-ImageNet 上进行 De-KD 实验。作者采用 MobileNetV2 和 ShuffleNetV2 作为学生模型,ResNet18, ResNet50 和 ResNeXt29 (8×64d) 作为教师模型。Poorly-Trained 的教师被1个 Epoch (ResNet18) 或50个 Epoch (ResNet50 和 ResNeXt29) 训练,性能非常差。例如 ResNet18 在经过1个 Epoch 训练后,在 CIFAR100 上的准确率仅为 15.48%,在 Tiny-ImageNet 上的准确率为 9.41%。ResNet50 在经过50个Epoch (总共200个 Epoch) 的训练后,在 CIFAR100 和 Tiny-ImageNet 上的准确率分别为 45.82% 和 31.01%。

在图2的 Table.4 中,我们可以观察到,即使是一个缺乏训练的,准确度远低于学生的 Teacher 模型,仍然可以显著提高 Student 模型。比如以1 Epoch 训练的 ResNet18 模型作为 Teacher (准确率只有15.48%),MobileNetV2 和 ShuffleNetV2 的性能可以分别提升 2.27% 和 1.48%。对于 Poorly-Trained 的 ResNeXt29 (准确率为51.94%),作者发现 ResNet18 和 MobileNetV2 仍然可以分别提高 1.41% 和 3.14%。

图2:De-KD 实验结果

总结以上两个实验的结果为:

  1. 除了 Teacher 可以帮助提高 Student 性能以外,Student 也可以通过逆向 KD 提高 Teacher 性能
  2. 一个缺乏训练的,准确度远低于学生的 Teacher 模型,仍然可以显著提高 Student 模型。

这样有趣的结果促使作者

Re-KD 和 De-KD 的反直觉结果促使作者重新思考 KD 中的 "dark knowledge" ,作者认为它不仅仅包含相似信息。一个模型缺乏足够的相似度信息,仍然可以提供 "dark knowledge" 来增强其他模型。为了解释这一点,作者将 KD 解释为一个正则化项 (Regularization Term)。作者从标签平滑正则化 (Label Smoothing regularization, LSR) 的角度重新审视 KD 的过程。

1.1.3 标签平滑正则化和知识蒸馏

然后作者从理论上分析了 KD 和 LSR 之间的关系:

  1. 对于标签平滑正则化 (LSR),作者把它分成了2项:即:一个 Ground-Truth 分布 (one-hot label) + 一个虚拟的教师模型,该模型提供了一个均匀分布来教模型

2. KD 也有相对应的两项。即:一个 Ground-Truth 分布 (one-hot label)+ 一个教师模型分布。其中 KD 的第二项的分布来自教师模型,但 LSR 的第二项的分布是人工设计的。也就是说,KD 其实相当于一个可学习的标签平滑正则化过程。这种关系可以解释上述违反直觉的结果。

具体而言,对于标签平滑正则化:

给定学生模型的预测结果为: , 其中, 是模型 对于第 个类别的输出。令真值标签的分布为 , 模型 可以通过最小化 CE Loss 来训练:

在 LSR 中, 它使修正的标签分布 和网络输出 之间的交叉熵最小化, 其中, 是 标签平滑正则化的结果:

它是 和均匀分布 的混合, 权重为 是均匀分布, 即 。在光滑标记上定义的交叉熵损失 为:

式中, 是 KL 散度, 是分布 的熵, 对于固定的 uniform distribution 而言是个常 数。

因此,以上损失函数可以写为:

对于知识蒸馏:

假设学生模型 的输出是 , 教师模型的输出预测是, 其中 是教师网络的输出, 是软化 的温度。知识蒸馏背后的思想是通过最小化学生和教师预测之间的交叉嫡损失和 KL 散度:

对比式3和式4, 可以发现两个损失函数的形式十分相似。唯一的区别是, 4式中的 是来自教师模型的分布, 而3式中的 是预定义好的均匀分布。从这个角度来看, 可以将 KD 视为 LSR 的 一个特殊情况, 其中分布是可学习的, 而不是预定义的。

因为 , 也就是两个分布的 KL 散度可以看成是互信息熵和其中一个分布的樀的差值, 而 是与学生模型参数无关的项 (因为教师模型是固定的), 因此作者给4式再加一项 之后变成:

其中, 如果再设置温度 , 就有 , 其中 为:

对比6式和1式,不难发现,KD 是 LSR 的一种特殊情况 (即把 LSR 的均匀分布改为了一个由教师模型输出的可学习的分布)。

通过对两个损失函数的比较,可以总结出知识蒸馏与标签平滑正则化之间的关系如下:

  • 知识蒸馏是一种可学习的标签平滑正则化,其功能与后者类似,即对模型的标签进行正则化。
  • 标签平滑是一种特别的知识蒸馏,它可以视为是 Teacher 的输出是均匀分布,然后温度 \tau=1\tau=1 的特殊情况。
  • 温度越高,教师在知识蒸馏过程中的软目标分布越类似于标签平滑的均匀分布。

至此,Re-KD 和 De-KD 的实验结果就可以得到解释了。无论是 Student 教 Teacher,还是 Poorly-Trained 的 Teacher 教 Student,它们都为被教的模型提供了正则化。

1.1.4 无教师知识蒸馏策略

如 1.1.3 节所述,教师模型中的 "dark knowledge" 更多的是一个正则化,而不是类别间的相似度信息。因此,作者使得一个简单的模型替换教师模型的输出分布,提出了一个新的无教师知识蒸馏 (Tf-KD) 框架,它有两种实现方式。

Self-Training KD

Tf-KD 方法的第1个实现是学生模型的 self-training knowledge distillation, 简写为 Tf-KD self。具体而言, 作者首先以正常的方式训练一个 Student 模型, 然后用这个预训练的 Student 模型来提供 Soft target 来训练自己。给定一个 Student 模型 , 作者将其预训练模型记为 , 然后去最小化 之间对数的 KL 散度。Tf-KD self 训练模型 的损失函数为:

式中, 分别为 的输出概率, 为温度, 为权重。

Manually Designed Regularization

Tf-KD 方法的第2个实现是手工设计一个 100% 准确率的 Teacher。在1.1.3节中,作者揭示了 LSR 是一个具有随机精度的虚拟教师模型。所以,如果我们设计一个准确率更高的老师,我们可以假设它会给学生带来更多的进步。作者结合 KD 和 LSR 建立一个简单的教师模型,该模型将输出分布如下:

其中, 是类的总数, 是正确的标签, 是正确类的正确概率。总是设置 , 所以正确类别的概率远远高于错误类别的概率, 并且手工设计的教师模型具有 的准确率。

这种方法可以简写为 Tf-KD ,目标函数是:

其中, 是用于软化 的温度系数, 设置高温 , 使该虚拟教师输出一个软概率, 从而获得 LSR 的平滑特性, 如下图3所示可以看到手工设计的教师的分布在高温时很接近均匀分布。

图3:手工设计的教师的分布和均匀分布

1.1.5 实验结果

Self-Training KD 实验结果

CIFAR100 实验结果:Baseline 模型包括 MobileNetV2, ShuffleNetV2, GoogLeNet, ResNet18, DenseNet121 和 ResNeXt29(8×64d),训练 200 epochs,使用 SGD 优化器,momentum 设为 0.9,weight decay 为 5e-4。

如下图4所示为六种模型的精度。可以看出,Tf-KD self 始终优于 Baseline。例如,ResNeXt29 作为一个参数为34.52M 的模型,通过自正则化使自身提高了 1.05% 的精度。比如使用 ResNet50 来教 ReseNet18,Student 模型有 1.19% 的提高,但本文方法在没有使用任何更强的教师模型的情况下实现了 1.23% 的提高。

图4:CIFAR100 实验结果

Tiny-ImageNet 和 ImageNet 实验结果:分别如图5和6所示。可以看出 Tf-KD self持续改善了基线模型,并与正常 KD 取得了相当的性能提升。

图5:Tiny-ImageNet 实验结果

图6:ImageNet 实验结果

Manually Designed Regularization 实验结果

对于 Tf-KD 的所有实验, 作者采用与 Tf-KD self 相同的实现设置, 除了使用虚拟输出分布作为正则化项。

CIFAR100 和 Tiny-ImageNet 实验结果:将正确分类的概率设为 。实验结果分别如图7和8所示, 可以观察到, 在不使用教师, 只添加正则化项的情况下, Tf-KD 在 CIFAR100 和 TinylmageNet 上的表现与Normal KD 相当。

图7:CIFAR100 实验结果

图8:Tiny-ImageNet 实验结果

ImageNet 实验结果:作者采用温度 , 并且用四个基线模型测试 Tf-KD reg: ResNet18, ResNet50, DenseNet121 和 ResNeXt101(32x8d)。实验结果如下图9所示。

图9:ImageNet 实验结果

Tf-KD reg 在 ImageNet 上将 ResNet50 的精度提高了 0.65%。即使是对于一个拥有 88.79M 参数的ResNeXt101(32x8d), Tf-KD reg 使用手工设计的教师输出分布也能实现 0.48% 的改进。

比较 Tf-KD self 和 Tf-KD 两种方法, 可以发现 Tf-KD self 在小数据集 (CIFAR100) 中表现更好, 而 Tf-KD 在大数据集 (ImageNet) 中表现稍好。

总结

关于 KD 的一种常见观点是:Teacher 模型的 soft target 的不同类别之间相似度信息的 "dark knowledge" 可以帮助增强学生模型的性能。作者在本文中通过以下几个探索性实验来检查 (并反对) 这一观点,并指出:教师模型中的 soft target 为学生模型提供的有效正则化的作用,才是真正重要的。作者从标签平滑正则化的角度和 KD 关系的角度提出以下两个论点:KD 是一种可学习的标签平滑正则化。标签平滑正则化为 KD 提供了一个虚拟的 Teacher 模型。基于这些分析,本文进一步提出了一种无教师知识蒸馏方法,并在分类任务上验证了其性能。

公众号后台回复“CNN综述”获取67页综述深度卷积神经网络架构

极市干货

技术干货损失函数技术总结及Pytorch使用示例深度学习有哪些trick?目标检测正负样本区分策略和平衡策略总结

实操教程GPU多卡并行训练总结(以pytorch为例)CUDA WarpReduce 学习笔记卷积神经网络压缩方法总结

极市平台签约作者#


科技猛兽

知乎:科技猛兽


清华大学自动化系19级硕士

研究领域:AI边缘计算 (Efficient AI with Tiny Resource):专注模型压缩,搜索,量化,加速,加法网络,以及它们与其他任务的结合,更好地服务于端侧设备。


作品精选

搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了
用Pytorch轻松实现28个视觉Transformer,开源库 timm 了解一下!(附代码解读)
轻量高效!清华智能计算实验室开源基于PyTorch的视频 (图片) 去模糊框架SimDeblur



投稿方式:
添加小编微信Fengcall(微信号:fengcall19),备注:姓名-投稿
△长按添加极市平台小编

觉得有用麻烦给个在看啦~  

【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读3.2k
粉丝0
内容8.2k