无自注意力照样高效!RIFormer开启无需token mixer的Transformer结构新篇章

news2024/11/24 20:54:27

96e2ca4c1ed47ff823543d6b660a8c0e.gif

©PaperWeekly 原创 · 作者 | 岳廷

研究方向 | 计算机视觉

71ee9c5f693f58e5d75b4b413a0a694d.png

引言

4a7e0d33254230b8a40e7643db3a4007.png

论文地址:

https://openaccess.thecvf.com/content/CVPR2023/papers/Wang_RIFormer_Keep_Your_Vision_Backbone_Effective_but_Removing_Token_Mixer_CVPR_2023_paper.pdf

问题:Vision Transformer 已取得长足进步,token mixer,其优秀的建模能力已在各种视觉任务中被广泛证明,典型的 token mixer 为自注意力机制,推理耗时长,计算代价大。直接去除会导致模型结构先验不完整,从而带来显著的准确性下降。本文探索如何去掉 token mixer,并以 poolformer 为基准,探索在保证精度的同时,直接去掉 token mixer 模块!

解决方案

1. 基于重参数化思想,研究没有 token mixer 的模型架构。

2. 通过改进的学习范式以突破简单无 token mixer 骨干的限制,并总结实验经验为 5 条优化策略!

利用所提出的优化策略,在保证原有精度情况下,速度提升至少 17%!!!

4923de32bdfccd78f33be8f0e0a0bc2d.png

b2c716713c96ad676138c92b459c70ec.png

主要思想

从强大的教师模型(带有 token mixer)进行定制化蒸馏知识到学生模型(无token mixer)。使用重参数化思想来扩大学生网络的建模能力但保持其高效性,如图 2。简单的仿射变换被引入到学生模型中,用来替换训练时的 token mixer。仿射变换的参数可以在推理过程中合并入 LayerNorm [2] 中,最终实现学生模型无需 token mixer 。

bbb0a6c1926b63fa9089f848b1645e7d.png

7372895b6559ecb78bb8df8d5bb334c9.png

动机

3.1 token mixer 耗时分析

token mixer 效果好,运行效率低,模型定量分析中,单 token mixer 模块可以增加高达 1433.6ms 的延迟,占骨干网络的 46.3%。因此,非常有必要针对 token mixer 模块进行改进。但以 poolformer 进行实验,直接去掉会有较大性能丢失:

7e087216e0209d307e458b435cb8b726.png

上图对比 poolformer 以及将 poolformer 中的池化操作替换成 identity 操作的结果,可以看到,直接替换会带来性能的效果显著下降。

77098261d0f5fa44b723cb0581226a8a.png

五大改进思路

  1. 不使用 ground-truth label进行进行直接监督,直接使用纯 soft label 进行监督更有效

  2. 重参数化仿射变换+原始蒸馏替换 token mixer,无法保持原有 token mixer 性能。

  3. 使用分块知识蒸馏(即 module imitation),可提升仿射变换操作建模能力。

  4. 大感受野老师模型有利于改进感受野有限的学生模型。

  5. 将老师模型(除 token mixer 外)的预训练权重加载到学生模型可改善收敛性和性能

思路1:直接对无token mixer学生模型进行软蒸馏更有效。

大多数 KD 方法是为带有 token mixer 的模型设计。DeiT 中的一些实验结果表明,使用硬标签而不是软标签作为监督目标,可以显着改善 transformer 性能。但无 token mixer 结构没有 patch 聚合模块,其蒸馏方式应该不同。

为证明这点,表 2 比较了四种不同设置的模型性能。默认的教师是 GFNet-H-B [31](5400 万参数)。使用真实标签进行硬蒸馏将准确性从 72.31% 提高到73.51%。这表明带有 token mixer 的教师对没有 token mixer 的学生具有积极影响。但如果只软蒸馏而不使用真实标签的组合表现最好,将网络性能提高到 74.05%。

总结 1:对没有 token mixer 的简化模型来说,使用真实标签进行监督学习不是最合适的方式。带有 token mixer 的教师可以帮助指导训练,但仍无法完全弥补去除 token mixer 所带来的性能差距,需要其他策略来解决。

思路2:直接使用重参数化仿射变换+一般蒸馏,无法避免性能下降。

采用结构重参数化的仿射变换+一般知识蒸馏方法,性能一样会下降,表 2 表 3 证明了这一点。

重参数化的仿射变换,具体而言,直接使用仿射变换操作替换 token mixer,仿射变换操作在训练时作为一个单独的层,在推理时融合到 layer norm 中。

表 2 直接使用 identity 层替换 token mixer,并使用各种训练方案进行训练,包括使用原始 label,hard label 以及 soft label 进行各种组合进行训练 。作为对比表 3 使用仿射变换层替换 token mixer,同样使用原始 label,hard label 以及 soft label 进行各种组合进行训练。从表 2 表 3 结果可以看到,区别不大,这说明,直接使用仿射变换+一般知识蒸馏,无法发挥仿射变换的性能,也无法实现替换 token mixer 的目的。

另外,师生模型的同构设计启发探索每层模块的知识转移的合适方法,也就是思路 3。

d2a440ba72028db928a5490e9b924c66.png

思路3:进行 block-wise 知识蒸馏,即模拟模块技巧(module imitation),有助于利用仿射算子的建模能力。更具体的,文章预训练了一个 PoolFormer-S12 网络作为蒸馏教师网络,并在学生网络中只使用简单的仿射变换来模拟 token mixer。如图三所示:

49e9af92839c554b403fa4fe385d7742.png

table1 中原始 poolformer 精度为 75.01,但是去掉 token mixer 后,精度下降到 72.31,但使用仿射变换替代 token mixer,通过 block wise 蒸馏,可以看到精度不但没有下降还上升 0.1 个百分点,而仿射变换在推理时合并到 LN 层,完全等价于 table1 中的 identity 操作。通过这种操作,实现在完全去除 token mixer 时没有精度下降甚至还有提升

92eee8541afe48725d8080a843b702be.png

具体操作细节见上图,在 transformer 模块的输出,以及中间层,还有最终输出进行蒸馏。对应总的损失函数为:

bb32b6fe0ddb72a0f47cbb9481df36a2.png

其中第一项为前面提到的 soft 蒸馏,第二项为图 3 中对 transformer 模块的输出层进行蒸馏,第三项为对 transformer 模块的中间层进行监督,最后一项同样为对输出层进行监督,只不过使用关系矩阵(relation metrices)进行监督。

table 4 中列的参数,Feat 代表对上面损失函数 2,3 项进行监督的 epoch 数,Rel列为对损失函数最后一项进行监督的 epoch 数据,Layer 代表使用的中间层个数。

思路4:具有大感受野的教师有利于提高有限感受野的学生能力

表 5 比较不同教师架构下的学生性能。虽然 GFNet-H-B [31] 不属于表现最高的教师,但它仍然可以作为一个更好的选择,不管是否使用 module imitation 技巧。

a50cd38a79fdf1f5a78601ad482d2afe.png

结论 4。归因于教师和学生之间的感受野差异。偏差可以通过蒸馏从一个模型转移到另一个模型。具有大接受域的模型(如 GFNet 在频域中具有可学习的全局过滤器)可以为学生 RIFormer 提供更好的教学,后者感受野有限。

思路5:加载老师模型的预先训练权重(除了 token mixer)到学生模型中,可改进收敛和性能。

由于文章的目标仅是去除 token mixer,其余部分的参数仍保留且在以往过程中没有得到足够重视。文章观察到,初始化 RIFormer(除了仿射操作)的参数时使用对应的老师网络参数,性能得以从 75.13% 改善至 75.36%。这促使文章找到最终训练 RIFormer 的范式。

总括而言,到目前为止,文章已经完成了探索并发现了一个合适的范式来训练 RIFormer。它在宏观设计上与 MetaFormer [46] 大致相同,但不需要任何 token mixer。用所提出的优化方法配备 RIFormer,可以超过带有 token mixer 的复杂模型,对 ImageNet-1K 分类任务而言。

7e90d6b3afe4fdc63a6fbbb4bf07c086.png

实验结果

5.1 实验设置

在 ImageNet-1K 数据集上,采用 [46] 中提出的训练方案,同时遵循第 4 节中的指南。数据增强包含 MixUp [50]、CutMix [48]、CutOut [52] 和 RandAugment [7]。文章的目的是去除 token mixer 的模型压缩工作,弥补去除 token mixer 导致的性能下降绝对是文章的首要任务,而非提出一个强有力的基线模型。因此使用 600 个延长的训练轮次。同时还对预训练模型进行 30 个 Epoch 的微调,输入分辨率为 384*384。

5.2 主要结果

表 6 展示了 RIFormer 在 ImageNet 分类上的结果。文章主要关注吞吐量指标,因为首要考量是满足边缘设备的延迟要求。如预期所示,比其他类型的骨干拥有明显的速度优势,因为 RIFormer 其构建块不包含任何 token mixer。

令人惊奇的是,使用文章的训练方法,RIFormer 成功地去除了所有 token mixer 而不影响性能。例如,RIFormer-M36 可以在分辨率为 224224 的条件下每秒处理 1185 张图像以上,top-1 准确率达到 82.6%。与此相比,最新基线 PoolFormer-M36 [46] 带有 Pooling token mixer,每秒可以处理 1009 张相同尺寸的图像但更差的 82.1% 的准确率。

文章还与一个高效的骨干 GFNet [31] 进行了比较。它通过全局滤波器进行 token 混合,总的计算复杂度为 O(NlogN)。GFNet-H-B 的吞吐量为 939,top-1 准确率为 82.9%,而文章的 RIFormer-M48 可以达到类似的 82.8% 的准确率与吞吐量 897 持平。与此同时,推理时 RIFormer 主要由 11 conv following LN 组成,没有复杂的 2D FFT 或注意力,更适合硬件专用化。

943a9613a1c49e83963d2fe941b328c5.png

值得注意的是,没有 token mixer,RIFormer 甚至不能在其构建块中进行基本的 token 混合操作。然而,ImageNet 的实验表明,使用所提出的训练范式,RIFormer 仍然表现出令人期待的结果。文章认为是优化策略起着关键作用。

8b149838efb8139481d050438e9b1052.png

消融实验

module imitation 的有效性,作为额外仿射算子学习适当权重的重要方法,模组模仿是基于蒸馏的。因此,文章将其与隐藏状态特征蒸馏方法(带有关系)进行比较。采用第 4.2 节的范式,软蒸馏而不考虑交叉熵损失,文章得到表 7 中的结果。使用特征蒸馏,准确率比模组模仿低 0.46%,说明模组模仿正向影响额外权重的优化。

2f4f01087db0824e84417a7b6b8fd954.png

不同加速策略的比较。接下来,文章讨论拆除 token 是否优于其他稀疏化策略。基于 PoolFormer [46] 基线,文章首先构建了一个更薄的 PoolFormer-S9 和 PoolFormer-XS12,分别通过减少深度到 9 和保持其宽度(即嵌入维度)大约为原来的 5/6,以获得与文章的 RIFormer-S12 相当的推理速度。文章也跟随第 4.2 节的软蒸馏范式。表 8 显示结果。直接减少深度或宽度无法比文章无需延迟高昂的 token mixer 更好。

f5c59422b647c32581ce61da6b76902e.png

总结来说,本文方法带来了显著加速,达到或超过其他类型的加速策略。但是,文章的方法需要一个合适的训练范式和模组模仿技巧来弥补由于去除 token mixer 而造成的性能损失。

不同老师模型的泛化性。为了验证所提出的训练范式是一种通用的压缩技术,本文采用 [47] 中提出的架构修改作为学生模型,同时将老师模型更换为其他 4 种 MetaFormer基线 [47],其 token mixer 分别为随机矩阵、池化、可分离深度卷积和自注意力。表 9 显示,文章的方法在不同深度设置和老师模型情况下都有积极效果。

c1cf7cfbabf26325525cada9a3d5e551.png

文章的方法可以很好地适应不同的老师模型。加载权重、模组模仿技巧和优化策略一起,所提出的训练范式可以泛用于移除 token mixer 压缩模型。

d57b9a6c75f102dfa89cae91fd0159a4.png

总结与局限性

作为一篇论文,本文调查了视觉骨干构建块中的 token mixer,并针对其相当大的延迟成本提出了移除的方法,在边缘设备工程应用中有较大的实用性。为了保持剩余结构的有效性,文章彻底重新审视了训练范式。文章观察到,适当的优化策略可以有效地帮助一个没有 token mixer 的模型从另一个模型中学习有用的知识,提高其性能并弥补不完整结构造成的差异。但是,本文的局限性在于没有讨论更多的视觉任务,包括检测、去模糊等。

更多阅读

e7a21a30b450ebff4ad7369eda99561b.png

dc48fc3f00a1fb2f742f9de760b2ba71.png

90ff7906e6f0609c46826091795a5072.png

d17632208a40248af6faf63d9736132d.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

a9be11ed855fe987b4a34cc7651b847d.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

a0d3587daf1ce30ae3a0b5c7154e5ee0.jpeg

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

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

相关文章

如何将代码中的相关调试信息输出到对应的日志文件中

一、将调试信息输出到屏幕中 1.1 一般写法 我们平常在写代码时&#xff0c;肯定会有一些调试信息的输出&#xff1a; #include <stdio.h> #include <stdlib.h>int main() {char szFileName[] "test.txt";FILE *fp fopen(szFileName, "r")…

R语言 tidyverse系列学习笔记(系列5)dplyr 数据分析之across

成绩单 score install.packages("dplyr") library(dplyr)install.packages("tibble") library(tibble)install.packages("stringr") library(stringr)score tibble(IDc("1222-1","2001-0","3321-1","4898-…

MySQL(八):排序与分页

排序与分页 前言一、排序数据1、排序规则2、单列排序3、多列排序 二、分页1、背景2、实现规则3、拓展 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识&#xff0c;有兴趣的小伙伴可以关注博主&#xff01;也许一个人独行&#xff0c;可以走的很快&…

从零开始Vue项目中使用MapboxGL开发三维地图教程(三)添加全屏,缩放旋转和比例控制面板以及自定义图标、标记点击弹窗、地图平移等功能

文章目录 1、添加各种控制面板1.1、添加全屏1.2、缩放旋转控制1.3、比例尺 2、获取并显示鼠标移动位置的经纬度坐标3、添加图标3.1、添加图片图层的图标3.2、添加带有标记的自定义图标3.3、悬停时显示弹出窗口 1、添加各种控制面板 1.1、添加全屏 //添加全屏控制this.map.addC…

管理类联考——逻辑——知识篇——第一章 性质命题

第一章 性质命题&#xff08;最基础&#xff0c;最难*****&#xff09; 一、性质命题定义&#xff08;必考&#xff09; 判断事物具有或不具有某种性质的命题。 二、性质命题的四种基本形式 全称肯定&#xff1a;①所有的A都是B 全称否定&#xff1a;②所有的A不是B 特称肯…

Nature子刊:光遗传在绒猴执行检测任务中的行为效应

狨猴体型小&#xff0c;具有巨大的基因修饰潜力&#xff0c;并可表现复杂的行为&#xff0c;已经成为神经科学领域的一个关键模型。 德国恩斯特斯特朗格曼神经科学研究所与马克斯普朗克学会的研究人员设计了一种轻质的、3D打印的植入物&#xff0c;利用高密度硅基微电极阵列&am…

Monorepo vs. Microrepo: 选择适合你的代码仓库策略

简介 在软件开发领域&#xff0c;选择合适的代码仓库策略对于优化协作、可扩展性和代码质量至关重要。Monorepo和Microrepo是两种流行的方法&#xff0c;它们提供了各自的优势和考虑因素。本文将探讨这两种策略的特点&#xff0c;解释为何不同的公司选择不同的选项&#xff0c;…

基于Hexo和Butterfly创建个人技术博客,(5) 使用Hexo的Tags Plugin插件增强博客文章内容和视觉表现力

Hexo官司网查看 这里 注意&#xff1a; Tags语法是Hexo插件提供的&#xff0c;是非标准语言&#xff0c;写文章时要注意以下几点&#xff1a; 用于在文章中快速插入特定的内容&#xff0c;作用等同于其它语言&#xff0c;可理解为一种增强版本的markdown&#xff1b;可混合Mark…

Linux系统编程学习 NO.7 ——sudo配置、编译器的使用

引言&#xff1a; 现在是北京时间2023年6月14日8点16分&#xff0c;期末考试在即&#xff0c;重心可能得转移到考试上了。不过想到马上就可以回家陪家人过端午节&#xff0c;还是非常开心的。放暑假了就可以好好陪家人了。尝试一下换个环境复习吧&#xff0c;洗漱一下就去图书…

智见|比亚迪廉玉波:2023年销量目标300万辆

营收4240亿元&#xff0c;同比增长96%&#xff1b;归属上市公司股东净利润166亿元&#xff0c;同比增长445.86%&#xff1b;累计销售186.85万辆&#xff0c;同比增长152.5%……这是2022年比亚迪的成绩单。 据比亚迪披露&#xff0c;仅2022年一年新能源汽车的销量&#xff0c;就…

【重要】MThings V0.5.0更新要点

再见了BUG&#xff0c;为了改善质量&#xff0c;我们已修正了一些问题&#xff0c;以便您能继续富有成效且令人敬畏。 下载地址&#xff1a; http://gulink.cn/download 01. [新增]支持数据网关功能。 数据网关功能提供协议转换和数据汇聚功能&#xff0c;可实现不同的通道类型…

1--Gradle入门 - 简介、安装、目录结构、创建项目

1--Gradle入门 - 简介、安装、目录结构、创建项目 Gradle 官网 Gradle官网地址&#xff1a;Gradle Build Tool Gradle官方下载安装教程页面&#xff1a;https://gradle.org/install/ Gradle官方用户手册&#xff1a;https://docs.gradle.org/current/userguide/userguide.html …

4--Gradle入门 - 创建普通的web工程

4--Gradle入门 - 创建普通的web工程 前言 上一篇&#xff0c;我们已经创建了java工程&#xff0c;本篇章再来创建web工程。 “ 其实没啥用&#xff0c;还是研究如何部署 Springboot 环境就好了 ” 创建普通的web工程 1. 新建 gradle 管理的工程项目 1685862847224 2. 设置项目使…

前端构建工具的未来

本文作者系360奇舞团前端开发工程师 本文为翻译 原文标题&#xff1a;The Future Of Frontend Build Tools 原文作者&#xff1a;Alexander Joseph 原文链接&#xff1a;https://www.smashingmagazine.com/2022/06/future-frontend-build-tools/ 前端构建工具对现代前端开发者的…

基于SpringCloud+Vue房产销售平台的设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

数据库从业者在行业的变革下------越来越难

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

有趣的数学 依靠想象力的微积分

1、无限分割计算圆的面积 考虑将圆切成若干等份&#xff0c;下图为4等份。 下图为8等份。 下图为16等份。 下图为最终想象出来的极限矩形&#xff0c;据此分割为无穷等份的圆拼接为一个矩形。 矩形的面积 r * C / 2。 r为半径&#xff0c;C为周长。 2、夹逼法计算圆周率 借助…

使用SwinTransformer进行图片分类

SwinTransformer 是微软亚洲研究院在2021年提出的适用于CV领域的一种基于Tranformer的backbone结构。 它是 Shift Window Transformer 的缩写&#xff0c;主要创新点如下。 1&#xff0c;分Window进行Transformer计算&#xff0c;将自注意力计算量从输入尺寸的平方量级降低为线…

力扣刷题记录(一)剑指Offer(第二版)

1、本栏用来记录社招找工作过程中的内容,包括基础知识学习以及面试问题的记录等,以便于后续个人回顾学习; 暂时只有2023年3月份,第一次社招找工作的过程; 2、个人经历: 研究生期间课题是SLAM在无人机上的应用,有接触SLAM、Linux、ROS、C/C++、DJI OSDK等; 3、参加工作后…

【JVM系列】jvm内存结构详解

文章目录 前言HotSpot VM介绍内存结构程序计数器JVM栈本地方法栈Java堆方法区运行时常量池 永久代和元空间永久代&#xff08;PermGen&#xff09;元空间&#xff08;Metaspace&#xff09; 直接内存总结 前言 我们为什么要学习JVM&#xff1f; 面试的需要中高级程序员的必备技…