Masked Generative Distillation(MGD)2022年ECCV

news2024/11/17 2:35:48

Masked Generative Distillation(MGD)2022年ECCV

摘要

**目前的蒸馏算法通常通过模仿老师的输出来提高学生的表现。本文表明,教师还可以通过引导学生特征恢复来提高学生的代表性。从这个角度来看,我们提出的掩模生成蒸馏(MGD),它很简单:我们掩模学生特征的随机像素,并通过一个简单的块强制其生成教师的完整特征。**MGD是一种真正通用的基于特征的蒸馏方法,可用于各种任务,包括图像分类、目标检测、语义分割和实例分割。我们用大量的数据集对不同的模型进行了实验,结果表明所有的学生都取得了很好的进步。

介绍

知识蒸馏可以分为两种:第一种是专门为不同的任务而设计的,例如用于分类的基于logit的蒸馏和用于检测的基于head的蒸馏。第二种是基于特征的蒸馏。由于各种网络之间只有头部或投影后的特征是不同的,从理论上讲,基于特征的蒸馏方法可以被用于各种任务。然而,为特定任务设计的蒸馏方法通常不适用于其他任务。例如,OFD和KR对探测器改进有限。FKD和FGD是专门为探测器设计的,由于缺乏neck,无法用于其他任务。

以往基于特征的蒸馏方法,由于教师的特征具有更强的表征能力,通常会让学生尽可能地模仿教师的输出。然而,我们认为没有必要直接模仿老师来提高学生特征的表征能力。用于蒸馏的特征通常是通过深度网络获得的高阶语义信息。特征像素已经在一定程度上包含了相邻像素的信息。因此,如果我们可以使用部分像素通过一个简单的块来还原教师的全部特征,那么这些使用像素的代表性也可以得到提高。从这个角度出发,我们提出了一种简单有效的基于特征的蒸馏方法——掩模生成蒸馏(MGD)如图2所示,**我们首先对学生特征的随机像素进行mask,然后通过一个简单的块将mask后的特征生成教师的完整特征。由于每次迭代都使用随机像素,因此在整个训练过程中都会使用所有像素,这意味着特征将更加鲁棒,并且其表达能力将得到提高。**在我们的方法中,教师只是引导学生还原特征,并不要求学生直接模仿。

image-20240309153035374

为了验证我们的假设,即在不直接模仿教师的情况下,掩模特征生成可以提高学生的特征表达能力,我们从学生和教师的neck对特征注意力进行了可视化。如图1所示,

image-20240309154928033

学生和教师的特征有很大的不同,与教师相比,学生特征的背景有更高的反应。经过MGD训练以后,学生和教师特征仍有显著差异,但学生对背景的反应大大降低。但是学生的表现超过了FGD,甚至达到了与教师相同的mAP。这也说明MGD训练可以提高学生特征的表征能力。此外,我们还在图片分类和密集检测任务上做了实验。结果表明MGD对图像分类、目标检测和语义分割等任务都有效。MGD可以与其他基于logit或基于head的蒸馏方法相结合,以获得更大的性能收益。综上所述,本文的贡献有:

1、我们提出了一种新的基于特征的知识蒸馏方法,使学生利用被掩蔽的特征来生成教师的特征,而不是直接模仿教师的特征。

2、本文提出了一种新的基于特征的蒸馏方法——掩模生成蒸馏,该方法简单易用,只需要两个超参数

相关工作

面向密集检测的知识蒸馏

分类和密集预测有很大的区别。许多用于分类的蒸馏工作在密集预测上都失败了。理论上,基于特征的蒸馏方法应该有助于分类和密集预测任务,这也是我们方法的目标。

Chen等首先计算检测器的neck和头部的蒸馏损失。由于前景和背景的极度不平衡,在什么地方进行蒸馏是目标检测的关键。为了避免从背景中引入噪声,FGFI利用细粒度掩模提取物体附近的区域。然而,Defeat指出,来自前景和背景的信息都很重要。GID选择学生和老师在蒸馏中表现不同的领域。FKD利用教师和学生注意力的总和,使学生的注意力集中在可变的区域。FGD提出了焦点蒸馏,它迫使学生学习教师的关键部分,而全局蒸馏则弥补了缺失的全局信息。

方法

对于不同的任务,模型的体系结构差别很大。此外,大多数蒸馏方法都是为特定任务而设计的。然而,基于特征的蒸馏可以同时用户分类和密集预测任务。特征蒸馏的基本方法可表述为:
L f e a = ∑ k = 1 C ∑ i = 1 H ∑ j = 1 W ( ( F k , i , j T − f a l i g n ( F k , i , j S ) ) ) 2 L_{fea} = \sum_{k=1}^C\sum_{i=1}^H\sum_{j=1}^W((F_{k,i,j}^T - f_{align}(F_{k,i,j}^S)))^2 Lfea=k=1Ci=1Hj=1W((Fk,i,jTfalign(Fk,i,jS)))2
image-20240309163448611分别表示教师和学生的特征,image-20240309163604272是将学生特征image-20240309163613035与教师特征image-20240309163620336对齐的自适应层。C,H,W表示特征图的形状。这种方法有助于学生直接模仿教师特征。然而,我们提出了掩蔽生成蒸馏(MGD),其目的是迫使学生生成教师的特征,而不是模仿它,从而使学生在分类密集预测方面都有显著的提高。

带Mask特征的生成

对于基于CNN的模型,更深层的特征具有更大的接受域和更好的原始输入图像的表示。换句话说,特征图像素在一定程度上已经包含了相邻像素的信息。因此,我们可以使用部分像素来恢复完整的特征图。我们的方法旨在通过学生的mask特征来生成老师的特征,这可以帮助学生获得更好的表现。

我们用image-20240309165856455分别表示为教师和学生的第L个特征图。首先,我们设置第l个随机mask来覆盖学生的第l个特征,可以表示为:
M i , j l = { 0 , i f R i , i l < λ 1 , O t h e r w i s e M_{i,j}^l =\left\{\begin{matrix} 0, if R_{i,i}^l < \lambda& \\ 1, Otherwise& \end{matrix}\right. Mi,jl={0,ifRi,il<λ1,Otherwise
为(0,1)中的随机数,i,j分别为特征图的横坐标和纵坐标。是表示掩码比的超参数。第l个特征映射被第l个随机掩码覆盖。

然后我们使用相应的掩码覆盖学生的特征图,并尝试用左边的像素生成教师的特征图,可以表示为:
G ( f a l i g n ( S l ) × M l → T l ) G(f_{align(S^l)} \times M^l\rightarrow T^l) G(falign(Sl)×MlTl)

G ( F ) = W l 2 ( R e L U ( W l 1 ( F ) ) ) G(F) = W_{l2}(ReLU(W_{l1}(F))) G(F)=Wl2(ReLU(Wl1(F)))

表示包含两个卷积层的投影层:和,一个激活层ReLU。在本文中,对于自适应层我们采用1x1卷积层,投影层在这里插入图片描述
image-20240309183219956使用3x3卷积层。

根据这个方法,我们设计了MGD的蒸馏损失:
L d i s ( S , T ) = ∑ l = 1 L ∑ k = 1 C ∑ i = 1 H ∑ j = 1 W ( T k , i , j l − G ( f a l i g n ( S k , i , j l ) × M i , j l ) ) 2 L_{dis}(S,T) = \sum_{l=1}^L\sum_{k=1}^C \sum_{i=1}^H \sum _{j=1}^W(T_{k,i,j}^l - G(f_{align}(S_{k,i,j}^l )\times M_{i,j}^l))^2 Ldis(S,T)=l=1Lk=1Ci=1Hj=1W(Tk,i,jlG(falign(Sk,i,jl)×Mi,jl))2
其中L为蒸馏层数和,C,H,W为特征映射的形状。S和T分别表示学生和教师的特征。

总损失

利用提出的MGD损失image-20240309183849892,我们用总损失训练所有模型如下:
L a l l = L o r i g i n a l + α × L d i s L_{all} = L_{original} + \alpha \times L_{dis} Lall=Loriginal+α×Ldis
image-20240309184008902是所有任务重模型的原始损失,image-20240309184019152为平衡损失的超参数。MGD是一种简单有效的蒸馏方法,可方便地应用于各种任务。算法1总结了我们方法的过程

image-20240309184111331

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1506579.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

扩展学习|系统理解数字经济

文献来源&#xff1a;[1]肖静华,胡杨颂,吴瑶.成长品&#xff1a;数据驱动的企业与用户互动创新案例研究[J].管理世界,2020,36(03):183-205.DOI:10.19744/j.cnki.11-1235/f.2020.0041. [2]陈晓红,李杨扬,宋丽洁等.数字经济理论体系与研究展望[J].管理世界,2022,38(02):208-22413…

微信小程序跳转到其他小程序

有两种方式&#xff0c;如下&#xff1a; 一、appid跳转 wx.navigateToMiniProgram({appId: 目标小程序appid,path: 目标小程序页面路径,//不配的话默认是首页//develop开发版&#xff1b;trial体验版&#xff1b;release正式版envVersion: release, success(res) {// 打开成功…

yudao-cloud 学习笔记

前端代码 浏览器打开 https://cloud.iocoder.cn/intro/ F12 执行代码 var aaa $(".sidebar-group-items").find("a"); var ll[]; var tt[]; for(var i0;i<aaa.length;i ){ ll.push("https://doc.iocoder.cn" $(aaa[i]).attr("href&quo…

电动车窗开关中MOS管的应用解析

随着科技的不断发展&#xff0c;电动车窗系统已经成为现代汽车中不可或缺的一部分。而MOS&#xff08;金属氧化物半导体&#xff09;管的应用&#xff0c;为电动车窗开关注入了新的活力&#xff0c;极大地提高了其使用寿命和安全性。 一、MOS的优越性能 MOS管以其卓越的开关…

记录西门子:IO隔离SCL编程

在PLC变量中创建IO输入输出 在PLC类型中创建输入和输出&#xff0c;并将PLC变量的输入输出名称复制过来 创建一个FC块或者FB块 创建一个DB块 MAIN主程序中&#xff1a;

【JavaEE初阶系列】——计算机是如何工作的

目录 &#x1f388;冯诺依曼体系 ❗外存和内存的概念 ❗CPU中央处理器—人类当今科技领域巅峰之作之一 &#x1f6a9;如何衡量cpu &#x1f6a9;指令&#xff08;Instruction&#xff09; &#x1f388;操作系统&#xff08;Operating System&#xff09; &#x1f388;…

超越基础:提升你的数据采集策略与IP代理的高级应用

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

软件测试 需求

文章目录 1. 需求1.1 什么是需求1.2 为什么要有需求1.3 测试人员眼中的需求1.4 如何深入理解需求 2. 测试用例的概念2.1 什么是测试用例2.2 为什么要有测试用例 3. 软件错误&#xff08;BUG&#xff09;的概念4. 开发模型和测试模型4.1 软件的生命周期4.2 瀑布模型&#xff08;…

[SAP] ABAP注释快捷键修改

在使用ABAP编辑器的时候&#xff0c;原有的添加代码注释和取消代码注释的快捷键未生效&#xff0c;这时我们可以考虑对注释快捷键进行修改 在事务码SE38(ABAP编辑器)屏幕右下角&#xff0c;点击【Options选项】图标 在【键盘】|【命令】输入栏中输入"comment"关键字…

mac上更改vscode快捷键

以移动当前行代码为例 mac上的vscode&#xff0c;默认移动当前行代码的快捷键是⌥↑即option↑按键 现在我想改成command↑ 步骤如下 1.打开vscode-code-首选项-键盘快捷键 2.打开快捷键列表 3.输入move line&#xff0c;找到要改动的这个快捷键 当前行-右键-更改键绑定&…

LTspice(14) Noise仿真

LTspice(14) Noise仿真 好久没有更新LTspice的教程了&#xff0c;大家想了没&#xff1f; 截止目前LTspice已经更新到24.0.9。界面发生了一些变化&#xff0c;但主要功能并不受影响&#xff0c;新的版本改了UI&#xff0c;找东西更加方便了&#xff0c;界面如下图1所示。 图1…

JavaEE+springboot教学仪器设备管理系统o9b00-springmvc

本文旨在设计一款基于Java技术的教学仪器设备销售网站&#xff0c;以提高网站性能、功能完善、用户体验等方面的优势&#xff0c;解决现有教学仪器设备销售网站的问题&#xff0c;并为广大教育工作者和学生提供便捷的教学仪器设备销售渠道。本文首先介绍了Java技术的相关基础知…

checking file system on C

1、win7系统 开机检查C盘&#xff0c;虽然可以ESC取消检查&#xff0c;每次操作很麻烦&#xff0c;且没有意思 2、注册表清空BootExecute数值数据 1&#xff09;打开注册表 WinR &#xff08;快捷键&#xff09;输入“regedit”&#xff0c;回车 2&#xff09;位置HKEY_LOCAL…

怎么在运行框执行脚本和软件?

1.新建一个文件夹&#xff08;随便命名&#xff09; 2.右击此电脑点击属性 3.点击高级系统设置 4.点击环境变量 5.选中Path,点击编辑 6.点击编辑&#xff0c;粘贴你刚刚文件夹的地址 7.所有窗口全部点击确定 8.你可以把常用的软件快捷方式复制到文件夹里&#xff08;比如微…

QT画图功能

QT画图功能 每个QWidget都自带的功能&#xff0c;继承了QPainteDevice都可以使用QPainter来进行绘图。 画图需要调用paintEvent绘制事件&#xff0c;paintEvent事件时QWidget类自带的事件。 重写paintEvent事件。&#xff08;重写事件&#xff1a;如果父类有某个方法&#xff…

协程库项目—协程类模块

ucontext_t结构体、非对称协程 协程类 ucontext_t结构体 头文件中定义的四个函数&#xff08;getcontext(), setcontext(), makecontext(), swapcontext()&#xff09;和两个结构类型&#xff08;mcontext_t, ucontext_t&#xff09;在一个进程中实现用户级的线程切换。 其中…

MySQL进阶之(五)InnoDB数据存储结构之表空间

五、InnoDB数据存储结构之表空间 5.1 数据页加载的三种方式5.1.1 内存读取5.1.2 随机读取5.1.3 顺序读取 5.2 区5.2.1 为什么要有区&#xff1f;5.2.2 碎片区5.2.3 区的分类 5.3 段5.4 表空间5.4.1 独立表空间5.4.2 系统表空间 在数据页结构中提到过&#xff0c;页的上层结构中…

RN开发搬砖经验之-如何处理FlashList组件加载后调用scrollToIndex没有滚动指定位置

前言 如题&#xff0c;这里只能说是处理&#xff0c;起正向作用的临时方案&#xff0c;因为我也着实没搞懂这个BUG的具体原因&#xff0c;看github上有提相关的issuesFor long lists with different item types scrollToIndex does not work reliable&#xff0c;但看官方没有…

PLC的FC与FB模块程序的功能解析

前文讲了在西门子系列的PLC中四个程序模块的描述&#xff0c;从S7-1200PLC开始就有FC和FB程序块了&#xff0c;但在使用的时候&#xff0c;一些使用者还是不好理解&#xff0c;以至于不知道该如何选择。今天&#xff0c;我们就用大白话的方式给大家讲解FC与FB的功能。 1、FC与…

前端学习之列表标签

目录 有序列表 结果 无序标签 结果 数据标签 结果 有序列表 &#xff08;注&#xff1a;注释是解释&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </…