【论文笔记】Are Large Kernels Better Teacheres than Transformers for ConvNets

Abstract

本文提出蒸馏中小核ConvNet做学生时,与Transformer相比,大核ConvNet因其高效的卷积操作和紧凑的权重共享,使得其做教师效果更好,更适合资源受限的应用。
用蒸馏从Transformers蒸到小核ConvNet的效果并不好,原因是架构不同。

Github Repository

1 Information

在蒸馏过程,小核ConvNet做学生模型时,与Vision Transformers相比,大核ConvNet有以下优势:

  • 同样好的精度
  • 相似甚至更大的有效感受野(Effective receptive field, ERF)
  • (更重要的)是卷积操作,而不是自注意力模块

本文,在小核ConvNet做学生模型时,将现代大核ConvNet和先进Vision Transformers进行对比。本文发现在logits-level distillation和feature-level distillation下,大核ConvNet的效果都比Vision Transformers更有效。

3 Experimental Setup

本文目标是在蒸馏下全面比较Vision Transformers和现代大核ConvNet,并研究哪种更适合作为小核ConvNet的教师。

Evaluation Metrics

给定教师模型 T T T(具有较高的任务准确率 a c c ( t e a c h e r ) acc(teacher) acc(teacher),学生模型 S S S(具有较低的任务准确率 a c c ( s t u d e n t ) acc(student) acc(student),通过知识蒸馏提高后者的准确率至 a c c ( d i s t i l l e d ) acc(distilled) acc(distilled)
采用两种度量:
Direct Gain表示有知识蒸馏和无知识蒸馏的直接表现差异:
Direct Gain = a c c ( d i s t i l l e d ) − a c c ( s t u d e n t ) (1) \text{Direct Gain}=acc(distilled)-acc(student)\tag{1} Direct Gain=acc(distilled)acc(student)(1)
教师很难拥有相同的准确率,因此使用Effective Gain:
Effective Gain = a c c ( d i s t i l l e d ) − a c c ( s t u d e n t ) a c c ( t e a c h e r ) (2) \text{Effective Gain}=\frac{acc(distilled)-acc(student)}{acc(teacher)}\tag{2} Effective Gain=acc(teacher)acc(distilled)acc(student)(2)

Dataset, Teacher and Student Models

在常用的ImageNet数据集(1000类别,1281167训练图像,50000验证图像)进行实验。

有两个主要的蒸馏pipeline:

  • Pipeline I: 大核ConvNet→小核ConvNet
  • Pipeline II: Transformers→小核ConvNet

对于两个pipeline,学生模型选择了带有3×3卷积核的ResNet-50和带有7×7卷积核的ConvNeXt-T。
对于Pipeline I,教师模型选择ConvNeXt-T和SLaK;
对于Pipeline II,教师选择ViT-S,Swin-T,CSWin-T。

Distillation Methods

为了得出可靠的结论,本研究采用了logits-level distillation和feature-level distillation相结合的方法。
不失一般性,选择KD、NKD作为logits-level distillation,选择FD作为feature-level distillation。

4 Experimental Results

4.1 Large-Kernel ConvNet vs. Transformer as Teachers

4.1.1 Logit-level Distillation

![[Pasted image 20240920200800.png]]
![[Pasted image 20240920200809.png]]

  • 大核ConvNets比Transformers更适合做小核ConvNets的教师。
  • 与小核相比,学生模型从大核ConvNets获得的提升更多。
  • 大核ConvNets可以让学生训练得更快。

4.1.2 Feature-level Distillation

![[Pasted image 20240920202947.png]]
![[Pasted image 20240920204102.png]]

在feature distillation下,从蒸馏出的学生模型的表现来看,大核ConvNet比Transformers的表现要好。
当使用多层特征图进行特征蒸馏(FD)时,大核卷积网络作为教师模型的优势仍然优于基于Transformer的教师模型。

4.2 Scaling to Longer Training

本文还将训练epoch从120次延长到300次,并展现了从大核教师和基于Transformer的教师中提取的ResNet-50的性能。
![[Pasted image 20240920212721.png]]
显而易见,较长训练周期的性能趋势与短周期高度一致。在所有五个教师模型中,SLaK-T教师模型使得学生模型表现最佳,这表明大核教师模型相较于基于Transformer的教师模型在较长训练过程中同样具有优势。

5 What Else are Transferrable from Larger Kernels Teachers?

5.1 Transferring Effective Receptive Fields(ERF)

有效感受野(Effective Receptive Fields, ERF)是指包含对该单元输出有非忽略影响的任意输入像素的区域。
![[Pasted image 20240920215356.png]]

图1:ConvNeXt-T从不同教师模型蒸馏而来的有效感受野(ERF)。学生模型是带有7×7卷积核的ConvNeXt-T。左图为未经蒸馏的监督学习ConvNeXt-T,而其余图像来自于蒸馏后的ConvNeXt-T。
总体而言,来自51×51大核SLaK蒸馏的学生模型相比于来自Transformer教师模型蒸馏的学生模型,表现出更大且更密集的ERF。这进一步证明大核卷积网络在蒸馏过程中比Transformer更能有效地传递大ERF,从而提高学生模型的性能。

5.2 Transferring Robustness

![[Pasted image 20240920221853.png]]
结果如表7所示。

  • 从现代ConvNets蒸馏出的学生优于从最新的Transformer模型学习的学生模型。
  • 在大核教师中,SLaK-T相比ConvNeXt向学生传递了更好的鲁棒性,尽管它作为教师模型的鲁棒性较低。
  • 鲁棒的Transformer并不一定能有效地传递给小核学生。这表明,在分布内(in-distribution)和分布外(out-of-distribution)的表现上,大核卷积网络比先进的视觉Transformer和小核网络更强大。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图的应用(关键路径)

基于你设计的带权有向无环图,写出所有合法的关键路径,并算出关键路径总长度 文字描述:关键路径总长度的现实意义是什么? 1.关键路径 总长度454316 2.现实意义 从源点到汇点的所有路径中,具有最大路径长度的路径称…

好的头戴式降噪耳机一定很贵吗?四款热门头戴耳机盘点及推荐!

在快节奏的现代生活中,噪音无处不在,它常常干扰着我们的工作、学习与休闲时光。而一款高性价比的降噪蓝牙耳机,就如同一个贴心的伙伴,能为我们营造出一片宁静的听觉空间。如今,耳机市场蓬勃发展,想要好的头…

Broadcast:Android中实现组件及进程间通信

目录 一,Broadcast和BroadcastReceiver 1,简介 2,广播使用 二,静态注册和动态注册 三,无序广播和有序广播 1,有序广播的使用 2,有序广播的截断 3,有序广播的信息传递 四&am…

如何在GitHub上克隆仓库:HTTPS、SSH和GitHub CLI的区别

GitHub是开发者的天堂,提供了丰富的工具和功能来管理代码和项目。在克隆GitHub仓库时,你可能会遇到三种常见的方法:HTTPS、SSH和GitHub CLI。每种方法都有其独特的优势和适用场景。本文将深入探讨这三种克隆方式的区别,帮助你选择…

C++--类的实例化

一、实例化的概念 用类类型在屋里内存中创建对象的过程,称为类实例化出对象 类是对对象进行一种抽象描述,是一个模型一样的东西,限定了类有哪些成员变量,这些成员变量只是声明,没有分配空间,用类实例化出…

java项目之编程训练系统源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的编程训练系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 编程训练系统的主要使用者管…

【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(上)

文章目录 前言一、ArkTS基本介绍1、 ArkTS组成2、组件参数和属性2.1、区分参数和属性的含义2.2、父子组件嵌套 二、装饰器语法1.State2.Prop3.Link4.Watch5.Provide和Consume6.Observed和ObjectLink代码示例:示例1:(不使用Observed和ObjectLi…

未来通信抢先看!遨游通讯2024年中国国际信息通信展亮点剧透

2024年中国国际信息通信展览会将于9月25日-27日在北京国家会议中心举行,本届展会以“推动数实深度融合,共筑新质生产力”为主题。在通信技术日新月异的今天,卫星通信、人工智能、低碳节能等技术理念正引领着通信行业迈向新的高度。遨游通讯作…

【漏洞复现】Casbin casdoor static 任意文件读取漏洞

漏洞描述 Casdoor 是 Casbin 开源社区推出的基于 OAuth 2.0 / OIDC 的中心化的单点登录(SSO)身份验证平台。 Casdoor static 存在任意文件读取漏洞,攻击者通过发送特殊的请求包可以获取服务器中的敏感文件。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵…

Linux C# DAY3

作业 1、 #!/bin/bash mkdir -p ~/dir/dir1 mkdir ~/dir/dir2 cp ./* ~/dir/dir1 cp ./*.sh ~/dir/dir2 cd ~/dir/ tar -cvJf dir2.tar.xz ./dir2 mv dir2.tar.xz ~/dir/dir1/ cd ~/dir/dir1/ tar -xvf dir2.tar.xz 2、 #!/bin/bash head -5 /etc/group | tail -1 sudo mkdi…

CORS漏洞及其防御措施:保护Web应用免受攻击

1. 背景- 什么是CORS? 在当今互联网时代,Web 应用程序的架构日益复杂。一个后端服务可能对应一个前端,也可能与多个前端进行交互。跨站资源共享(CORS)机制在这种复杂的架构中起着关键作用,但如果配置不当&…

Redis Key的过期策略

Redis 的过期策略主要是指管理和删除那些设定了过期时间的键,以确保内存的有效使用和数据的及时清理。 具体来说,Redis 有三种主要的过期策略:定期删除(Scheduled Deletion)、惰性删除(Lazy Deletion&#…

鸿蒙Harmony-Next 徒手撸一个日历控件

本文将介绍如何使用鸿蒙Harmony-Next框架实现一个自定义的日历控件。我们将创建一个名为CalendarView的组件(注意,这里不能叫 Calendar因为系统的日历叫这个),它具有以下功能: 显示当前月份的日历支持选择日期显示农历日期可以切换上一月和下一月 组件…

情感类智能体——你的微信女神

智能体名称:你的微信女神 链接:文心智能体平台AgentBuilder | 想象即现实 (baidu.com)https://agents.baidu.com/agent/preview/RulbsUjIGj4wsinydlBH7AR3NQKFungt 简介 “你的微信女神”是一个直率的智能体,她用犀利而真实的言辞帮助用户…

C++第十一节课 new和delete

一、new和delete操作自定义类型 new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数&#xff08;new会自动调用构造函数&#xff1b;delete会调用析构函数&#xff09; class A { public:A(int a 0): _a(a){cout <&l…

JAVAWeb--前端工程化

一、前端工程化开篇 1.1 什么是前端工程化 前端工程化是使用软件工程的方法来单独解决前端的开发流程中模块化、组件化、规范化、自动化的问题,其主要目的为了提高效率和降低成本。 1.2 前端工程化实现技术栈 前端工程化实现的技术栈有很多,我们采用ES6nodejsnpmViteVUE3route…

【C++ Primer Plus习题】16.10

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <string> #include <…

CefSharp_Vue交互(Element UI)_WinFormWeb应用(2)---置顶和取消置顶(含示例代码)

一、预览 获取winform的置顶参数,和设置置顶参数 1.1 置顶(默认不置顶) 1.2 示例代码

服务器——装新的CUDA版本的方法

服务器——装新的CUDA版本 一、进入 CUDA 版本列表二、根据自己服务器&#xff0c;选择对应的版本和配置三、使用管理员用户&#xff0c;运行下载和安装命令四、查看显卡驱动是否安装4.1 若安装了显卡驱动4.2 若显卡驱动没安装 参考文章 一、进入 CUDA 版本列表 CUDA Toolkit …

数字签名和CA数字证书的核心原理

看了蛋老师的视频就很容易理解了&#xff0c;首先对服务器的公钥和信息进行哈希运算得到一个短字符串&#xff0c;然后用CA机构中的私钥对这一短字符串进行加密就得到了一个数字签名&#xff0c;然后就这个数字签名放到数字证书中&#xff0c;同时服务器的公钥也放在数字证书中…