必备技能 | YOLOv6中的用Channel-wise Distillation进行的量化感知训练来自哪里?

简介: 必备技能 | YOLOv6中的用Channel-wise Distillation进行的量化感知训练来自哪里?

35ad5531f2c3ab154db2e8feb72ce444.png

知识蒸馏 (KD) 已被证明是一种用于训练紧凑密集预测模型的简单有效的工具。轻量级学生网络通过从大型教师网络转移的额外监督进行训练。大多数先前用于密集预测任务的 KD 变体在空间域中对齐来自学生和教师网络的激活图,通常通过标准化每个空间位置上的激活值并最小化逐点和/或成对差异。

与之前的方法不同,这里建议对每个通道的激活图进行归一化以获得Soft概率图。通过简单地最小化两个网络的通道概率图之间的 Kullback-Leibler (KL) 散度,蒸馏过程更加关注每个通道的最显著区域,这对于密集预测任务很有价值。

作者对一些密集的预测任务进行了实验,包括语义分割和目标检测。实验表明提出的方法大大优于最先进的蒸馏方法,并且在训练期间需要更少的计算成本。特别是,在 COCO 数据集上的 mAP 中将 RetinaNet 检测器(ResNet50 主干)提高了 3.4%,在 Cityscapes 数据集上的 mIoU 中将 PSPNet(ResNet18 主干)提高了 5.81%。

1、简介

密集预测任务是计算机视觉中的一组基础任务,包括语义分割和目标检测。这些任务需要学习强大的特征表示,以便在像素级别理解复杂的场景。因此,最先进的模型通常需要很高的计算成本,这使得它们难以部署到移动设备上。因此,为密集预测任务设计的紧凑网络引起了很多关注。


此外,在以前的工作中已经使用知识蒸馏(KD)研究了有效训练轻量级网络。紧凑型网络在大型教师网络的监督下进行训练,可以获得更好的性能。提出了开创性的工作并进行了深入研究,主要用于图像分类任务。


密集预测任务是逐像素预测问题,比图像级分类更具挑战性。以前的研究发现,直接将分类中的KD方法转移到语义分割中可能不会产生令人满意的结果。严格对齐教师和学生网络之间的逐点分类分数或特征图可能会实施过于严格的约束并导致次优解决方案。

acb5f11412bc9267389b19588570b42b.png

最近的工作注重加强不同空间位置之间的相关性。如图 2(a) 所示,每个空间位置上的激活值被归一化。然后,通过聚合不同空间位置的子集来执行一些特定于任务的关系,例如成对关系和类间关系。这种方法在捕获空间结构信息方面可能比逐点对齐更有效,并可以提高学生网络的性能。然而,激活图中的每个空间位置对知识迁移的贡献是相同的,这可能会带来来自教师网络的冗余信息。


在这项工作中,通过对密集预测任务的每个通道中的激活图进行归一化来提出一种新的通道知识蒸馏,如图 2(b) 所示。然后,最小化教师和学生网络之间的归一化通道激活图的不对称 Kullback-Leibler (KL) 散度——它被转换为每个通道的分布。


在图 2(c) 中展示了通道分布的示例。每个通道的激活倾向于编码场景类别的显著性。对于每个通道,引导学生网络更加注意模拟具有显著激活值的区域,从而在密集预测任务中实现更准确的定位。例如,在目标检测中,学生网络更注重学习前景目标的激活。

最近的一些作品利用了通道中包含的知识。通道蒸馏提出将每个通道中的激活转换为一个聚合标量,这可能有助于图像级分类,但空间聚合会丢失所有空间信息,因此不适合密集预测。其他工作,如 MGDChannel exchangeCSC,显示了 channel-wise 信息的重要性。MGD 将教师通道与学生通道匹配,并将其作为作业问题解决。通道交换使用融合模块在各种模式的子网之间动态交换通道。


作者实验表明,每个通道的简单归一化操作可以大大改善基线空间蒸馏。所提出的通道蒸馏很简单,很容易应用于各种任务和网络结构。


主要贡献总结如下:

• 与现有的空间蒸馏方法不同,本文为密集预测任务提出了一种新颖的通道蒸馏范式,方法简单而有效。

• 所提出的通道蒸馏显著优于用于语义分割和目标检测的最先进的 KD 方法。

• 在语义分割和目标检测任务上展示了4个具有各种网络结构的基准数据集的一致改进,证明了方法是通用的。

2、相关方法

大多数在知识蒸馏方面的工作重点是分类任务。在这里的工作旨在研究高效的蒸馏方法来进行密集的预测,而不是天真地应用像素蒸馏,如分类中所做的那样。

2.1、语义分割的知识蒸馏

probability loss and consistency loss论文中作者构建了一个局部相似性图,以最大程度地减少教师和学生网络之间的分段边界信息的差异,其中中心像素和8-邻居像素之间的欧几里得距离用作传递的知识。

刘等提出了两种捕获像素之间结构化信息的方法,包括像素之间的成对相似性和歧视者捕获的整体相关性。

2.2、目标检测知识蒸馏

许多方法发现,区分前景和背景区域以进行目标检测很重要。模仿学生网络 RPN 内部的特征图通过L2损失与教师网络相似,并发现直接应用像素损失的特征图可能会损害目标检测的性能。

Wang等人可以在物体 Anchor 位置附近提炼细粒度特征。Zhang和Ma注意生成掩模,以区分前景和背景,取得了很好的效果。相反,作者这里softly align  channel-wise 激活,以区分前景和背景区域。

2.3、Channel-wise knowledge

最近的一些作品还注意每个通道中包含的知识。周等人计算每个通道中激活的平均值,并在分类中对每个通道的加权差对齐。CSC计算所有空间位置之间的成对关系以及传输知识的所有通道。通道交换提出每个通道中包含的信息都是通用的,可以在不同的方式上共享。

3、本文方法

3.1、空间蒸馏

现有的 KD 方法通常在空间位置使用点对齐或对齐结构化信息,可以表达为:

42a552325cf77c3eaeab10fe0b7b22b9.png

在这里,任务损失1675254402090.png仍在应用,Y 是 GT 标签。例如,Cross-entropy loss通常用于语义分割。通过稍微滥用符号,1675254429954.png分别代表学生和教师网络的逻辑或内部激活。这里α是平衡损失项的参数。标记1675254453715.png表示老师和学生网络。在表1中列出了代表性的空间蒸馏方法。

77249125c1a64810477b8565e3366565.png

这些方法的简要概述如下:

  • 注意力转移(AT)使用注意力Mask将特征图挤压到单个通道进行蒸馏。
  • 像素的损失直接与点级别的概率保持一致。
  • 局部亲和力是通过中心像素及其8个邻居像素之间的距离计算的。
  • 成对亲和力用于传递像素对之间的相似性。计算每个像素的特征及其相应的类原型之间的相似性,以迁移结构知识。
  • 整体损失使用对抗方案来对齐两个网络的特征图之间的高阶关系。

请注意,最后四个术语考虑像素之间的相关性。如表1所示,现有的KD方法都是所有空间蒸馏方法。所有这些方法将空间位置的N通道激活值视为要操作的特征向量。

3.2、通道蒸馏

为了更好地利用每个通道中的知识,作者构造了对教师和学生网络之间相应通道的轻度激活。为此,首先将通道的激活转换为概率分布,以便可以使用诸如 KL 差异之类的概率距离度量测量差异。如图2(c)所示,不同通道的激活倾向于编码输入图像的场景类别的显着性。此外,训练的语义分割教师网络显示了每个通道的明确类别Mask的激活图(预期),如图1的右侧所示。指导学生向训练好的老师学习知识。

将老师和学生网络表示为T和S,而T和S的激活图分别为1675254490789.png。通过通道蒸馏的损失可以像一般形式一样配制:

c6d94051c3fd5177929a4eff385bef57.png

在这里,用于将激活值转换为概率分布,如下:

8e6d5818fcb32c063f8e3e892d41ca6d.png

其中c = 1,2,...,c 为通道索引;用于索引通道的空间位置。T 是一个超参数(温度)。如果使用较大的t,则概率变得更柔和,这意味着将重点放在每个通道的更广泛的空间区域上。通过应用SoftMax归一化,消除了大型网络和紧凑网络之间的幅度尺度的影响。这种归一化对 KD 有帮助。如果教师和学生之间的通道数量不匹配,则使用 1×1 卷积层来调整学生网络的通道数量。1675254516011.png评估教师网络和学生网络的通道分布之间的差异。使用 KL 散度:

dd52ac62f5e08b16ecf8cc418bd2a233.png

KL 散度是一个非对称度量。从方程(4)可以看出,如果1675254533037.png 很大,那么 应该和 1675254533037.png一样大以最小化KL的散度。否则,如果 1675254533037.png非常小,则KL散度较少注意最小化1675254533037.png。因此,学生网络在前景显著性中往往产生相似的激活分布,而教师网络背景区域对应的激活对学习的影响较小。这里假设 KL 的这种不对称性有利于 KD 的密集预测任务的学习。

4、实验

4.1、消融实验

1、通道蒸馏的有效性

归一化通道的概率图和不对称 KL 差异在蒸馏方法中起重要作用。这里使用4种不同变体进行实验,以显示表4中提出的方法的有效性。所有蒸馏方法都应用于与输入相同的作用图。

  • “PI”代表像素级知识蒸馏,该蒸馏使每个空间位置的激活归一化。
  • “L2 W/O NORM”表示直接最大程度地减少了来自两个网络的特征图之间的差异,这两个网络都考虑了所有通道中所有位置的差异。
  • “Bhat”是Bhattacharyya距离,这是对称分布测量。它与每个通道中的差异对齐。

1ec584effaf3ca25c6556c5807fb160b.png

从表4中可以看到测量归一化通道差异的不对称 KL 差异可实现最佳性能。请注意,由于 KL 差异是不对称的,因此无法互换学生和老师的意见。通过更改 KL 差异中输入的顺序进行实验,并且训练不会收敛。

2、温度参数和损失权重的影响

通过在不同的损失权重α下调整温度参数t来进行实验以改变通道概率图。实验是在逻辑图上进行的。结果如图3所示。所有结果都是三次的平均值。损失权重设置为1、2、3和t∈[1、5]。如果增加T,则分布往往会Soft。

df260dade836662ff0fed39861c0901c.png

从图中可以看到,一个Softer的概率图可能有助于知识的蒸馏。此外,在一定的范围内,性能是稳定的。如果T设置为较小,性能似乎会下降。在这种情况下,该方法只关注有限的显著像素。当T = 4和α = 3在PSPNet18上获得了最好的性能。

4.2、SOTA对比

1、语义分割

2b0eb9fa7afad2c7aefa5f1c4e613fa1.png

2、目标检测

58cf1093446dfba908ce3457a283ea6e.png

5、参考

[1].Channel-wise Knowledge Distillation for Dense Prediction*.

推荐阅读

All are Worth Words | 当 ViT 遇到扩展模型会出现什么样子的火花?Light-YOLOv5 | SepViT + BiFPN + SIoU成就更轻更快更优秀的 YOLOv5 改进算法

连夜卷出 | 超越所有YOLO检测模型,mmdet开源当今最强最快目标检测模型!

相关文章
|
机器学习/深度学习 人工智能 监控
机器视觉:技术原理、应用与未来发展
机器视觉:技术原理、应用与未来发展
|
JSON 算法 vr&ar
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
本文介绍了如何使用COCO评估器通过Detectron2库对目标检测模型进行性能评估,生成coco_instances_results.json文件,并利用pycocotools解析该文件以计算AP、AR、MR和DR等关键指标。
1449 1
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
|
人工智能 算法 Java
AI:互联网程序设计竞赛之蓝桥杯大赛的简介、奖项设置、大赛内容以及蓝桥杯与ACM(ICPC)的四个维度对比之详细攻略
AI:互联网程序设计竞赛之蓝桥杯大赛的简介、奖项设置、大赛内容以及蓝桥杯与ACM(ICPC)的四个维度对比之详细攻略
AI:互联网程序设计竞赛之蓝桥杯大赛的简介、奖项设置、大赛内容以及蓝桥杯与ACM(ICPC)的四个维度对比之详细攻略
|
机器学习/深度学习 网络架构 计算机视觉
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
1122 3
|
机器学习/深度学习 并行计算 算法
YOLOv8改进 | 卷积篇 |手把手教你添加动态蛇形卷积(Dynamic Snake Convolution)
YOLOv8改进 | 卷积篇 |手把手教你添加动态蛇形卷积(Dynamic Snake Convolution)
1854 0
|
9月前
|
存储 弹性计算 应用服务中间件
阿里云服务器新手租用方式完整步骤教程(新版)
阿里云服务器提供自定义租用、一键租用、云市场租用和活动租用四种核心方式,适配不同配置需求、技术能力和预算场景。无论是需要精准配置的专业用户,还是追求快速部署的新手,都能找到合适的租用方案。以下是详细的适用场景和操作流程,助力高效上云。
|
计算机视觉
YOLOv11改进策略【SPPF】| AIFI : 基于Transformer的尺度内特征交互,在降低计算成本的同时提高模型的性能
本文探讨了基于AIFI模块的YOLOv11目标检测改进方法。AIFI是RT-DETR中高效混合编码器的一部分,通过在S5特征层上应用单尺度Transformer编码器,减少计算成本并增强概念实体间的联系,从而提升对象定位和识别效果。实验表明,AIFI使模型延迟降低35%,准确性提高0.4%。
1956 20
YOLOv11改进策略【SPPF】| AIFI : 基于Transformer的尺度内特征交互,在降低计算成本的同时提高模型的性能
|
PyTorch 算法框架/工具
Pytorch学习笔记(六):view()和nn.Linear()函数详解
这篇博客文章详细介绍了PyTorch中的`view()`和`nn.Linear()`函数,包括它们的语法格式、参数解释和具体代码示例。`view()`函数用于调整张量的形状,而`nn.Linear()`则作为全连接层,用于固定输出通道数。
1437 0
Pytorch学习笔记(六):view()和nn.Linear()函数详解

热门文章

最新文章