首页 > 其他分享 >知识蒸馏最新进展

知识蒸馏最新进展

时间:2023-07-13 16:01:23浏览次数:34  
标签:教师 蒸馏 特征 模型 知识 像素 最新进展 学生

前言 本文聚焦于知识蒸馏的近期进展。

本文转载自北邮 GAMMA Lab

作者 | 郭雨心

仅用于学术分享,若侵权请联系删除

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、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招聘信息。

计算机视觉入门1v3辅导班

【技术文档】《从零搭建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+

可能95%的人还在犯的PyTorch错误

从DDPM到GLIDE:基于扩散模型的图像生成算法进展

CVPR最佳论文颁给自动驾驶大模型!中国团队第一单位,近10年三大视觉顶会首例

最新轻量化Backbone | FalconNet汇聚所有轻量化模块的优点,成就最强最轻Backbone

ReID专栏(二)多尺度设计与应用

ReID专栏(一) 任务与数据集概述

libtorch教程(三)简单模型搭建

libtorch教程(二)张量的常规操作

libtorch教程(一)开发环境搭建:VS+libtorch和Qt+libtorch

NeRF与三维重建专栏(三)nerf_pl源码部分解读与colmap、cuda算子使用

NeRF与三维重建专栏(二)NeRF原文解读与体渲染物理模型

NeRF与三维重建专栏(一)领域背景、难点与数据集介绍

异常检测专栏(三)传统的异常检测算法——上

异常检测专栏(二):评价指标及常用数据集

异常检测专栏(一)异常检测概述

BEV专栏(二)从BEVFormer看BEV流程(下篇)

BEV专栏(一)从BEVFormer深入探究BEV流程(上篇)

可见光遥感图像目标检测(三)文字场景检测之Arbitrary

可见光遥感目标检测(二)主要难点与研究方法概述

可见光遥感目标检测(一)任务概要介绍

TensorRT教程(三)TensorRT的安装教程

TensorRT教程(二)TensorRT进阶介绍

TensorRT教程(一)初次介绍TensorRT

AI最全资料汇总 | 基础入门、技术前沿、工业应用、部署框架、实战教程学习

计算机视觉入门1v3辅导班

计算机视觉交流群

聊聊计算机视觉入门

标签:教师,蒸馏,特征,模型,知识,像素,最新进展,学生
From: https://www.cnblogs.com/wxkang/p/17551142.html

相关文章

  • 基于知识图谱的电影知识问答系统:训练TF-IDF 向量算法和朴素贝叶斯分类器、在 Neo4j 中
    基于知识图谱的电影知识问答系统:训练TF-IDF向量算法和朴素贝叶斯分类器、在Neo4j中查询1.项目介绍训练TF-IDF向量算法和朴素贝叶斯分类器,预测用户文本所属的问题类别使用分词库解析用户文本词性,提取关键词结合关键词与问题类别,在Neo4j中查询问题的答案通过Flask对......
  • 基于GPT搭建私有知识库聊天机器人(四)问答实现
    前文链接:基于GPT搭建私有知识库聊天机器人(一)实现原理基于GPT搭建私有知识库聊天机器人(二)环境安装基于GPT搭建私有知识库聊天机器人(三)向量数据训练在前面的文章中,我们介绍了如何使用GPT模型搭建私有知识库聊天机器人的基本原理、环境安装、数据向量化。本文将进一步介绍如何使......
  • 涨知识之发卡系统
    1独角卡  https://github.com/assimon/dujiaoka  2异次元店铺系统  https://github.com/lizhipay/acg-faka/ 都是用PHP开发的说明PHP真的是世界上最好的语言......
  • NOI 2023 考前知识点总复习
    NOI2023考前知识点总复习其实就是把熟悉或不熟悉的东西再过一遍,防止考场上出现会了做法却因为忘了算法而写不出来的问题。可能会一句话概括,也可能附上一点代码片段。如果不想复习知识点,只想要一点考前提示,可以直接翻到本文最底部。目录I.数据结构、树上问题II.数论III.......
  • 大型线段树 - 知识点梳理
    可持久化线段树可持久化数据结构可以通过不断重复利用节点,在高效且省空间的情况下建立及存储普通数据结构的多个历史版本并进行查询。因为存在时间轴,因此有时可搭配离线算法使用。实现方法所有树形数据结构的可持久化处理都和这个差不多普通的线段树长这样:假设要对其中一个......
  • 音视频基础知识
    1.视频编码视频编码是指采用某种算法对视频数据进行压缩,以便在存储和传输时占用更少的空间和带宽。我们平时所看的视频其实都是由大量的图像帧组成的,比如,如果帧率为30fps,则相当于一秒播放了三十个图像,如果把每一张图像帧都完整的保存下来,则占用的空间超乎想象。我们可以计算......
  • 扫描线 - 知识点梳理
    扫描线算法可解决平面内平行坐标轴的线段有关的问题,例如求平面上平行于坐标轴的矩形的面积并,其原理在于模拟一条扫描线从下往上扫描。线段树是一种灵活的LeafyTree,可以灵活地扫描线上统计线段的分布情况,将一部分信息储存在分支节点上,另一部分信息下传至叶子节点,因此线段树是扫描......
  • IDAE 知识库
    DEA安装教程IDEA的简单介绍IDEA全称lntelliJIDEA,是java语言对的集成开发环境,IDEA在业界被认为是公认最好的Java开发工具IDEA的主要优势功能强大强大的整合能力,:比如:GitMavenSpring等开箱即用的体验(集成版本控制系统,多语言支持的框架随时可用,无需额外安装插件)*......
  • django相关知识
    Djangoselect_related和prefetch_related函数对QuerySet查询的优化在数据库有外键的时候,使用select_related()和prefetch_related()能够很好的减小数据库请求的次数,从而提升性能。本文经过一个简单的例子详解这两个函数的做用。虽然QuerySet的文档中已经详细说明了,但......
  • 【面试必背知识】Java 中常见的异常有哪些?
    ......