前言 本文聚焦于知识蒸馏的近期进展。
本文转载自北邮 GAMMA Lab
作者 | 郭雨心
仅用于学术分享,若侵权请联系删除
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。
【CV技术指南】CV全栈指导班、基础入门班、论文指导班 全面上线!!
引言
知识蒸馏旨在通过从较大模型(也称为教师模型)中提取信息来训练较小的模型(也称为学生模型)。这种方法的主要动机是使小模型能够接近大模型的性能,从而减少计算需求并提高效率。在知识蒸馏技术最初被提出时,主要应用于模型压缩的场景。
与此同时,我们也看到一些研究开始利用知识蒸馏技术来提高模型的性能。这些工作的主要动机是使用大的模型的知识来提升小模型的精度,从而提高模型在特定任务上的性能。
然而,随着大模型的出现以及硬件能力的不断提升,我们看到一个新的趋势,即研究者更倾向于使用大模型来追求更高的精度。这使得模型压缩似乎变得不那么重要,因为现在的硬件能力已经可以支持大模型的运行。这自然引发了一个问题:知识蒸馏是否还会继续重要?
但是,虽然大模型现在已经非常普遍,但在很多实际场景中,比如在边缘计算或移动设备上,资源仍然是有限的,模型的大小和运行效率仍然是重要的考虑因素。此外,知识蒸馏也不仅仅关注模型的大小,它更多地关注如何通过教师模型来提升学生模型的性能,这个问题在大模型或小模型中都是存在的。因此,知识蒸馏仍然是一个值得研究的重要主题。
[NeurIPS 2022] Improved Feature Distillation via Projector Ensemble
现有的知识蒸馏方法大致可以分为基于logit的、基于特征的和基于相似性的蒸馏。最新的研究表明,与其他两种方法相比,基于特征的方法通常能够更好地蒸馏学生网络。尽管特征蒸馏的表现出色,但缩小学生和教师的特征空间之间的差距仍然具有挑战性。
这篇文章探讨了特征映射器在学生和教师模型之间的作用。过去的特征蒸馏方法主要关注损失函数的设计和要蒸馏的层的选择,而特征映射器的影响却鲜少被研究。作者发现,从学生到教师的特征空间的特征映射过程在特征蒸馏中起着关键作用,并且可以通过重新设计来提高性能。添加映射器有助于在最小化学生和教师之间的特征差异时缓解过拟合问题。作者观察到,即使学生和教师的特征维度相同,学生网络也能从映射器中受益。没有映射器的学生网络的训练可以被视为一种多任务学习过程,即在同一时间内达到分类的判别特征提取和学生与教师之间的特征匹配。他们假设并通过实验证明,如果没有映射器,学生网络倾向于过拟合教师的特征分布,即使他们的结构和权重初始化不同。这导致了学生深层特征的质量下降,这些特征最终用于分类。另一方面,添加映射器可以将这两个学习任务解耦,并帮助学生网络更好地专注于主要的特征提取任务,同时仍然能够通过映射器利用教师的特征作为指导。此外,鉴于为特征蒸馏添加映射器的有效性,作者提出了一种映射器集合,以进一步改善性能。
[CVPR 23] Masked Autoencoders Enable Efficient Knowledge Distillers
这篇论文探讨了如何将知识从大型但复杂的Vision Transformers (ViTs)转移到更小的模型,与之前的知识蒸馏工作不同,这里考虑的教师模型是一个预训练模型,其预测并不一定揭示了类别之间的细粒度关系,因此,将教师模型和学生模型之间的soft/hard logits对齐可能不再有效。作者发现,基于Masked Autoencoder (MAE)构建的整个蒸馏框架可以高效地生成高性能的学生模型。关键的设计有两点:一是让编码器专门处理一小部分可见的patch,并使用轻量级的解码器进行像素重建;二是尝试匹配中间的特征表示,而不是对齐logits。作者为所提出蒸馏框架起名为DMAE,与教师模型是精调模型的传统知识蒸馏框架相比,DMAE更加高效,能够训练出更强大的学生模型。例如,设ViT-B为学生模型,DMAE能够大幅提升性能,达到84.0%的ImageNet精度,而且训练成本更低。DMAE甚至允许在极度掩蔽的图像下进行稳健的训练,这对未来有效利用预训练模型的研究可能会有所帮助。
[ICLR 23] Practical Guidelines for ViT feature knowledge distillation
最近,视觉变换器(ViT)在图像分类上取得了巨大成功,激发了各种变换器的发展。与基于CNN的模型相比,基于ViT的方法通常需要更多的参数,但能取得更好的性能,因此使用KD提升小型ViT模型的性能具有重要价值。这篇论文探讨了如何将知识蒸馏(KD)应用于基于ViT的模型。知识蒸馏利用教师模型的输出作为软标签来监督学生模型,从而提升了轻量级模型的性能,而无需增加额外的推理成本。虽然KD在卷积神经网络(CNN)模型中已经得到了广泛的应用,但在基于ViT的模型中的应用仍然存在挑战。这主要是因为大部分的KD方法专门为基于CNN的模型设计,许多这些方法在中间特征上工作,但是由于ViT和CNN之间的架构差异较大,使得这些方法无法直接应用于基于ViT的模型。作者进行了一系列的实验,以研究不同的蒸馏方法、不同的层级和不同的模块对基于ViT的模型蒸馏的影响,并提出了三个实用的指导原则。基于这些原则,作者提出了一种名为ViTKD的非平凡的基于特征的ViT蒸馏方法,并在实验中验证了其有效性。
[CVPR 22] Cross-Image Relational Knowledge Distillation for Semantic Segmentation.
这篇文章讨论了在计算机视觉中的一个关键挑战任务:语义分割,这是一种将输入图像中的每个像素与个体类别标签进行分类的技术,其应用广泛,包括自动驾驶、虚拟现实和机器人。尽管像DeepLab,PSPNet和OCRNet等先进的分割网络取得了显著的性能,但它们通常需要高计算成本,这使得它们难以在资源有限的移动设备上部署。因此,提出了一系列轻量级分割网络,如ESPNet,ICNet和BiSeNet,以及模型压缩技术,主要包括量化,剪枝和知识蒸馏(KD)。本文探讨了使用KD在语义分割任务中提高紧凑学生网络性能的可能性。
由于严格地对齐教师和学生网络之间的粗略特征图可能会导致负约束并忽略像素之间的结构化上下文,因此已有的基于分类的KD方法可能无法处理密集预测任务并达到理想的性能。为了处理这个问题,最近的工作尝试提出专门的KD方法,这些方法大多关注在空间像素位置之间的关联或依赖性,因为分割需要结构化的输出。
基于这个动机,本文提出了交叉图像关系知识蒸馏(CIRKD)用于语义分割。其核心思想是构建全局像素关系作为有意义的知识。良好的预训练教师网络通常能生成一个结构良好的像素嵌入空间,并比学生网络捕获更好的像素关联。因此,本文提出将这些像素关系从教师转移到学生。
具体来说,本文提出了像素到像素的蒸馏和像素到区域的蒸馏以充分利用各种图像之间的结构化关系。CIRKD引导学生网络从教师那里学习训练图像的全局像素结构特性,进一步提高了分割性能。作者在Cityscapes,CamVid和Pascal VOC三个分割基准数据集上进行了评估。实验结果表明,CIRKD优于其他最先进的蒸馏方法,这证明了在语义分割中转移全局像素关系的价值。
[ECCV 22] Masked Generative Distillation
这篇文章介绍了一种新的基于特征的蒸馏方法,称为掩蔽生成蒸馏(Masked Generative Distillation, MGD)。与以往的特征蒸馏方法试图让学生尽可能模仿教师的特性不同,MGD认为并不需要直接模仿教师就可以提高学生特征的表达能力。MGD首先对学生的特征进行随机掩蔽,然后通过一个简单的块,使用被掩蔽的特征生成教师的完整特征。由于在每次迭代中都使用随机像素,所以在整个训练过程中所有像素都会被使用,这意味着特征会更加鲁棒,其表示能力也会得到提升。实验结果显示,MGD能够显著提升包括图像分类、物体检测、语义分割和实例分割等任务的性能,而且还可以与其他基于logit或基于head的蒸馏方法结合,以获得更大的性能提升。
总结
知识蒸馏是一种强大的机器学习技术,旨在通过从一个大型、复杂(教师)模型传递知识到一个较小、简单(学生)模型,以提升后者的性能。这种方法通过用教师模型的输出作为软标签来指导学生模型的学习,已经在许多领域如计算机视觉、自然语言处理中得到了成功的应用。此外,新的研究正在探索如何根据不同任务的特性,比如图像分类、语义分割等,制定特定的知识蒸馏策略,以进一步提高模型的性能和效率。
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。
【技术文档】《从零搭建pytorch模型教程》122页PDF下载
QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。
其它文章
中科院自动化所发布FastSAM | 精度相当,速度提升50倍!!!
大核卷积网络是比 Transformer 更好的教师吗?ConvNets 对 ConvNets 蒸馏奇效
MaskFormer:将语义分割和实例分割作为同一任务进行训练
CVPR 2023 VAND Workshop Challenge零样本异常检测冠军方案
沈春华团队最新 | SegViTv2对SegViT进行全面升级,让基于ViT的分割模型更轻更强
刷新20项代码任务SOTA,Salesforce提出新型基础LLM系列编码器-解码器Code T5+
CVPR最佳论文颁给自动驾驶大模型!中国团队第一单位,近10年三大视觉顶会首例
最新轻量化Backbone | FalconNet汇聚所有轻量化模块的优点,成就最强最轻Backbone
libtorch教程(一)开发环境搭建:VS+libtorch和Qt+libtorch
NeRF与三维重建专栏(三)nerf_pl源码部分解读与colmap、cuda算子使用
NeRF与三维重建专栏(二)NeRF原文解读与体渲染物理模型
BEV专栏(一)从BEVFormer深入探究BEV流程(上篇)
可见光遥感图像目标检测(三)文字场景检测之Arbitrary
AI最全资料汇总 | 基础入门、技术前沿、工业应用、部署框架、实战教程学习
标签:教师,蒸馏,特征,模型,知识,像素,最新进展,学生 From: https://www.cnblogs.com/wxkang/p/17551142.html