CVPR2023 RIFormer, 无需TokenMixer也能达成SOTA性能的极简ViT架构

编辑 | Happy
首发 | AIWalker
链接 | https://mp.weixin.qq.com/s/l3US8Dsd0yNC19o7B1ZBgw

alt

project, paper, code

Token Mixer是ViT骨干非常重要的组成成分,它用于对不同空域位置信息进行自适应聚合,但常规的自注意力往往存在高计算复杂度与高延迟问题。而直接移除Token Mixer又会导致不完备的结构先验,进而导致严重的性能下降。

基于此,本文基于重参数机制提出了RepIdentityFormer方案以研究无Token Mixer的架构体系。紧接着,作者改进了学习架构以打破无Token Mixer架构的局限性并总结了5条指导方针。搭配上所提优化策略后,本文构建了一种极致简单且具有优异性能的视觉骨干,此外它还具有高推理效率优势。

实验结果表明:通过合适的优化策略,网络结构的归纳偏置可以被集成进简单架构体系中。本文为后续优化驱动的高效网络设计提供了新的起点和思路。

背景与动机

Token Mixer是ViT架构中用于空域信息聚合的关键模块,但由于采用了自注意力机制导致其计算量与内存消耗与图像尺寸强相关(quadratic)。

alt

基于修正版12层ViT-B架构,作者进行了系统的延迟分析(可参考上图)。从仅包含Input Embedding的模块出发,逐步添加不同的操作单元,如LN、Attention、MLP等,最终构成了无GAP与分类头的ViT-Base架构。从图示可以看到: **Token Mixer部分耗时约为1433.6ms,约占整个架构耗时的46.3%**。

也就是说,Token Mixer对于模型延迟有非常大的影响,这无疑限制了其实际应用。不有而然升起一个疑问:是否可以移除Token Mixer同时保持其高性能呢?MetaFormer提出了无Token Mixer的架构,但发现会导致不可忽视的性能退化。基于此,本文旨在通过先进的优化策略(如知识蒸馏、结构重参数等)来挖掘极简ViT架构的潜力

RIFormer探索之路

alt

接下来,我们将呈现出从全监督到更先进训练体系的探索之路,调研并指定了不同的优化机制。RIFormer采用了与MetaFormer相同的宏观与微观模块,区别仅在于RIFormer未使用Token Mixer。

无Token Mixer的视觉骨干

本文旨在移除每个基础模块中的TokenMixer以得到更高推理速度且性能保持的视觉骨干(仅在推理时移除)。

alt

以PoolFormer-S12为起点,将其中用于TokenMixer的Pooling操作替换为Identity,同时采用常规监督方式进行训练,可以看到:RIFormer-S12会导致不可接受的性能下降(下降约2.7%)。也就是说,当没有TokenMixer操作时,常规的监督式训练在辅助模型学习有用信息时存在一定局限性,需要更先进的训练机制

接下来,作者调查并修改了一系列训练机制以改善基线模型性能,可总结如下:

  • Knowledge distillation
  • teacher type influence
  • Structure Re-parameterization
  • Module Imitation
  • Local partial parameters from teacher.

Distillation Paradigm Design

alt

上表对比了四种不同训练配置下的性能对比,默认老师模型为GFNet-H-B,从中可以看到:

  • Hard标签蒸馏可以将模型性能从72.31%提升至73.51%。这说明带TokenMixer的老师模型对于无TokenMixer的学生模型可以起到正面促进作用了;
  • Soft标签蒸馏可以取得最佳性能,学生模型性能可提升至74.05%。

总体来看:监督式训练范式看起来并非无TokenMixer架构的最佳训练方式;带TokenMixer的老师模型有助于引导训练,但仍无法弥补因移除TokenMixer导致的性能损失,即还需要引入其他策略。

Re-parameterization for Identity Mapping

这几年,重参数方法在各个领域得到了广泛的应用。RIFormer推理时的TokenMixer模块可以视作LN+Identity组合。因此,训练时模块续满足以下两个前提条件:

  • per-location操作以支撑等价变换;
  • parameteric操作以支撑额外的表达能力。
alt

基于上述分析,作者在训练阶段采用仿射变换以替代恒等变换,它仅在通道维度进行缩放与移位操作,见上图。在推理阶段,该仿射变换参数可以合并进LN层,故训练时的LN+仿射变换可以等价为LN+Identity。详细分析请查看原文,这里给出参数变换公式如下:

alt

从上表可以看到:直接使用结构重参数机制并无显著优势。作者认为:导致该现象的原因在于LN中的仿射变换是一种线性变换。因此,如果仅仅通过模型的输出进行监督训练,额外参数的潜力可能并未得到充分挖掘。与此同时,老师与学生模型的同构设计促使我们探索一种更有效的方式进行模块间的知识迁移。

Module Imitation

alt

有鉴于上述分析,作者进一步提出了Module Imitation以充分利用老师模型TokenMixer后的有用信息。如上图所示,作者希望:在训练过程中仿射操作能近似模拟TokenMixer的行为。此时,两者之间的MSE可以计算如下:

考虑到当前层的输入为前一Block的输出特征,因此,作者从Block层面进行匹配,此时上述损失简化为:

此外,在输出特征层面还进行隐状态蒸馏:

仿射操作与TokenMixer输出的MSE计算如下:

组合上述公式即可得到最终总损失:

alt

从上表可以看到:Module Imitation对与学生模型有正向促进作用。最贱方案已取得了75.13%,超越了PoolFormer-S12的75.01%。

alt

从上表可以看到:尽管GFNet-H-B并没有最佳指标,但它仍是更佳的选择(无论是否使用Module Imitation)。可能这与感受野有关,对于有限感受野的RIFormer而言,具有更大感受野的模型会是更优的老师选型,而GFNet具有全局感受野。

最后,作者还尝试了直接加载老师模型中除TokenMixer之外的预训练参数到学生模型,学生模型的性能可以**从75.13%提升至75.36%**。

本文实验

alt

上表给出了RIFormer与其他方案的性能对比,从中可以看到:

  • RIFormer-M36的吞吐量可达1185,同时精度高达82.6%;而PoolFormer-M36的吞吐量为109,精度为82.1%。
  • 对比GFNet与RIFormer,GFNet-H-B吞吐量为939,精度为82.9%,但需要特殊的、硬件不友好的FFT操作;而RIFormer可达到与之相关的水准且无复杂的操作。

全文到此结束,更多消融实验与分析请移步原文。

送书福利

本次活动准备赠送三本《ChatGPT全能应用一本通》,小伙伴们可以扫描下方二维码参与抽奖,抽奖活动截至2023年06月06日22:00,届时请中奖的小伙伴及时联系我们(AIWalker-zhushou)喔!

抽奖进行中:ChatGPT全能应用一本通,点击参与

本文由 mdnice 多平台发布

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

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

相关文章

JVM 虚拟机 ----> Java 类加载机制

文章目录 JVM 虚拟机 ----> Java 类加载机制一、概述二、类的生命周期1、类加载过程(Loading)(1)加载(2)验证(3)准备(4)解析(5)初始…

图神经网络和分子表征:4. PAINN

如果说 SchNet 带来了【3D】的火种,DimeNet 燃起了【几何】的火苗,那么 PAINN 则以星火燎原之势跨入 【等变】时代。 在 上一节 中,我们提到, PAINN 在看到 DimeNet 取得的成就之后,从另一个角度解决了三体几何问题&a…

分布式秒杀方案--java

前提:先把商品详情和秒杀商品缓存redis中,减少对数据库的访问(可使用定时任务) 秒杀商品无非就是那几步(前面还可能会有一些判断,如用户是否登录,一人一单,秒杀时间验证等&#xff0…

fastadmin在前端调用 /api/common/upload 返回未上传文件或超出服务器上传限制

第一步:在api目录直接调用 域名/api/common/upload 上传图片的时候要在Common.php文件里面把验证登录的 protected $noNeedLogin [init]; 方法注释掉。 // protected $noNeedLogin [init];protected $noNeedLogin *;protected $noNeedRight *; 第二步&#…

【canal系】canal集群异常Could not find first log file name in binary log index file

这里先说明下这边使用的canal版本号为1.1.5 在描述这个问题之前,首先需要简单对于canal架构有个基本的了解 canal工作原理 canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议MySQL master 收到 dum…

小米汽车进入生产调试冲刺阶段,雷军率队完成夏季新车路测

小米汽车通州生产基地即将进入生产调试冲刺阶段,小米集团董事长雷军率领小米汽车高层最近已经在新疆完成夏季新车路测,以争取在获得相关批文后尽快进入新车量产。 小米汽车的整个基地包括六个车间:压铸、冲压、车身、涂装、总装和电池。小米汽…

Pyspark综合案例(pyspark安装和java运行环境配置)

一、RDD对象 PySpark支持多种数据的输入,在输入完成后,都会得到一个:RDD类的对象 RDD全称为:弹性分布式数据集(Resilient Distributed Datasets) PySpark针对数据的处理,都是以RDD对象作为载…

用form表单以post的方式提交数据跳转地址

<script> function JumpPost() {var data { "module": "truck", "type": "html" }// 这里的参数可以根据实际情况&#xff0c;获取跳转到当前页面上你自己传过来的参数 jspost(实际你要请求的接口地址, data); }f…

后端笔试题(2)分频器波形图

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口

Kubernetes (K8s) 解读:微服务与容器编排的未来

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

elementui el-dialog 动态生成多个,点击按钮打开对应的 dialog

业务场景&#xff1a; 根据后端返回的数据&#xff0c;动态生成表单&#xff0c;返回的数据中会有表单字段的类型&#xff0c;如果单选、多选、富文本&#xff0c;其它的属性还好说&#xff0c;重点说在富文本&#xff0c;因为我想通过 dialog 弹窗的方式&#xff0c;进行富文…

【C++】哈希——哈希的概念,应用以及闭散列和哈希桶的模拟实现

前言&#xff1a; 前面我们一同学习了二叉搜索树&#xff0c;以及特殊版本的平衡二叉搜索树&#xff0c;这些容器让我们查找数据的效率提高到了O(log^2 N)。虽然效率提高了很多&#xff0c;但是有没有一种理想的方法使得我们能提高到O(1)呢&#xff1f;其实在C语言数据结构中&a…